/*
Theme Name: Theme Sapi Maison
Theme URI: https://atelier-sapi.fr
Author: Atelier Sapi
Description: Theme custom CINÉTIQUE pour Atelier Sapi.
Version: 0.2.4
Text Domain: theme-sapi-maison
*/

/* ========================================
   SAPI CINÉTIQUE - Design System
   ======================================== */

/* ----------------------------------------
   Self-hosted Square Peg (Safari fix)
   Google Fonts fails to load on some Safari versions,
   falling back to cursive (Snell Roundhand) which is oversized.
   ---------------------------------------- */
@font-face {
  font-family: 'Square Peg';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./assets/fonts/SquarePeg-Regular-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Square Peg';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./assets/fonts/SquarePeg-Regular.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* ========================================
     SAPI CINÉTIQUE - Design Tokens
     ======================================== */

  /* Colors - Neutrals */
  --color-white: #FFFFFF;
  --color-cream: #FEFDFB;
  --color-warm: #FBF6EA;
  --color-gray-light: #F1F1F1;
  --color-gray-mid: #717171; /* WCAG AA compliant (4.7:1 contrast) */
  --color-gray: #585858;
  --color-dark: #323232;
  --color-black: #000000;

  /* Colors - Brand */
  --color-wood: #937D68;
  --color-wood-dark: #4A3F35;     /* Ancien --bois-sombre */
  --color-wood-mid: #6B5A4A;      /* Ancien --bois-profond */
  --color-orange: #E35B24;        /* Référence unique orange Sâpi — harmonisée */
  --color-orange-hover: #C94D1E;
  --color-green: #018501; /* Keep for success states */
  --color-green-hover: #026B02;

  /* Colors - Interactive */
  --color-link: #00589A;
  --color-link-hover: #00365F;
  --color-error: #C50000;
  --color-error-hover: #570000;

  /* Typography */
  --font-display: 'Square Peg', 'Brush Script MT', 'Segoe Script', Georgia, serif;
  --font-body: 'Montserrat', sans-serif;

  /* Spacing & Layout */
  --radius: 5px;
  --radius-lg: 16px;
  --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  --shadow-card:       0 2px 8px rgba(147,125,104,0.12), 0 6px 28px rgba(147,125,104,0.15);
  --shadow-card-hover: 0 4px 14px rgba(147,125,104,0.16), 0 12px 44px rgba(147,125,104,0.22);
  --shadow-orange: 0 8px 32px rgba(230, 126, 34, 0.25);

  /* Easing */
  --ease-expo: cubic-bezier(0.87, 0, 0.13, 1);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Semantic Aliases */
  --color-bg: var(--color-cream);
  --color-text: var(--color-dark);
  --color-text-light: var(--color-gray-mid);
  --color-accent: var(--color-orange);

  /* ========================================
     DESIGN SYSTEM ENRICHI - Couleurs Premium
     ======================================== */

  /* Couleurs principales enrichies */
  --creme-papier: #FEFDFB;
  --creme-chaud: #FAF6F0;
  --ivoire-doux: #F5EDE4;
  --bois-dore: #937D68;
  --bois-profond: #6B5A4A;
  --bois-sombre: #4A3F35;
  /* Couleurs d'ambiance */
  --ombre-chaude: rgba(74, 63, 53, 0.08);
  --voile-bois: rgba(147, 125, 104, 0.05);
  --color-wood-rgb: 147, 125, 104;

  /* Gradient CTA orange */
  --gradient-cta: linear-gradient(180deg, #E35B24 0%, #D14F1C 100%);

  /* Gradients bois pour swatches */
  --wood-okoume: linear-gradient(135deg, #D4B896 0%, #C4A882 50%, #B89B74 100%);
  --wood-peuplier: linear-gradient(135deg, #F5EAD6 0%, #E8DCC4 50%, #DDD0B8 100%);
  --wood-noyer: linear-gradient(135deg, #8B6F5C 0%, #7A5F4D 50%, #6B5242 100%);

  /* Easings supplémentaires */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-elegant: cubic-bezier(0.25, 0.1, 0.25, 1);
}

/* ========================================
   PREMIUM GLOBAL EFFECTS & ANIMATIONS
   ======================================== */

/* Smooth scroll behavior for modern browsers */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ========================================
   PRODUCT NAME FORMATTING
   Prénom (premier mot) = Montserrat gras uppercase (plus petit)
   Article + nom = Square Peg capitalize (plus grand, première lettre seulement)
   ======================================== */
.product-firstname {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.75em; /* 75% de la taille du parent */
}

.product-restname {
  font-family: var(--font-display, 'Square Peg', cursive);
  font-weight: 400;
  text-transform: capitalize; /* Première lettre de chaque mot en majuscule */
  font-size: 1.6em; /* 160% de la taille du parent */
  white-space: nowrap; /* Jamais de coupure à l'intérieur — retour à la ligne uniquement avant */
}

/* Fade-in animation on scroll (intersection observer target) */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Skip to content — WCAG 2.1 Level A */
.skip-to-content {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
  padding: 0.75rem 1.5rem;
  background: var(--color-dark, #323232);
  color: var(--color-cream, #FEFDFB);
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 0 0 8px 0;
}

.skip-to-content:focus {
  left: 0;
  outline: 3px solid var(--color-orange, #E35B24);
  outline-offset: 2px;
}

/* Focus-visible: styles détaillés dans la section ACCESSIBILITY plus bas */

/* Micro-interaction: all interactive elements */
button,
a,
input[type="submit"],
input[type="button"],
.button,
.btn {
  position: relative;
  overflow: hidden;
}

/* Ripple effect on click (optional - can be toggled) */
button::after,
.button::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  transform: translate(-50%, -50%);
  transition: width 0.6s ease, height 0.6s ease;
  pointer-events: none;
}

button:active::after,
.button:active::after {
  width: 300px;
  height: 300px;
}

/* Premium hover glow for primary CTAs */
@media (hover: hover) {
  .button:not(.button-outline):hover,
  button[type="submit"]:hover {
    box-shadow:
      0 8px 20px rgba(227, 91, 36, 0.3),
      0 4px 8px rgba(227, 91, 36, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.2),
      0 0 30px rgba(227, 91, 36, 0.15);
  }
}

/* Loading state animation */
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

.loading {
  animation: pulse 1.5s ease-in-out infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.spinner {
  animation: spin 1s linear infinite;
}

/* Skeleton loading for images */
.skeleton {
  background: linear-gradient(
    90deg,
    var(--creme-papier, #FEFDFB) 0%,
    var(--creme-chaud, #FAF6F0) 50%,
    var(--creme-papier, #FEFDFB) 100%
  );
  background-size: 200% 100%;
  animation: skeleton-loading 1.5s ease-in-out infinite;
}

@keyframes skeleton-loading {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

/* Premium text selection */
::selection {
  background: var(--color-orange, #E35B24);
  color: var(--creme-papier, #FEFDFB);
}

::-moz-selection {
  background: var(--color-orange, #E35B24);
  color: var(--creme-papier, #FEFDFB);
}

/* Premium scrollbar (WebKit browsers) */
::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

::-webkit-scrollbar-track {
  background: var(--creme-papier, #FEFDFB);
}

::-webkit-scrollbar-thumb {
  background: var(--bois-dore, #937D68);
  border-radius: 6px;
  border: 2px solid var(--creme-papier, #FEFDFB);
}

@media (hover: hover) {
  ::-webkit-scrollbar-thumb:hover {
    background: var(--color-orange, #E35B24);
  }
}

/* Firefox scrollbar */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--bois-dore, #937D68) var(--creme-papier, #FEFDFB);
}

/* Subtle parallax effect for hero sections (opt-in with data attribute) */
[data-parallax] {
  transition: transform 0.5s ease-out;
  will-change: transform;
}

/* Hover lift micro-animation for cards */
.card,
.product-card,
.blog-card,
.category-featured-card,
[class*="-card"] {
  transition:
    transform 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1)),
    box-shadow 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  will-change: transform;
}

/* Stagger animation delay for lists */
.stagger-item:nth-child(1) { animation-delay: 0.05s; }
.stagger-item:nth-child(2) { animation-delay: 0.1s; }
.stagger-item:nth-child(3) { animation-delay: 0.15s; }
.stagger-item:nth-child(4) { animation-delay: 0.2s; }
.stagger-item:nth-child(5) { animation-delay: 0.25s; }
.stagger-item:nth-child(6) { animation-delay: 0.3s; }

/* Backdrop blur support for modals/overlays */
@supports (backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px)) {
  .backdrop-blur {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
}

/* GPU acceleration hints for frequently animated elements */
.product-card,
.category-featured-card,
.why-sapi-card,
.editorial-block,
.blog-card,
[class*="hover-lift"] {
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* ========================================
   PREMIUM V2.0: ADVANCED ANIMATIONS
   ======================================== */

/* Dropdown slide animations for filters */
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideUp {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-10px);
  }
}

/* Filter dropdown enhancements */
.filter-dropdown {
  position: relative;
}

.filter-dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 200px;
  background: var(--creme-papier, #FEFDFB);
  border: 2px solid var(--bois-dore, #937D68);
  border-radius: 12px;
  padding: 8px;
  box-shadow:
    0 10px 30px rgba(147, 125, 104, 0.15),
    0 4px 12px rgba(147, 125, 104, 0.1);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 100;
}

.filter-dropdown.open .filter-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.filter-dropdown-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 2px solid var(--bois-dore, #937D68);
  border-radius: 30px;
  background: var(--creme-papier, #FEFDFB);
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-dark, #323232);
  cursor: pointer;
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .filter-dropdown-toggle:hover {
    background: var(--creme-chaud, #FAF6F0);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(147, 125, 104, 0.15);
  }
}

.filter-dropdown.open .filter-dropdown-toggle {
  border-color: var(--color-orange, #E35B24);
  background: var(--creme-chaud, #FAF6F0);
}

.filter-dropdown-toggle svg {
  transition: transform 0.3s ease;
}

.filter-dropdown.open .filter-dropdown-toggle svg {
  transform: rotate(180deg);
}

.filter-option {
  display: block;
  width: 100%;
  padding: 10px 14px;
  border: none;
  border-radius: 8px;
  background: transparent;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  color: var(--color-dark, #323232);
  text-align: left;
  cursor: pointer;
  transition: all 0.2s ease;
}

@media (hover: hover) {
  .filter-option:hover {
    background: var(--creme-chaud, #FAF6F0);
    transform: translateX(4px);
  }
}

.filter-option.active {
  background: var(--color-orange, #E35B24);
  color: var(--creme-papier, #FEFDFB);
  font-weight: 600;
}

@media (hover: hover) {
  .filter-option.active:hover {
    background: #D14F1C;
    transform: translateX(4px) scale(1.02);
  }
}

.filter-reset {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border: 2px solid var(--color-orange, #E35B24);
  border-radius: 30px;
  background: transparent;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-orange, #E35B24);
  cursor: pointer;
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .filter-reset:hover {
    background: var(--color-orange, #E35B24);
    color: var(--creme-papier, #FEFDFB);
    transform: scale(1.05);
  }
}

.filter-reset svg {
  transition: transform 0.3s ease;
}

@media (hover: hover) {
  .filter-reset:hover svg {
    transform: rotate(90deg);
  }
}

/* Loading spinner for infinite scroll */
.loading-spinner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 30px;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  color: var(--bois-dore, #937D68);
}

.load-more-trigger {
  text-align: center;
  padding: 20px;
  margin: 40px auto;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  color: var(--bois-dore, #937D68);
  opacity: 0.7;
  transition: opacity 0.3s ease;
}

/* Canvas particles container */
[data-particles="wood"] {
  position: relative;
  overflow: hidden;
}

[data-particles="wood"] > *:not(.particles-canvas) {
  position: relative;
  z-index: 1;
}

/* Parallax smooth transitions */
[data-parallax] {
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

/* Enhanced product filtering animations */
.products-carousel-track .product {
  will-change: opacity, transform;
}

/* Advanced hover states for premium interactions */
.filter-btn {
  position: relative;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.filter-btn::before {
  display: none;
}

/* Premium micro-interactions */
@keyframes buttonPress {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.95);
  }
}

.filter-btn:active {
  animation: buttonPress 0.2s ease;
}
/* .filter-btn--robin supprimé — remplacé par le bandeau .filter-row--robin */

/* Smooth product reveal animations */
@keyframes productReveal {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}


/* Enhanced focus states for dropdowns */
.filter-dropdown-toggle:focus-visible,
.filter-option:focus-visible,
.filter-reset:focus-visible {
  outline: 3px solid var(--color-orange, #E35B24);
  outline-offset: 2px;
}

/* ========================================
   RESET & BASE STYLES
   ======================================== */

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--color-gray-mid);
  background: var(--color-white);
}

a {
  color: var(--color-link);
  text-decoration: none;
}

@media (hover: hover) {
  a:hover,
  a:focus {
    color: var(--color-link-hover);
  }
}

img {
  max-width: 100%;
  height: auto;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 0.6em;
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 600;
  color: var(--color-gray);
  line-height: 1.2;
}

h1 {
  font-size: clamp(2rem, 4vw, 2.75rem); /* 32-44px */
}

h2 {
  font-size: clamp(1.5rem, 3vw, 2rem); /* 24-32px */
}

h3 {
  font-size: clamp(1.125rem, 2vw, 1.5rem); /* 18-24px */
  text-transform: uppercase;
  color: var(--color-orange);
}

h4 {
  font-size: 1.125rem; /* 18px */
  font-weight: 500;
}

h5 {
  font-size: 1rem; /* 16px */
  font-weight: 500;
  color: var(--color-wood);
}

h6 {
  font-size: 0.875rem; /* 14px */
  font-weight: 400;
}

/* ========================================
   ACCESSIBILITY - Focus & Keyboard Navigation
   ======================================== */

/* Focus visible ring for keyboard navigation */
:focus-visible {
  outline: 2px solid var(--color-wood);
  outline-offset: 2px;
}

/* Remove default outline for mouse users */
:focus:not(:focus-visible) {
  outline: none;
}

/* Links focus */
a:focus-visible {
  outline: 2px solid var(--color-wood);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Buttons focus */
button:focus-visible,
.button:focus-visible,
.btn:focus-visible,
input[type="submit"]:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible {
  outline: 2px solid var(--color-wood);
  outline-offset: 2px;
}

/* Cards focus (for keyboard navigation) */
.bento-card:focus-visible,
.product-card:focus-visible,
.collection-card:focus-visible {
  outline: 2px solid var(--color-wood);
  outline-offset: 4px;
}

/* Form inputs focus */
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--color-wood);
  outline-offset: 0;
  border-color: var(--color-wood);
}

/* Nav dropdown keyboard support */
.primary-nav > ul > li:focus-within > .sub-menu,
.primary-nav > ul > li:focus-within > ul {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

/* Chevron rotation on focus */
.primary-nav > ul > li.menu-item-has-children:focus-within > a::before {
  transform: translateY(-50%) rotate(-135deg);
}

/* Mobile nav focus */
.mobile-nav-menu a:focus-visible {
  color: var(--color-orange);
  outline: none;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Skip link for screen readers */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--color-dark);
  color: var(--color-white);
  padding: 8px 16px;
  z-index: 10000;
  transition: top 0.3s;
}

.skip-link:focus {
  top: 0;
}

/* ========================================
   LAYOUT - Header & Navigation
   ======================================== */

.site-header {
  position: sticky;
  top: 0;
  z-index: 10001; /* Au-dessus de tous les autres éléments */
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  overflow: visible; /* Ne pas couper le panier ou autres éléments */
  padding-top: env(safe-area-inset-top);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

.site-header .header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 12px 40px;
  max-width: 1600px;
  margin: 0 auto;
  overflow: visible; /* Ne pas couper les éléments débordants */
}

.site-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.site-logo img,
.custom-logo {
  display: block;
  max-height: 50px;
  width: auto;
  height: auto;
}

/* Safari SVG fix */
.site-logo img[src$=".svg"] {
  width: 120px;
  height: 50px;
  object-fit: contain;
}

.site-logo a {
  display: flex;
  align-items: center;
}

.site-title {
  font-family: "Square Peg", "Brush Script MT", "Segoe Script", Georgia, serif;
  font-size: 36px;
  color: var(--color-wood);
  text-decoration: none;
  transition: color 0.3s ease;
}

@media (hover: hover) {
  .site-title:hover {
    color: var(--color-orange);
  }
}

.primary-nav {
  flex-shrink: 0;
}

.primary-nav > ul {
  list-style: none;
  display: flex;
  gap: 3rem;
  margin: 0;
  padding: 0;
}

.primary-nav a {
  font-size: 18px;
  white-space: nowrap;
  font-weight: 500;
  color: var(--color-dark);
  text-decoration: none;
  position: relative;
  padding: 4px 0;
  transition: color 0.3s ease;
}

.primary-nav a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--color-wood);
  transition: width 0.3s ease;
}

@media (hover: hover) {
  .primary-nav a:hover::after,
  .primary-nav .current-menu-item > a::after {
    width: 100%;
  }
}

@media (hover: hover) {
  .primary-nav a:hover,
  .primary-nav .current-menu-item > a {
    color: var(--color-wood);
  }
}

/* Dropdown Submenus */
.primary-nav > ul > li {
  position: relative;
  padding-bottom: 10px;
  margin-bottom: -10px;
}

.primary-nav .sub-menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  min-width: 180px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
  padding: 12px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(10px);
  transition: all 0.3s var(--ease-smooth);
  z-index: 1000;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Bridge for hover gap */
.primary-nav > ul > li.menu-item-has-children::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 20px;
  background: transparent;
}

@media (hover: hover) {
  .primary-nav > ul > li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
  }
}

.primary-nav .sub-menu li {
  margin: 0;
}

.primary-nav .sub-menu a {
  display: block;
  padding: 10px 20px;
  font-size: 15px;
  font-weight: 400;
  color: var(--color-gray);
  white-space: nowrap;
  position: relative;
}

.primary-nav .sub-menu a::after {
  display: none;
}

@media (hover: hover) {
  .primary-nav .sub-menu a:hover {
    background: var(--color-cream);
    color: var(--color-wood);
  }
}

/* Séparateur dans sous-menu */
.primary-nav .sub-menu .menu-separator-before {
  border-top: 1px solid rgba(147, 125, 104, 0.2);
  margin-top: 4px;
  padding-top: 4px;
}

/* Menu parent indicator (chevron) */
.primary-nav > ul > li.menu-item-has-children > a {
  padding-right: 18px;
}

.primary-nav > ul > li.menu-item-has-children > a::before {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  transition: transform 0.3s ease;
}

@media (hover: hover) {
  .primary-nav > ul > li.menu-item-has-children:hover > a::before {
    transform: translateY(-50%) rotate(-135deg);
  }
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 2; /* Au-dessus du contenu du header */
  overflow: visible; /* Important: ne pas couper l'icône panier */
  padding: 4px 0; /* Espace supplémentaire pour éviter la troncature */
}

/* ----------------------------------------
   Components - Buttons
   ---------------------------------------- */

button,
.button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 14px;
  text-transform: uppercase;
  padding: 10px 25px;
  border-radius: var(--radius);
  border: none;
  background: var(--color-orange);
  color: var(--color-white);
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

button:hover,
@media (hover: hover) {
  .button:hover,
  input[type="submit"]:hover,
  .woocommerce a.button:hover,
  .woocommerce button.button:hover,
  .woocommerce input.button:hover {
    background: var(--color-orange-hover);
    color: var(--color-white);
    transform: translateY(-1px);
  }
}

.button-outline {
  background: transparent;
  border: 1px solid var(--color-wood);
  color: var(--color-wood);
}

@media (hover: hover) {
  .button-outline:hover {
    background: var(--color-wood);
    color: var(--color-white);
  }
}

.site-content {
  padding: 0 20px;
}

/* Menu transparent par-dessus le carousel sur la homepage */
.home .site-header {
  position: fixed;
  width: 100%;
  background: rgba(255, 255, 255, 0.35) !important;
  box-shadow: none !important;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

/* Après le carousel : redevient opaque */
.home .site-header.is-scrolled {
  background: rgba(255, 255, 255, 1) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
}

.home .site-content {
  padding: 0;
  overflow-x: clip; /* 'clip' évite le débordement horizontal sans créer de scroll container */
}

@media (max-width: 768px) {
  .site-content {
    padding: 0;
  }
}

/* ========================================
   HEADER SIMPLIFIÉ — Panier & Confirmation
   ======================================== */
.site-header--simplified {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--color-white, #fff);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid var(--color-gray-light, #e8e2d9);
}

.site-header--simplified .header-inner--centered {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem 2rem;
}

/* ========================================
   FOOTER SIMPLIFIÉ — Panier & Confirmation
   ======================================== */
.site-footer--simplified {
  background: var(--color-cream);
  border-top: 1px solid var(--color-gray-light, #e8e2d9);
  padding: 1.25rem 2rem;
}

.site-footer--simplified .footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1400px;
  margin: 0 auto;
  font-size: 0.8rem;
  color: var(--color-gray);
}

.site-footer--simplified .footer-legal {
  display: flex;
  gap: 1.5rem;
}

.site-footer--simplified .footer-legal a {
  color: var(--color-gray);
  text-decoration: none;
  transition: color 0.2s ease;
}

@media (hover: hover) {
  .site-footer--simplified .footer-legal a:hover {
    color: var(--color-dark);
  }
}

@media (max-width: 600px) {
  .site-footer--simplified .footer-bottom {
    flex-direction: column;
    gap: 0.75rem;
    text-align: center;
  }
}

.site-footer {
  background: var(--color-cream);
  color: var(--color-gray);
}

@media (max-width: 1024px) {
  .primary-nav ul {
    gap: 12px;
  }
}

/* Menu Burger Toggle */
.menu-toggle {
  display: none;
  align-items: center;
  gap: 8px;
  background: transparent !important;
  border: none;
  outline: none;
  padding: 8px;
  cursor: pointer;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: var(--color-gray);
  transition: color 0.3s ease;
}

@media (hover: hover) {
  .menu-toggle:hover {
    color: var(--color-orange);
  }
}

.menu-toggle:focus,
.menu-toggle:active {
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

.menu-burger {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 24px;
  height: 18px;
  justify-content: center;
}

.burger-line {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--color-gray);
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .menu-toggle:hover .burger-line {
    background: var(--color-orange);
  }
}

.menu-toggle[aria-expanded="true"] .burger-line:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .burger-line:nth-child(2) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] .burger-line:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* Mobile Menu Overlay */
.mobile-menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background: rgba(254, 253, 245, 0.98);
  backdrop-filter: blur(10px);
  z-index: 998;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.mobile-menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* Mobile Menu Close Button */
.mobile-menu-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  cursor: pointer;
  padding: 10px;
  color: var(--color-dark, #323232);
  opacity: 0;
  visibility: hidden;
  transform: scale(0.8);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s 0.3s;
  z-index: 999;
}

.mobile-menu-overlay.active .mobile-menu-close {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  transition: opacity 0.3s ease 0.2s, transform 0.3s ease 0.2s, visibility 0s 0s;
}

@media (hover: hover) {
  .mobile-menu-close:hover {
    transform: scale(1.1);
  }
}

.mobile-menu-close:focus,
.mobile-menu-close:active {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.mobile-menu-close svg {
  display: block;
  width: 24px;
  height: 24px;
}

.mobile-menu-nav {
  width: 100%;
  max-width: 400px;
  padding: 20px;
}

.mobile-nav-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mobile-nav-menu li {
  opacity: 0;
  transform: translateX(-20px);
  transition: all 0.3s ease;
}

.mobile-menu-overlay.active .mobile-nav-menu li {
  opacity: 1;
  transform: translateX(0);
}

.mobile-nav-menu li:nth-child(1) { transition-delay: 0.1s; }
.mobile-nav-menu li:nth-child(2) { transition-delay: 0.15s; }
.mobile-nav-menu li:nth-child(3) { transition-delay: 0.2s; }
.mobile-nav-menu li:nth-child(4) { transition-delay: 0.25s; }
.mobile-nav-menu li:nth-child(5) { transition-delay: 0.3s; }

.mobile-nav-menu a {
  font-size: 24px;
  font-weight: 600;
  color: var(--color-gray);
  text-decoration: none;
  display: block;
  padding: 6px 0;
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .mobile-nav-menu a:hover,
  .mobile-nav-menu .current-menu-item > a {
    color: var(--color-orange);
    transform: translateX(10px);
  }
}

/* Mobile Submenu */
.mobile-nav-menu .sub-menu {
  list-style: none;
  padding: 10px 0 0 20px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mobile-nav-menu .sub-menu li {
  opacity: 1;
  transform: none;
}

.mobile-nav-menu .sub-menu a {
  font-size: 18px;
  font-weight: 400;
  color: var(--color-gray);
  padding: 8px 0;
}

@media (hover: hover) {
  .mobile-nav-menu .sub-menu a:hover {
    color: var(--color-wood);
  }
}

.mobile-nav-menu .sub-menu .menu-separator-before {
  border-top: 1px solid rgba(147, 125, 104, 0.2);
  margin-top: 4px;
  padding-top: 4px;
}

/* Cart Link Improvements */
.cart-link {
  display: flex;
  align-items: center;
  position: relative;
  padding: 8px 12px; /* Plus d'espace horizontal pour éviter la troncature */
  color: var(--color-dark);
  text-decoration: none;
  cursor: pointer;
  background: transparent;
  border: none;
  transition: all 0.3s ease;
  -webkit-transition: all 0.3s ease;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  z-index: 3; /* Au-dessus de tout dans le header */
  overflow: visible; /* Ne jamais couper l'icône */
  min-width: 48px; /* Largeur minimale pour l'accessibilité et éviter la troncature */
  min-height: 48px; /* Hauteur minimale pour la zone de clic */
}

@media (hover: hover) {
  .cart-link:hover {
    color: var(--color-wood);
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
  }
}

.cart-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible; /* Important */
}

.cart-icon svg {
  width: 24px;
  height: 24px;
  display: block; /* Évite les problèmes d'espacement inline */
  overflow: visible; /* Les SVG ne doivent jamais être coupés */
}

.cart-count {
  position: absolute;
  top: 0;
  right: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: var(--color-wood);
  color: var(--color-white);
  border-radius: 9px;
  font-size: 11px;
  font-weight: 600;
  -webkit-transform: translate(25%, -25%);
  transform: translate(25%, -25%);
  -webkit-transition: opacity 0.2s ease, transform 0.2s ease;
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none; /* Le badge ne doit pas bloquer les clics */
}

.cart-count--empty {
  opacity: 0;
  -webkit-transform: translate(25%, -25%) scale(0.5);
  transform: translate(25%, -25%) scale(0.5);
  pointer-events: none;
}

@media (max-width: 768px) {
  .site-header .header-inner {
    flex-direction: row;
    flex-wrap: nowrap;
    padding: 10px 16px;
  }

  .primary-nav {
    display: none;
  }

  .menu-toggle {
    display: flex;
    min-width: 44px;
    min-height: 44px;
    justify-content: center;
  }

  .search-toggle {
    min-width: 44px;
    min-height: 44px;
  }

  .cart-link {
    padding: 6px;
  }

  .site-logo img,
  .custom-logo {
    max-height: 40px;
  }

  .site-title {
    font-size: 28px;
  }
}

/* ========================================
   GLOBAL - Sticky Reassurance Bar
   ======================================== */

/* ========================================
   HOMEPAGE - Bandeau réassurance sous le carousel (sticky)
   ======================================== */
/* Masqué en position originale (entre header et main) pour ne pas créer de gap.
   Rendu visible par JS après repositionnement sous le carousel. */
/* ========================================
   Bandeau "Mon projet" — Questionnaire permanent
   ======================================== */

/* ═══════════════════════════════════════════════════════════
   ROBIN CONSEILLER V2 — Bandeau + Modale + Fiches
═══════════════════════════════════════════════════════════ */

/* ─── Bandeau V2 dual-mode (réassurance + projet) ─── */
.robin-bandeau {
  display: block;
  background: var(--color-warm, #FBF6EA);
  border-bottom: 1px solid rgba(147, 125, 104, 0.1);
  cursor: pointer;
  transition: background 0.3s, box-shadow 0.3s;
  position: sticky;
  top: 80px;
  z-index: 998;
}
.home .robin-bandeau:not(.home-repositioned-bar) {
  display: none;
}
.robin-bandeau:hover {
  background: #f5ecd9;
  box-shadow: inset 0 -2px 8px rgba(var(--color-wood-rgb, 147, 125, 104), 0.08);
}

/* Toggle des deux modes — classes ajoutées par PHP (default) puis JS */
.robin-bandeau__repos,
.robin-bandeau__projet {
  display: none;
}
.robin-bandeau--mode-repos  .robin-bandeau__repos  { display: flex; }
.robin-bandeau--mode-projet .robin-bandeau__projet { display: flex; }

/* ── MODE REPOS : réassurance statique + badge CTA ── */
.robin-bandeau__repos {
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 6px 1.25rem;
  margin: 0 auto;
}
.robin-bandeau .reassurance-bar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  row-gap: 6px;
}
.robin-bandeau .reassurance-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 11px;
  font-weight: 500;
  color: var(--color-dark, #323232);
  white-space: nowrap;
}
.robin-bandeau .reassurance-item svg {
  color: var(--color-wood, #937D68);
  flex-shrink: 0;
}
.robin-bandeau__badge--cta {
  /* Hérite du style de .robin-bandeau__badge (pilule wood, texte blanc) */
  transition: background 0.2s;
}
.robin-bandeau:hover .robin-bandeau__badge--cta {
  background: var(--color-orange, #E35B24);
}

/* ── MODE PROJET : badge + chips ── */
.robin-bandeau__projet {
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.65rem 1.5rem;
}
.robin-bandeau__left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.robin-bandeau__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.6rem;
  background: var(--color-wood, #937D68);
  color: #fff;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.robin-bandeau__badge svg {
  flex-shrink: 0;
}
.robin-bandeau__chips {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  color: var(--color-dark, #323232);
}
.robin-bandeau__arrow {
  color: var(--color-wood, #937D68);
  font-size: 1.2rem;
}

/* ─── Modale ─── */
.robin-modal {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  transition: opacity 0.25s, visibility 0.25s;
}
.robin-modal[aria-hidden="true"] {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.robin-modal[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
}
.robin-modal__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}
.robin-modal__container {
  position: relative;
  background: var(--color-cream, #FEFDFB);
  border-radius: 20px;
  border: 1px solid rgba(var(--color-wood-rgb, 147, 125, 104), 0.1);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
  width: 100%;
  max-width: 580px;
  height: 80vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.robin-modal__container::after {
  content: '';
  position: absolute;
  inset: 6px;
  border: 1.5px dashed rgba(var(--color-wood-rgb, 147, 125, 104), 0.2);
  border-radius: 15px;
  pointer-events: none;
  z-index: 10;
}

/* Header modale — 3 colonnes : retour | badge | close */
.robin-modal__header {
  padding: 1rem 1.5rem;
  background: var(--color-warm, #FBF6EA);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  flex-shrink: 0;
  min-height: 56px;
}
.robin-modal__back {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: none;
  border: none;
  color: var(--color-wood, #937D68);
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 500;
  cursor: pointer;
  padding: 0.3rem 0;
  transition: color 0.2s;
}
.robin-modal__back:hover { color: var(--color-dark, #323232); }
.robin-modal__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.75rem;
  background: var(--color-wood, #937D68);
  color: #fff;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.robin-modal__badge svg {
  flex-shrink: 0;
}
.robin-modal__close {
  justify-self: end;
  width: 32px;
  min-width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 50%;
  border: none;
  background: rgba(var(--color-wood-rgb, 147, 125, 104), 0.08);
  color: var(--color-dark, #323232);
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.robin-modal__close:hover {
  background: rgba(var(--color-wood-rgb, 147, 125, 104), 0.15);
}

/* Résumé projet sous le header */
.robin-modal__project {
  padding: 0.5rem 1.5rem 0.6rem;
  background: var(--color-warm, #FBF6EA);
  border-bottom: 1px solid rgba(var(--color-wood-rgb, 147, 125, 104), 0.1);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  flex-shrink: 0;
}
.robin-modal__chip {
  display: inline-block;
  padding: 0.15rem 0.55rem;
  background: rgba(var(--color-wood-rgb, 147, 125, 104), 0.12);
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--color-wood, #937D68);
}
.robin-modal__reset {
  margin-left: auto;
  background: none;
  border: none;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.68rem;
  color: var(--color-orange, #E35B24);
  cursor: pointer;
  padding: 0.15rem 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.robin-modal__reset:hover {
  color: var(--color-orange-hover, #C94D1E);
}

/* Corps modale — deux zones */
.robin-modal__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Zone haute : conseil centré au-dessus du lien */
.robin-fiche__top {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.5rem 1.5rem 1rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.robin-fiche__top .robin-fiche__conseil {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.robin-fiche__top .robin-fiche__link {
  flex-shrink: 0;
  padding-top: 0.75rem;
}

/* Zone basse : question + boutons + input */
.robin-fiche__bottom {
  flex-shrink: 0;
  padding: 1rem 1.5rem 1.5rem;
  border-top: 1px solid rgba(var(--color-wood-rgb, 147, 125, 104), 0.1);
}

/* ─── Fiches conseil ─── */

/* Citation Robin */
.robin-fiche__conseil {
  margin-bottom: 0.75rem;
  width: 100%;
}
.robin-fiche__citation-text {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.93rem;
  line-height: 1.75;
  color: var(--color-dark, #323232);
  font-style: italic;
  text-align: center;
  padding: 0 0.5rem;
  margin: 0 0 0.5rem;
}
.robin-fiche__citation-text::before {
  content: '\201C\00A0';
  font-family: Georgia, serif;
  color: var(--color-orange, #E35B24);
  opacity: 0.2;
}
.robin-fiche__citation-text::after {
  content: '\00A0\201D';
  font-family: Georgia, serif;
  color: var(--color-orange, #E35B24);
  opacity: 0.2;
}
.robin-fiche__citation-text--animated::before,
.robin-fiche__citation-text--animated::after {
  content: none !important;
}
.robin-word--quote {
  color: var(--color-orange, #E35B24);
  font-style: normal;
}
.robin-word {
  display: inline;
}
.robin-fiche__signature {
  display: block;
  text-align: right;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  font-weight: 500;
  font-style: italic;
  color: var(--color-orange, #E35B24);
}

/* Fiche résultat product guide */
.robin-fiche__result-recap {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin: 1.25rem 0;
  padding: 1rem;
  background: var(--color-warm, #FBF6EA);
  border-radius: 10px;
}

.robin-result-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
}

.robin-result-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-light, #888);
  font-weight: 600;
}

.robin-result-value {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-dark, #323232);
}

.robin-result-conseil {
  font-size: 0.88rem;
  font-style: italic;
  color: var(--color-text, #555);
  text-align: center;
  line-height: 1.6;
  margin: 0 0 1.25rem;
  padding: 0 1rem;
}

.robin-fiche__result-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 0 1.5rem 3rem;
}

.robin-result-apply {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.65rem 1.5rem;
  background: linear-gradient(180deg, #E35B24 0%, #D14F1C 100%);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
}

@media (hover: hover) {
  .robin-result-apply:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
  }
}

.robin-result-redo {
  background: none;
  border: none;
  color: var(--color-text-light, #888);
  font-size: 0.8rem;
  font-family: inherit;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
  transition: color 0.2s;
}

.robin-result-contact {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--color-wood, #937D68);
  text-decoration: none;
  transition: color 0.2s;
}

@media (hover: hover) {
  .robin-result-contact:hover {
    color: var(--color-dark, #323232);
    text-decoration: underline;
  }
}

@media (hover: hover) {
  .robin-result-redo:hover {
    color: var(--color-dark, #323232);
  }
}

/* Loader conseil (ampoule + messages) */
.robin-fiche__loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 1rem 0;
}
.robin-fiche__loader-icon {
  width: 40px;
  height: 40px;
  color: var(--color-orange, #E35B24);
  animation: robinPulse 2s ease-in-out infinite;
}
.robin-fiche__loader-icon svg {
  width: 100%;
  height: 100%;
}
.robin-fiche__loader-text {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  font-style: italic;
  color: var(--color-wood, #937D68);
  margin: 0;
  text-align: center;
  transition: opacity 0.5s, transform 0.5s;
}
.robin-fiche__loader-text--hidden {
  opacity: 0;
  transform: translateY(5px);
}
@keyframes robinPulse {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}

/* Lien sortant */
.robin-fiche__link {
  display: flex;
  justify-content: center;
  margin-bottom: 1.5rem;
}
.robin-fiche__link a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1.3rem;
  border: 1.5px solid var(--color-orange, #E35B24);
  border-radius: 50px;
  color: var(--color-orange, #E35B24);
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
}
.robin-fiche__link a:hover {
  background: rgba(227, 91, 36, 0.06);
}

/* Question */
.robin-fiche__question {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.6rem;
  text-align: center;
}

/* Boutons choix */
.robin-fiche__choices {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.robin-fiche__choices--reco {
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
}
.robin-fiche__choice {
  padding: 0.5rem 1rem;
  border: 1.5px solid rgba(227, 91, 36, 0.3);
  border-radius: 50px;
  background: transparent;
  color: var(--color-dark, #323232);
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.82rem;
  cursor: pointer;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.robin-fiche__choice:hover {
  background: rgba(227, 91, 36, 0.06);
  border-color: var(--color-orange, #E35B24);
}
.robin-fiche__choice.is-selected {
  background: var(--color-orange, #E35B24);
  color: #fff;
  border-color: var(--color-orange, #E35B24);
}
/* Boutons conversation — style discret wood */
.robin-fiche__conv-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.75rem;
}
.robin-fiche__choice--conv {
  border-color: rgba(var(--color-wood-rgb, 147, 125, 104), 0.25);
  color: var(--color-wood, #937D68);
  font-size: 0.8rem;
}
.robin-fiche__choice--conv:hover {
  border-color: var(--color-wood, #937D68);
  background: rgba(var(--color-wood-rgb, 147, 125, 104), 0.06);
  color: var(--color-dark, #323232);
}

/* Liens CTA — texte orange + flèche */
.robin-fiche__cta-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.75rem;
}
.robin-fiche__cta-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  text-decoration: none;
  padding: 0.3rem 0;
  transition: all 0.2s;
}
.robin-fiche__cta-link:hover {
  color: var(--color-orange-hover, #C94D1E);
  gap: 0.5rem;
}
.robin-fiche__choice-icon {
  display: inline-flex;
  width: 18px;
  height: 18px;
}
.robin-fiche__choice-icon svg {
  width: 100%;
  height: 100%;
}
.robin-fiche__choice-dim {
  font-size: 0.75rem;
  opacity: 0.6;
}

/* Champ texte libre */
.robin-fiche__input-wrap {
  margin-top: 1rem;
}
.robin-fiche__input {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(var(--color-wood-rgb, 147, 125, 104), 0.06);
  border-radius: 50px;
  padding: 0.6rem 0.75rem 0.6rem 1.25rem;
}
.robin-fiche__input input {
  flex: 1;
  border: none;
  background: none;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  color: var(--color-dark, #323232);
  outline: none;
}
.robin-fiche__input input::placeholder {
  color: rgba(var(--color-wood-rgb, 147, 125, 104), 0.5);
}
.robin-fiche__send {
  width: 34px;
  min-width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 50%;
  background: linear-gradient(180deg, #E35B24 0%, #D14F1C 100%);
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  flex-shrink: 0;
  transition: transform 0.2s, box-shadow 0.2s;
}
.robin-fiche__send:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(227, 91, 36, 0.3);
}

/* ─── Pills contextuelles ─── */
.robin-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  width: fit-content;
  background: var(--color-warm, #FBF6EA);
  border: 2px dashed rgba(var(--color-wood-rgb, 147, 125, 104), 0.3);
  border-radius: 50px;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s, color 0.2s;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.82rem;
  color: var(--color-wood, #937D68);
}

#robin-product-pill {
  margin: 0.5rem 0 1rem;
}
.robin-pill:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(var(--color-wood-rgb, 147, 125, 104), 0.1);
  border-color: var(--color-wood, #937D68);
  color: var(--color-dark, #323232);
}

/* ─── Desktop ─── */
@media (min-width: 601px) {
  .robin-fiche__citation-text {
    font-size: 1.1rem;
  }
}

/* ─── Responsive mobile ─── */
@media (max-width: 600px) {
  .robin-modal {
    padding: 1rem;
  }
  .robin-modal__container {
    width: 95%;
    height: 90vh;
    height: 90dvh;
    border-radius: 16px;
  }
  /* Header compact */
  .robin-modal__header {
    padding: 0.6rem 1rem;
    min-height: 44px;
  }
  .robin-modal__badge {
    font-size: 0.6rem;
    padding: 0.2rem 0.6rem;
  }
  .robin-modal__back {
    font-size: 0.75rem;
  }
  /* Zone haute */
  .robin-fiche__top {
    padding: 1rem 1.25rem 0.75rem;
  }
  .robin-fiche__citation-text {
    font-size: 0.88rem;
    line-height: 1.65;
  }
  .robin-fiche__signature {
    font-size: 0.78rem;
  }
  /* Zone basse compacte */
  .robin-fiche__bottom {
    padding: 0.75rem 1.25rem 1rem;
  }
  .robin-fiche__question {
    font-size: 0.72rem;
    margin-bottom: 0.4rem;
  }
  .robin-fiche__choices {
    gap: 0.35rem;
    margin-bottom: 0.6rem;
  }
  .robin-fiche__choice {
    padding: 0.4rem 0.85rem;
    font-size: 0.78rem;
  }
  .robin-fiche__choice-icon {
    width: 15px;
    height: 15px;
  }
  .robin-fiche__choice-dim {
    font-size: 0.68rem;
  }
  .robin-fiche__input-wrap {
    margin-top: 0.6rem;
  }
  .robin-fiche__input {
    padding: 0.45rem 0.6rem 0.45rem 1rem;
  }
  .robin-fiche__input input {
    font-size: 0.8rem;
  }
  .robin-fiche__send {
    width: 30px;
    min-width: 30px;
    height: 30px;
  }
  /* Résumé projet compact */
  .robin-modal__project {
    padding: 0.35rem 1rem 0.4rem;
  }
  .robin-modal__chip {
    font-size: 0.6rem;
    padding: 0.1rem 0.45rem;
  }
  .robin-modal__reset {
    font-size: 0.6rem;
  }
  /* Lien CTA compact */
  .robin-fiche__link a {
    font-size: 0.78rem;
    padding: 0.45rem 1rem;
  }
  /* Bandeau */
  .robin-bandeau {
    top: calc(76px + env(safe-area-inset-top, 0px));
  }
  .robin-bandeau__projet {
    padding: 0.55rem 1rem;
  }
  .robin-bandeau__chips {
    font-size: 0.78rem;
  }
  .robin-bandeau__repos {
    padding: 6px 0.85rem;
    gap: 0.5rem;
  }
  .robin-bandeau .reassurance-bar-inner {
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 6px;
  }
  .robin-bandeau .reassurance-item {
    font-size: 10.5px;
  }
  /* 2 items masqués aléatoirement par JS via .is-mobile-hidden */
  .robin-bandeau .reassurance-item.is-mobile-hidden {
    display: none;
  }
  /* Badge CTA forcé sur sa propre ligne, centré */
  .robin-bandeau__badge--cta {
    flex-basis: 100%;
    justify-content: center;
    margin: 0 auto;
    /* width: max-content pour ne pas étirer la pilule sur toute la largeur */
    max-width: max-content;
  }
}

/* ─── Rideau (animation recommandation) ─── */
.robin-modal__curtain {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 0;
  background: var(--color-wood, #937D68);
  z-index: 20;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: height 1.5s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 20px;
}
.robin-modal__curtain--closing {
  height: 100%;
}
.robin-modal__curtain--opening {
  height: 0;
  transition: height 1.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.robin-modal__curtain-bulb {
  width: 60px;
  height: 60px;
  color: var(--color-orange, #E35B24);
  opacity: 0;
}
.robin-modal__curtain-bulb--visible {
  animation: robinCurtainBulbIn 0.8s ease forwards, robinCurtainPulse 2.5s ease-in-out 0.8s infinite;
}
.robin-modal__curtain-bulb--fading {
  animation: robinCurtainBulbOut 0.8s ease forwards;
}
.robin-modal__curtain-bulb svg {
  width: 100%;
  height: 100%;
}
@keyframes robinCurtainBulbIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes robinCurtainBulbOut {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes robinCurtainPulse {
  0%, 100% { transform: scale(1); filter: brightness(0.7); }
  50% { transform: scale(1.15); filter: brightness(1); }
}

/* ─── Recommandation finale ─── */

/* Body modale en mode reco — pas de scroll, pas de padding (photo plein bord) */
.robin-modal__body--reco {
  overflow: hidden;
  padding: 0;
}

/* Modale agrandie — transition cinématique */
.robin-modal__container--expanded {
  max-width: 900px;
  height: 90vh;
  transition: max-width 5s cubic-bezier(0.25, 0.1, 0.25, 1), height 5s cubic-bezier(0.25, 0.1, 0.25, 1);
}
@media (max-width: 600px) {
  .robin-modal__container--expanded {
    width: 100%;
    height: 95dvh;
    max-width: 100%;
    border-radius: 12px;
  }
}

/* Overlay sombre en mode reco */
.robin-modal--reco .robin-modal__overlay {
  background: rgba(0, 0, 0, 0.8);
  transition: background 2s ease;
}

/* Header simplifié en mode reco — éléments disparaissent individuellement */
.robin-modal--reco .robin-modal__back {
  transition: opacity 0.5s ease;
}
.robin-modal--reco .robin-modal__project {
  transition: opacity 0.8s ease, max-height 0.8s ease;
  overflow: hidden;
}
.robin-modal--reco .robin-modal__project.is-hidden {
  opacity: 0;
  max-height: 0;
  padding: 0;
  pointer-events: none;
}
.robin-modal--reco .robin-modal__back.is-hidden {
  opacity: 0;
  pointer-events: none;
}
.robin-modal__chip.is-fading {
  transition: opacity 0.3s ease;
  opacity: 0;
}
.robin-modal__reset.is-fading {
  transition: opacity 0.3s ease;
  opacity: 0;
}

/* Header complètement masqué après ouverture rideau */
.robin-modal--reco .robin-modal__header.is-collapsed {
  height: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  transition: height 0.5s ease, padding 0.5s ease, min-height 0.5s ease;
}
.robin-modal--reco .robin-modal__project.is-collapsed {
  display: none;
}

/* Container recommandation — flex colonne, remplit toute la modale */
.robin-reco {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 0;
}
.robin-reco__loader {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
}

/* Bouton primaire "Voir le conseil de Robin" */
.robin-fiche__choice--primary {
  background: var(--gradient-cta, linear-gradient(180deg, #E35B24 0%, #D14F1C 100%));
  color: #fff;
  border-color: var(--color-orange, #E35B24);
  font-weight: 600;
}
.robin-fiche__choice--primary:hover {
  background: var(--color-orange-hover, #C94D1E);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.3);
}

/* Showcase — proportions de l'espace disponible */
.robin-reco__showcase {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* Viewport + track slider */
.robin-reco__viewport {
  flex: 1;
  overflow: hidden;
  min-height: 0;
}
.robin-reco__track {
  display: flex;
  height: 100%;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.robin-reco__slide {
  min-width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Éléments cachés au départ — dévoilement progressif */
.robin-reco__reveal {
  opacity: 0;
  transform: translateY(8px);
}
.robin-reco__reveal-word {
  display: inline;
}

/* Photo — plein bord, ~75% de la slide */
.robin-reco__photo {
  flex: 0 0 75%;
  overflow: hidden;
  background: var(--color-warm, #FBF6EA);
}
.robin-reco__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-expo, cubic-bezier(0.16, 1, 0.3, 1));
}
.robin-reco--ready .robin-reco__slide:hover .robin-reco__photo img {
  transform: scale(1.04);
}

/* Infos — mêmes styles que les cards produit du site */
.robin-reco__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.75rem 2rem 0;
}
.robin-reco__info-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0;
}
/* Le nom utilise .product-name → formaté par product-name-formatter.js */
.robin-reco__name {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.4rem !important;
  font-weight: 700;
  color: var(--color-dark, #323232);
  margin: 0;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.robin-reco__price-wrap {
  text-align: right;
  flex-shrink: 0;
}
.robin-reco__price-from {
  display: block;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--color-wood, #937D68);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.robin-reco__price {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.15rem;
  font-weight: 900;
  color: var(--color-dark, #323232);
}
.robin-reco__chips {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin: 0.3rem 0;
}
.robin-reco__chip {
  display: inline-block;
  padding: 0.15rem 0.6rem;
  background: rgba(var(--color-wood-rgb, 147, 125, 104), 0.1);
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--color-wood, #937D68);
}
.robin-reco__chip--label {
  background: none;
  padding: 0;
  color: var(--color-wood, #937D68);
  font-weight: 600;
  font-size: 0.7rem;
}
.robin-reco__reason {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.82rem;
  font-style: italic;
  line-height: 1.45;
  color: var(--color-dark, #323232);
  margin: 0 0 0.4rem;
}
.robin-reco__cta {
  display: inline-block;
  align-self: flex-start;
  padding: 0.65rem 1.5rem;
  background: transparent;
  border: none;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: all 0.3s;
}
.robin-reco__cta:hover {
  background: var(--gradient-cta, linear-gradient(180deg, #E35B24 0%, #D14F1C 100%));
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
}

/* Navigation slider — ~10% */
.robin-reco__nav {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  padding: 0.4rem 1.5rem;
}
.robin-reco__arrow {
  width: 32px;
  height: 32px;
  min-width: 32px;
  padding: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(var(--color-wood-rgb, 147, 125, 104), 0.3);
  background: var(--color-cream, #FEFDFB);
  color: var(--color-wood, #937D68);
  font-size: 1.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.robin-reco__arrow:hover:not(:disabled) {
  border-color: var(--color-wood, #937D68);
  color: var(--color-dark, #323232);
}
.robin-reco__arrow:disabled {
  opacity: 0.3;
  cursor: default;
}
.robin-reco__counter {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
}

/* Boutons finaux */
.robin-reco__actions {
  flex: 0 0 auto;
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.6rem 1.5rem 0.5rem;
  border-top: 1px solid rgba(var(--color-wood-rgb, 147, 125, 104), 0.1);
}

/* Responsive mobile */
@media (max-width: 600px) {
  .robin-reco__photo {
    flex: 0 0 50%;
  }
  .robin-reco__info {
    padding: 1rem 1.25rem 0;
  }
  .robin-reco__name {
    font-size: 1.1rem !important;
  }
  .robin-reco__price {
    font-size: 1rem;
  }
  .robin-reco__chip {
    font-size: 0.6rem;
    padding: 0.1rem 0.5rem;
  }
  .robin-reco__reason {
    font-size: 0.78rem;
  }
  .robin-reco__cta {
    padding: 0.55rem 1.25rem;
    font-size: 0.75rem;
  }
  .robin-reco__arrow {
    width: 28px;
    height: 28px;
    min-width: 28px;
  }
  .robin-reco__actions .robin-fiche__choice {
    font-size: 0.72rem;
    padding: 0.35rem 0.75rem;
  }
}

/* ─── Fiche Sur Mesure (recommandation finale) ─── */
.robin-reco--sur-mesure {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 3rem 2rem 2rem;
  min-height: 100%;
}
.robin-sur-mesure__icon {
  color: var(--color-orange, #E35B24);
  margin-bottom: 1.5rem;
  opacity: 0;
  transform: translateY(10px);
}
.robin-sur-mesure__title {
  font-family: var(--font-display, 'Square Peg', cursive);
  font-size: 2rem;
  color: var(--color-dark, #323232);
  margin: 0 0 1.5rem;
  opacity: 0;
  transform: translateY(10px);
}
.robin-sur-mesure__text {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-dark, #323232);
  max-width: 480px;
  margin: 0 auto 2rem;
}
.robin-sur-mesure__actions {
  margin-bottom: 1rem;
  opacity: 0;
  transform: translateY(10px);
}
.robin-sur-mesure__cta-main {
  display: inline-block;
  padding: 0.85rem 2rem;
  background: linear-gradient(180deg, #E35B24 0%, #D14F1C 100%);
  color: #fff;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-decoration: none;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  transition: transform 0.2s, box-shadow 0.2s;
}
.robin-sur-mesure__cta-main:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
}
.robin-sur-mesure__secondary {
  opacity: 0;
  transform: translateY(10px);
}
.robin-sur-mesure__secondary .robin-fiche__choice--link {
  font-size: 0.8rem;
  color: var(--color-wood, #937D68);
}

@media (max-width: 600px) {
  .robin-reco--sur-mesure {
    padding: 2rem 1.25rem 1.5rem;
  }
  .robin-sur-mesure__title {
    font-size: 1.6rem;
  }
  .robin-sur-mesure__text {
    font-size: 0.88rem;
  }
  .robin-sur-mesure__cta-main {
    font-size: 0.85rem;
    padding: 0.75rem 1.5rem;
  }
}

/* ─── Card Robin dans grille catégorie ─── */
.robin-category-card {
  list-style: none;
}
.robin-category-card__inner {
  background: var(--color-warm, #FBF6EA);
  border: 2px dashed rgba(var(--color-wood-rgb, 147, 125, 104), 0.3);
  border-radius: 16px;
  padding: 2rem 1.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 1rem;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.robin-category-card__inner:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card-hover);
  border-color: var(--color-wood, #937D68);
}
.robin-category-card__text {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--color-dark, #323232);
  margin: 0;
}
.robin-category-card__cta {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  transition: gap 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.robin-category-card__inner:hover .robin-category-card__cta {
  gap: 0.5rem;
}

/* ─── Bandeau projet dans formulaire contact ─── */
.robin-contact-project__inner {
  background: var(--color-warm, #FBF6EA);
  border: 2px dashed rgba(var(--color-wood-rgb, 147, 125, 104), 0.3);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}
.robin-contact-project__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.robin-contact-project__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.robin-contact-project__close {
  font-size: 1.2rem;
  color: rgba(var(--color-wood-rgb, 147, 125, 104), 0.4);
  transition: color 0.2s;
  line-height: 1;
}
.robin-contact-project__close:hover {
  color: var(--color-dark, #323232);
}
.robin-contact-project__note {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.75rem;
  color: var(--color-wood, #937D68);
  font-style: italic;
  margin: 0;
}

.robin-category-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: center;
}
.robin-category-card__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
}

/* ═══════════════════════════════════════════════════════════
   FIN ROBIN CONSEILLER V2
═══════════════════════════════════════════════════════════ */

/* Sur la homepage, le bandeau est déplacé par JS sous le carousel.
   Tant qu'il n'est pas déplacé, le cacher pour éviter un doublon visuel. */
.home .mon-projet-bar:not(.home-repositioned-bar) {
  display: none;
}

.mon-projet-bar {
  position: sticky;
  top: 80px;
  z-index: 998;
  background: linear-gradient(135deg, rgba(251, 246, 234, 0.95) 0%, rgba(254, 253, 251, 0.98) 100%);
  border-bottom: 1px solid rgba(147, 125, 104, 0.12);
  font-family: 'Montserrat', sans-serif;
}

/* --- État replié --- */
.mon-projet-collapsed {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
}

.mon-projet-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
  min-width: 0;
}

.mon-projet-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: #fff;
  background: var(--color-wood, #937D68);
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  flex-shrink: 0;
}

.mon-projet-label svg {
  color: #fff;
  flex-shrink: 0;
}

.mon-projet-chips {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: nowrap;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mon-projet-placeholder {
  font-size: 0.7rem;
  color: var(--color-wood, #937D68);
  opacity: 0.6;
  font-style: italic;
}

.mon-projet-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.5rem;
  background: rgba(147, 125, 104, 0.1);
  border-radius: 100px;
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  white-space: nowrap;
}

.mon-projet-chip-sep {
  color: rgba(147, 125, 104, 0.3);
  font-size: 0.5rem;
}

/* --- Boutons d'action (dans le bandeau déplié) --- */
.mon-projet-actions-row {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  padding: 0.8rem 1.5rem 0;
  max-width: 1400px;
  margin: 0 auto;
  flex-wrap: wrap;
}

.mon-projet-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 1.1rem;
  border: 1.5px solid var(--color-orange, #E35B24);
  border-radius: 100px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--color-orange, #E35B24);
  text-decoration: none;
  transition: background 0.2s, color 0.2s, opacity 0.2s;
  white-space: nowrap;
  cursor: pointer;
}

.mon-projet-btn:hover {
  background: var(--color-orange, #E35B24);
  color: #fff;
}

.mon-projet-btn-contact {
  border-color: var(--color-wood, #937D68);
  color: var(--color-wood, #937D68);
}

.mon-projet-btn-contact:hover {
  background: var(--color-wood, #937D68);
  color: #fff;
}

.mon-projet-btn.is-disabled {
  opacity: 0.35;
  pointer-events: none;
}

.mon-projet-reset-row {
  display: flex;
  justify-content: center;
  padding: 0.4rem 1.5rem 0.2rem;
}

/* --- Bouton toggle --- */
.mon-projet-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  min-width: 28px;
  height: 28px;
  aspect-ratio: 1;
  background: none;
  border: 1.5px solid rgba(147, 125, 104, 0.2);
  border-radius: 50%;
  color: var(--color-wood, #937D68);
  cursor: pointer;
  transition: transform 0.3s ease, border-color 0.2s;
  flex-shrink: 0;
  padding: 0;
}

.mon-projet-toggle:hover {
  border-color: var(--color-wood, #937D68);
}

.mon-projet-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

/* --- État déplié --- */
.mon-projet-expanded {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.mon-projet-expanded[aria-hidden="false"] {
  max-height: 600px;
}

.mon-projet-expanded > .mon-projet-question:first-child {
  border-top: 1px solid rgba(147, 125, 104, 0.1);
}

/* --- Question row --- */
.mon-projet-question {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.6rem 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
  border-bottom: 1px solid rgba(147, 125, 104, 0.06);
}

.mon-projet-question[data-visible="false"] {
  display: none;
}

.mon-projet-question-label {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--color-dark, #323232);
  min-width: 220px;
  flex-shrink: 0;
}

/* --- Choix --- */
.mon-projet-choices {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  flex: 1;
}

.mon-projet-choice {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.3rem 0.65rem;
  background: rgba(255, 255, 255, 0.7);
  border: 1.5px solid rgba(147, 125, 104, 0.15);
  border-radius: 100px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.6rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s, transform 0.15s;
  white-space: nowrap;
}

.mon-projet-choice:hover {
  border-color: var(--color-wood, #937D68);
  background: rgba(255, 255, 255, 0.95);
}

.mon-projet-choice.is-selected {
  background: rgba(227, 91, 36, 0.08);
  border-color: var(--color-orange, #E35B24);
  color: var(--color-orange, #E35B24);
}

.mon-projet-choice-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.mon-projet-choice-icon svg {
  width: 14px;
  height: 14px;
}

.mon-projet-choice-dim {
  font-weight: 400;
  opacity: 0.7;
  font-size: 0.55rem;
}

.mon-projet-reset {
  background: none;
  border: none;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.6rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  opacity: 0.5;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.2s;
}

.mon-projet-reset:hover {
  opacity: 1;
}

/* --- Responsive Tablet --- */
@media (max-width: 900px) {
  .mon-projet-collapsed {
    gap: 0.75rem;
    padding: 0.5rem 1rem;
  }

  .mon-projet-question-label {
    min-width: 160px;
    font-size: 0.65rem;
  }

  .mon-projet-question {
    padding: 0.5rem 1rem;
  }
}

/* --- Responsive Mobile --- */
@media (max-width: 600px) {
  .mon-projet-bar {
    top: calc(76px + env(safe-area-inset-top, 0px));
  }

  .mon-projet-collapsed {
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
  }

  .mon-projet-left {
    width: 100%;
    justify-content: center;
  }

  .mon-projet-chips {
    display: none;
  }

  .mon-projet-actions-row {
    gap: 0.6rem;
    padding: 0.6rem 0.75rem 0;
  }

  .mon-projet-btn {
    font-size: 0.6rem;
    padding: 0.4rem 0.8rem;
  }

  .mon-projet-toggle {
    position: absolute;
    right: 0.75rem;
    top: 0.35rem;
    width: 24px;
    height: 24px;
  }

  .mon-projet-question {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    padding: 0.5rem 0.75rem;
  }

  .mon-projet-question-label {
    min-width: 0;
  }

  .mon-projet-choice {
    font-size: 0.55rem;
    padding: 0.25rem 0.5rem;
  }

  .mon-projet-choice-icon svg {
    width: 12px;
    height: 12px;
  }
}

/* ========================================
   PAGES - Shop & WooCommerce
   ======================================== */

.shop-hero {
  position: relative;
  min-height: 240px;
  background-color: var(--color-cream);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
}

.shop-hero-title {
  display: flex;
  align-items: center;
  gap: 16px;
}

.shop-hero-title .divider {
  width: 120px;
  border-bottom: 2px dotted var(--color-gray-mid);
}

.shop-hero-title h1 {
  font-family: "Square Peg", "Brush Script MT", "Segoe Script", Georgia, serif;
  font-size: 64px;
  color: var(--color-gray);
}

.shop-hero-subtitle {
  text-align: center;
  margin: 10px 0 0;
}

.shop-intro,
.shop-outro {
  max-width: 900px;
  margin: 0 auto;
  padding: 30px 20px;
  text-align: center;
}

.shop-categories {
  padding: 20px 20px 40px;
}

.shop-category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
}

.shop-category {
  min-height: 220px;
  border: 1px solid var(--color-gray-mid);
  border-radius: var(--radius);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--color-white);
  text-transform: uppercase;
  font-weight: 600;
  position: relative;
  overflow: hidden;
}

.shop-category::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
}

.shop-category span {
  position: relative;
  z-index: 1;
}

.shop-cta-row {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

.shop-products {
  padding: 1.5rem 0 2rem;
  background: var(--color-cream);
}

.shop-products ul.products,
.shop-products .product-grid,
.woocommerce ul.products,
.product-related ul.products {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 3rem;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 2rem;
  list-style: none;
}

/* Kill WooCommerce clearfix pseudo-elements that steal grid cells */
.shop-products ul.products::before,
.shop-products ul.products::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.product-related ul.products::before,
.product-related ul.products::after {
  display: none !important;
}

/* EXCEPTION: Products carousel uses flex, not grid */
.shop-products ul.products.products-carousel-track,
.products-carousel ul.products.products-carousel-track,
ul.products.products-carousel-track {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  grid-template-columns: none !important;
  -webkit-box-orient: horizontal !important;
  -webkit-box-direction: normal !important;
  -ms-flex-direction: row !important;
  flex-direction: row !important;
  -ms-flex-wrap: nowrap !important;
  flex-wrap: nowrap !important;
  gap: 1.5rem;
}


@media (max-width: 1024px) {
  .shop-products ul.products,
  .shop-products .product-grid,
  .woocommerce ul.products,
  .product-related ul.products {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (max-width: 768px) {
  .shop-products ul.products,
  .shop-products .product-grid,
  .woocommerce ul.products,
  .product-related ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 480px) {
  .shop-products ul.products,
  .shop-products .product-grid,
  .woocommerce ul.products,
  .product-related ul.products {
    grid-template-columns: 1fr !important;
    padding: 0 1rem;
    gap: 1.5rem;
  }
}

/* Override WooCommerce default li.product styles */
.woocommerce ul.products li.product,
.shop-products ul.products li.product,
.product-related ul.products li.product,
ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Text cards in product grid ("Pourquoi choisir l'Atelier Sâpi") */
.product-text-card {
  list-style: none;
  display: block;
}

.product-text-card-inner {
  padding: 3rem 2rem;
  background: var(--color-warm, #FBF6EA);
  border-radius: var(--radius-lg, 16px);
  border: 2px solid rgba(147, 125, 104, 0.12);
  text-align: center;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (max-width: 480px) {
  .product-text-card-inner {
    padding: 1.5rem 1rem;
  }

  .product-text-card-icon {
    width: 56px;
    height: 56px;
    margin-bottom: 0.75rem;
  }

  .product-text-card-icon svg {
    width: 32px;
    height: 32px;
  }

  .product-text-card-inner h3 {
    font-size: 1.1rem;
  }

  .product-text-card-inner p {
    font-size: 0.9rem;
  }
}

.product-text-card-discover {
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-wood);
  text-decoration: none;
  letter-spacing: 0.03em;
  margin-top: 0.5rem;
  transition: color 0.3s ease;
}

@media (hover: hover) {
  .product-text-card-discover:hover {
    color: var(--color-orange);
  }
}

.product-text-card-icon {
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(147, 125, 104, 0.08);
  border-radius: 50%;
  margin-bottom: 1rem;
  color: var(--color-wood, #937D68);
}

.product-text-card-icon svg {
  width: 40px;
  height: 40px;
}

.product-text-card-inner h3 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--color-dark, #323232);
  margin: 0 0 0.5rem;
  letter-spacing: -0.01em;
}

.product-text-card-inner p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(50, 50, 50, 0.7);
  margin: 0;
  max-width: 280px;
}

/* Highlight variant (Fabriqué avec amour) */
.product-text-card--highlight .product-text-card-inner {
  background: linear-gradient(135deg, var(--color-warm, #FBF6EA) 0%, rgba(227, 91, 36, 0.06) 100%);
  border-color: rgba(227, 91, 36, 0.15);
}

.product-text-card--highlight .product-text-card-icon {
  background: rgba(227, 91, 36, 0.1);
  color: var(--color-orange, #E35B24);
}

/* Recap card — visible only when filters are active */
.why-sapi-recap {
  max-width: 1400px;
  margin: 2rem auto 0;
  padding: 0 3rem;
}

.why-sapi-recap-inner {
  background: var(--color-warm, #FBF6EA);
  border-radius: var(--radius-lg, 16px);
  border: 2px solid rgba(147, 125, 104, 0.12);
  padding: 3rem;
  text-align: center;
}

.why-sapi-recap-inner > h2 {
  font-family: var(--font-display, 'Square Peg', cursive);
  font-size: 2.5rem;
  color: var(--color-wood, #937D68);
  margin: 0 0 2rem;
  font-weight: 400;
}

.why-sapi-recap-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  margin-bottom: 2rem;
}

.why-sapi-recap-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.why-sapi-recap-item h3 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-dark, #323232);
  margin: 0;
}

.why-sapi-recap-item p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  line-height: 1.6;
  color: rgba(50, 50, 50, 0.65);
  margin: 0;
}

.why-sapi-recap-highlight {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  padding: 1.5rem 2rem;
  background: linear-gradient(135deg, rgba(227, 91, 36, 0.04) 0%, rgba(227, 91, 36, 0.08) 100%);
  border-radius: 12px;
  text-align: left;
}

.why-sapi-recap-highlight .product-text-card-icon {
  background: rgba(227, 91, 36, 0.1);
  color: var(--color-orange, #E35B24);
  flex-shrink: 0;
}

.why-sapi-recap-highlight h3 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-dark, #323232);
  margin: 0 0 0.25rem;
}

.why-sapi-recap-highlight p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  line-height: 1.6;
  color: rgba(50, 50, 50, 0.65);
  margin: 0;
}

@media (max-width: 900px) {
  .why-sapi-recap-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .why-sapi-recap {
    padding: 0 1.5rem;
  }
  .why-sapi-recap-inner {
    padding: 2rem 1.5rem;
  }
  .why-sapi-recap-grid {
    grid-template-columns: 1fr;
  }
  .why-sapi-recap-highlight {
    flex-direction: column;
    text-align: center;
  }
}

/* EXCEPTION: Carousel slides have fixed width */
.products-carousel-track > li.products-carousel-slide,
ul.products.products-carousel-track > li.products-carousel-slide {
  -webkit-box-flex: 0 !important;
  -ms-flex: 0 0 calc(25% - 1.125rem) !important;
  flex: 0 0 calc(25% - 1.125rem) !important;
  width: calc(25% - 1.125rem) !important;
  max-width: calc(25% - 1.125rem) !important;
  min-width: calc(25% - 1.125rem) !important;
}

.product-card {
  list-style: none;
  border: 1px solid var(--color-gray-light);
  border-radius: var(--radius);
  padding: 0;
  text-align: center;
  background: var(--color-white);
  overflow: hidden;
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .product-card:hover {
    border-color: var(--color-wood);
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-2px);
  }
}

.product-card-link {
  text-decoration: none;
  color: inherit;
  flex: 1;
  display: flex !important;
  flex-direction: column !important;
}

.product-card-image {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--color-gray-light);
}

.product-card-image img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  transition: transform 0.4s var(--ease-smooth);
}

@media (hover: hover) {
  .product-card:hover .product-card-image img {
    transform: scale(1.05);
  }
}

.product-card .woocommerce-loop-product__title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-dark);
  margin: 1rem 1rem 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.product-card .price {
  display: block;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-wood);
  margin: 0 1rem 1rem;
}

.product-card .price del {
  color: var(--color-gray-mid);
  font-weight: 400;
  font-size: 0.9rem;
}

.product-card .price ins {
  text-decoration: none;
  color: var(--color-orange);
}

.product-card .button {
  margin: 0 1rem 1rem;
  width: calc(100% - 2rem);
  font-size: 0.75rem;
  padding: 0.8rem 0.5rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.shop-outro-text {
  font-family: "Square Peg", "Brush Script MT", "Segoe Script", Georgia, serif;
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  color: var(--color-orange);
  margin-bottom: 0.5rem;
}

/* Outro CTA Section */
.shop-outro-content {
  max-width: 600px;
  margin: 0 auto;
}

.shop-outro-subtitle {
  font-size: 1rem;
  color: var(--color-gray);
  margin-bottom: 1.5rem;
}

.shop-outro-cta {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.75rem 2rem;
  background: linear-gradient(180deg, #937D68 0%, #7A6855 100%);
  color: #fff;
  border: none;
  border-radius: 50px;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: 0 4px 15px rgba(147, 125, 104, 0.3);
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .shop-outro-cta:hover {
    background: linear-gradient(180deg, #7A6855 0%, #655545 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(147, 125, 104, 0.4);
    color: #fff;
  }
}

/* ----------------------------------------
   Pages - Single Product
   ---------------------------------------- */

/* WooCommerce Gallery Thumbnails */
.woocommerce-product-gallery .flex-control-thumbs {
  display: flex;
  gap: 10px;
  margin-top: 15px;
  padding: 0;
  list-style: none;
}

.woocommerce-product-gallery .flex-control-thumbs li {
  flex: 0 0 100px;
  width: 100px !important;
  height: 100px !important;
}

.woocommerce-product-gallery .flex-control-thumbs li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color 0.2s ease;
}

@media (hover: hover) {
  .woocommerce-product-gallery .flex-control-thumbs li img:hover,
  .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
    border-color: var(--color-wood);
  }
}

.product-hero {
  padding: 40px 20px;
}

/* CINÉTIQUE Product Hero Enhancement */
.product-hero.product-hero-cinetique {
  padding: 2rem 3rem 3rem;
  max-width: 1400px;
  margin: 0 auto;
}

.product-hero-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px;
  align-items: start;
}

.product-hero-cinetique .product-hero-grid {
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
}

/* Product Summary Header with Section Number */
.product-summary-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

.product-summary-header .section-num {
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

/* Removed: .product-category-label - no longer used */

.product-summary .product_title {
  font-size: 24px;
  text-transform: uppercase;
  color: var(--color-wood);
  margin-bottom: 10px;
}

/* Enhanced product title for cinetique */
.product-hero-cinetique .product-summary .product_title {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 900;
  margin-bottom: 0.75rem;
}

.product-summary .price {
  color: #018501 !important;
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
}

.product-hookline {
  color: var(--color-orange);
  font-weight: 700;
  margin-top: 20px;
}

/* Delivery/Returns Info Block */
.product-delivery-info {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1.5rem;
  padding: 1rem;
  background: var(--color-warm);
  border-radius: var(--radius);
  border: 1px solid var(--color-gray-light);
}

.delivery-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--color-gray);
}

.delivery-item svg {
  color: var(--color-wood);
  flex-shrink: 0;
}

.delivery-item strong {
  color: var(--color-wood);
}

.product-personalisation {
  margin-top: 20px;
  padding: 20px;
  border-radius: 10px;
  background: var(--color-cream);
}

/* Variation Swatches & Options */
.variations {
  width: 100%;
  margin-bottom: 1rem;
}

.variations tr {
  display: flex;
  flex-direction: column;
  margin-bottom: 1rem;
}

.variations .label {
  font-weight: 600;
  color: var(--color-dark);
  margin-bottom: 0.5rem;
  display: block;
}

.variations .label label {
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.variations select {
  width: 100%;
  padding: 12px 15px;
  border: 1px solid var(--color-gray-light);
  border-radius: 8px;
  font-size: 1rem;
  background: var(--color-white);
  cursor: pointer;
  transition: border-color 0.2s ease;
}

@media (hover: hover) {
  .variations select:hover,
  .variations select:focus {
    border-color: var(--color-wood);
    outline: none;
  }
}

/* Swatch Plugins (common classes) */
.swatch-wrapper,
.variation-swatch,
.wc-variation-swatch {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 8px 12px;
  border: 2px solid var(--color-gray-light);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.swatch-wrapper:hover,
@media (hover: hover) {
  .variation-swatch:hover,
  .wc-variation-swatch:hover,
  .swatch-wrapper.selected,
  .variation-swatch.selected,
  .wc-variation-swatch.selected {
    border-color: var(--color-wood);
    background: var(--color-warm);
  }
}

/* Swatch color circle with label */
.swatch-color,
.swatch-image {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,0.1);
}

.swatch-label,
.swatch-name {
  font-size: 0.875rem;
  color: var(--color-dark);
}

/* Reset price display for variations */
.woocommerce-variation-price .price {
  font-size: 1.25rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  color: #018501 !important;
}

/* Sticky Add to Cart Bar */
/* Premium Sticky Add to Cart Bar */
.sticky-add-to-cart {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to right, var(--color-cream), var(--color-white));
  border-top: 2px solid var(--color-wood);
  box-shadow: 0 -8px 30px rgba(147, 125, 104, 0.15);
  z-index: 990;
  -webkit-transform: translateY(100%);
  transform: translateY(100%);
  -webkit-transition: transform 0.3s var(--ease-smooth);
  transition: transform 0.3s var(--ease-smooth);
}

.sticky-add-to-cart.is-visible {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}

.sticky-add-to-cart-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
  padding: 1.5rem 2rem;
}

.sticky-product-info {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1rem;
}

.sticky-product-info img {
  width: 70px;
  height: 70px;
  object-fit: cover;
  border-radius: 8px;
  flex-shrink: 0;
}

.sticky-product-details {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.sticky-product-name {
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-dark);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 280px;
}

.sticky-product-price {
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--color-wood);
}

.sticky-add-to-cart-btn {
  white-space: nowrap;
  padding: 0.85rem 2rem;
  font-weight: 700;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Variable product sticky button states */
.sticky-scroll-to-form {
  background: var(--color-gray);
  border-color: var(--color-gray);
}

@media (hover: hover) {
  .sticky-scroll-to-form:hover {
    background: var(--color-dark);
    border-color: var(--color-dark);
  }
}

.sticky-scroll-to-form.variation-selected {
  background: var(--color-wood);
  border-color: var(--color-wood);
}

@media (hover: hover) {
  .sticky-scroll-to-form.variation-selected:hover {
    background: var(--color-dark);
    border-color: var(--color-dark);
  }
}

@media (max-width: 480px) {
  .sticky-add-to-cart-inner {
    padding: 0.75rem 1rem;
  }

  .sticky-product-name {
    max-width: 120px;
    font-size: 0.8rem;
  }

  .sticky-add-to-cart-btn {
    padding: 0.6rem 1rem;
    font-size: 0.85rem;
  }
}

.product-details {
  padding: 40px 20px;
  text-align: center;
}

.product-details h2 {
  font-family: "Square Peg", "Brush Script MT", "Segoe Script", Georgia, serif;
  font-size: 48px;
  margin-bottom: 20px;
}

/* CINÉTIQUE Product Details - Two Column Layout */
.product-details.product-details-cinetique {
  text-align: left;
  padding: 4rem 3rem;
  max-width: 1400px;
  margin: 0 auto;
  background: var(--color-cream);
}

.product-details-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}

.product-details-header .section-num {
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

.product-details-cinetique h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
}

.product-details-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 3rem;
  align-items: start;
}

.product-details-content {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--color-gray);
}

.product-details-content p {
  margin-bottom: 1rem;
}

.product-details-content ul {
  padding-left: 1.5rem;
  margin: 1rem 0;
}

.product-details-content li {
  margin-bottom: 0.5rem;
}

/* Details Highlights Sidebar */
.product-details-highlights {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.highlight-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: var(--color-white);
  border-radius: 12px;
  border: 1px solid rgba(147, 125, 104, 0.15);
}

.highlight-icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}

.highlight-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.highlight-text strong {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--color-dark);
}

.highlight-text span {
  font-size: 0.8rem;
  color: var(--color-gray);
}

@media (max-width: 900px) {
  .product-details-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .product-details-highlights {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .highlight-item {
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 200px;
  }
}

@media (max-width: 540px) {
  .product-details.product-details-cinetique {
    padding: 2rem 1.5rem;
  }

  .highlight-item {
    flex: 1 1 100%;
  }
}

.product-assurances {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 20px;
  padding: 30px 20px;
  background: var(--color-gray-light);
  text-align: center;
}

/* CINÉTIQUE Assurances Enhancement */
.product-assurances.product-assurances-cinetique {
  padding: 2rem 3rem;
  max-width: 1400px;
  margin: 0 auto;
  background: var(--color-cream);
  border-radius: var(--radius-lg);
}

/* Above-fold reassurance bar - compact */
.product-assurances-above-fold {
  margin-top: 1rem;
}

/* ========================================
   Section Photo Client - Bandeau
   ======================================== */

.product-client-photo {
  padding: 4rem 3rem;
  max-width: 1200px;
  margin: 0 auto;
}

.client-photo-header {
  display: flex !important;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  visibility: visible !important;
  opacity: 1 !important;
}

.client-photo-header .section-num {
  font-size: 0.875rem;
  font-weight: 900;
  color: var(--color-wood);
  letter-spacing: 0.15em;
  display: inline-block;
}

.client-photo-header h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
  display: block;
}

.client-photo-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 21 / 9;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
}

.client-photo-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: center center;
  display: block;
}

@media (max-width: 768px) {
  .product-client-photo {
    padding: 2rem 1.5rem;
  }

  .client-photo-header {
    margin-bottom: 1.5rem;
  }

  .client-photo-header .section-num {
    font-size: 0.75rem;
  }

  .client-photo-header h2 {
    font-size: 1.5rem;
  }

  .client-photo-wrapper {
    aspect-ratio: 16 / 9;
    border-radius: 8px;
  }
}

/* ========================================
   Section 02: Pourquoi cette pièce
   ======================================== */

.product-why.product-why-cinetique {
  padding: 4rem 3rem;
  max-width: 1200px;
  margin: 0 auto;
}

.product-why-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.product-why-header .section-num {
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

.product-why-cinetique h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
}

.product-why-grid {
  display: grid;
  grid-template-columns: 2fr 3fr;
  gap: 4rem;
  align-items: start;
}

.product-why--accessoire .product-why-grid {
  grid-template-columns: 2fr 1fr;
}

/* Colonne gauche — histoire / description longue */
.product-why-left {
  display: flex;
  flex-direction: column;
}

.product-why-story {
  color: var(--color-dark);
  font-size: 1.1rem;
  line-height: 2;
}

.product-why-story p {
  margin-bottom: 1.5rem;
}

.product-why-story p:last-child {
  margin-bottom: 0;
}

/* Colonne droite — caractéristiques / descriptif */
.product-why-right {
  display: flex;
  flex-direction: column;
  background: var(--color-warm);
  border-radius: 12px;
  padding: 1.75rem;
  border: 1px solid rgba(147, 125, 104, 0.15);
}

.product-why-right-label {
  display: none;
}

.product-why-specs {
  color: var(--color-gray);
  font-size: 0.92rem;
  line-height: 1.7;
}

.product-why-specs ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.product-why-specs li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.75rem;
}

.product-why-specs li:last-child {
  margin-bottom: 0;
}

.product-why-specs li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55rem;
  width: 8px;
  height: 8px;
  background: var(--color-orange);
  border-radius: 50%;
}

.product-why-specs p {
  margin-bottom: 1rem;
}

.product-why-specs p:last-child {
  margin-bottom: 0;
}

/* Legacy — conservé pour compatibilité */
.product-why-content {
  color: var(--color-gray);
  line-height: 1.8;
}

.product-why-content p {
  margin-bottom: 1.5rem;
}

.product-why-content p:last-child {
  margin-bottom: 0;
}

/* Mobile */
@media (max-width: 768px) {
  .product-why-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .product-why.product-why-cinetique {
    padding: 3rem 1.5rem;
  }

  .product-why-story {
    font-size: 1rem;
    padding-left: 1.5rem;
  }

  .product-why-right {
    padding: 2rem 1.5rem;
  }
}

/* ========================================
   Section 03: Fiche technique
   ======================================== */

.product-specs.product-specs-cinetique {
  padding: 4rem 3rem;
  max-width: 900px;
  margin: 0 auto;
  background: var(--color-white);
}

.product-specs-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.product-specs-header .section-num {
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

.product-specs-cinetique h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
}

.product-specs-table {
  border: 1px solid var(--color-gray-light);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.spec-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--color-gray-light);
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}

.spec-row:last-child {
  border-bottom: none;
}

@media (hover: hover) {
  .spec-row:hover {
    background: var(--color-cream);
  }
}

.spec-label {
  font-weight: 600;
  color: var(--color-dark);
  flex-shrink: 0;
}

.spec-value {
  color: var(--color-gray);
  text-align: right;
}

/* Mobile: Responsive specs */
@media (max-width: 768px) {
  .product-specs.product-specs-cinetique {
    padding: 3rem 1.5rem;
  }

  .spec-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
  }

  .spec-value {
    text-align: left;
  }
}

/* ========================================
   Section 03 V2: Fiche technique Premium (Style bōlum)
   ======================================== */

.product-specs-v2 {
  padding: 4rem 3rem;
  max-width: 1200px;
  margin: 0 auto 6rem;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
  position: relative;
  overflow: hidden;
}

.product-specs-v2::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.98);
  border-radius: 12px;
  border: 2px solid rgba(147, 125, 104, 0.4);
  z-index: 0;
}

.product-specs-v2 > * {
  position: relative;
  z-index: 1;
}

.product-specs-v2 .product-specs-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin-bottom: 2.5rem;
}

.product-specs-v2 .product-specs-header .section-num {
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

.product-specs-v2 .product-specs-header h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
}

.product-specs-v2 .specs-intro {
  width: 100%;
  font-size: 1rem;
  color: var(--color-text-light);
  margin: 0;
}

/* Grid 4 colonnes */
.product-specs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.specs-column {
  background: var(--color-cream);
  border-radius: 12px;
  padding: 1.5rem;
  border: 1px solid rgba(147, 125, 104, 0.1);
}

.specs-column-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text);
  margin: 0 0 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--color-accent);
}

.specs-column-title svg {
  color: var(--color-accent);
  flex-shrink: 0;
}

.specs-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.spec-item {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.spec-item .spec-label {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-text-light);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.spec-item .spec-value {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--color-text);
  text-align: left;
}

/* Bouton "Ajouter l'ampoule au panier" */
.spec-item-ampoule {
  padding-top: 0.5rem;
  border-top: none;
}

.add-ampoule-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  font-size: 0.75rem;
  font-weight: 600;
  font-family: var(--font-body);
  color: var(--color-wood);
  background: var(--color-warm);
  border: 1.5px solid var(--color-wood);
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
  line-height: 1.4;
  min-width: auto;
  min-height: auto;
  overflow: visible;
  text-transform: none;
}

@media (hover: hover) {
  .add-ampoule-btn:hover {
    background: var(--color-wood);
    color: #fff;
  }
}

.add-ampoule-btn.loading {
  opacity: 0.7;
  pointer-events: none;
}

.add-ampoule-btn.added {
  background: var(--color-wood);
  color: #fff;
  border-color: var(--color-wood);
}

.add-ampoule-btn svg {
  flex-shrink: 0;
  display: inline-block !important;
  width: 14px !important;
  height: 14px !important;
}

/* Accordion Mobile - Phase 4 Proposal B */
.product-specs-accordion {
  display: none; /* Hidden on desktop */
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 2rem;
}

.specs-accordion-item {
  background: var(--creme-chaud, #FAF6F0);
  border: 1px solid rgba(147, 125, 104, 0.12);
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
  -webkit-transition: all 0.3s ease;
}

.specs-accordion-item[open] {
  border-color: var(--bois-dore, #937D68);
  box-shadow: 0 2px 8px rgba(147, 125, 104, 0.1);
}

.specs-accordion-title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-text);
  cursor: pointer;
  list-style: none;
  transition: all 0.2s ease;
  -webkit-transition: all 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.specs-accordion-title::-webkit-details-marker {
  display: none;
}

.specs-accordion-title svg:first-child {
  color: var(--bois-dore, #937D68);
  flex-shrink: 0;
}

.specs-accordion-title span {
  flex: 1;
}

.accordion-chevron {
  color: var(--bois-dore, #937D68);
  flex-shrink: 0;
  transition: transform 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: transform 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

.specs-accordion-item[open] .accordion-chevron {
  transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
}

.specs-accordion-item:active .specs-accordion-title {
  background: rgba(147, 125, 104, 0.05);
}

.specs-accordion-content {
  padding: 0 1.25rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  animation: accordionSlide 0.3s ease;
  -webkit-animation: accordionSlide 0.3s ease;
}

@keyframes accordionSlide {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@-webkit-keyframes accordionSlide {
  from {
    opacity: 0;
    -webkit-transform: translateY(-10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
  }
}

/* Badges certifications - Design System Premium */
.specs-badges {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(147, 125, 104, 0.15);
}

.spec-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 8px 16px;

  /* Fond premium avec gradient */
  background: linear-gradient(135deg, var(--creme-chaud, #FAF6F0) 0%, var(--ivoire-doux, #F5EDE4) 100%);
  border: 1px solid rgba(147, 125, 104, 0.12);
  border-radius: 100px;

  /* Typo */
  font-size: 12px;
  font-weight: 600;
  color: var(--bois-profond, #6B5A4A);

  /* Ombre subtile */
  box-shadow: 0 2px 6px rgba(74, 63, 53, 0.06);

  transition: all 0.2s ease;
}

@media (hover: hover) {
  .spec-badge:hover {
    transform: translateY(-1px);
    -webkit-transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(74, 63, 53, 0.1);
  }
}

.spec-badge svg {
  color: var(--bois-dore, #937D68);
  flex-shrink: 0;
  opacity: 0.9;
}

/* Responsive specs v2 */
@media (max-width: 1024px) {
  .product-specs-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .product-specs-v2 {
    padding: 3rem 1.5rem;
    margin-left: 1rem;
    margin-right: 1rem;
  }

  /* Show accordion, hide grid on mobile - Phase 4 Proposal B */
  .product-specs-accordion {
    display: flex;
  }

  .product-specs-grid {
    display: none;
  }

  .specs-column {
    padding: 1.25rem;
  }

  .specs-badges {
    gap: 0.75rem;
  }

  .spec-badge {
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
  }
}

/* ========================================
   Section 04: L'Atelier / Robin
   ======================================== */

/* Section Artisan premium - DS 4.5 */
.product-atelier.product-atelier-cinetique {
  padding: var(--space-2xl, 48px);
  max-width: 1200px;
  margin: 0 auto 3rem;
  background: var(--creme-chaud, #FAF6F0);
  border-radius: 20px;

  /* Bordure subtile */
  border: 1px solid rgba(147, 125, 104, 0.1);
}

.product-atelier-grid {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--space-xl, 32px);
  align-items: center;
}

.product-atelier-image {
  width: 280px;
  border-radius: 16px;
  overflow: hidden;
  flex-shrink: 0;
  box-shadow: 0 4px 16px rgba(147, 125, 104, 0.15);
  align-self: stretch;
}

.product-atelier-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
}

.atelier-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: var(--color-gray-light);
  color: var(--color-gray-mid);
  gap: 1rem;
}

.atelier-placeholder svg {
  opacity: 0.5;
}

.atelier-placeholder span {
  font-size: 0.875rem;
  opacity: 0.7;
}

.product-atelier-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm, 12px);
}

/* Label "L'ARTISAN" - DS 4.5 */
.product-atelier-content .section-num {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

.product-atelier-content h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0 0 0.5rem;
}

.atelier-intro {
  font-size: 1.125rem;
  color: var(--color-gray);
  line-height: 1.7;
  margin-bottom: 2rem;
}

/* Citation artisan — style Card Conseil */
.atelier-quote-body {
  position: relative;
  padding-left: 2.5rem;
}

.atelier-quote-body .robin-conseil__quote {
  position: absolute;
  left: 0;
  top: -0.3rem;
  font-family: Georgia, serif;
  font-size: 4rem;
  color: var(--color-orange, #E35B24);
  opacity: 0.2;
  line-height: 1;
  user-select: none;
}

.atelier-quote-text {
  font-family: var(--font-display, 'Square Peg', cursive);
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  line-height: 1.5;
  color: var(--bois-profond, #6B5A4A);
  margin: 0;
}

/* Signature artisan — style Card Conseil */
.atelier-signature {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  font-weight: 500;
  font-style: italic;
  color: var(--bois-sombre, #4A3F35);
  margin: 0.5rem 0 1rem;
  text-align: right;
}

.atelier-rdv {
  font-size: 0.85rem;
  color: var(--color-gray-mid);
  margin-top: 1rem;
  font-style: italic;
}

.atelier-rdv a {
  color: var(--color-wood, #937D68);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.atelier-rdv a:hover {
  color: var(--color-orange, #E35B24);
}

.product-atelier-content .robin-conseil__product-link:hover {
  color: var(--color-orange, #E35B24);
}

/* Mobile: Stack the atelier grid - DS 4.5 */
@media (max-width: 768px) {
  .product-atelier.product-atelier-cinetique {
    padding: var(--space-xl, 32px) 1.5rem;
    margin-left: 1rem;
    margin-right: 1rem;
  }

  .product-atelier-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    text-align: center;
  }

  .product-atelier-image {
    margin: 0 auto;
    width: 220px;
  }
}

/* ---- Atelier compact (refonte fiche produit) ---- */
.product-atelier.product-atelier-cinetique.product-atelier-compact {
  padding: 0 0 4rem;
  background: transparent;
  border: none;
  border-radius: 0;
  max-width: 1200px;
  margin: 0 auto;
}

.product-atelier-compact .product-atelier-compact-inner {
  display: flex;
  align-items: stretch;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow-card);
}

.product-atelier-compact .product-atelier-compact-photo {
  width: 160px;
  flex-shrink: 0;
}

.product-atelier-compact .product-atelier-compact-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.product-atelier-compact .product-atelier-compact-text {
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.6rem;
}

.product-atelier-compact .product-atelier-compact-text h2 {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 1rem;
  color: var(--color-dark, #323232);
}

.product-atelier-compact .product-atelier-compact-text p {
  font-size: 0.9rem;
  color: #555;
  line-height: 1.5;
  margin: 0;
}

.product-atelier-compact .product-atelier-compact-links {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.product-atelier-compact .product-atelier-compact-links a {
  color: var(--color-wood);
}

.product-atelier-compact .product-atelier-compact-links a:hover {
  color: var(--color-wood-dark, #6d5b48);
}

@media (max-width: 768px) {
  .product-atelier.product-atelier-cinetique.product-atelier-compact {
    padding: 0 1rem 2.5rem;
  }
}

@media (max-width: 600px) {
  .product-atelier-compact .product-atelier-compact-photo {
    width: 110px;
  }
}

/* ========================================
   Section 05: Témoignages (Preuve Sociale)
   ======================================== */

.product-testimonials {
  padding: 4rem 3rem;
  max-width: 1200px;
  margin: 0 auto;
  background: var(--color-white);
}

.testimonials-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.testimonials-header .section-num {
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

.testimonials-header h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
}

/* Photo client intégrée dans témoignages */
.testimonials-client-photo {
  margin-bottom: 2.5rem;
}

.testimonials-client-caption {
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-wood);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 1rem 0;
}

/* Google Reviews Badge */
.google-reviews-badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  padding: 0.4rem 0.75rem;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.google-logo {
  flex-shrink: 0;
}

.google-reviews-summary {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.google-stars {
  display: flex;
  gap: 1px;
}

.google-rating-text {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text-light);
  white-space: nowrap;
}

.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.testimonial-card {
  background: var(--color-cream);
  border-radius: 12px;
  padding: 1.75rem;
  border: 1px solid rgba(147, 125, 104, 0.1);
  transition: all 0.3s ease;
  -webkit-transition: all 0.3s ease;
}

@media (hover: hover) {
  .testimonial-card:hover {
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
  }
}

.testimonial-rating {
  display: flex;
  gap: 0.15rem;
  margin-bottom: 1rem;
}

.testimonial-rating svg {
  color: var(--color-accent);
}

.testimonial-text {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--color-text);
  margin: 0 0 1.25rem;
  font-style: italic;
}

/* Google review card header with avatar */
.testimonial-card-header {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}

.testimonial-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
}

.testimonial-author-info {
  display: flex;
  flex-direction: column;
}

.testimonial-author-info .author-name {
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--color-text);
}

.author-time {
  font-size: 0.75rem;
  color: var(--color-text-light);
}

/* Modale avis Google */
.review-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.review-modal-overlay[hidden] {
  display: none;
}

.review-modal {
  background: var(--color-white, #fff);
  border-radius: 16px;
  padding: 2rem;
  max-width: 560px;
  width: 100%;
  max-height: 80vh;
  overflow-y: auto;
  position: relative;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

.review-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  font-size: 1.75rem;
  color: var(--color-text-light);
  cursor: pointer;
  line-height: 1;
  padding: 0.25rem;
}

@media (hover: hover) {
  .review-modal-close:hover {
    color: var(--color-dark);
  }
}

.review-modal-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.review-modal-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
}

.review-modal-author-info {
  display: flex;
  flex-direction: column;
}

.review-modal-name {
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-dark);
}

.review-modal-time {
  font-size: 0.8rem;
  color: var(--color-text-light);
}

.review-modal-rating {
  display: flex;
  gap: 2px;
  margin-bottom: 1rem;
}

.review-modal-text {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--color-text);
  margin: 0;
  white-space: pre-line;
}

.testimonial-author {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
}

.author-name {
  font-weight: 600;
  color: var(--color-text);
}

.author-location {
  color: var(--color-text-light);
}

.author-location::before {
  content: '·';
  margin-right: 0.5rem;
}

.testimonials-cta {
  text-align: center;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.testimonials-cta p {
  font-size: 0.9rem;
  color: var(--color-text-light);
  margin: 0;
}

.testimonials-cta a {
  color: var(--color-accent);
  text-decoration: underline;
  font-weight: 500;
}

.testimonials-cta-sep {
  color: var(--color-text-light);
  margin: 0 0.25rem;
}

.testimonials-cta-review {
  font-weight: 600;
}

@media (hover: hover) {
  .testimonials-cta a:hover {
    color: var(--color-dark);
  }
}

/* Responsive testimonials */
@media (max-width: 1024px) {
  .testimonials-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .testimonial-card:nth-child(3) {
    grid-column: span 2;
  }
}

@media (max-width: 768px) {
  .product-testimonials {
    padding: 3rem 0;
  }

  .product-testimonials .testimonials-header {
    padding: 0 1.5rem;
    flex-wrap: wrap;
  }

  .google-reviews-badge {
    margin-left: 0;
    width: 100%;
    justify-content: center;
  }

  .testimonials-client-photo {
    padding: 0 1.5rem;
    margin-bottom: 2rem;
  }

  .testimonials-client-photo .client-photo-wrapper {
    aspect-ratio: 16 / 9;
    border-radius: 8px;
  }

  .testimonials-grid {
    grid-template-columns: 1fr;
  }

  .testimonial-card:nth-child(3) {
    grid-column: span 1;
  }

  .testimonial-card {
    padding: 1.25rem;
  }
}

.product-gallery-large {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  padding: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.product-gallery-large img {
  width: 100%;
  max-height: 60vh;
  object-fit: cover;
  border-radius: var(--radius);
}

.product-faq {
  padding: 40px 20px;
}

.faq-list details {
  border-top: 1px solid #c8d5dc;
  padding: 20px 0;
}

.faq-list summary {
  font-weight: 600;
  color: var(--color-wood);
  cursor: pointer;
}

/* CINÉTIQUE FAQ Enhancement with Chevrons */
.product-faq.product-faq-cinetique {
  padding: 3rem;
  max-width: 1000px;
  margin: 0 auto;
}

.product-faq-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}

.product-faq-header .section-num {
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

.product-faq-cinetique h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
}

.product-faq-cinetique .faq-list {
  border: 1px solid var(--color-gray-light);
  border-radius: 12px;
  overflow: hidden;
}

.product-faq-cinetique .faq-item {
  border-top: none;
  padding: 0;
  border-bottom: 1px solid var(--color-gray-light);
}

.product-faq-cinetique .faq-item:last-child {
  border-bottom: none;
}

.product-faq-cinetique .faq-item summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.25rem 1.5rem;
  font-weight: 500;
  color: var(--color-dark);
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
  list-style: none;
}

.product-faq-cinetique .faq-item summary::-webkit-details-marker {
  display: none;
}

@media (hover: hover) {
  .product-faq-cinetique .faq-item summary:hover {
    background: var(--color-cream);
  }
}

.product-faq-cinetique .faq-question {
  flex: 1;
  padding-right: 1rem;
}

/* Chevron icon */
.product-faq-cinetique .faq-chevron {
  width: 20px;
  height: 20px;
  position: relative;
  flex-shrink: 0;
}

.product-faq-cinetique .faq-chevron::before,
.product-faq-cinetique .faq-chevron::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 2px;
  background: var(--color-wood);
  top: 50%;
  -webkit-transition: transform 0.3s var(--ease-smooth);
  transition: transform 0.3s var(--ease-smooth);
}

.product-faq-cinetique .faq-chevron::before {
  left: 2px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.product-faq-cinetique .faq-chevron::after {
  right: 2px;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

.product-faq-cinetique .faq-item[open] .faq-chevron::before {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

.product-faq-cinetique .faq-item[open] .faq-chevron::after {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.product-faq-cinetique .faq-answer {
  padding: 0 1.5rem 1.25rem;
  color: var(--color-gray);
  font-size: 0.95rem;
  line-height: 1.7;
}

.product-faq-cinetique .faq-answer p {
  margin-bottom: 0.75rem;
}

.product-faq-cinetique .faq-answer p:last-child {
  margin-bottom: 0;
}

.product-faq-cinetique .faq-answer ul {
  padding-left: 1.25rem;
  margin: 0.75rem 0;
}

.product-faq-cinetique .faq-answer li {
  margin-bottom: 0.5rem;
}

@media (max-width: 768px) {
  .product-faq.product-faq-cinetique {
    padding: 2rem 1.5rem;
  }

  .product-faq-cinetique .faq-item summary {
    padding: 1rem 1.25rem;
  }

  .product-faq-cinetique .faq-answer {
    padding: 0 1.25rem 1rem;
  }
}

.product-related {
  padding: 40px 20px;
  background: #f7f7f7;
}

.product-related-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 3rem;
}

.product-related-header .section-num {
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

.product-related-header h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
}

/* Related products grid already handled by global rule above */

@media (max-width: 768px) {
  .shop-hero-title h1 {
    font-size: 42px;
  }

  .shop-outro-text {
    font-size: 32px;
  }
}

/* ========================================
   CATEGORY EDITORIAL - Rich Content Section (PREMIUM)
   ======================================== */

.category-editorial {
  padding: 80px 20px 100px;
  position: relative;
  /* Premium gradient background - fallback */
  background: linear-gradient(
    135deg,
    var(--creme-papier, #FEFDFB) 0%,
    var(--color-warm, #FBF6EA) 50%,
    var(--creme-chaud, #FAF6F0) 100%
  );
  overflow: hidden;
}

.category-editorial > .category-editorial-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

/* Semi-transparent overlay for readability when background image is present */
.category-editorial::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(254, 253, 251, 0.92) 0%,
    rgba(251, 246, 234, 0.88) 50%,
    rgba(250, 246, 240, 0.92) 100%
  );
  pointer-events: none;
  z-index: 1;
}

.category-editorial-inner {
  max-width: 1000px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* Editorial — bouton et collapsible masqués sur desktop */
.editorial-read-more {
  display: none;
}

/* Editorial Hero */
.editorial-hero {
  text-align: left;
  margin-bottom: 60px;
}

.editorial-hero .section-number {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--bois-dore, #937D68);
  text-transform: uppercase;
  margin-bottom: 1.5rem;
  opacity: 0.9;
}

/* Section numbers — définition unique dans le bloc Design System (ligne ~12437) */

.editorial-tagline {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(36px, 6vw, 56px);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.editorial-intro {
  font-size: clamp(17px, 2.5vw, 19px);
  line-height: 1.7;
  color: var(--bois-profond, #6B5A4A);
  max-width: 800px;
  margin: 0 auto;
}

/* Editorial Grid (Why + Promise) */
.editorial-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 40px;
  margin-bottom: 60px;
}

.editorial-block {
  padding: 2.5rem;
  background: var(--color-white, #FFFFFF);
  border-radius: 20px;
  border: 2px solid rgba(147, 125, 104, 0.1);
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
  transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .editorial-block:hover {
    transform: translateY(-6px);
    -webkit-transform: translateY(-6px);
    box-shadow: 0 8px 30px rgba(147, 125, 104, 0.15);
    border-color: rgba(147, 125, 104, 0.2);
  }
}

.editorial-block-highlight {
  /* Premium gradient for promise block */
  background: linear-gradient(
    135deg,
    var(--creme-chaud, #FAF6F0) 0%,
    var(--ivoire-doux, #F5EDE4) 100%
  );
  border-color: rgba(147, 125, 104, 0.15);
  position: relative;
}

.editorial-icon {
  margin-bottom: 1.5rem;
  color: var(--color-orange, #E35B24);
}

.editorial-block h3 {
  font-size: clamp(20px, 3vw, 24px);
  font-weight: 600;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1rem;
  line-height: 1.3;
}

.editorial-block p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--bois-profond, #6B5A4A);
  margin: 0;
}

/* Use Cases List */
.editorial-use-cases {
  padding: 2.5rem 3rem;
  background: var(--color-white, #FFFFFF);
  border-radius: 20px;
  border: 2px solid rgba(147, 125, 104, 0.1);
}

.editorial-use-cases h3 {
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 600;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 2rem;
  text-align: center;
}

.use-cases-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 1.5rem;
}

.use-cases-list li {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  font-size: 16px;
  line-height: 1.6;
  color: var(--bois-profond, #6B5A4A);
  padding: 1.25rem;
  background: var(--creme-papier, #FEFDFB);
  border-radius: 12px;
  border: 1px solid rgba(147, 125, 104, 0.08);
  transition: all 0.3s ease;
  -webkit-transition: all 0.3s ease;
}

@media (hover: hover) {
  .use-cases-list li:hover {
    background: var(--creme-chaud, #FAF6F0);
    border-color: rgba(147, 125, 104, 0.15);
    transform: translateX(4px);
    -webkit-transform: translateX(4px);
  }
}

.use-cases-list li svg {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--color-orange, #E35B24);
}

.use-cases-list li strong {
  color: var(--bois-sombre, #4A3F35);
  font-weight: 600;
}

@media (max-width: 768px) {
  /* Category pages - reduce margins for more content space */
  .shop-hero-cinetique {
    padding: 1.5rem 1rem 1rem;
  }

  .featured-products-mini {
    padding: 1.5rem 0;
  }


  .category-products-grid {
    padding: 1.5rem 0 2rem;
  }

  .category-products-grid ul.products {
    padding: 0 1rem;
  }

  .category-editorial {
    padding: 40px 1rem 60px;
  }

  .category-editorial-inner {
    padding: 0 1rem;
  }

  .editorial-hero {
    margin-bottom: 1.5rem;
  }

  /* Bouton "En savoir plus" — mobile uniquement */
  .editorial-read-more {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 auto 1rem;
    padding: 0.6rem 1.5rem;
    background: transparent;
    border: 1.5px solid var(--color-wood, #937D68);
    border-radius: 50px;
    color: var(--color-wood, #937D68);
    font-family: var(--font-body, 'Montserrat', sans-serif);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.3s ease;
  }

  .editorial-read-more svg {
    transition: transform 0.3s ease;
  }

  .category-editorial.is-expanded .editorial-read-more svg {
    transform: rotate(180deg);
  }

  /* Contenu masqué par défaut sur mobile */
  .editorial-collapsible {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.5s ease, opacity 0.4s ease;
  }

  .category-editorial.is-expanded .editorial-collapsible {
    max-height: 2000px;
    opacity: 1;
    overflow: visible;
  }

  .editorial-grid {
    gap: 24px;
  }

  .editorial-block {
    padding: 1.5rem;
  }

  .editorial-use-cases {
    padding: 1.5rem 0;
  }

  .editorial-use-cases h3 {
    padding: 0 1.5rem;
  }

  /* Use-cases — slider horizontal */
  .use-cases-list {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 1rem;
    padding: 15px 5%;
  }

  .use-cases-list::-webkit-scrollbar {
    display: none;
  }

  .use-cases-list li {
    flex: 0 0 85%;
    scroll-snap-align: center;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
    padding: 1.5rem 1.25rem;
  }

  .use-cases-list li svg {
    margin-top: 0;
    width: 28px;
    height: 28px;
  }
}

/* ----------------------------------------
   Pages - Category Archives - Cross Links
   ---------------------------------------- */
.category-cross-links {
  max-width: 900px;
  margin: 0 auto;
  padding: 3rem 5% 4rem;
  text-align: center;
}

.category-cross-links h2 {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-dark);
  margin-bottom: 2rem;
}

.cross-links-cards {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.cross-link-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: var(--color-dark);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  width: 220px;
}

.cross-link-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card-hover);
}

.cross-link-card-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.cross-link-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.cross-link-card:hover .cross-link-card-img img {
  transform: scale(1.05);
}

.cross-link-card-name {
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 0.75rem 1rem;
  color: var(--color-wood);
}

.cross-link-gift {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.25rem;
  color: var(--color-orange);
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.cross-link-gift:hover {
  opacity: 0.7;
}

.cross-link-gift svg {
  transition: transform 0.3s ease;
}

.cross-link-gift:hover svg {
  transform: translateX(4px);
}

@media (max-width: 768px) {
  .category-cross-links {
    padding: 2rem 5% 3rem;
  }

  .cross-links-cards {
    gap: 1rem;
  }

  .cross-link-card {
    width: 48%;
  }
}

/* ----------------------------------------
   Pages - Category Archives - Featured Grid
   ---------------------------------------- */

/* Featured cards grid (top section) */
.category-featured {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  padding: 0 3rem 3rem;
  max-width: 1400px;
  margin: 0 auto;
}

@media (max-width: 1024px) {
  .category-featured {
    grid-template-columns: repeat(2, 1fr);
    padding: 0 2rem 2rem;
  }
}

@media (max-width: 640px) {
  .category-featured {
    grid-template-columns: 1fr;
    padding: 0 1rem 2rem;
  }
}

/* ----------------------------------------
   Pages - Category Archives - Products Carousel
   ---------------------------------------- */

.products-carousel-wrapper {
  position: relative;
  padding: 2rem 0 3rem;
  background: var(--color-cream);
  overflow: hidden;
}

.products-carousel {
  position: relative;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 4rem;
  overflow: hidden;
}

/* Override WooCommerce grid styles for carousel */
.products-carousel-track,
.products-carousel-track.products,
ul.products.products-carousel-track {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  grid-template-columns: none !important;
  gap: 1.5rem;
  -webkit-transition: -webkit-transform 0.5s var(--ease-expo);
  transition: transform 0.5s var(--ease-expo);
  cursor: grab;
  list-style: none;
  margin: 0;
  padding: 0;
}

.products-carousel-track:active {
  cursor: grabbing;
}

.products-carousel-slide,
.products-carousel-track > li.products-carousel-slide {
  -webkit-box-flex: 0 !important;
  -ms-flex: 0 0 calc(25% - 1.125rem) !important;
  flex: 0 0 calc(25% - 1.125rem) !important;
  min-width: calc(25% - 1.125rem);
  max-width: calc(25% - 1.125rem);
  width: calc(25% - 1.125rem) !important;
  list-style: none;
}

/* Filtered out slides - hidden by client-side filter */
/* Must be more specific than ul.products li.product rule (specificity 0,0,2,2) */
ul.products li.product.is-filtered-out,
.products-carousel-track > li.product.is-filtered-out,
.products-carousel-slide.is-filtered-out,
.products-carousel-track > li.is-filtered-out,
li.is-filtered-out {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  flex: 0 0 0 !important;
  -webkit-box-flex: 0 !important;
  -ms-flex: 0 0 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Smaller product cards in carousel */
.products-carousel-slide .product-card-cinetique {
  font-size: 0.875rem;
}

.products-carousel-slide .product-card-cinetique .product-media {
  aspect-ratio: 1 / 1;
}

.products-carousel-slide .product-card-cinetique .product-title {
  font-size: 0.9rem;
}

.products-carousel-slide .product-card-cinetique .product-price {
  font-size: 0.95rem;
}

@media (max-width: 1200px) {
  .products-carousel-slide,
  .products-carousel-track > li.products-carousel-slide,
  ul.products.products-carousel-track > li.products-carousel-slide {
    -webkit-box-flex: 0 !important;
    -ms-flex: 0 0 calc(33.333% - 1rem) !important;
    flex: 0 0 calc(33.333% - 1rem) !important;
    min-width: calc(33.333% - 1rem) !important;
    max-width: calc(33.333% - 1rem) !important;
    width: calc(33.333% - 1rem) !important;
  }
}

@media (max-width: 900px) {
  .products-carousel-slide,
  .products-carousel-track > li.products-carousel-slide,
  ul.products.products-carousel-track > li.products-carousel-slide {
    -webkit-box-flex: 0 !important;
    -ms-flex: 0 0 calc(50% - 0.75rem) !important;
    flex: 0 0 calc(50% - 0.75rem) !important;
    min-width: calc(50% - 0.75rem) !important;
    max-width: calc(50% - 0.75rem) !important;
    width: calc(50% - 0.75rem) !important;
  }
  .products-carousel {
    padding: 0 2rem;
  }
}

@media (max-width: 540px) {
  .products-carousel-slide,
  .products-carousel-track > li.products-carousel-slide,
  ul.products.products-carousel-track > li.products-carousel-slide {
    -webkit-box-flex: 0 !important;
    -ms-flex: 0 0 calc(100% - 1rem) !important;
    flex: 0 0 calc(100% - 1rem) !important;
    min-width: calc(100% - 1rem) !important;
    max-width: calc(100% - 1rem) !important;
    width: calc(100% - 1rem) !important;
  }
  .products-carousel {
    padding: 0 1rem;
  }
}

.products-carousel-controls {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 1.5rem;
}

.products-carousel-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5rem;
}

.products-carousel-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-gray-light);
  border: none;
  cursor: pointer;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.products-carousel-dot.active {
  background: var(--color-wood);
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
}

@media (hover: hover) {
  .products-carousel-dot:hover:not(.active) {
    background: var(--color-gray-mid);
  }
}

.category-intro {
  text-align: center;
  padding: 20px 20px 0;
  color: var(--color-orange);
  font-weight: 500;
}

/* =============================================
   ATELIER ÉDITORIAL CAROUSEL
   Enhanced carousel with Patricia Urquiola design
   ============================================= */

/* Wrapper - Artisanal container */
.products-carousel-editorial-wrapper {
  position: relative;
  padding: 4rem 0 6rem;
  background: linear-gradient(180deg, #FDFCFA 0%, #FAF8F5 100%);
  overflow: hidden;
}

/* Main carousel container */
.products-carousel-editorial {
  position: relative;
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 6rem;
}

/* Track - organic overlap system */
.products-carousel-editorial-track,
.products-carousel-editorial-track.products,
ul.products.products-carousel-editorial-track {
  display: flex !important;
  grid-template-columns: none !important;
  flex-wrap: nowrap !important;
  position: relative;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.products-carousel-editorial-track:active {
  cursor: grabbing;
}

/* Individual slides - organic overlap */
.carousel-editorial-slide,
li.carousel-editorial-slide,
.products-carousel-editorial-track > li.carousel-editorial-slide {
  flex: 0 0 auto !important;
  width: calc(28% - 16px) !important;
  min-width: 280px !important;
  max-width: 380px !important;
  position: relative;
  list-style: none;
  transition: transform 600ms cubic-bezier(0.34, 0.61, 0.4, 0.97),
              opacity 400ms ease,
              z-index 0ms 0ms;
  will-change: transform, opacity;
}

/* Ensure consistent card dimensions */
.carousel-editorial-slide .product-card-cinetique {
  width: 100% !important;
  height: auto !important;
}

.carousel-editorial-slide .product-media {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
}

/* Product card styling within editorial carousel */
.carousel-editorial-slide .product-card-cinetique,
.carousel-editorial-slide > a,
.carousel-editorial-slide .product-card-link {
  display: block;
  position: relative;
  background: var(--color-white);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: box-shadow 400ms ease, transform 400ms cubic-bezier(0.34, 0.61, 0.4, 0.97);
}

@media (hover: hover) {
  .carousel-editorial-slide .product-card-cinetique:hover,
  .carousel-editorial-slide > a:hover,
  .carousel-editorial-slide .product-card-link:hover {
    box-shadow: var(--shadow-card-hover);
    transform: none;
  }
}

/* Zoom sur l'image au hover uniquement */
@media (hover: hover) {
  .carousel-editorial-slide:hover .product-image-main img {
    transform: scale(1.08);
    transition: transform 600ms cubic-bezier(0.34, 0.61, 0.4, 0.97);
  }
}

.carousel-editorial-slide .product-image-main {
  overflow: hidden;
}

.carousel-editorial-slide .product-image-main img {
  transition: transform 600ms cubic-bezier(0.34, 0.61, 0.4, 0.97);
}

/* Organic overlap stacking */
.carousel-editorial-slide.is-prev {
  z-index: 1;
  opacity: 0.7;
  transform: scale(0.95);
}

.carousel-editorial-slide.is-current {
  z-index: 10;
  opacity: 1;
  transform: scale(1);
}

.carousel-editorial-slide.is-next {
  z-index: 1;
  opacity: 0.7;
  transform: scale(0.95);
}

.carousel-editorial-slide.is-far {
  z-index: 0;
  opacity: 0.4;
  transform: scale(0.9);
}

/* Parallax layers - GPU accelerated */
.carousel-editorial-slide .product-media,
.carousel-editorial-slide .product-info {
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
  transition: transform 200ms cubic-bezier(0.34, 0.61, 0.4, 0.97);
}

/* Button styling for editorial carousel */
.carousel-editorial-slide .product-actions {
  padding: 0 !important;
  margin-top: 0 !important;
}

.carousel-editorial-slide .btn-view {
  width: 100%;
  margin: 0;
  border-radius: 0 0 16px 16px;
  padding: 1rem;
  font-size: 0.875rem;
  background: linear-gradient(135deg, var(--color-wood) 0%, #8B6F47 100%);
  border: 1px solid transparent;
  border-top: 1px solid rgba(147, 125, 104, 0.15);
  transition: all 300ms cubic-bezier(0.34, 0.61, 0.4, 0.97);
}

/* Carousel button hover styles moved to line 11683 to avoid duplicate selector */

/* Wood border detail - artisanal touch */
.carousel-editorial-slide .product-card-link::before,
.carousel-editorial-slide > a::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border: 2px solid rgba(147, 125, 104, 0.15);
  border-radius: 16px;
  pointer-events: none;
  z-index: 1;
  transition: border-color 400ms ease;
}

@media (hover: hover) {
  .carousel-editorial-slide .product-card-link:hover::before,
  .carousel-editorial-slide > a:hover::before {
    border-color: rgba(147, 125, 104, 0.25);
  }
}

/* Warm shadow detail */
.carousel-editorial-slide::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: 12px;
  background: radial-gradient(ellipse at center, rgba(147, 125, 104, 0.15) 0%, transparent 70%);
  filter: blur(8px);
  pointer-events: none;
  opacity: 0;
  transition: opacity 400ms ease;
}

@media (hover: hover) {
  .carousel-editorial-slide:hover::after {
    opacity: 1;
  }
}

/* =============================================
   NAVIGATION - Immersive on hover
   ============================================= */

.carousel-editorial-nav {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  padding: 0 2rem;
  pointer-events: none;
  z-index: 20;
}

.carousel-editorial-btn {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.95);
  border: 2px solid var(--color-wood);
  border-radius: 50%;
  color: var(--color-wood);
  cursor: pointer;
  pointer-events: auto;
  overflow: visible;
  text-transform: none;
  opacity: 0;
  transform: scale(0.9);
  transition: all 0.3s ease;
  box-shadow: 0 4px 16px rgba(147, 125, 104, 0.15);
}

/* Show navigation on hover */
@media (hover: hover) {
  .products-carousel-editorial-wrapper:hover .carousel-editorial-btn:not([disabled]) {
    opacity: 1;
    transform: scale(1);
  }
}

@media (hover: hover) {
  .carousel-editorial-btn:hover:not([disabled]) {
    background: var(--color-orange);
    border-color: var(--color-orange);
    color: var(--color-white);
    transform: scale(1.1);
  }
}

.carousel-editorial-btn:active:not([disabled]) {
  transform: scale(1.05);
}

.carousel-editorial-btn[disabled] {
  opacity: 0.2;
  cursor: not-allowed;
}

.carousel-editorial-btn svg {
  width: 24px;
  height: 24px;
  stroke-width: 2;
}

/* =============================================
   FOOTER - Counter & Thumbnails
   ============================================= */

.carousel-editorial-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  margin-top: 3rem;
}

/* Elegant counter */
.carousel-editorial-counter {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-family: var(--font-body);
  color: var(--color-wood);
  font-weight: 500;
}

.counter-current {
  font-size: 2rem;
  font-weight: 600;
  color: var(--color-orange);
  line-height: 1;
  transition: transform 300ms cubic-bezier(0.34, 0.61, 0.4, 0.97);
}

.counter-separator {
  font-size: 1.25rem;
  opacity: 0.4;
  margin: 0 0.25rem;
}

.counter-total {
  font-size: 1.125rem;
  opacity: 0.6;
}

/* Thumbnails - mini cards */
.carousel-editorial-thumbnails {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 16px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
}

.carousel-thumbnail {
  width: 56px;
  height: 56px;
  border: 2px solid rgba(147, 125, 104, 0.15);
  border-radius: 10px;
  background-size: cover;
  background-position: center;
  background-color: var(--color-cream);
  cursor: pointer;
  transition: all 300ms cubic-bezier(0.34, 0.61, 0.4, 0.97);
  position: relative;
  overflow: visible;
}

.carousel-thumbnail::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 10px;
  background: radial-gradient(circle at center, rgba(242, 137, 73, 0.25) 0%, transparent 70%);
  opacity: 0;
  filter: blur(8px);
  transition: opacity 300ms ease;
  z-index: -1;
}

@media (hover: hover) {
  .carousel-thumbnail:hover {
    border-color: rgba(242, 137, 73, 0.6);
    transform: translateY(-3px) scale(1.15);
    background-size: 110%;
    box-shadow:
      0 6px 20px rgba(242, 137, 73, 0.3),
      0 2px 8px rgba(147, 125, 104, 0.2);
    z-index: 10;
  }
}

@media (hover: hover) {
  .carousel-thumbnail:hover::before {
    opacity: 1;
  }
}

.carousel-thumbnail.active {
  border-color: var(--color-orange);
  border-width: 3px;
  transform: scale(1.1);
  box-shadow:
    0 4px 16px rgba(242, 137, 73, 0.3),
    0 0 0 4px rgba(242, 137, 73, 0.1);
}

.carousel-thumbnail.active::before {
  opacity: 0;
}

/* =============================================
   RESPONSIVE DESIGN
   ============================================= */

/* Ensure 3 slides visible on desktop (> 1200px uses default 28%) */
@media (max-width: 1200px) {
  .products-carousel-editorial {
    padding: 0 4rem;
  }

  .carousel-editorial-slide {
    width: calc(32% - 20px); /* Still 3 slides visible */
  }
}

@media (max-width: 900px) {
  .products-carousel-editorial {
    padding: 0 3rem;
  }

  .carousel-editorial-slide {
    width: calc(48% - 20px); /* 2 slides visible */
  }

}

@media (max-width: 600px) {
  .products-carousel-editorial-wrapper {
    padding: 3rem 0 5rem;
  }

  .products-carousel-editorial {
    padding: 0 2rem;
  }

  .carousel-editorial-slide {
    width: calc(85% - 20px); /* 1 slide + preview of next */
  }

  .carousel-editorial-nav {
    padding: 0 1rem;
  }

  .carousel-editorial-thumbnails {
    flex-wrap: wrap;
    justify-content: center;
    max-width: 320px;
  }

  .carousel-thumbnail {
    width: 48px;
    height: 48px;
  }

}

@media (max-width: 480px) {
  .products-carousel-editorial {
    padding: 0 1rem;
  }

  .carousel-editorial-slide {
    width: calc(92% - 20px); /* Almost full width on mobile */
  }

  .counter-current {
    font-size: 1.75rem;
  }

  /* Always show navigation on mobile */
  .carousel-editorial-btn:not([disabled]) {
    opacity: 1;
    transform: scale(1);
  }
}

/* =============================================
   Coup de cœur de l'Atelier — Featured product card
   ============================================= */

.featured-products-mini {
  padding: 2rem 0 1rem;
  background: var(--color-cream);
}

.featured-products-header {
  max-width: 1400px;
  margin: 0 auto 1.5rem;
  padding: 0 3rem;
}

.featured-products-header h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  color: var(--color-dark);
  margin: 0;
}

.product-mini-card {
  position: relative;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 3rem;
}

.product-mini-card > a,
.product-mini-card-link {
  display: block;
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 21 / 9;
}

.product-mini-card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 50%;
  -webkit-transition: -webkit-transform 600ms cubic-bezier(0.34, 0.61, 0.4, 0.97);
  transition: transform 600ms cubic-bezier(0.34, 0.61, 0.4, 0.97);
}

@media (hover: hover) {
  .product-mini-card > a:hover .product-mini-card-img {
    -webkit-transform: scale(1.03);
    transform: scale(1.03);
  }
}

.product-mini-card > a::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.5) 0%, transparent 50%);
  pointer-events: none;
  z-index: 1;
}

.product-hero-name {
  position: absolute;
  bottom: 1.5rem;
  left: 1.5rem;
  z-index: 2;
  font-size: clamp(1.4rem, 3vw, 2rem);
  margin: 0;
  line-height: 1;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

/* =============================================
   PHASE 2 - Products Grid Section
   ============================================= */

.category-products-grid {
  padding: 1.5rem 0 2rem;
  background: var(--color-cream);
}

.products-grid-header {
  max-width: 1400px;
  margin: 0 auto 2rem;
  padding: 0 3rem;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.products-grid-header h2 {
  font-family: var(--font-body);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  color: var(--color-dark);
  margin: 0;
}

.products-count {
  font-size: 0.95rem;
  color: var(--color-gray-mid);
  font-weight: 500;
  margin: 0;
}

/* ── Showcase grid (cards pleine largeur, split info + photo) ── */
.sapi-showcase-grid {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 3rem;
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.sapi-showcase-card {
  display: flex;
  width: 100%;
  height: 450px;
  border-radius: var(--radius-lg, 12px);
  overflow: hidden;
  text-decoration: none;
  color: var(--color-dark);
  box-shadow: var(--shadow-card);
  transition: box-shadow 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .sapi-showcase-card:hover {
    box-shadow: var(--shadow-card-hover);
  }
}

/* Alternance : showcase-left = info à gauche, photo à droite */
.sapi-showcase-card.showcase-left {
  flex-direction: row;
}

/* showcase-right = photo à gauche, info à droite */
.sapi-showcase-card.showcase-right {
  flex-direction: row-reverse;
}

/* ── Zone blanche (info produit) ── */
.sapi-showcase-card .showcase-info {
  flex: 0 0 18%;
  background: var(--color-white, #fff);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1.5rem;
  text-align: center;
  gap: 0.4rem;
}

/* ── Zone photo ambiance ── */
.sapi-showcase-card .showcase-photo {
  flex: 1;
  position: relative;
  overflow: hidden;
}

.sapi-showcase-card .showcase-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
  opacity: 0;
  -webkit-transition: opacity 0.6s ease, -webkit-transform 0.6s ease;
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.sapi-showcase-card .showcase-bg.is-active {
  opacity: 1;
}

/* ── Barres de progression slideshow ── */
.showcase-progress {
  position: absolute;
  bottom: 12px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  width: 33%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 4px;
  z-index: 2;
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.sapi-showcase-card:hover .showcase-progress {
  opacity: 1;
}

.showcase-progress-bar {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  height: 4px;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 2px;
  overflow: hidden;
}

.showcase-progress-bar__fill {
  width: 0;
  height: 100%;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 2px;
}

.showcase-progress-bar.is-done .showcase-progress-bar__fill {
  width: 100%;
}

.showcase-progress-bar.is-active .showcase-progress-bar__fill {
  width: 100%;
  -webkit-transition: width linear;
  transition: width linear;
}

/* ── Vignette produit studio ── */
.sapi-showcase-card .showcase-product-img-wrap {
  position: relative;
  width: 180px;
  height: 180px;
  margin-bottom: 2rem;
  flex-shrink: 1;
}

.sapi-showcase-card .showcase-product-img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
  border-radius: 8px;
}

.sapi-showcase-card .showcase-product-img-hover {
  position: absolute;
  inset: 0;
  opacity: 0;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

@media (hover: hover) {
  .sapi-showcase-card:hover .showcase-product-img-hover {
    opacity: 1;
  }
}

/* ── Texte ── */
.sapi-showcase-card .showcase-name {
  font-family: var(--font-body);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--color-dark);
  margin: 0;
  line-height: 1.2;
  white-space: nowrap;
}

.sapi-showcase-card .showcase-price {
  font-size: 1rem;
  color: var(--color-dark);
  margin: 0.25rem 0;
}

.sapi-showcase-card .showcase-cta {
  display: inline-block;
  margin-top: 0.75rem;
  padding: 0.6rem 1.5rem;
  background: var(--color-wood);
  color: var(--color-white, #fff);
  border-radius: 50px;
  font-size: 0.9rem;
  font-weight: 600;
  -webkit-transition: background 0.3s ease, -webkit-transform 0.3s ease;
  transition: background 0.3s ease, transform 0.3s ease;
}

/* ── Hover ── */
@media (hover: hover) {
  .sapi-showcase-card:hover .showcase-bg.is-active {
    -webkit-transform: scale(1.04);
    transform: scale(1.04);
  }

  .sapi-showcase-card:hover .showcase-cta {
    background: var(--gradient-cta, var(--color-orange));
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }
}

/* ── Showcase responsive ── */
@media (max-width: 900px) {
  .sapi-showcase-card {
    height: 380px;
  }

  .sapi-showcase-card .showcase-info {
    flex: 0 0 35%;
    padding: 2rem 1.5rem;
  }

  .sapi-showcase-card .showcase-product-img-wrap {
    width: 150px;
    height: 150px;
  }
}

@media (max-width: 600px) {
  .sapi-showcase-grid {
    padding: 0 1.5rem;
    gap: 2rem;
  }

  /* Mobile : empilé verticalement, photo en haut, info en bas */
  .sapi-showcase-card {
    height: auto;
    flex-direction: column-reverse !important;
  }

  .sapi-showcase-card .showcase-photo {
    height: 250px;
    min-height: 250px; /* Fix: flex: 1 devient flex-basis: 0 en colonne → s'effondre sans min-height */
  }

  .sapi-showcase-card .showcase-info {
    flex: none;
    padding: 1.5rem;
  }

  .sapi-showcase-card .showcase-product-img-wrap {
    display: none;
  }

  .sapi-showcase-card .showcase-name {
    font-size: 1.2rem;
  }

  .sapi-showcase-card .showcase-cta {
    background: var(--gradient-cta, var(--color-orange));
  }
}

/* Responsive adjustments */
@media (max-width: 900px) {
  .product-mini-card {
    padding: 0 2rem;
  }

  .featured-products-header {
    padding: 0 2rem;
  }
}

@media (max-width: 768px) {
  .product-mini-card > a {
    aspect-ratio: 16 / 9;
  }

  .product-hero-name {
    bottom: 1rem;
    left: 1rem;
  }
}

@media (max-width: 600px) {
  .featured-products-header {
    padding: 0 1.5rem;
  }

  .product-mini-card {
    padding: 0 1.5rem;
  }

  .product-mini-card > a {
    aspect-ratio: 4 / 3;
    border-radius: 8px;
  }

  .products-grid-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0 2rem;
  }
}

/* =============================================
   ACCESSIBILITY
   ============================================= */

@media (prefers-reduced-motion: reduce) {
  .carousel-editorial-slide,
  .carousel-editorial-slide-inner,
  .carousel-editorial-btn,
  .carousel-thumbnail,
  .counter-current {
    transition-duration: 0.01ms !important;
  }

  .products-carousel-editorial-track {
    transition: none !important;
  }
}

/* Focus states for keyboard navigation */
.carousel-editorial-btn:focus-visible,
.carousel-thumbnail:focus-visible {
  outline: 3px solid var(--color-orange);
  outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .carousel-editorial-slide-inner {
    border: 2px solid currentColor;
  }

  .carousel-editorial-btn {
    border: 2px solid currentColor;
  }
}

/* Carousel Card Styles - PREMIUM */
.category-featured-card {
  position: relative;
  background: var(--color-white);
  border-radius: 20px;
  overflow: hidden;
  border: 2px solid rgba(147, 125, 104, 0.1);
  box-shadow: var(--shadow-card);
  transition: all 0.5s var(--ease-expo);
  -webkit-transition: all 0.5s var(--ease-expo);
}

.category-featured-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(255, 248, 231, 0.1) 0%, transparent 50%);
  opacity: 0;
  transition: opacity 0.5s ease;
  -webkit-transition: opacity 0.5s ease;
  pointer-events: none;
  z-index: 1;
}

@media (hover: hover) {
  .category-featured-card:hover {
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
    border-color: rgba(147, 125, 104, 0.25);
  }
}

@media (hover: hover) {
  .category-featured-card:hover::before {
    opacity: 1;
  }
}

.category-featured-link {
  display: block;
  text-decoration: none;
  position: relative;
  z-index: 2;
}

.category-featured-media {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--color-gray-light, #F5F5F5);
}

.category-featured-media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0, 0, 0, 0.1) 100%);
  opacity: 0;
  transition: opacity 0.5s ease;
  -webkit-transition: opacity 0.5s ease;
  pointer-events: none;
}

@media (hover: hover) {
  .category-featured-card:hover .category-featured-media::after {
    opacity: 1;
  }
}

.category-featured-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease-expo);
  -webkit-transition: transform 0.7s var(--ease-expo);
}

@media (hover: hover) {
  .category-featured-card:hover .category-featured-media img {
    transform: scale(1.12);
    -webkit-transform: scale(1.12);
  }
}

.category-featured-content {
  padding: 1.75rem 2rem 2rem;
  background: var(--color-white);
  position: relative;
}

.category-featured-card h2 {
  font-size: clamp(16px, 2.5vw, 18px);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--bois-sombre, #4A3F35);
  margin: 0 0 0.75rem;
  line-height: 1.3;
  letter-spacing: 0.02em;
  transition: color 0.3s ease;
  -webkit-transition: color 0.3s ease;
}

@media (hover: hover) {
  .category-featured-card:hover h2 {
    color: var(--color-orange, #E35B24);
  }
}

.category-featured-subtitle {
  color: var(--bois-profond, #6B5A4A);
  font-style: italic;
  font-size: 15px;
  margin: 0 0 1.25rem;
  line-height: 1.5;
}

.category-featured-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bois-dore, #937D68);
  transition: all 0.3s ease;
  -webkit-transition: all 0.3s ease;
}

@media (hover: hover) {
  .category-featured-card:hover .category-featured-cta {
    color: var(--color-orange, #E35B24);
    transform: translateX(4px);
    -webkit-transform: translateX(4px);
  }
}

/* Carousel Controls */
.carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 1.5rem;
}

.carousel-btn {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border-radius: 50%;
  border: 2px solid var(--color-wood);
  background: rgba(255, 255, 255, 0.95);
  color: var(--color-wood);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  text-transform: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 16px rgba(147, 125, 104, 0.15);
}

@media (hover: hover) {
  .carousel-btn:hover {
    background: var(--color-orange);
    border-color: var(--color-orange);
    color: var(--color-white);
    transform: scale(1.1);
  }
}

.carousel-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

@media (hover: hover) {
  .carousel-btn:disabled:hover {
    background: rgba(255, 255, 255, 0.95);
    border-color: var(--color-wood);
    color: var(--color-wood);
    transform: none;
  }
}

.carousel-dots {
  display: flex;
  gap: 0.5rem;
}

.carousel-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-gray-light);
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
}

.carousel-dot.active {
  background: var(--color-wood);
  transform: scale(1.2);
}

@media (hover: hover) {
  .carousel-dot:hover:not(.active) {
    background: var(--color-gray-mid);
  }
}

/* ========================================
   PAGES - WooCommerce Cart & Checkout
   ======================================== */

/* Checkout Order Review */
.woocommerce-checkout-review-order {
  display: block !important;
  visibility: visible !important;
  background: var(--color-gray-light);
  padding: 20px;
  border-radius: var(--radius);
  margin-top: 20px;
}

.woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
  padding: 12px;
  border-bottom: 1px solid var(--color-gray-mid);
  text-align: left;
}

.woocommerce-checkout-review-order-table .order-total {
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--color-wood);
}

#order_review_heading {
  font-size: 1.5rem;
  margin: 30px 0 15px;
  color: var(--color-wood);
}

/* Cart Table */
.woocommerce-cart-form__contents {
  width: 100%;
}

.woocommerce-cart-form .product-thumbnail img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 8px;
}

/* ========================================
   PAGES - Content Pages
   ======================================== */

/* Artisan (Lumière d'Artisan) - Cinétique Design */
.artisan-hero-cinetique {
  padding: 140px 20px 100px;
  text-align: center;
  background: url('https://atelier-sapi.fr/wp-content/uploads/2026/02/Fond-bois.webp') center/cover no-repeat;
  position: relative;
}

.artisan-hero-cinetique::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(74, 63, 53, 0.75);
}

.artisan-hero-inner {
  position: relative;
  z-index: 1;
}

.artisan-hero-cinetique .section-number {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 3px;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}

.artisan-hero-cinetique h1 {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(72px, 14vw, 150px);
  font-weight: 400;
  color: #fff;
  margin-bottom: 1.5rem;
  line-height: 1.1;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.artisan-hero-subtitle {
  font-size: 1.25rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
  max-width: 800px;
  margin: 0 auto 3rem;
  font-weight: 400;
}

.artisan-scroll-cta {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .artisan-scroll-cta:hover {
    color: var(--color-orange);
  }
}

.artisan-scroll-cta svg {
  -webkit-animation: bounce 2s infinite;
  animation: bounce 2s infinite;
}

@-webkit-keyframes bounce {
  0%, 20%, 50%, 80%, 100% { -webkit-transform: translateY(0); transform: translateY(0); }
  40% { -webkit-transform: translateY(8px); transform: translateY(8px); }
  60% { -webkit-transform: translateY(4px); transform: translateY(4px); }
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(8px); }
  60% { transform: translateY(4px); }
}

/* Video Section */
.artisan-video {
  padding: 60px 20px;
  background: var(--color-white);
}

.artisan-video-grid {
  max-width: 1000px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3rem;
  align-items: center;
}

.artisan-video-portrait {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-card-hover);
  width: 320px;
  aspect-ratio: 9/16;
}

.artisan-video-portrait iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.artisan-video-caption {
  text-align: left;
}

.artisan-video-caption h2 {
  font-family: var(--font-display, 'Square Peg', Georgia, serif);
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 0.75rem;
}

.artisan-video-caption p {
  color: var(--color-gray-mid);
  line-height: 1.7;
  font-size: 1rem;
}

@media (max-width: 768px) {
  .artisan-video-grid {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 2rem;
  }

  .artisan-video-portrait {
    width: 260px;
  }

  .artisan-video-caption {
    text-align: center;
  }
}

/* Intro & Steps */
.artisan-intro-cinetique {
  padding: 100px 20px;
}

/* Steps Slider */
.artisan-steps-slider {
  padding: 80px 0;
  background: var(--color-white, #fff);
  overflow: hidden;
}

.steps-slider-header {
  max-width: 1100px;
  margin: 0 auto 2.5rem;
  padding: 0 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.steps-slider-header h2 {
  font-family: var(--font-display, 'Square Peg', Georgia, serif);
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin: 0;
}

.steps-slider-nav {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.steps-slider-btn {
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  border-radius: 50%;
  border: none;
  background: var(--color-white, #fff);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-wood, #937D68);
  font-size: 1.1rem;
  font-weight: 600;
  font-family: inherit;
  line-height: 0;
  padding: 0;
  transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(147, 125, 104, 0.12);
}

@media (hover: hover) {
  .steps-slider-btn:hover {
    background: var(--color-wood, #937D68);
    color: #fff;
    box-shadow: 0 4px 12px rgba(147, 125, 104, 0.25);
  }
}

.steps-slider-counter {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--color-wood, #937D68);
  letter-spacing: 0.1em;
  min-width: 50px;
  text-align: center;
}

.steps-slider-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  gap: 1.5rem;
  padding: 1rem calc((100vw - 1050px) / 2) 2rem;
  scroll-padding-inline: calc((100vw - 1050px) / 2);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.steps-slider-track::after {
  content: '';
  flex: 0 0 calc((100vw - 1050px) / 2);
}

.steps-slider-track::-webkit-scrollbar {
  display: none;
}

.steps-slide {
  flex: 0 0 1050px;
  scroll-snap-align: center;
}

.steps-slide-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  background: var(--color-warm, #FBF6EA);
  border-radius: 16px;
  overflow: hidden;
  height: 100%;
}

.steps-slide-image {
  min-height: 420px;
  position: relative;
  overflow: hidden;
}

.steps-slide-image-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.steps-slide-content {
  padding: 2.5rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.steps-slide-content .section-number {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--color-white, #fff);
  background: var(--color-wood, #937D68);
  padding: 0.25rem 0.6rem;
  border-radius: 4px;
  margin-bottom: 1.25rem;
  width: fit-content;
}

.steps-slide-content h3 {
  font-size: clamp(1.25rem, 2.5vw, 1.6rem);
  font-weight: 800;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1rem;
  line-height: 1.25;
}

.steps-slide-content p {
  color: var(--bois-profond, #6B5A4A);
  line-height: 1.7;
  font-size: 0.92rem;
  margin-bottom: 0.75rem;
}

.steps-slide-content p:last-child {
  margin-bottom: 0;
}

.steps-slide-link {
  display: inline-block;
  margin-top: 1rem;
  color: var(--color-orange, #E35B24);
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  transition: opacity 0.3s;
}
.steps-slide-link:hover {
  opacity: 0.8;
}

/* Progress dots */
.steps-slider-dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 2rem;
}

.steps-slider-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-wood, #937D68);
  opacity: 0.2;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: all 0.3s;
}

.steps-slider-dot.is-active {
  opacity: 1;
  width: 24px;
  border-radius: 4px;
}

@media (max-width: 768px) {
  .artisan-steps-slider {
    padding: 50px 0;
  }

  .steps-slider-header {
    padding: 0 1.25rem;
  }

  .steps-slider-track {
    padding: 1rem 1.25rem 2rem;
    scroll-padding-left: 1.25rem;
    gap: 1rem;
  }

  .steps-slider-track::after {
    flex: 0 0 1.25rem;
  }

  .steps-slide {
    flex: 0 0 90%;
  }

  .steps-slide-inner {
    grid-template-columns: 1fr;
  }

  .steps-slide-image {
    min-height: 220px;
  }

  .steps-slide-content {
    padding: 1.5rem;
  }
}

.artisan-intro-cinetique {
  background: url('https://atelier-sapi.fr/wp-content/uploads/2026/03/IMG_1673.jpg') center/cover no-repeat;
  padding: 100px 20px;
  position: relative;
}

.artisan-intro-cinetique::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(254, 253, 251, 0.95);
}

.artisan-intro-cinetique .artisan-intro-grid {
  position: relative;
}

.artisan-intro-content--right {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.artisan-step-cinetique:nth-child(odd) {
  background: var(--creme-chaud, #FAF6F0);
}

.artisan-intro-grid,
.artisan-step-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 60px;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}

.artisan-step-grid.reverse {
  direction: rtl;
}

.artisan-step-grid.reverse > * {
  direction: ltr;
}

.artisan-intro-content,
.artisan-step-content {
  padding: 1.5rem;
}

.artisan-intro-content .section-number,
.artisan-step-content .section-number {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--bois-dore, #937D68);
  margin-bottom: 1.5rem;
  opacity: 0.9;
}

.artisan-intro-content h2 {
  font-family: var(--font-display, 'Square Peg', Georgia, serif);
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.artisan-step-content h2 {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.artisan-intro-content p,
.artisan-step-content p {
  color: var(--bois-profond, #6B5A4A);
  line-height: 1.75;
  font-size: 1.0625rem;
  margin-bottom: 1.25rem;
}

.artisan-image {
  min-height: 450px;
  border-radius: 16px;
  background-size: cover;
  background-position: center;
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
  overflow: hidden;
  position: relative;
  transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .artisan-image:hover {
    transform: translateY(-4px) scale(1.02);
    -webkit-transform: translateY(-4px) scale(1.02);
    box-shadow: 0 8px 30px rgba(147, 125, 104, 0.15);
  }
}

/* Photo Robin circulaire premium - Section 02 Intro */
.artisan-intro-image-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

.artisan-intro-robin-photo {
  width: 280px;
  height: 280px;
  object-fit: cover;
  border-radius: 50%;
  /* Premium border wood 4px like product page */
  border: 4px solid var(--bois-dore, #937D68);
  /* Golden shadow like product page artisan section */
  box-shadow:
    0 8px 24px rgba(147, 125, 104, 0.2),
    0 4px 12px rgba(147, 125, 104, 0.15),
    0 2px 6px rgba(147, 125, 104, 0.1);
  transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .artisan-intro-robin-photo:hover {
    transform: scale(1.05);
    -webkit-transform: scale(1.05);
    box-shadow:
      0 12px 32px rgba(147, 125, 104, 0.25),
      0 6px 16px rgba(147, 125, 104, 0.2),
      0 3px 8px rgba(147, 125, 104, 0.15);
  }
}

/* Values Section */
.artisan-values-cinetique {
  padding: 100px 20px;
  background: var(--creme-papier, #FEFDFB);
}

.artisan-values-header {
  text-align: center;
  margin-bottom: 4rem;
}

.artisan-values-header .section-number {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--bois-dore, #937D68);
  margin-bottom: 1.5rem;
  opacity: 0.9;
}

.artisan-values-header h2 {
  font-family: var(--font-display, 'Square Peg', Georgia, serif);
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
}

.artisan-values-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2.5rem;
  max-width: 1100px;
  margin: 0 auto;
}

.artisan-value-item {
  text-align: center;
  padding: 3rem 2rem;
  /* Premium gradient cream background */
  background: linear-gradient(135deg,
    var(--creme-chaud, #FAF6F0) 0%,
    var(--ivoire-doux, #F5EDE4) 100%
  );
  border-radius: 20px;
  border: 1px solid rgba(147, 125, 104, 0.1);
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
  transition: all 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: all 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .artisan-value-item:hover {
    transform: translateY(-6px);
    -webkit-transform: translateY(-6px);
    box-shadow: 0 8px 30px rgba(147, 125, 104, 0.15);
    border-color: rgba(147, 125, 104, 0.2);
  }
}

.value-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--creme-papier, #FEFDFB);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
  color: var(--bois-dore, #937D68);
  border: 2px solid rgba(147, 125, 104, 0.15);
  box-shadow: 0 4px 12px rgba(147, 125, 104, 0.1);
}

.artisan-value-item h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 0.75rem;
}

.artisan-value-item p {
  font-size: 0.9rem;
  color: var(--color-gray-mid);
  margin: 0;
}

.artisan-value-item a {
  color: var(--color-wood, #937D68);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.artisan-value-item a:hover {
  color: var(--color-orange, #E35B24);
}

/* Quote Finale Premium */
.artisan-quote-cinetique {
  padding: 120px 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.artisan-quote-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

.artisan-quote-cinetique::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(254, 253, 251, 0.88);
  z-index: 1;
}

.artisan-quote-cinetique blockquote {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(36px, 6vw, 56px);
  font-weight: 400;
  font-style: italic;
  color: var(--bois-profond, #6B5A4A);
  max-width: 900px;
  margin: 0 auto;
  line-height: 1.3;
  position: relative;
  padding: 0 3rem;
  z-index: 2;
}

.artisan-quote-cinetique blockquote::before {
  content: '\201C';
  font-family: Georgia, serif;
  font-size: clamp(8rem, 15vw, 14rem);
  font-style: normal;
  color: var(--color-orange, #E35B24);
  opacity: 0.2;
  position: absolute;
  top: -0.4em;
  left: -0.1em;
  line-height: 1;
}

.artisan-quote-cinetique cite {
  display: block;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  font-weight: 500;
  font-style: italic;
  letter-spacing: 0.03em;
  color: var(--bois-sombre, #4A3F35);
  margin-top: 2rem;
  position: relative;
}

/* CTA Section Premium */
.artisan-cta {
  padding: 120px 20px;
  text-align: center;
  background: linear-gradient(135deg,
    var(--creme-papier, #FEFDFB) 0%,
    var(--creme-chaud, #FAF6F0) 100%
  );
}

.artisan-cta-content {
  max-width: 900px;
  margin: 0 auto;
}

.artisan-cta h2 {
  font-family: var(--font-display, 'Square Peg', Georgia, serif);
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1rem;
  line-height: 1.2;
}

.artisan-cta p {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--bois-profond, #6B5A4A);
  margin-bottom: 2.5rem;
}

/* Premium CTA Button - HP style */
.artisan-cta .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 48px;
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  color: var(--creme-papier, #FEFDFB);
  /* Premium gradient orange */
  background: var(--gradient-cta);
  border: none;
  border-radius: 50px;
  /* Warm shadow (not gray!) */
  box-shadow:
    0 4px 12px rgba(227, 91, 36, 0.25),
    0 2px 4px rgba(227, 91, 36, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
  transition: all 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: all 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .artisan-cta .button:hover {
    background: linear-gradient(180deg, #D14F1C 0%, #B8441A 100%);
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    box-shadow:
      0 8px 20px rgba(227, 91, 36, 0.3),
      0 4px 8px rgba(227, 91, 36, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.2);
  }
}

.artisan-cta .button:active {
  transform: translateY(0);
  -webkit-transform: translateY(0);
  box-shadow:
    0 2px 6px rgba(227, 91, 36, 0.2),
    inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

.artisan-intro,
.artisan-step {
  padding: 40px 20px;
}

.artisan-quote {
  padding: 40px 20px 60px;
  text-align: center;
  font-family: "Square Peg", "Brush Script MT", "Segoe Script", Georgia, serif;
  font-size: 32px;
  color: var(--color-orange);
}

.artisan-quote span {
  display: block;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 14px;
  color: var(--color-gray-mid);
  margin-top: 10px;
}

/* ---- RESPONSIVE ARTISAN PAGE ---- */
@media (max-width: 768px) {
  .artisan-hero-cinetique {
    padding: 100px 1rem 60px;
  }

  .artisan-hero-cinetique h1 {
    font-size: clamp(40px, 10vw, 72px);
  }

  .artisan-hero-subtitle {
    font-size: 1.05rem;
    margin-bottom: 2rem;
  }

  .artisan-intro-cinetique,
  .artisan-step-cinetique {
    padding: 60px 1rem;
  }

  .artisan-intro-grid,
  .artisan-step-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .artisan-step-grid.reverse {
    direction: ltr;
  }

  .artisan-image {
    min-height: 280px;
  }

  .artisan-intro-robin-photo {
    width: 180px;
    height: 180px;
  }

  .artisan-intro-image-wrapper {
    padding: 1rem;
  }

  .artisan-values-cinetique {
    padding: 60px 0;
  }

  .artisan-values-header {
    margin-bottom: 2.5rem;
    padding: 0 1.5rem;
  }

  .artisan-values-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .artisan-value-item {
    padding: 2rem 1.5rem;
  }

  .value-icon {
    width: 56px;
    height: 56px;
  }

  .artisan-quote-cinetique {
    padding: 60px 1rem;
  }

  .artisan-quote-cinetique blockquote {
    padding: 0 1.5rem;
  }

  .artisan-cta {
    padding: 60px 1rem;
  }

  .artisan-cta .button {
    padding: 14px 32px;
    font-size: 14px;
    width: 100%;
    max-width: 320px;
  }
}

/* ========================================
   PAGE TEMPLATE - Conseils Éclairés (PREMIUM)
   ======================================== */

/* Hero Premium */
.advice-hero {
  position: relative;
  padding: 140px 20px 100px;
  background-size: cover;
  background-position: right center;
  color: var(--creme-papier, #FEFDFB);
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.advice-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
}

.advice-hero-content {
  position: relative;
  z-index: 1;
  max-width: 800px;
  text-align: center;
}

.advice-hero h1 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 900;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  color: #fff;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.advice-hero p {
  font-size: clamp(16px, 2.5vw, 20px);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
  max-width: 700px;
  margin: 0 auto;
}

/* Hero Conseils — style artisan */
.advice-hero-artisan {
  padding: 140px 20px 100px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.advice-hero-artisan-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

.advice-hero-artisan::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(74, 63, 53, 0.75);
  z-index: 1;
}

.advice-hero-artisan-inner {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
  z-index: 2;
}

.advice-hero-artisan h1 {
  font-family: var(--font-display, 'Square Peg', Georgia, serif);
  font-size: clamp(72px, 14vw, 150px);
  font-weight: 400;
  color: #fff;
  margin-bottom: 1.5rem;
  line-height: 1.1;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.advice-hero-artisan p {
  font-size: 1.25rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
  max-width: 600px;
  margin: 0 auto;
  font-weight: 400;
}

@media (max-width: 768px) {
  .advice-hero-artisan {
    padding: 100px 20px 60px;
  }

  .advice-hero-artisan h1 {
    font-size: clamp(48px, 12vw, 80px);
  }
}

/* Conseil personnalisé de Robin */
.robin-conseil {
  max-width: 1400px;
  margin: 0 auto;
  padding: 2.5rem 2rem 2rem;
  background: var(--color-warm, #FBF6EA);
  border-radius: 20px;
  position: relative;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
}

/* Header : badge + chips */
.robin-conseil__header {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.robin-conseil__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.75rem;
  background: var(--color-wood, #937D68);
  color: #fff;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.robin-conseil__badge svg {
  flex-shrink: 0;
}

.robin-conseil__chips {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.robin-conseil__chip {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  background: rgba(var(--color-wood-rgb), 0.12);
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.7rem;
  font-weight: 500;
  color: var(--color-wood, #937D68);
  letter-spacing: 0.02em;
}

/* Body : guillemet + texte + signature */
.robin-conseil__body {
  position: relative;
  padding-left: 2.5rem;
}

.robin-conseil__quote {
  position: absolute;
  left: 0;
  top: -0.3rem;
  font-family: Georgia, serif;
  font-size: 4rem;
  color: var(--color-orange, #E35B24);
  opacity: 0.2;
  line-height: 1;
  user-select: none;
}

.robin-conseil__text {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-dark, #323232);
  margin: 0 0 1rem;
}

/* ─── Robin Conseil : Loading state ─── */
.robin-conseil__loader {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem 0;
}

.robin-conseil__spinner {
  flex-shrink: 0;
  animation: robinSpin 1s linear infinite;
  color: var(--color-orange, #E35B24);
}

@keyframes robinSpin {
  to { transform: rotate(360deg); }
}

.robin-conseil__loader-steps {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.robin-conseil__loader-step {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  color: var(--color-wood, #937D68);
  opacity: 0;
  transform: translateY(5px);
  transition: opacity 0.4s ease, transform 0.4s ease, color 0.3s ease;
}

.robin-conseil__loader-step.is-active {
  opacity: 1;
  transform: translateY(0);
  color: var(--color-dark, #323232);
  font-weight: 500;
}

.robin-conseil__loader-step.is-done {
  opacity: 0.4;
  transform: translateY(0);
  color: var(--color-wood, #937D68);
  font-weight: 400;
}

.robin-conseil__product-link {
  color: var(--color-orange, #E35B24);
  text-decoration: none;
  font-weight: 600;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s;
}

.robin-conseil__product-link:hover {
  border-bottom-color: var(--color-orange, #E35B24);
}

.robin-conseil__transparency {
  display: block;
  text-align: right;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.75rem;
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.02em;
  color: var(--color-wood, #937D68);
  opacity: 0.7;
  margin-top: 0.5rem;
}

/* Actions */
.robin-conseil__actions {
  display: flex;
  justify-content: center;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(var(--color-wood-rgb), 0.15);
}

.robin-conseil__selection-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1.4rem;
  background: var(--gradient-cta);
  color: #fff;
  border: none;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 3px 10px rgba(227, 91, 36, 0.2);
}

.robin-conseil__selection-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 15px rgba(227, 91, 36, 0.3);
  color: #fff;
}

/* Produits recommandés dans la card Robin */
.robin-conseil__products {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(var(--color-wood-rgb), 0.15);
}

.robin-conseil__products-title {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-wood, #937D68);
  margin: 0 0 1.2rem;
}

.robin-conseil__products ul.products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: none;
}

/* Card "Création sur mesure" dans la grille produits */
.sur-mesure-card {
  display: flex !important;
}

.sur-mesure-card__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0;
  background: rgba(var(--color-wood-rgb), 0.06);
  border: 2px dashed rgba(var(--color-wood-rgb), 0.25);
  border-radius: 20px;
  text-decoration: none;
  color: var(--color-dark, #323232);
  transition: transform 0.5s var(--ease-expo, ease), box-shadow 0.5s var(--ease-expo, ease), border-color 0.3s, background 0.3s;
  height: 100%;
  width: 100%;
}

@media (hover: hover) {
  .sur-mesure-card__link:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
    border-color: var(--color-orange, #E35B24);
    background: rgba(var(--color-wood-rgb), 0.1);
  }
}

.sur-mesure-card__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1.5rem 1rem;
}

.sur-mesure-card__icon {
  color: var(--color-wood, #937D68);
  margin-bottom: 1rem;
}

.sur-mesure-card__link:hover .sur-mesure-card__icon {
  color: var(--color-orange, #E35B24);
}

.sur-mesure-card__title {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--color-wood, #937D68);
  margin: 0 0 1.2rem;
}

.sur-mesure-card__text {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.82rem;
  line-height: 1.5;
  color: var(--color-dark, #323232);
  margin: 0;
  font-style: italic;
}

.sur-mesure-card__cta {
  display: inline-block;
  padding: 0.65rem 1.5rem;
  background: transparent;
  border: none;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
  transition: all 0.3s var(--ease-smooth, ease);
  box-shadow: none;
}

@media (hover: hover) {
  .sur-mesure-card__cta:hover {
    background: var(--gradient-cta);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
  }
}

/* Formulaire contact inline — Contacter Robin */
.robin-conseil__contact-btn {
  background: none;
  border: 1.5px solid var(--color-wood, #937D68);
  color: var(--color-wood, #937D68);
  padding: 0.5rem 1.4rem;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.robin-conseil__contact-btn:hover {
  background: var(--color-wood, #937D68);
  color: #fff;
}

.robin-conseil__contact-form {
  margin-top: 1rem;
}

.robin-conseil__contact-intro {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  color: var(--color-dark, #323232);
  margin: 0 0 0.8rem;
}

.robin-conseil__contact-fields {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.robin-conseil__contact-row {
  display: flex;
  gap: 0.6rem;
}

.robin-conseil__contact-row .robin-conseil__contact-input {
  flex: 1;
  min-width: 0;
}

.robin-conseil__contact-input {
  padding: 0.55rem 1rem;
  border: 1.5px solid rgba(var(--color-wood-rgb), 0.25);
  border-radius: 12px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  color: var(--color-dark, #323232);
  background: #fff;
  outline: none;
  transition: border-color 0.2s;
}

.robin-conseil__contact-input:focus {
  border-color: rgba(var(--color-wood-rgb), 0.45);
  outline: none;
  box-shadow: none;
}

.robin-conseil__contact-input::placeholder {
  color: rgba(var(--color-wood-rgb), 0.4);
}

.robin-conseil__contact-textarea {
  resize: vertical;
  min-height: 60px;
}

.robin-conseil__contact-send {
  align-self: flex-start;
  padding: 0.55rem 1.4rem;
  background: var(--color-wood, #937D68);
  color: #fff;
  border: none;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.2s;
}

.robin-conseil__contact-send:hover {
  opacity: 0.85;
}

.robin-conseil__contact-send:disabled {
  opacity: 0.5;
  cursor: default;
}

.robin-conseil__contact-success {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  color: var(--color-wood, #937D68);
  font-weight: 600;
  text-align: center;
  margin: 0.5rem 0 0;
}

@media (max-width: 900px) {
  .robin-conseil {
    padding: 2rem 1.5rem 1.5rem;
  }

  .robin-conseil__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.6rem;
  }

  .robin-conseil__products ul.products {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

@media (max-width: 600px) {
  .robin-conseil {
    padding: 1.5rem 1rem 1rem;
    margin-top: 1rem;
    border-radius: 16px;
  }

  .robin-conseil__body {
    padding-left: 1.5rem;
  }

  .robin-conseil__quote {
    font-size: 2.5rem;
  }

  .robin-conseil__text {
    font-size: 0.85rem;
  }

  .robin-conseil__products ul.products {
    grid-template-columns: 1fr;
  }

  .robin-conseil__contact-row {
    flex-direction: column;
  }
}

/* Conseils — Bouton refresh */
.conseils-refresh {
  max-width: 1400px;
  margin: 0 auto;
  padding: 1.5rem 20px;
  text-align: center;
}

.conseils-refresh-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 12px 32px;
  background: var(--gradient-cta);
  color: #fff;
  border: none;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(227, 91, 36, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

@media (hover: hover) {
  .conseils-refresh-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 5px 15px rgba(227, 91, 36, 0.35);
  }
}

/* Tips Section */
.advice-tips-section {
  max-width: 1400px;
  margin: 0 auto;
  padding: 100px 20px 80px;
}

/* Tips Grid – 4x1 desktop */
.advice-tips-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

/* Tip Card — 3D flip */
.advice-tip {
  -webkit-perspective: 1000px;
  perspective: 1000px;
  border-radius: 16px;
  overflow: visible;
  background: transparent;
  transition: transform 0.5s var(--ease-expo), box-shadow 0.5s var(--ease-expo);
}

@media (hover: hover) {
  .advice-tip:hover {
    transform: translateY(-10px) scale(1.02);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
  }
  .advice-tip:hover .advice-tip-image-img {
    transform: scale(1.05);
  }
}

.advice-tip-flipper {
  position: relative;
  width: 100%;
  min-height: 550px;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.advice-tip.is-flipped .advice-tip-flipper {
  -webkit-transform: rotateY(180deg);
  transform: rotateY(180deg);
}

.advice-tip-front,
.advice-tip-back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  border-radius: 16px;
  overflow: hidden;
  box-shadow:
    0 4px 16px rgba(0, 0, 0, 0.08),
    0 2px 6px rgba(0, 0, 0, 0.04);
}

.advice-tip-front {
  z-index: 2;
  cursor: pointer;
}

.advice-tip-back {
  display: flex;
  -webkit-transform: rotateY(180deg);
  transform: rotateY(180deg);
  background: var(--color-warm, #FBF6EA);
  z-index: 1;
}

/* Face arrière — contenu */
.advice-tip-back-inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 2rem 1.5rem;
  box-sizing: border-box;
}

.advice-tip-back-text {
  font-family: var(--font-display, 'Square Peg', cursive);
  font-size: clamp(1.8rem, 3.5vw, 3rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  line-height: 1.2;
  margin: 0;
  flex: 1;
  display: flex;
  align-items: center;
  text-align: center;
}

.advice-tip-back-buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding-top: 1rem;
}

.advice-tip-back-close {
  min-width: 36px;
  max-width: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0;
  border-radius: 50%;
  border: 2px solid var(--color-orange, #E35B24);
  background: transparent;
  color: var(--color-orange, #E35B24);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s ease, color 0.3s ease;
}

@media (hover: hover) {
  .advice-tip-back-close:hover {
    background: var(--color-orange, #E35B24);
    color: #fff;
  }
}

.advice-tip-back-more {
  display: inline-block;
  padding: 0.6rem 1.5rem;
  background: rgba(0, 0, 0, 0.05);
  border: 1px solid var(--bois-dore, #937D68);
  border-radius: 50px;
  color: var(--bois-sombre, #4A3F35);
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.2s ease;
}

@media (hover: hover) {
  .advice-tip-back-more:hover {
    background: rgba(0, 0, 0, 0.1);
    transform: scale(1.03);
  }
}

.advice-tip-back.no-touch {
  pointer-events: none;
}

/* Tip Image Background */
.advice-tip-image {
  position: relative;
  min-height: 550px;
  height: 100%;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.advice-tip-image-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.8s var(--ease-expo);
  will-change: transform;
  z-index: 0;
}

.advice-tip-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.75) 0%,
    rgba(0, 0, 0, 0.25) 50%,
    rgba(0, 0, 0, 0.05) 100%
  );
}

/* Tip Content (over image) */
.advice-tip-content {
  position: relative;
  z-index: 1;
  padding: 1.5rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.advice-tip-number {
  display: block;
  font-size: clamp(3rem, 5vw, 5rem);
  font-weight: 700;
  letter-spacing: 6px;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  margin-bottom: 0.5rem;
  line-height: 1;
}

.advice-tip-content h2 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: clamp(1rem, 1.5vw, 1.3rem);
  font-weight: 800;
  color: #fff;
  margin: 0 0 1rem 0;
  line-height: 1.25;
}

/* Bouton "Voir le conseil" */
.advice-tip-btn {
  display: inline-block;
  padding: 0.55rem 1.3rem;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50px;
  color: #fff;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.2s ease;
}

@media (hover: hover) {
  .advice-tip-btn:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: scale(1.03);
  }
}

/* Responsive – Tablet */
@media (max-width: 1024px) {
  .advice-tips-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
  .advice-tip-flipper {
    min-height: 380px;
  }
}

/* Responsive – Mobile + Flip Card */
@media (max-width: 768px) {
  .advice-tips-section {
    padding: 60px 0 50px;
  }

  .advice-tip-flipper {
    min-height: 400px;
  }
  .advice-tip-image {
    min-height: 400px;
  }


}

/* Overlay plein écran – Lecture immersive */
.advice-overlay {
  position: fixed;
  inset: 0;
  z-index: 10002;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.advice-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.advice-overlay-inner {
  position: relative;
  width: 92%;
  max-width: 800px;
  max-height: 85vh;
  background: var(--color-warm, #FBF6EA);
  border-radius: 20px;
  padding: 2.5rem 1.8rem 2rem;
  overflow-y: auto;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
  transform: translateY(30px);
  transition: transform 0.3s ease;
}

.advice-overlay.is-open .advice-overlay-inner {
  transform: translateY(0);
}

.advice-overlay-close {
  position: sticky;
  top: 0;
  float: right;
  min-width: 40px;
  max-width: 40px;
  min-height: 40px;
  max-height: 40px;
  padding: 0;
  border-radius: 50%;
  border: 2px solid var(--color-orange, #E35B24);
  background: var(--color-warm, #FBF6EA);
  color: var(--color-orange, #E35B24);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  margin-bottom: 0.5rem;
}

@media (hover: hover) {
  .advice-overlay-close:hover {
    background: var(--color-orange, #E35B24);
    color: #fff;
  }
}

.advice-overlay-body h3 {
  font-size: clamp(1rem, 3vw, 1.2rem);
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  text-transform: none;
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
  letter-spacing: -0.01em;
}

.advice-overlay-body h3:first-child {
  margin-top: 0;
}

.advice-overlay-body p {
  font-size: clamp(0.9rem, 2.5vw, 1rem);
  line-height: 1.7;
  color: var(--bois-profond, #6B5A4A);
  margin-bottom: 1rem;
}

/* Outro Premium - Signature Style */
.advice-outro {
  padding: 100px 20px;
  text-align: center;
  /* Premium gradient background */
  background: linear-gradient(
    135deg,
    var(--creme-chaud, #FAF6F0) 0%,
    var(--color-warm, #FBF6EA) 50%,
    var(--ivoire-doux, #F5EDE4) 100%
  );
}

.advice-outro p {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 400;
  font-style: italic;
  color: var(--bois-profond, #6B5A4A);
  max-width: 900px;
  margin: 0 auto;
  line-height: 1.3;
  position: relative;
  padding: 0 2rem;
}

.advice-outro p::before {
  content: "\201C";
  font-family: Georgia, serif;
  font-size: clamp(8rem, 15vw, 14rem);
  font-style: normal;
  color: var(--color-orange, #E35B24);
  opacity: 0.2;
  position: absolute;
  top: -0.4em;
  left: -0.1em;
  line-height: 1;
}

.advice-outro-signature {
  display: block;
  text-align: right;
  max-width: 900px;
  margin: 1.5rem auto 0;
  padding-right: 2rem;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  font-weight: 500;
  font-style: italic;
  letter-spacing: 0.03em;
  color: var(--bois-sombre, #4A3F35);
}

/* Card CTA – Guide Luminaire (dans la grille) */
.advice-guide-cta {
  grid-column: 1 / -1;
  margin-top: 16px;
  text-align: center;
}

.advice-guide-cta-inner {
  padding: 50px 40px;
  background: #fff;
  border-radius: 20px;
  box-shadow:
    0 8px 30px rgba(147, 125, 104, 0.12),
    0 2px 8px rgba(147, 125, 104, 0.06);
  border: 1px solid rgba(147, 125, 104, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@media (hover: hover) {
  .advice-guide-cta-inner:hover {
    transform: translateY(-3px);
    box-shadow:
      0 12px 40px rgba(147, 125, 104, 0.18),
      0 4px 12px rgba(147, 125, 104, 0.08);
  }
}

.advice-guide-cta-title {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(32px, 5vw, 46px);
  font-weight: 400;
  color: var(--bois-profond, #6B5A4A);
  margin: 0 0 0.8rem;
  line-height: 1.2;
}

.advice-guide-cta-text {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  color: var(--color-wood, #937D68);
  line-height: 1.7;
  margin: 0 0 2rem;
}

.advice-guide-cta-btn {
  display: inline-block;
  padding: 14px 32px;
  background: var(--gradient-cta);
  color: #fff;
  border: none;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

@media (hover: hover) {
  .advice-guide-cta-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
  }
}

.advice-articles-title {
  font-family: var(--font-display);
  font-size: 2.4rem;
  color: var(--color-wood);
  text-align: center;
  margin-bottom: 2rem;
}

.advice-articles-more {
  text-align: center;
  margin-top: 1rem;
}

.advice-articles-more a {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  text-decoration: none;
  letter-spacing: 0.02em;
}

.advice-articles-more a:hover {
  text-decoration: underline;
}

.advice-room-picker-section {
  max-width: 1400px;
  margin: 2rem auto;
  padding: 0 2rem;
}
.advice-room-picker {
  background: var(--color-warm, #FBF6EA);
  border: 2px dashed rgba(var(--color-wood-rgb, 147, 125, 104), 0.3);
  border-radius: 20px;
  padding: 2.5rem 2rem;
  text-align: center;
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.advice-room-picker:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(var(--color-wood-rgb, 147, 125, 104), 0.1);
  border-color: var(--color-wood, #937D68);
}
.advice-room-picker .room-picker-cards {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1.25rem;
  width: 100%;
}

@media (max-width: 768px) {
  .advice-guide-cta-inner {
    padding: 36px 20px;
  }

  .advice-room-picker .room-picker-cards {
    gap: 0.75rem;
  }

  .advice-room-picker .room-card {
    flex: 0 0 calc(50% - 0.5rem);
    max-width: none;
    padding: 1rem 0.75rem;
  }

  .advice-room-picker-section {
    padding: 0 1rem;
  }

  .advice-room-picker {
    padding: 1.5rem 1.25rem;
  }
}

/* ========================================
   PAGE TEMPLATE - Contact (PREMIUM)
   ======================================== */

/* Hero Premium */
/* ---- Contact Hero ---- */
.contact-hero {
  position: relative;
  padding: 140px 20px 100px;
  color: var(--creme-papier, #FEFDFB);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.contact-hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

.contact-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(74, 63, 53, 0.75);
}

.contact-hero-content {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  text-align: center;
}

.contact-hero h1 {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(72px, 14vw, 150px);
  font-weight: 400;
  line-height: 1.1;
  margin-bottom: 1rem;
  color: #fff;
  white-space: nowrap;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.contact-hero p {
  font-size: clamp(16px, 2.5vw, 20px);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
}

/* ---- Contact Main — 2 colonnes ---- */
.contact-main {
  padding: 80px 20px;
  background: linear-gradient(
    135deg,
    var(--creme-papier, #FEFDFB) 0%,
    var(--creme-chaud, #FAF6F0) 100%
  );
}

.contact-main-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  max-width: 1100px;
  margin: 0 auto;
  align-items: start;
}

/* ---- Colonne info ---- */
.contact-info-title {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1rem;
  line-height: 1.2;
}

.contact-info-text {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--bois-profond, #6B5A4A);
  margin-bottom: 2rem;
}

.contact-cards {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.contact-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  background: var(--color-white, #FFFFFF);
  border-radius: 12px;
  border: 1px solid rgba(147, 125, 104, 0.12);
  text-decoration: none;
  transition: all 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .contact-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(147, 125, 104, 0.12);
    border-color: rgba(147, 125, 104, 0.2);
  }
}

.contact-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(227, 91, 36, 0.08) 0%, rgba(227, 91, 36, 0.03) 100%);
  color: var(--color-orange, #E35B24);
  flex-shrink: 0;
}

.contact-card-content {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.contact-card-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bois-dore, #937D68);
}

.contact-card-value {
  font-size: 1rem;
  font-weight: 500;
  color: var(--bois-sombre, #4A3F35);
}

/* ---- Colonne formulaire ---- */
.contact-form-title {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.contact-form-card {
  background: var(--color-white, #FFFFFF);
  border-radius: 16px;
  border: 1px solid rgba(147, 125, 104, 0.12);
  padding: 2.5rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.contact-form-card form {
  display: grid;
  gap: 1.25rem;
}

.contact-form-card label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--bois-profond, #6B5A4A);
  margin-bottom: 0.4rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.contact-form-card input,
.contact-form-card textarea {
  width: 100%;
  padding: 14px 16px;
  font-size: 16px;
  font-family: inherit;
  color: var(--bois-sombre, #4A3F35);
  background: var(--creme-papier, #FEFDFB);
  border: 2px solid rgba(147, 125, 104, 0.15);
  border-radius: 8px;
  transition: all 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

.contact-form-card input:focus,
.contact-form-card textarea:focus {
  outline: none;
  border-color: var(--color-orange, #E35B24);
  background: var(--color-white, #FFFFFF);
  box-shadow:
    0 0 0 3px rgba(227, 91, 36, 0.1),
    0 2px 8px rgba(227, 91, 36, 0.15);
}

.contact-form-card textarea {
  min-height: 140px;
  resize: vertical;
}

.contact-form-card button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 40px;
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--creme-papier, #FEFDFB);
  background: var(--gradient-cta);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  box-shadow:
    0 4px 12px rgba(227, 91, 36, 0.25),
    0 2px 4px rgba(227, 91, 36, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
  transition: all 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  width: 100%;
}

@media (hover: hover) {
  .contact-form-card button[type="submit"]:hover {
    background: linear-gradient(180deg, #D14F1C 0%, #B8441A 100%);
    transform: translateY(-2px);
    box-shadow:
      0 8px 20px rgba(227, 91, 36, 0.3),
      0 4px 8px rgba(227, 91, 36, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.2);
  }
}

/* ---- Form Messages ---- */
.form-message {
  padding: 1.5rem 2rem;
  border-radius: 12px;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.form-message--success {
  background: linear-gradient(135deg, #d4edda 0%, #c8e6d0 100%);
  border: 2px solid #28a745;
  color: #155724;
}

.form-message--error {
  background: linear-gradient(135deg, #f8d7da 0%, #f5c6cb 100%);
  border: 2px solid #dc3545;
  color: #721c24;
}

.form-message p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}

.form-message p + p {
  margin-top: 0.75rem;
}

.form-message strong {
  font-weight: 700;
  font-size: 18px;
}

/* ---- Carte atelier enrichie (page contact) ---- */
.contact-card--atelier {
  cursor: default;
  flex-wrap: wrap;
}

.contact-card-atelier-map {
  width: 100%;
  margin-top: 1rem;
  border-radius: 8px;
  overflow: hidden;
  line-height: 0;
}

.contact-card-atelier-map iframe {
  width: 100%;
  height: 180px;
  display: block;
}

.contact-card-sub {
  display: block;
  font-size: 0.8rem;
  color: var(--color-gray-mid);
  margin-top: 0.25rem;
  line-height: 1.5;
}

.contact-card-sub a {
  color: var(--color-wood, #937D68);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact-card-sub a:hover {
  color: var(--color-orange, #E35B24);
}

.contact-card--atelier .contact-card-value a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact-card--atelier .contact-card-value a:hover {
  color: var(--color-wood, #937D68);
}

/* ---- Contact Responsive ---- */
@media (max-width: 768px) {
  .contact-hero {
    padding: 100px 20px 60px;
  }

  .contact-hero h1 {
    font-size: clamp(2.5rem, 10vw, 3.5rem);
    white-space: normal;
  }

  .contact-main {
    padding: 50px 20px;
  }

  .contact-main-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .contact-form-card {
    padding: 1.5rem;
  }

}

/* ========================================
   PAGE TEMPLATE - Blog Archive & Single (PREMIUM)
   ======================================== */

/* Blog Archive Hero Premium */
.blog-hero {
  padding: 140px 20px 100px;
  text-align: center;
  /* Premium gradient background */
  background: linear-gradient(
    135deg,
    var(--creme-papier, #FEFDFB) 0%,
    var(--color-warm, #FBF6EA) 50%,
    var(--creme-chaud, #FAF6F0) 100%
  );
}

.blog-hero-content {
  max-width: 800px;
  margin: 0 auto;
}

.blog-hero h1 {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(64px, 10vw, 96px);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1rem;
  line-height: 1.1;
}

.blog-hero p {
  font-size: clamp(16px, 2.5vw, 18px);
  line-height: 1.6;
  color: var(--bois-profond, #6B5A4A);
}

/* Blog List Premium */
.blog-list {
  padding: 80px 20px 100px;
  max-width: 1200px;
  margin: 0 auto;
  background: var(--color-white, #FFFFFF);
}

/* blog-grid layout défini dans la section Blog Grid plus bas (repeat 3 colonnes) */

/* Blog Card Premium */
.blog-card {
  border: 2px solid rgba(147, 125, 104, 0.15);
  border-radius: 16px;
  overflow: hidden;
  background: var(--creme-papier, #FEFDFB);
  box-shadow: var(--shadow-card);
  transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .blog-card:hover {
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
    border-color: rgba(147, 125, 104, 0.3);
  }
}

.blog-card-media {
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--color-gray-light, #F5F5F5);
}

.blog-card-media a {
  display: block;
  height: 100%;
}

.blog-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: transform 0.6s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .blog-card:hover .blog-card-media img {
    transform: scale(1.05);
    -webkit-transform: scale(1.05);
  }
}

.blog-card-content {
  padding: 2rem;
}

.blog-card h2 {
  margin: 0 0 1rem;
  line-height: 1.3;
}

.blog-card h2 a {
  font-size: clamp(20px, 3vw, 24px);
  font-weight: 600;
  color: var(--bois-sombre, #4A3F35);
  text-decoration: none;
  transition: color 0.3s ease;
  -webkit-transition: color 0.3s ease;
}

@media (hover: hover) {
  .blog-card h2 a:hover {
    color: var(--color-orange, #E35B24);
  }
}

.blog-card-meta {
  display: flex;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1rem;
  font-size: 14px;
  color: var(--bois-dore, #937D68);
}

.blog-card-meta time {
  font-weight: 500;
}

.blog-card p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--bois-profond, #6B5A4A);
  margin: 0 0 1.5rem;
}

.blog-card-link {
  display: inline-flex;
  align-items: center;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-orange, #E35B24);
  text-decoration: none;
  transition: transform 0.3s ease;
  -webkit-transition: transform 0.3s ease;
}

@media (hover: hover) {
  .blog-card-link:hover {
    transform: translateX(4px);
    -webkit-transform: translateX(4px);
  }
}

/* Blog Navigation Premium */
.blog-navigation {
  margin-top: 60px;
  padding-top: 40px;
  border-top: 2px solid rgba(147, 125, 104, 0.15);
}

.blog-navigation .nav-links {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}

.blog-navigation a {
  display: inline-block;
  padding: 12px 24px;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-orange, #E35B24);
  border: 2px solid var(--color-orange, #E35B24);
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: all 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .blog-navigation a:hover {
    background: var(--color-orange, #E35B24);
    color: var(--creme-papier, #FEFDFB);
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
  }
}

.blog-no-posts {
  text-align: center;
  padding: 60px 20px;
  color: var(--bois-profond, #6B5A4A);
}

/* ========================================
   BLOG FEATURED HERO (Article vedette)
   ======================================== */

.blog-featured-hero {
  max-width: 1400px;
  margin: 0 auto;
  padding: 2.5rem 2.5rem 3.5rem;
}

.blog-featured-link {
  display: flex;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  border-radius: var(--radius-lg, 16px);
  border: 2px solid rgba(147, 125, 104, 0.15);
  box-shadow:
    0 4px 20px rgba(147, 125, 104, 0.08),
    0 2px 8px rgba(0, 0, 0, 0.04);
  transition:
    transform 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1)),
    box-shadow 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1)),
    border-color 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .blog-featured-link:hover {
    transform: translateY(-6px);
    box-shadow:
      0 20px 60px rgba(147, 125, 104, 0.15),
      0 8px 24px rgba(0, 0, 0, 0.1);
    border-color: rgba(147, 125, 104, 0.3);
  }
}

.blog-featured-media {
  flex: 0 0 55%;
  overflow: hidden;
  position: relative;
}

.blog-featured-bg {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  display: block;
  transition: transform 0.6s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .blog-featured-link:hover .blog-featured-bg {
    transform: scale(1.05);
  }
}

.blog-featured-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 3rem;
  background: var(--color-cream, #FEFDFB);
}

.blog-featured-date {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 1rem;
}

.blog-featured-content h2 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 800;
  color: var(--color-dark, #323232);
  margin: 0 0 1rem;
  line-height: 1.25;
}

.blog-featured-content p {
  font-size: 1rem;
  font-weight: 400;
  color: #666;
  line-height: 1.7;
  margin: 0 0 2rem;
}

.blog-featured-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-white, #FFFFFF);
  padding: 1rem 2rem;
  background: var(--gradient-cta);
  border: none;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  transition: all 0.3s var(--ease-expo, cubic-bezier(0.87, 0, 0.13, 1));
}

@media (hover: hover) {
  .blog-featured-link:hover .blog-featured-cta {
    background: linear-gradient(180deg, #D14F1C 0%, #B8431A 100%);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
    transform: translateX(5px);
  }
}

/* Responsive: Tablet */
@media (max-width: 1024px) {
  .blog-featured-hero {
    padding: 0 1.875rem 2.5rem;
  }

  .blog-featured-content {
    padding: 2rem;
  }
}

/* Responsive: Mobile */
@media (max-width: 640px) {
  .blog-featured-hero {
    padding: 0 1rem 2rem;
  }

  .blog-featured-link {
    flex-direction: column;
  }

  .blog-featured-media {
    flex: none;
    aspect-ratio: 16 / 9;
  }

  .blog-featured-content {
    padding: 1.5rem;
  }

  .blog-featured-content h2 {
    font-size: clamp(1.25rem, 6vw, 1.75rem);
  }

  .blog-featured-content p {
    font-size: 0.95rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .blog-featured-cta {
    padding: 0.75rem 1.5rem;
    font-size: 0.8rem;
  }
}

/* Blog Grid Section */
.blog-grid-section {
  background: var(--color-white, #FFFFFF);
  padding: 80px 40px;
}
.blog-grid-section.advice-section--warm {
  background: var(--color-warm, #FBF6EA);
}

.blog-grid-container {
  max-width: 1400px;
  margin: 0 auto;
}

.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 60px;
}

.blog-grid-card {
  background: var(--color-white, #FFFFFF);
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
}

@media (hover: hover) {
  .blog-grid-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(147, 125, 104, 0.15);
  }
}

.blog-grid-media {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: var(--creme-chaud, #FAF6F0);
}

.blog-grid-media a {
  display: block;
  height: 100%;
}

.blog-grid-media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  transition: transform 0.5s ease;
}

@media (hover: hover) {
  .blog-grid-card:hover .blog-grid-media img {
    transform: scale(1.05);
  }
}

.blog-grid-content {
  padding: 24px;
}

.blog-grid-content h3 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.4;
  margin: 0 0 12px;
  color: var(--color-dark, #323232);
}

.blog-grid-content h3 a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

@media (hover: hover) {
  .blog-grid-content h3 a:hover {
    color: var(--color-orange, #E35B24);
  }
}

.blog-grid-content > p {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #666;
  margin: 0 0 16px;
}

.blog-grid-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 16px;
  border-top: 1px solid #eee;
}

.blog-grid-date {
  font-size: 0.875rem;
  color: #999;
  font-weight: 500;
}

.blog-grid-link {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  text-decoration: none;
  transition: transform 0.2s ease;
  display: inline-block;
}

@media (hover: hover) {
  .blog-grid-link:hover {
    transform: translateX(4px);
  }
}

/* Blog Pagination */
.blog-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 40px;
}

.blog-pagination a,
.blog-pagination .current {
  display: inline-block;
  padding: 10px 16px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 500;
  font-size: 0.95rem;
  transition: all 0.2s ease;
}

.blog-pagination a {
  background: var(--color-white, #FFFFFF);
  color: var(--color-dark, #323232);
  border: 1px solid #ddd;
}

@media (hover: hover) {
  .blog-pagination a:hover {
    background: var(--color-orange, #E35B24);
    color: white;
    border-color: var(--color-orange, #E35B24);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(230, 126, 34, 0.25);
  }
}

.blog-pagination .current {
  background: var(--color-orange, #E35B24);
  color: white;
  border: 1px solid var(--color-orange, #E35B24);
  box-shadow: 0 4px 12px rgba(230, 126, 34, 0.25);
}

.blog-pagination .dots {
  padding: 10px 8px;
  color: #999;
}

/* Responsive: Tablet */
@media (max-width: 1024px) {
  .blog-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  .blog-grid-section {
    padding: 60px 30px;
  }
}

/* Responsive: Mobile */
@media (max-width: 640px) {
  .blog-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .blog-grid-section {
    padding: 40px 16px;
  }

  .blog-grid-content {
    padding: 20px;
  }

  .blog-grid-content h3 {
    font-size: 1.1rem;
  }

  .blog-pagination {
    flex-wrap: wrap;
    gap: 6px;
  }

  .blog-pagination a,
  .blog-pagination .current {
    padding: 8px 12px;
    font-size: 0.875rem;
  }
}

/* Single Post Premium */
.single-post {
  background: var(--color-white, #FFFFFF);
}

.single-post-header {
  padding: 140px 20px 100px;
  text-align: center;
  /* Premium gradient background */
  background: linear-gradient(
    135deg,
    var(--creme-papier, #FEFDFB) 0%,
    var(--color-warm, #FBF6EA) 50%,
    var(--creme-chaud, #FAF6F0) 100%
  );
}

.single-post-header-content {
  max-width: 900px;
  margin: 0 auto;
}

.single-post-header h1 {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(52px, 8vw, 80px);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.single-post-meta {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: var(--bois-dore, #937D68);
}

.single-post-meta time {
  font-weight: 500;
}

.single-post-category {
  padding: 6px 16px;
  background: rgba(147, 125, 104, 0.15);
  border-radius: 20px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 13px;
  text-decoration: none;
  color: inherit;
  transition: background 0.2s;
}

a.single-post-category:hover {
  background: rgba(227, 91, 36, 0.2);
  color: var(--color-orange, #E35B24);
}

.single-post-featured {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  margin-top: -40px;
  position: relative;
  z-index: 1;
}

.single-post-featured img {
  width: 100%;
  max-width: 800px;
  height: auto;
  border-radius: 16px;
  box-shadow:
    0 16px 48px rgba(0, 0, 0, 0.12),
    0 8px 24px rgba(0, 0, 0, 0.08);
  display: block;
  margin: 0 auto;
}

.single-post-back-wrap {
  text-align: center;
  margin: 0 auto 2.5rem;
  padding: 0 20px;
}

.single-post-back {
  display: inline-block;
  padding: 0.75rem 2rem;
  background: var(--color-wood, #937D68);
  border: 1.5px solid var(--color-wood, #937D68);
  color: #fff;
  border-radius: 50px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  -webkit-transition: background-color 0.2s ease, border-color 0.2s ease, -webkit-transform 0.2s ease;
}

@media (hover: hover) {
  .single-post-back:hover {
    background: var(--color-wood-dark, #6b5644);
    border-color: var(--color-wood-dark, #6b5644);
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
  }
}

.single-post-content {
  max-width: 800px;
  margin: 0 auto;
  padding: 80px 20px;
  font-size: 17px;
  line-height: 1.8;
  color: var(--bois-profond, #6B5A4A);
}

.single-post-content p {
  margin-bottom: 1.5rem;
}

.single-post-content h2 {
  font-size: clamp(22px, 4vw, 28px);
  font-weight: 600;
  color: var(--bois-sombre, #4A3F35);
  margin: 3rem 0 1.5rem;
}

.single-post-content h3 {
  font-size: clamp(18px, 3.5vw, 22px);
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  margin: 2.5rem 0 1rem;
}

.single-post-content figcaption {
  text-align: center;
  margin-top: 0.5rem;
  font-size: 14px;
  color: var(--color-wood, #937D68);
  font-style: italic;
}

.single-post-content figure {
  margin-bottom: 1.5rem;
}

.single-post-content figure img {
  margin-bottom: 0;
}

.single-post-content img {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 12px;
  margin: 2rem auto;
  display: block;
}

@media (max-width: 600px) {
  .single-post-content img {
    width: calc(100% + 40px);
    max-width: none;
    margin-left: -20px;
    margin-right: -20px;
    border-radius: 0;
  }
}

.single-post-content blockquote {
  background: var(--color-warm, #FBF6EA);
  border: 1px solid rgba(147, 125, 104, 0.1);
  border-left: 3px solid var(--color-orange, #E35B24);
  border-radius: 12px;
  padding: 1.5rem 2rem;
  margin: 2.5rem 0;
  position: relative;
  box-shadow: 0 2px 8px rgba(147, 125, 104, 0.08);
}

.single-post-content blockquote p {
  font-size: 1.05rem;
  font-style: italic;
  line-height: 1.7;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 0;
}

.single-post-content blockquote cite,
.single-post-content blockquote footer {
  display: block;
  margin-top: 0.75rem;
  font-size: 0.85rem;
  font-style: normal;
  font-weight: 600;
  color: var(--bois-dore, #937D68);
}

.single-post-content a {
  color: var(--color-orange, #E35B24);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.3s ease;
  -webkit-transition: opacity 0.3s ease;
}

@media (hover: hover) {
  .single-post-content a:hover {
    opacity: 0.8;
  }
}

/* === FAQ Yoast Block === */
.single-post-content .schema-faq {
  margin: 3rem 0;
  padding: 2rem 0;
  border-top: 2px solid rgba(147, 125, 104, 0.15);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.single-post-content .schema-faq-section {
  background: var(--color-warm, #FBF6EA);
  border-radius: 12px;
  padding: 1rem 1.5rem;
  border: 1px solid rgba(147, 125, 104, 0.1);
  transition: box-shadow 0.3s ease, padding 0.3s ease;
}

.single-post-content .schema-faq-section.faq-open {
  padding-bottom: 1.25rem;
}

.single-post-content .schema-faq-section:hover {
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.12);
}

.single-post-content .schema-faq-question {
  font-size: clamp(16px, 3vw, 19px);
  font-weight: 600;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 0;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  user-select: none;
  -webkit-user-select: none;
}

.single-post-content .schema-faq-question::after {
  content: '';
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--color-wood, #937D68);
  border-bottom: 2px solid var(--color-wood, #937D68);
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  transition: transform 0.3s ease;
  -webkit-transition: -webkit-transform 0.3s ease;
  flex-shrink: 0;
  margin-left: 1rem;
  margin-top: -4px;
}

.single-post-content .schema-faq-section.faq-open .schema-faq-question::after {
  transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg);
  margin-top: 4px;
}

.single-post-content .schema-faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease, padding-top 0.35s ease, margin 0.35s ease;
  padding-top: 0;
  margin: 0;
}

.single-post-content .schema-faq-section.faq-open .schema-faq-answer {
  max-height: 1000px;
  padding-top: 0.75rem;
}

.single-post-content .schema-faq-answer p {
  margin-bottom: 0;
  color: var(--bois-profond, #6B5A4A);
  font-size: 15px;
  line-height: 1.7;
}

.single-post-footer {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px 60px;
  border-top: 2px solid rgba(147, 125, 104, 0.15);
  padding-top: 2rem;
}

.single-post-tags {
  font-size: 15px;
  color: var(--bois-profond, #6B5A4A);
}

.single-post-tags a {
  display: inline-block;
  margin-right: 8px;
  padding: 6px 14px;
  background: rgba(147, 125, 104, 0.1);
  border-radius: 6px;
  color: var(--bois-dore, #937D68);
  text-decoration: none;
  font-weight: 500;
  transition: all 0.3s ease;
  -webkit-transition: all 0.3s ease;
}

@media (hover: hover) {
  .single-post-tags a:hover {
    background: var(--bois-dore, #937D68);
    color: var(--creme-papier, #FEFDFB);
  }
}

.tags-label {
  font-weight: 600;
  margin-right: 8px;
}

/* Post Navigation Premium */
.post-navigation {
  max-width: 1200px;
  margin: 0 auto;
  padding: 30px 20px 40px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1rem;
}

.post-nav-item {
  display: flex;
  align-items: stretch;
  gap: 1rem;
  padding: 0.75rem;
  background: linear-gradient(
    135deg,
    var(--creme-chaud, #FAF6F0) 0%,
    var(--ivoire-doux, #F5EDE4) 100%
  );
  border-radius: 16px;
  border: 1.5px solid rgba(147, 125, 104, 0.15);
  text-decoration: none;
  overflow: hidden;
  transition: transform 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1)), box-shadow 0.3s ease, border-color 0.3s ease;
  -webkit-transition: -webkit-transform 0.3s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1)), box-shadow 0.3s ease, border-color 0.3s ease;
}

.post-nav-thumb {
  flex: 0 0 100px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--color-warm, #FBF6EA);
}

.post-nav-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.post-nav-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.post-nav-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bois-dore, #937D68);
  margin-bottom: 0.35rem;
}

.post-nav-title {
  display: block;
  font-size: clamp(15px, 2.2vw, 17px);
  font-weight: 600;
  color: var(--bois-sombre, #4A3F35);
  line-height: 1.35;
  transition: color 0.3s ease;
  -webkit-transition: color 0.3s ease;
}

@media (hover: hover) {
  .post-nav-item:hover {
    transform: translateY(-3px);
    -webkit-transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08), 0 4px 10px rgba(0, 0, 0, 0.04);
    border-color: rgba(147, 125, 104, 0.3);
  }

  .post-nav-item:hover .post-nav-title {
    color: var(--color-orange, #E35B24);
  }
}

.post-nav-next {
  flex-direction: row-reverse;
}

.post-nav-next .post-nav-text {
  text-align: right;
}

@media (max-width: 768px) {
  .advice-hero h1,
  .blog-hero h1 {
    font-size: 42px;
  }
}

/* ========================================
   COMPONENTS - Breadcrumbs
   ======================================== */

.breadcrumbs {
  padding: 8px 20px;
  font-size: 13px;
  color: var(--color-gray-mid);
  background: transparent;
  text-align: center; /* Center breadcrumbs */
}

.breadcrumbs-inner {
  display: flex;
  align-items: center;
  justify-content: center; /* Center breadcrumbs horizontally */
  flex-wrap: wrap;
  gap: 2px;
}

.breadcrumbs a {
  color: var(--color-gray-mid);
  text-decoration: none;
  transition: color 0.2s;
}

@media (hover: hover) {
  .breadcrumbs a:hover {
    color: var(--color-wood);
  }
}

.breadcrumb-separator {
  display: inline-flex;
  align-items: center;
  color: var(--color-wood);
  opacity: 0.45;
  margin: 0 6px;
  transition: opacity 0.2s;
}

@media (hover: hover) {
  .breadcrumbs:hover .breadcrumb-separator {
    opacity: 0.7;
  }
}

.breadcrumb-separator svg {
  display: block;
}

.breadcrumb-current {
  color: var(--color-dark);
  font-weight: 500;
}

@media (max-width: 768px) {
  .breadcrumbs {
    padding: 8px 16px;
  }
}

/* ========================================
   CINÉTIQUE - Custom Cursor
   ======================================== */

.cursor-custom {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 99999;
}

.cursor-dot {
  width: 8px;
  height: 8px;
  background: var(--color-orange);
  border-radius: 50%;
  position: absolute;
  transform: translate(-50%, -50%);
  transition: transform 0.15s ease;
}

.cursor-outline {
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-orange);
  border-radius: 50%;
  position: absolute;
  transform: translate(-50%, -50%);
  transition: all 0.3s ease;
}

body.cursor-hover .cursor-outline {
  width: 60px;
  height: 60px;
  border-color: var(--color-orange);
}

body.cursor-hover .cursor-dot {
  transform: translate(-50%, -50%) scale(1.5);
  background: var(--color-orange);
}

/* ========================================
   CINÉTIQUE - Header Architectural
   ======================================== */

.header-architectural {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(254, 253, 251, 0.95);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(50, 50, 50, 0.1);
}

.header-architectural .header-content {
  max-width: 1600px;
  margin: 0 auto;
  padding: 1.5rem 3rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo-architectural {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.logo-circle {
  width: 40px;
  height: 40px;
}

.logo-svg {
  width: 100%;
  height: 100%;
  color: var(--color-dark);
}

.logo-architectural .logo-text {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 400;
  color: var(--color-dark);
}

.header-architectural .header-right {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.header-architectural .cart-indicator {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border: 1px solid var(--color-gray-mid);
  border-radius: 50px;
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--color-dark);
  text-decoration: none;
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .header-architectural .cart-indicator:hover {
    border-color: var(--color-wood);
    background: var(--color-warm);
    transform: translateY(-2px);
  }
}

.header-architectural .cart-icon {
  color: var(--color-wood);
}

.header-architectural .menu-toggle {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: transparent;
  border: none;
  color: var(--color-dark);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  cursor: pointer;
  transition: color 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .header-architectural .menu-toggle:hover {
    color: var(--color-wood);
  }
}

.header-architectural .menu-icon {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 24px;
}

.header-architectural .menu-icon span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--color-dark);
  transition: all 0.3s var(--ease-expo);
}

/* ========================================
   CINÉTIQUE - Menu Overlay
   ======================================== */

.menu-overlay-kinetic {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: var(--color-cream);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.6s var(--ease-expo);
}

.menu-overlay-kinetic.active {
  opacity: 1;
  visibility: visible;
}

.menu-overlay-inner {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 6rem;
  max-width: 1400px;
  padding: 3rem;
}

.menu-main {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.menu-main .menu-item {
  font-family: var(--font-body);
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 900;
  color: var(--color-dark);
  text-decoration: none;
  position: relative;
  overflow: hidden;
  padding: 0.25rem 0;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.5s var(--ease-expo);
}

.menu-overlay-kinetic.active .menu-item {
  opacity: 1;
  transform: translateY(0);
}

.menu-main .menu-item:nth-child(1) { transition-delay: 0.1s; }
.menu-main .menu-item:nth-child(2) { transition-delay: 0.15s; }
.menu-main .menu-item:nth-child(3) { transition-delay: 0.2s; }
.menu-main .menu-item:nth-child(4) { transition-delay: 0.25s; }
.menu-main .menu-item:nth-child(5) { transition-delay: 0.3s; }
.menu-main .menu-item:nth-child(6) { transition-delay: 0.35s; }

.menu-main .menu-item::before {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  color: var(--color-orange);
  transform: translateY(100%);
  transition: transform 0.4s var(--ease-expo);
}

@media (hover: hover) {
  .menu-main .menu-item:hover {
    color: transparent;
  }
}

@media (hover: hover) {
  .menu-main .menu-item:hover::before {
    transform: translateY(0);
  }
}

.menu-details {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  justify-content: center;
  padding-top: 2rem;
}

.menu-block h4 {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-gray);
  margin-bottom: 0.75rem;
}

.menu-block p {
  font-size: 0.95rem;
  font-weight: 300;
  color: var(--color-dark);
  line-height: 1.8;
}

.menu-block a {
  color: var(--color-wood);
  text-decoration: none;
  transition: color 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .menu-block a:hover {
    color: var(--color-orange);
  }
}

/* ========================================
   HOMEPAGE FULLSCREEN CAROUSEL
   ======================================== */

.homepage-carousel-fullscreen {
  position: relative;
  width: 100vw;
  left: 50%;
  transform: translateX(-50%);
  overflow-x: hidden;
}

.carousel-container {
  position: relative;
  width: 100%;
  height: 90vh;
  overflow: hidden;
}

.carousel-slides {
  position: relative;
  width: 100%;
  height: 100%;
}

.carousel-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1s var(--ease-smooth);
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  overflow: hidden;
}

.carousel-slide:first-child {
  opacity: 1;
  z-index: 1;
}

.carousel-slide-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

.carousel-slide.active {
  opacity: 1;
  z-index: 1;
}

.carousel-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 35%,
    rgba(0, 0, 0, 0.45) 70%,
    rgba(0, 0, 0, 0.65) 100%
  );
  z-index: 1;
  pointer-events: none; /* L'overlay est décoratif – laisse passer les clics */
}

/* H1 + H2 hero texte centré en bas du carousel */
.carousel-hero-text {
  position: absolute;
  bottom: 3.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  text-align: center;
  width: 100%;
  padding: 0 3rem;
  pointer-events: none;
}

.carousel-hero-title {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: clamp(1rem, 1.8vw, 1.7rem);
  font-weight: 600;
  color: var(--color-white);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.6);
  margin: 0 0 1rem 0;
  line-height: 1.2;
}

.carousel-hero-subtitle {
  font-family: var(--font-display, 'Square Peg', cursive);
  font-size: clamp(2.5rem, 4.5vw, 5.2rem);
  font-weight: 400;
  font-style: normal;
  color: #FBF6EA;
  text-shadow: 0 2px 15px rgba(0, 0, 0, 0.6);
  margin: 0;
  line-height: 0.8;
}

/* Mobile : ajuster H1 (une ligne) et H2 (deux lignes max) */
@media (max-width: 768px) {
  .carousel-hero-title {
    font-size: clamp(0.95rem, 2vw, 1.7rem);
    letter-spacing: 0.05em;
    white-space: nowrap;
  }

  .carousel-hero-subtitle {
    font-size: clamp(1.9rem, 4.5vw, 3.2rem);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-width: 100%;
    margin-bottom: 1rem;
  }
}

/* Nom du produit : petit, bas-droite, non cliquable */
.carousel-content {
  position: absolute;
  bottom: 1.75rem;
  right: 2.5rem;
  z-index: 2;
  text-align: right;
}

.carousel-product-name {
  font-size: 0.9rem; /* Base pour .product-firstname (0.75em) et .product-restname (1.6em) */
  margin: 0;
  color: rgba(255, 255, 255, 0.65);
  /* Pas de font-family ni text-transform : les spans .product-firstname/.product-restname les définissent */
}

.carousel-product-price {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 1.5rem 0;
  color: var(--color-white);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 0.5rem;
}

.carousel-product-price .price-label {
  font-size: 1rem;
  font-weight: 400;
  opacity: 0.9;
}

.carousel-btn-discover {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 0.5rem;
  padding: 0.65rem 1.5rem;
  background: var(--gradient-cta);
  color: var(--color-white);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .carousel-btn-discover:hover {
    background: linear-gradient(180deg, #D14F1C 0%, #B8431A 100%);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
    transform: translateY(-2px);
    color: white;
  }
}

.carousel-btn-discover svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
}

/* Navigation Dots */
.carousel-dots {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 1rem;
}

.carousel-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid var(--color-white);
  background: transparent;
  cursor: pointer;
  transition: all 0.3s var(--ease-smooth);
  padding: 0;
}

@media (hover: hover) {
  .carousel-dot:hover {
    background: rgba(255, 255, 255, 0.5);
    transform: scale(1.2);
  }
}

.carousel-dot.active {
  background: var(--color-white);
}

/* Mobile Responsive */
@media (max-width: 768px) {
  .carousel-hero-text {
    padding: 0 2rem;
  }

  .carousel-content {
    right: 1.25rem;
    bottom: 1.25rem;
  }
}

/* Small mobile carousel */
@media (max-width: 480px) {
  .carousel-hero-text {
    padding: 0 1.25rem;
  }
}

/* ========================================
   CINÉTIQUE - Bento Grid Layout
   ======================================== */

.hero-bento {
  padding: 3rem 3rem 2rem;
  max-width: 1600px;
  margin: 0 auto;
  overflow: clip; /* 'clip' évite le débordement sans créer de scroll container (évite overflow-y: auto implicite) */
}

.bento-container {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1.5rem;
  grid-auto-rows: 200px;
  grid-auto-flow: dense;
}

.bento-card {
  position: relative;
  background: var(--color-white);
  border: 1px solid var(--color-gray-light);
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.5s var(--ease-expo);
}

@media (hover: hover) {
  .bento-card:hover {
    border-color: var(--color-wood);
    box-shadow: var(--shadow-card-hover);
  }
}

@media (hover: hover) {
  .bento-card:hover {
    transform: translateY(-2px);
  }
}

/* Hero Card - Large */
.bento-hero {
  grid-column: span 8;
  grid-row: span 3;
}

.bento-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  -webkit-transition: -webkit-transform 0.6s var(--ease-expo);
  transition: transform 0.6s var(--ease-expo);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.bento-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  -webkit-transition: -webkit-transform 0.6s var(--ease-expo);
  transition: transform 0.6s var(--ease-expo);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  z-index: 0;
}

.bento-bg-img--bottom-right {
  object-position: bottom right;
}

@media (hover: hover) {
  .bento-card:hover .bento-bg,
  .bento-card:hover .bento-bg-img {
    -webkit-transform: scale(1.05) translateZ(0);
    transform: scale(1.05);
  }
}

.bento-hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(50, 50, 50, 0.7) 0%, rgba(50, 50, 50, 0.3) 100%);
  z-index: 1;
}

.bento-content {
  position: relative;
  z-index: 2;
  padding: 3rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.bento-label {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-white);
  background: var(--color-orange);
  padding: 0.5rem 1.25rem;
  border-radius: 50px;
  margin-bottom: 1rem;
  box-shadow: 0 4px 12px rgba(230, 126, 34, 0.3);
}

.bento-title {
  font-family: var(--font-body);
  font-size: clamp(3rem, 5vw, 5rem);
  font-weight: 900;
  line-height: 1.1;
  margin-bottom: 0.25rem;
  color: var(--color-white);
}

.bento-category {
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-cream);
  opacity: 0.85;
  margin: 0;
}

.bento-text {
  font-size: 1.125rem;
  font-weight: 300;
  color: var(--color-cream);
  max-width: 400px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}

.hero-cta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.5rem;
  gap: 2rem;
}

.hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2rem;
  background: var(--gradient-cta);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-decoration: none;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  transition: all 0.3s var(--ease-expo);
}

@media (hover: hover) {
  .hero-cta:hover {
    background: linear-gradient(180deg, #D14F1C 0%, #B8431A 100%);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
    color: var(--color-white);
    transform: translateX(5px);
  }
}

.hero-cta svg {
  transition: transform 0.3s var(--ease-expo);
}

@media (hover: hover) {
  .hero-cta:hover svg {
    transform: translateX(5px);
  }
}

.bento-corner-info {
  text-align: right;
  opacity: 0;
transform: translateY(15px);
  transition: all 0.4s var(--ease-expo) 0.2s;
}

@media (hover: hover) {
  .bento-card:hover .bento-corner-info {
    opacity: 1;
    transform: translateY(0);
  }
}

.corner-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-cream);
  margin-bottom: 0.25rem;
}

.corner-price {
  font-family: var(--font-body);
  font-size: 2.5rem;
  font-weight: 900;
  color: var(--color-orange);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

/* Statement Card */
.bento-statement {
  grid-column: span 4;
  grid-row: span 2;
  background: var(--color-warm);
}

.statement-inner {
  padding: 2.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.statement-number {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 900;
  color: var(--color-wood);
  opacity: 0.8;
}

.statement-text {
  font-family: var(--font-display);
  font-size: 2.5rem; /* Fallback for older browsers */
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-dark);
  overflow-wrap: break-word;
  word-wrap: break-word;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Dancing Script has consistent rendering across browsers - no Safari-specific adjustments needed */

.statement-author {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  font-weight: 500;
  font-style: italic;
  letter-spacing: 0.03em;
  color: var(--bois-sombre, #4A3F35);
}

/* Product Cards */
.bento-product {
  grid-column: span 4;
  grid-row: span 2;
  cursor: pointer;
}

.bento-product .product-image {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform 0.6s var(--ease-expo);
}

@media (hover: hover) {
  .bento-product:hover .product-image {
    transform: scale(1.1);
  }
}

.bento-product .product-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, rgba(50, 50, 50, 0.95) 0%, rgba(50, 50, 50, 0.4) 60%, transparent 100%);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.5rem;
  opacity: 0;
  transition: opacity 0.4s var(--ease-expo);
}

@media (hover: hover) {
  .bento-product:hover .product-overlay {
    opacity: 1;
  }
}

.product-badge {
  align-self: flex-start;
  padding: 0.5rem 1rem;
  background: var(--color-orange);
  color: var(--color-white);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border-radius: 50px;
  transform: translateY(-10px);
  transition: transform 0.4s var(--ease-expo);
}

@media (hover: hover) {
  .bento-product:hover .product-badge {
    transform: translateY(0);
  }
}

.product-info-reveal {
  transform: translateY(20px);
  transition: transform 0.4s var(--ease-expo) 0.1s;
}

@media (hover: hover) {
  .bento-product:hover .product-info-reveal {
    transform: translateY(0);
  }
}

.bento-product .product-name {
  font-family: var(--font-body);
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: var(--color-white);
}

.bento-product .product-cat {
  font-size: 0.875rem;
  font-weight: 300;
  color: var(--color-cream);
  margin-bottom: 1rem;
}

/* Featured Product Card (static, no hover effects) */
.bento-product-featured {
  grid-column: span 4;
  grid-row: span 2;
  cursor: pointer;
}

.bento-product-featured .bento-bg {
  transition: transform 0.6s var(--ease-expo);
}

@media (hover: hover) {
  .bento-product-featured:hover .bento-bg {
    transform: scale(1.05);
  }
}

.bento-product-featured-info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.5rem;
  background: linear-gradient(to top, rgba(50, 50, 50, 0.85) 0%, transparent 100%);
  z-index: 2;
}

.bento-product-featured-info h3 {
  font-family: var(--font-body);
  font-size: 2rem;
  font-weight: 800;
  color: var(--color-white);
  margin: 0 0 0.75rem 0;
}

.bento-product-featured-price {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: var(--color-wood);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 900;
  border-radius: 50px;
}

.bento-product-featured-badge {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  padding: 0.5rem 1rem;
  background: var(--color-orange);
  color: var(--color-white);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border-radius: 50px;
  z-index: 2;
}

/* Small Product Cards (2 squares) */
.bento-product-small {
  grid-column: span 2;
  grid-row: span 1;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.bento-product-small .product-image-small {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform 0.6s var(--ease-expo);
}

@media (hover: hover) {
  .bento-product-small:hover .product-image-small {
    transform: scale(1.1);
  }
}

.bento-product-small .product-overlay-small {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(50, 50, 50, 0.9) 0%, transparent 60%);
  display: flex;
  align-items: flex-end;
  padding: 1rem;
  opacity: 0;
  transition: opacity 0.4s var(--ease-expo);
}

@media (hover: hover) {
  .bento-product-small:hover .product-overlay-small {
    opacity: 1;
  }
}

.bento-product-small .product-name-small {
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-white);
  margin: 0;
  line-height: 1.3;
}

.product-price-tag {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: var(--color-wood);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 900;
  border-radius: 50px;
  transform: rotate(-2deg);
}

/* (bento-product-latest removed — now uses bento-product-featured) */

/* Stats Card */
.bento-stats {
  grid-column: span 4;
  grid-row: span 1;
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: 2rem;
  overflow: visible;
  z-index: 10;
}

.stat-block {
  position: relative;
  text-align: center;
  text-decoration: none;
  padding: 1rem 1rem;
  border-radius: var(--radius);
  transition: transform 0.4s var(--ease-smooth), background 0.3s ease;
  overflow: visible;
}

/* Underline indicator showing clickable */
.stat-block::after {
  content: '';
  position: absolute;
  bottom: 0.75rem;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 2px;
  background: var(--color-wood);
  opacity: 0.4;
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .stat-block:hover::after {
    width: 60px;
    opacity: 1;
    background: var(--color-orange);
  }
}

@media (hover: hover) {
  .stat-block:hover {
    transform: translateY(-4px);
    background: rgba(147, 125, 104, 0.08);
  }
}

.stat-content {
  position: relative;
  z-index: 2;
  transition: opacity 0.3s ease;
}

.stat-block strong {
  display: block;
  font-family: var(--font-body);
  font-size: 2rem;
  font-weight: 900;
  color: var(--bois-sombre, #4A3F35); /* Contraste amélioré pour mobile */
  margin-bottom: 0.25rem;
  transition: color 0.3s ease;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8); /* Lisibilité sur fonds variés */
}

@media (hover: hover) {
  .stat-block:hover strong {
    color: var(--color-orange);
  }
}

.stat-block span {
  font-size: 0.75rem;
  font-weight: 600; /* Bold pour meilleure lisibilité mobile */
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--bois-profond, #6B5A4A); /* Contraste amélioré */
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8);
}

/* Hover card with image */
.stat-hover {
  position: absolute;
  bottom: 100%;
  left: 50%;
  -webkit-transform: translateX(-50%) translateY(10px);
  transform: translateX(-50%) translateY(10px);
  width: 180px;
  background: var(--color-white);
  border-radius: var(--radius);
  -webkit-box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  opacity: 0;
  -webkit-transition: opacity 0.4s ease, transform 0.4s ease;
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none;
  z-index: 100;
}

@media (hover: hover) {
  .stat-block:hover .stat-hover {
    opacity: 1;
    -webkit-transform: translateX(-50%) translateY(-8px);
    transform: translateX(-50%) translateY(-8px);
  }
}

.stat-hover img {
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
}

.stat-hover-text {
  display: block;
  padding: 0.75rem 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-dark);
  background: var(--color-white);
  text-align: center;
}

/* Bestseller Badge */
.bento-bestseller-badge {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  padding: 0.5rem 1.25rem;
  background: var(--gradient-cta);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  border-radius: 50px;
  z-index: 3;
  box-shadow: 0 4px 12px rgba(227, 91, 36, 0.3);
}

/* Storytelling Artisanat Card */
.bento-storytelling {
  grid-column: span 4;
  grid-row: span 2;
  background: var(--color-warm);
}


.storytelling-inner {
  padding: 2.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
}

.storytelling-num {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 800;
  color: var(--color-orange, #E35B24);
  letter-spacing: 0.05em;
}

.storytelling-label {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-wood);
}

.storytelling-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.5vw, 3.5rem);
  font-weight: 400;
  line-height: 1.1;
  color: var(--color-dark);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.storytelling-text {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--bois-sombre, #4A3F35);
}

.storytelling-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-orange);
  text-decoration: none;
  margin-top: 0.5rem;
  transition: gap 0.3s var(--ease-expo);
}

@media (hover: hover) {
  .storytelling-link:hover {
    gap: 0.85rem;
    color: var(--color-orange);
  }
}

/* Gift Card */
.bento-giftcard {
  grid-column: span 4;
  grid-row: span 1;
  cursor: pointer;
}

.bento-giftcard .bento-bg {
  transition: transform 0.6s var(--ease-expo);
}

@media (hover: hover) {
  .bento-giftcard:hover .bento-bg {
    transform: scale(1.05);
  }
}

.giftcard-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: 0.4rem 1rem;
  background: var(--color-wood);
  color: #fff;
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border-radius: 50px;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(147, 125, 104, 0.3);
}

.giftcard-info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.25rem;
  background: linear-gradient(to top, rgba(50, 50, 50, 0.9) 0%, transparent 100%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.giftcard-info h3 {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-white);
  margin: 0;
}

.giftcard-price {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: var(--color-wood);
  color: #fff;
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  border-radius: 50px;
  white-space: nowrap;
}

/* Room Picker — "Pour quelle pièce ?" */
.bento-room-picker {
  grid-column: span 12;
  grid-row: span 2;
  background: var(--color-warm, #FBF6EA);
  border: 2px dashed rgba(var(--color-wood-rgb, 147, 125, 104), 0.3);
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.bento-room-picker:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(var(--color-wood-rgb, 147, 125, 104), 0.1);
  border-color: var(--color-wood, #937D68);
}

.room-picker-inner {
  padding: 0 3rem 1.75rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1.25rem;
}

.room-picker-title {
  font-family: var(--font-body);
  font-size: clamp(1.3rem, 2.5vw, 1.75rem);
  font-weight: 700;
  color: var(--color-dark);
  text-align: center;
  margin: 0;
}

.room-picker-cards {
  display: flex;
  justify-content: center;
  gap: 1.25rem;
  width: 100%;
}

.room-card {
  flex: 1;
  max-width: 200px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.5rem 1.25rem;
  background: var(--color-cream, #FEFDFB);
  border: 1.5px solid rgba(227, 91, 36, 0.3);
  border-radius: 16px;
  text-decoration: none;
  transition: all 0.3s var(--ease-expo);
  cursor: pointer;
}

@media (hover: hover) {
  .room-card:hover {
    border-color: var(--color-orange, #E35B24);
    background: rgba(227, 91, 36, 0.06);
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(227, 91, 36, 0.1);
  }
}

.room-card-icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-wood);
  background: var(--color-warm);
  border-radius: 12px;
  transition: all 0.3s ease;
}

.room-card-icon svg {
  width: 30px;
  height: 30px;
}

@media (hover: hover) {
  .room-card:hover .room-card-icon {
    color: var(--color-orange);
    background: rgba(227, 91, 36, 0.08);
  }
}

.room-card-label {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-dark);
}

.room-picker-sub {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.9rem;
}

.room-picker-sub a {
  color: var(--color-wood);
  text-decoration: none;
  font-weight: 500;
  font-style: italic;
  transition: color 0.3s ease;
}

@media (hover: hover) {
  .room-picker-sub a:hover {
    color: var(--color-orange);
  }
}

/* Process Card */
.bento-process {
  grid-column: span 12;
  grid-row: span 2;
  padding: 1.5rem 3rem;
  background: var(--color-warm);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.process-header {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.process-number {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 900;
  color: #5A4A3A;
}

.process-title {
  font-family: var(--font-display);
  font-size: 2.5rem;
  font-size: clamp(1.75rem, 4vw, 4rem);
  font-weight: 400;
  color: #4A3F35;
  margin: 0;
  line-height: 1.2;
  text-transform: none;
}

.process-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
  position: relative;
}

/* Connecting line between steps */
.process-inner::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-wood), var(--color-wood), transparent);
  opacity: 0.3;
  z-index: 0;
}

.process-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  position: relative;
  z-index: 1;
  padding: 0.75rem 0.75rem;
  background: var(--color-warm);
  transition: all 0.4s var(--ease-expo);
  cursor: pointer;
  width: 150px;
  height: 100px;
  border-radius: 12px;
  overflow: hidden;
}

.step-num {
  font-family: var(--font-body);
  font-size: 1.5rem;
  font-weight: 900;
  color: #5A4A3A;
  line-height: 1;
  transition: all 0.4s var(--ease-smooth);
}

.step-text {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-dark);
  transition: opacity 0.4s var(--ease-smooth);
  white-space: nowrap;
}

/* Process step image reveal on hover */
.step-image-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 12px;
  opacity: 0;
  transition: all 0.4s var(--ease-expo);
  z-index: 2;
}

@media (hover: hover) {
  .process-step:hover .step-image-img {
    opacity: 1;
  }
}

@media (hover: hover) {
  .process-step:hover .step-num,
  .process-step:hover .step-text {
    opacity: 0;
  }
}

@media (hover: hover) {
  .process-step:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(147, 125, 104, 0.25);
  }
}

/* CTA Card */
.bento-cta {
  grid-column: span 12;
  grid-row: span 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  padding: 2.5rem;
  background: linear-gradient(135deg, var(--color-orange) 0%, #D35400 100%);
  cursor: pointer;
  text-decoration: none;
  overflow: hidden;
}

.bento-cta::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 50%);
  opacity: 0;
  transition: opacity 0.4s ease;
}

@media (hover: hover) {
  .bento-cta:hover::before {
    opacity: 1;
  }
}

.cta-title {
  font-family: var(--font-body);
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--color-white);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.2;
  position: relative;
  z-index: 1;
}

.bento-cta .cta-button {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2.5rem;
  background: var(--color-white);
  color: var(--color-dark);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s var(--ease-expo);
  position: relative;
  z-index: 1;
}

@media (hover: hover) {
  .bento-cta:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 50px rgba(230, 126, 34, 0.4);
  }
}

@media (hover: hover) {
  .bento-cta .cta-button:hover {
    transform: scale(1.05);
    gap: 1rem;
    background: var(--color-wood);
    color: var(--color-white);
  }
}

/* Atelier Card */
.bento-atelier {
  grid-column: span 8;
  grid-row: span 2;
  min-height: 400px;
}

.bento-atelier::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(50, 50, 50, 0.6) 100%);
  z-index: 1;
}

.atelier-label {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  padding: 0.75rem 1.5rem;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 50px;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--color-dark);
  z-index: 2;
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .bento-atelier:hover .atelier-label {
    background: var(--color-wood);
    color: var(--color-white);
  }
}

/* Bento - Flash Actu Card */
.bento-actu {
  grid-column: span 4;
  grid-row: span 2;
  min-height: 400px;
}

.bento-actu::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(50, 50, 50, 0.7) 100%);
  z-index: 1;
}

.bento-actu-badge {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  padding: 0.4rem 1rem;
  background: var(--color-orange);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 50px;
  z-index: 2;
}

.bento-actu-content {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  right: 2rem;
  z-index: 2;
}

.bento-actu-content h3 {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 600;
  color: #fff;
  margin: 0 0 0.5rem 0;
  line-height: 1.4;
}

.bento-actu-date {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 400;
}
.bento-actu-link {
  display: block;
  position: absolute;
  inset: 0;
  color: inherit;
  text-decoration: none;
}
.bento-actu-all {
  position: absolute;
  bottom: 1rem;
  right: 1.5rem;
  z-index: 3;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  letter-spacing: 0.03em;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}
@media (hover: hover) {
  .bento-actu-all:hover {
    color: #fff;
  }
}

/* Bento - Conseil Card */
.bento-conseil {
  grid-column: span 8;
  grid-row: span 2;
  min-height: 400px;
  background: var(--color-warm);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 2rem 3rem;
  text-align: center;
}

.bento-conseil-badge {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  padding: 0.4rem 1rem;
  background: var(--color-wood);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 50px;
  z-index: 2;
}

.bento-conseil-content {
  z-index: 2;
}

.bento-conseil-content h3 {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 400;
  font-style: italic;
  color: var(--bois-profond, #6B5A4A);
  margin: 0 0 1rem 0;
  line-height: 1.3;
  text-transform: none;
  position: relative;
}

.bento-conseil-content h3::before {
  content: '\201C';
  font-family: Georgia, serif;
  font-size: clamp(5rem, 10vw, 8rem);
  font-style: normal;
  color: var(--color-orange, #E35B24);
  opacity: 0.2;
  position: absolute;
  top: -0.5em;
  left: -0.15em;
  line-height: 1;
}

.bento-conseil-cta {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-orange);
  letter-spacing: 0.03em;
}

@media (hover: hover) {
  .bento-conseil:hover .bento-conseil-cta {
    text-decoration: underline;
  }
}

/* ========================================
   CINÉTIQUE - Collections Section
   ======================================== */

.collections-kinetic {
  padding: 1.5rem 0 0 0;
  overflow-x: hidden;
}

.section-header-kinetic {
  display: flex;
  align-items: baseline;
  gap: 2rem;
  margin-bottom: 0;
  padding: 0 3rem;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}

.section-num {
  display: inline-block;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--color-wood);
  opacity: 0.85;
  margin-right: 0.75rem;
}

.section-title-kinetic {
  font-family: var(--font-body);
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
}

.collections-grid {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  gap: 1.5rem;
  padding: 3.5rem 0 4rem 5rem;
  scroll-padding-left: 5rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.collections-grid::after {
  content: '';
  flex: 0 0 5rem;
}

.collections-grid::-webkit-scrollbar {
  display: none;
}

.collection-card {
  position: relative;
  flex: 0 0 30%;
  aspect-ratio: 3/4;
  max-height: 420px;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  scroll-snap-align: start;
  transition: transform 0.5s var(--ease-expo), box-shadow 0.5s var(--ease-expo);
  box-shadow: var(--shadow-card);
}

@media (hover: hover) {
  .collection-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
  }
}

.collection-visual {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  transition: transform 0.8s var(--ease-expo);
  will-change: transform;
}

.collection-visual-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (hover: hover) {
  .collection-card:hover .collection-visual {
    transform: scale(1.05);
  }
}

.collection-card .collection-details {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.5rem;
  background: linear-gradient(to top, rgba(30, 30, 30, 0.95) 0%, rgba(40, 40, 40, 0.6) 50%, transparent 100%);
  transition: all 0.4s var(--ease-expo);
}

@media (hover: hover) {
  .collection-card:hover .collection-details {
    background: linear-gradient(to top, rgba(50, 50, 50, 0.95) 0%, rgba(50, 50, 50, 0.6) 60%, transparent 100%);
    padding-bottom: 2rem;
  }
}

.collection-card .collection-details h3 {
  font-family: var(--font-body);
  font-size: 2rem;
  font-weight: 700;
  color: var(--color-white);
  margin-bottom: 0.5rem;
}

.collection-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.collection-count {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--color-cream);
  opacity: 0.9;
}

.collection-btn {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-wood);
  transition: all 0.3s var(--ease-expo);
}

@media (hover: hover) {
  .collection-card:hover .collection-btn {
    color: var(--color-orange);
    transform: translateX(5px);
  }
}

/* Responsive card size — tablet */
@media (max-width: 1024px) {
  .collection-card {
    flex: 0 0 72%;
  }
}

/* ========================================
   CINÉTIQUE - Newsletter Section
   ======================================== */

.newsletter-kinetic {
  padding: 3rem 3rem;
  max-width: 1600px;
  margin: 0 auto;
  border-top: 1px solid var(--color-gray-light);
}

.newsletter-kinetic .newsletter-subtitle {
  font-size: 1.125rem;
  font-weight: 300;
  color: var(--color-gray);
  margin: 1rem 0 2rem 4.5rem;
}

.newsletter-kinetic .newsletter-form {
  display: flex;
  gap: 1rem;
  max-width: 600px;
  margin-left: 4.5rem;
}

.newsletter-input-kinetic {
  flex: 1;
  padding: 1.5rem 2rem;
  background: var(--color-white);
  border: 2px solid var(--color-wood);
  border-radius: 50px;
  color: var(--color-dark);
  font-family: var(--font-body);
  font-size: 1.125rem;
  font-weight: 400;
  box-shadow: 0 2px 8px rgba(147, 125, 104, 0.15);
  transition: all 0.3s var(--ease-smooth);
}

.newsletter-input-kinetic:focus {
  outline: none;
  border-color: var(--color-wood);
  background: var(--color-warm);
  box-shadow: 0 4px 12px rgba(147, 125, 104, 0.25);
}

.newsletter-submit-kinetic {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1.25rem 2.5rem;
  background: var(--color-wood);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s var(--ease-expo);
}

@media (hover: hover) {
  .newsletter-submit-kinetic:hover {
    background: var(--color-orange);
    transform: translateX(5px);
  }
}

/* ========================================
   CINÉTIQUE - Footer
   ======================================== */

.footer-kinetic {
  padding: 4rem 3rem 2rem;
  max-width: 1600px;
  margin: 0 auto;
  border-top: 1px solid var(--color-gray-light);
}

.footer-kinetic .footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 1rem;
}

.footer-logo {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 2.5rem;
  color: var(--color-wood);
  text-decoration: none;
  transition: color 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .footer-logo:hover {
    color: var(--color-orange);
  }
}

.footer-kinetic .footer-brand p {
  margin-top: 1rem;
  font-size: 0.95rem;
  font-weight: 300;
  color: var(--color-gray);
  line-height: 1.8;
}

.footer-location {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--color-gray-mid);
}

.footer-atelier-rdv {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.8rem;
  font-style: italic;
  color: var(--color-gray);
  opacity: 0.8;
}

.footer-kinetic .footer-links {
  display: contents;
}

.footer-kinetic .footer-col h4 {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-wood);
  margin-bottom: 1rem;
}

.footer-kinetic .footer-col a,
.footer-kinetic .footer-nav a {
  display: block;
  font-size: 0.95rem;
  font-weight: 300;
  color: var(--color-dark);
  text-decoration: none;
  margin-bottom: 0;
  padding: 0.5rem 0;
  transition: color 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .footer-kinetic .footer-col a:hover,
  .footer-kinetic .footer-nav a:hover {
    color: var(--color-wood);
  }
}

.footer-kinetic .footer-bottom {
  padding-top: 2rem;
  border-top: 1px solid var(--color-gray-light);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.875rem;
  font-weight: 300;
  color: var(--color-gray);
}

.footer-kinetic .footer-legal {
  display: flex;
  gap: 1.5rem;
}

.footer-kinetic .footer-legal a {
  color: var(--color-gray);
  text-decoration: none;
  transition: color 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .footer-kinetic .footer-legal a:hover {
    color: var(--color-wood);
  }
}

/* ========================================
   CINÉTIQUE - Responsive
   ======================================== */

@media (max-width: 1200px) {
  .bento-container {
    grid-template-columns: repeat(6, 1fr);
  }

  .bento-hero {
    grid-column: span 6;
  }

  .bento-statement,
  .bento-product,
  .bento-stats,
  .bento-storytelling,
  .bento-giftcard {
    grid-column: span 3;
  }

  .bento-process,
  .bento-atelier,
  .bento-cta,
  .bento-room-picker {
    grid-column: span 6;
  }

  .bento-actu {
    grid-column: span 6;
  }

  .bento-conseil {
    grid-column: span 6;
  }
}

@media (max-width: 768px) {
  .cursor-custom {
    display: none;
  }

  .header-architectural .header-content {
    padding: 1rem 1.5rem;
  }

  .hero-bento {
    padding: 1.5rem 1rem;
  }

  .collections-kinetic {
    padding: 1.5rem 0;
  }

  .section-header-kinetic {
    padding: 0 1rem;
    gap: 0.25rem;
  }

  .newsletter-kinetic {
    padding: 2rem 1.5rem;
  }

  /* Product page responsive */
  .product-hero.product-hero-cinetique {
    padding: 1.5rem;
  }

  .product-hero-cinetique .product-hero-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .product-summary-header {
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .product-hero-cinetique .product-summary .product_title {
    font-size: 1.5rem;
  }

  .bento-container {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 1rem;
  }

  .bento-hero,
  .bento-statement,
  .bento-product,
  .bento-product-small,
  .bento-stats,
  .bento-process,
  .bento-cta,
  .bento-atelier,
  .bento-actu,
  .bento-conseil,
  .bento-storytelling,
  .bento-giftcard,
  .bento-room-picker {
    grid-column: span 1;
    grid-row: span 1;
  }

  /* Cards that need minimum height for their background images */
  .bento-hero {
    min-height: 300px;
  }

  .bento-product-featured {
    grid-column: span 1;
    min-height: 350px;
  }

  .bento-atelier {
    min-height: 250px;
  }

  .bento-actu {
    min-height: 250px;
  }

  .bento-conseil {
    min-height: 200px;
  }

  .bento-product-small {
    min-height: 200px;
  }

  .bento-giftcard {
    min-height: 200px;
  }

  .room-picker-cards {
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .room-card {
    flex: 0 0 calc(33.33% - 0.5rem);
    min-width: 0;
    padding: 1rem 0.75rem;
  }

  .room-picker-inner {
    padding: 0 1rem 1.5rem;
  }

  /* Stats card: compact on mobile, no forced height */
  .bento-stats {
    min-height: auto;
    padding: 1.5rem;
  }

  /* CTA card: compact */
  .bento-cta {
    min-height: auto;
    padding: 2rem;
  }

  /* Reduce padding on mobile for better fit */
  .bento-content {
    padding: 2rem 1.5rem;
  }

  /* Ensure hero title fits properly */
  .bento-title {
    font-size: clamp(2.5rem, 8vw, 3.5rem);
    line-height: 1.15;
    margin-bottom: 0.75rem;
  }

  .menu-overlay-inner,
  .newsletter-kinetic {
    padding: 2rem 1.5rem;
  }

  .newsletter-kinetic .newsletter-subtitle {
    margin-left: 0;
  }

  .newsletter-kinetic .newsletter-form {
    flex-direction: column;
    max-width: 100%;
    margin-left: 0;
  }

  .newsletter-input-kinetic {
    padding: 1rem 1.5rem;
    font-size: 16px; /* Prevents iOS zoom */
  }

  .newsletter-submit-kinetic {
    justify-content: center;
    padding: 1rem 2rem;
    width: 100%;
  }

  .footer-kinetic .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }

  .footer-kinetic .footer-col h4 {
    font-size: 0.8rem;
  }
}

@media (max-width: 768px) {
  /* Process card: horizontal scroll instead of overflow */
  .bento-process {
    padding: 1.5rem 1rem;
  }

  .process-inner {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0.25rem;
    padding-bottom: 0.5rem;
  }

  .process-step {
    min-width: 70px;
    flex-shrink: 0;
    padding: 0.5rem;
    width: auto;
    height: auto;
  }

  .step-text {
    white-space: normal;
    font-size: 0.6rem;
    text-align: center;
    line-height: 1.2;
  }

  .step-num {
    font-size: 1.25rem;
  }

  /* Bento auto-rows: auto for process to fit content */
  .bento-process {
    grid-row: auto;
  }

  .collections-kinetic {
    padding: 1.5rem 0;
  }

  .section-header-kinetic {
    padding: 0 1rem;
  }

  /* Stats card mobile */
  .stat-hover {
    display: none;
  }

  .stat-block {
    padding: 1rem;
  }

  .bento-stats {
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  /* Product page mobile fixes */
  .product-hero {
    padding: 20px 15px;
  }

  .product-hero-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .product-gallery {
    order: 1;
  }

  .product-summary {
    order: 2;
  }

  .product-summary .product_title {
    font-size: 1.25rem;
  }

  .product-delivery-info {
    flex-direction: column;
    gap: 0.75rem;
  }

  .product-personalisation {
    padding: 15px;
  }

  .product-details,
  .product-assurances,
  .product-faq {
    padding: 30px 15px;
  }
  .product-related {
    padding: 30px 0;
  }
  .product-related-header {
    padding: 0 1.5rem;
  }

  .product-details h2 {
    font-size: 36px;
  }

  /* Ensure WooCommerce form is visible */
  .product-summary form.cart,
  .product-summary .variations_form,
  .product-summary .single_add_to_cart_button {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .product-summary .variations {
    width: 100%;
  }

  .product-summary .variations td {
    display: block;
    width: 100%;
    padding: 5px 0;
  }

  .product-summary .variations select {
    width: 100%;
    padding: 12px;
    font-size: 16px; /* Prevents iOS zoom */
  }

  .product-summary .single_add_to_cart_button {
    width: 100%;
    padding: 12px !important; /* Réduit hauteur bouton mobile */
    font-size: 1rem;
  }

  /* Sticky bar mobile adjustments */
  .sticky-add-to-cart-inner {
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
  }

  .sticky-product-info {
    flex-direction: row;
    justify-content: space-between;
    width: 100%;
  }

  .sticky-product-name {
    max-width: none;
  }

  .sticky-add-to-cart-btn {
    width: 100%;
  }
}

/* Footer stacking on small screens */
@media (max-width: 540px) {
  .footer-kinetic .footer-grid {
    grid-template-columns: 1fr;
  }

  .footer-kinetic .footer-bottom {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }
}

/* Ultra-small mobile (iPhone SE, small Android) */
@media (max-width: 375px) {
  .hero-bento {
    padding: 1rem 0.75rem;
  }

  .collections-kinetic {
    padding: 1rem 0;
  }

  .section-header-kinetic {
    padding: 0 0.75rem;
  }

  .bento-container {
    gap: 1rem;
    grid-auto-rows: minmax(250px, auto);
  }

  .bento-content {
    padding: 1.5rem 1rem;
  }

  .bento-title {
    font-size: clamp(2rem, 10vw, 2.5rem);
  }

  .bento-text {
    font-size: 0.95rem;
  }

  .hero-cta {
    padding: 0.75rem 1.25rem;
    font-size: 0.8rem;
  }

  .process-step {
    min-width: 60px;
  }

  .collection-card .collection-details h3 {
    font-size: 1.5rem;
  }

  .stat-block strong {
    font-size: 1.25rem;
  }

  .newsletter-input-kinetic {
    font-size: 16px; /* Prevents iOS zoom */
  }
}

/* ========================================
   WOOCOMMERCE - Shop Page Hero
   ======================================== */

/* Hero style artisan pour /nos-creations/ */
.shop-hero-artisan {
  padding: 140px 20px 100px;
  text-align: center;
  background: url('https://atelier-sapi.fr/wp-content/uploads/2026/02/Bandeau-1.jpg') center/cover no-repeat;
  position: relative;
}

.shop-hero-artisan::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(74, 63, 53, 0.75);
}

.shop-hero-artisan-inner {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
}

.shop-hero-artisan h1 {
  font-family: var(--font-display, 'Square Peg', Georgia, serif);
  font-size: clamp(72px, 14vw, 150px);
  font-weight: 400;
  color: #fff;
  margin-bottom: 1.5rem;
  line-height: 1.1;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.shop-hero-artisan-subtitle {
  font-size: 1.25rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.95);
  max-width: 600px;
  margin: 0 auto;
  font-weight: 400;
}

.shop-hero-artisan .seo-cta-maillage-inline {
  color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 768px) {
  .shop-hero-artisan {
    padding: 100px 20px 60px;
  }

  .shop-hero-artisan h1 {
    font-size: clamp(48px, 12vw, 80px);
  }
}

.shop-hero-cinetique {
  position: relative;
  padding: 2rem 3rem 1.5rem;
  background: var(--color-cream);
  text-align: left;
}

/* Visual Hero Grid Layout */
.shop-hero-cinetique.shop-hero-visual {
  text-align: left;
  padding: 6rem 3rem 4rem;
}

.shop-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  max-width: 1400px;
  margin: 0 auto;
  align-items: center;
}

.shop-hero-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.shop-hero-cinetique .section-number {
  display: block;
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
  margin-bottom: 1rem;
}

.shop-hero-cinetique h1 {
  font-family: var(--font-body);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 900;
  color: var(--color-dark);
  margin-bottom: 1rem;
}

.shop-hero-cinetique .shop-subtitle {
  font-size: 1.125rem;
  font-weight: 300;
  color: var(--color-gray);
  max-width: 600px;
  margin: 0 0 2rem 0;
}

.shop-hero-visual .shop-subtitle {
  margin: 0 0 2rem 0;
}

/* Desktop: center title and subtitle */
@media (min-width: 769px) {
  .shop-hero-cinetique {
    text-align: center;
  }

  .shop-hero-cinetique .shop-subtitle {
    margin: 0 auto 2rem auto !important;
  }
}

/* Hero CTA */
.shop-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.shop-hero-cta svg {
  -webkit-transition: transform 0.3s var(--ease-smooth);
  transition: transform 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .shop-hero-cta:hover svg {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
}

/* Hero Visual Collage */
.shop-hero-visual-collage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 1rem;
  height: 400px;
}

.collage-item {
  overflow: hidden;
  border-radius: 12px;
  position: relative;
}

.collage-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  -webkit-transition: transform 0.5s var(--ease-smooth);
  transition: transform 0.5s var(--ease-smooth);
}

@media (hover: hover) {
  .collage-item:hover img {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
  }
}

.collage-main {
  grid-column: 1;
  grid-row: 1 / 3;
}

.collage-accent-1 {
  grid-column: 2;
  grid-row: 1;
}

.collage-accent-2 {
  grid-column: 2;
  grid-row: 2;
}

/* Responsive Hero */
@media (max-width: 968px) {
  .shop-hero-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .shop-hero-cinetique.shop-hero-visual {
    text-align: center;
  }

  .shop-hero-content {
    align-items: center;
  }

  .shop-hero-visual-collage {
    height: 300px;
    max-width: 500px;
    margin: 0 auto;
  }
}

@media (max-width: 600px) {
  .shop-hero-visual-collage {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    height: auto;
  }

  .collage-main {
    grid-column: 1;
    grid-row: 1;
    height: 200px;
  }

  .collage-accent-1,
  .collage-accent-2 {
    display: none;
  }
}

/* ========================================
   SHOP PAGE - Magazine-Style Hero
   ======================================== */

.shop-hero-cinetique.shop-hero-magazine {
  position: relative;
  overflow: hidden;
  height: clamp(300px, 45vh, 500px);
  padding: 0;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: flex-end;
  align-items: flex-end;
  background: var(--color-dark);
}

.shop-hero-magazine-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  -o-object-fit: cover;
  object-fit: cover;
  object-position: center;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.shop-hero-magazine-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to top,
    rgba(50, 50, 50, 0.85) 0%,
    rgba(50, 50, 50, 0.4) 50%,
    rgba(50, 50, 50, 0.15) 100%
  );
  z-index: 1;
  pointer-events: none;
}

.shop-hero-magazine-content {
  position: relative;
  z-index: 2;
  max-width: 700px;
  padding: 3rem 4rem;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.shop-hero-magazine h1 {
  font-family: var(--font-body);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 900;
  color: var(--color-white);
  margin-bottom: 0.75rem;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.shop-hero-magazine .shop-subtitle {
  font-size: 1.125rem;
  font-weight: 300;
  color: var(--creme-papier, #FEFDFB);
  max-width: 550px;
  margin: 0 0 1.5rem 0;
  line-height: 1.6;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

.shop-hero-magazine .shop-hero-cta {
  display: -webkit-inline-flex;
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  gap: 0.5rem;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 12px 28px;
  border-radius: var(--radius);
  background: var(--color-orange);
  color: var(--color-white);
  border: none;
  -webkit-transition: background 0.2s ease, -webkit-transform 0.2s ease;
  transition: background 0.2s ease, transform 0.2s ease;
}

@media (hover: hover) {
  .shop-hero-magazine .shop-hero-cta:hover {
    background: var(--color-orange-hover);
    -webkit-transform: translateY(-1px);
    transform: translateY(-1px);
  }
}

.shop-hero-magazine .shop-hero-cta svg {
  stroke: var(--color-white);
}

@media (max-width: 968px) {
  .shop-hero-cinetique.shop-hero-magazine {
    height: clamp(260px, 40vh, 400px);
  }

  .shop-hero-magazine-content {
    padding: 2.5rem 2rem;
  }
}

@media (max-width: 600px) {
  .shop-hero-cinetique.shop-hero-magazine {
    height: clamp(220px, 35vh, 350px);
  }

  .shop-hero-magazine-content {
    padding: 2rem 1.5rem;
    max-width: 100%;
  }

  .shop-hero-magazine h1 {
    font-size: clamp(2rem, 8vw, 2.5rem);
  }

  .shop-hero-magazine .shop-subtitle {
    font-size: 1rem;
  }

  .shop-hero-magazine-overlay {
    background: linear-gradient(
      to top,
      rgba(50, 50, 50, 0.9) 0%,
      rgba(50, 50, 50, 0.5) 60%,
      rgba(50, 50, 50, 0.2) 100%
    );
  }
}

/* ========================================
   SHOP PAGE - Why Atelier Sapi Section (PREMIUM)
   ======================================== */

.why-sapi {
  padding: 100px 20px;
  background: linear-gradient(
    135deg,
    var(--color-white, #FFFFFF) 0%,
    var(--creme-papier, #FEFDFB) 50%,
    var(--creme-chaud, #FAF6F0) 100%
  );
}

.why-sapi-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.why-sapi-header {
  text-align: center;
  margin-bottom: 60px;
}

.why-sapi-header .section-number {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--bois-dore, #937D68);
  text-transform: uppercase;
  margin-bottom: 1.5rem;
  opacity: 0.9;
}

.why-sapi-header h2 {
  font-family: var(--font-display, "Square Peg", Georgia, serif);
  font-size: clamp(42px, 7vw, 64px);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1.5rem;
  line-height: 1.1;
}

.why-sapi-intro {
  font-size: clamp(17px, 2.5vw, 19px);
  line-height: 1.7;
  color: var(--bois-profond, #6B5A4A);
  max-width: 700px;
  margin: 0 auto;
}

/* Why Sapi Grid */
.why-sapi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 32px;
  margin-bottom: 60px;
}

.why-sapi-card {
  padding: 2.5rem 2rem;
  background: var(--color-white, #FFFFFF);
  border-radius: 20px;
  border: 2px solid rgba(147, 125, 104, 0.1);
  text-align: center;
  transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
  -webkit-transition: all 0.4s var(--ease-smooth, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (hover: hover) {
  .why-sapi-card:hover {
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
    border-color: rgba(147, 125, 104, 0.25);
  }
}

.why-sapi-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 1.5rem;
  background: linear-gradient(
    135deg,
    var(--creme-chaud, #FAF6F0) 0%,
    var(--ivoire-doux, #F5EDE4) 100%
  );
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-orange, #E35B24);
  transition: all 0.4s ease;
  -webkit-transition: all 0.4s ease;
}

@media (hover: hover) {
  .why-sapi-card:hover .why-sapi-icon {
    transform: scale(1.1) rotate(5deg);
    -webkit-transform: scale(1.1) rotate(5deg);
    background: linear-gradient(
      135deg,
      var(--color-orange, #E35B24) 0%,
      #D14F1C 100%
    );
    color: var(--creme-papier, #FEFDFB);
  }
}

.why-sapi-card h3 {
  font-size: clamp(18px, 2.5vw, 20px);
  font-weight: 600;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 1rem;
  line-height: 1.3;
}

.why-sapi-card p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--bois-profond, #6B5A4A);
  margin: 0;
}

/* Why Sapi Highlight - Featured Promise */
.why-sapi-highlight {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  padding: 3rem;
  background: linear-gradient(
    135deg,
    var(--creme-chaud, #FAF6F0) 0%,
    var(--ivoire-doux, #F5EDE4) 100%
  );
  border-radius: 24px;
  border: 2px solid rgba(147, 125, 104, 0.15);
  box-shadow:
    0 8px 24px rgba(147, 125, 104, 0.08),
    0 4px 12px rgba(147, 125, 104, 0.05);
}

.why-sapi-highlight svg {
  flex-shrink: 0;
  color: var(--color-orange, #E35B24);
}

.why-sapi-highlight-content h3 {
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 600;
  color: var(--bois-sombre, #4A3F35);
  margin-bottom: 0.75rem;
  line-height: 1.3;
}

.why-sapi-highlight-content p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--bois-profond, #6B5A4A);
  margin: 0;
}

@media (max-width: 768px) {
  .why-sapi {
    padding: 80px 20px;
  }

  .why-sapi-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .why-sapi-highlight {
    flex-direction: column;
    text-align: center;
    padding: 2.5rem 2rem;
    gap: 1.5rem;
  }
}

/* ========================================
   WOOCOMMERCE - Product Filters
   ======================================== */

.product-filters {
  display: flex;
  gap: 0.75rem;
  padding: 2rem 3rem;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  max-width: 1600px;
  margin: 0 auto;
  justify-content: center;
  flex-wrap: wrap;
}

.product-filters::-webkit-scrollbar {
  display: none;
}

/* Dropdown mobile — masqué sur desktop */
.filter-dropdown--mobile {
  display: none;
}

/* Filter Rows — 3 niveaux visuels */
.filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  width: 100%;
}

.filter-row--extras {
  gap: 0.5rem;
}

.filter-row--extras .filter-btn--extra {
  font-size: 0.8rem;
  padding: 0.5rem 1.15rem;
  border-color: var(--color-gray-light);
  background: transparent;
  opacity: 0.75;
  transition: all 0.3s var(--ease-smooth);
}

.filter-row--extras .filter-btn--extra:hover {
  opacity: 1;
}

.filter-row--extras .filter-btn--extra.active {
  opacity: 1;
}

/* Ligne 3 — Ma sélection personnalisée */
.filter-row--robin {
  max-width: fit-content;
  margin: 0 auto;
  padding: 0.55rem 0.75rem 0.55rem 1.25rem;
  border-radius: 50px;
  background: var(--color-warm, #FBF6EA);
  border: 1.5px solid rgba(147, 125, 104, 0.15);
  align-items: center;
  gap: 0.75rem;
  cursor: pointer;
  transition: all 0.3s var(--ease-smooth);
}

.filter-row--robin:hover {
  border-color: rgba(147, 125, 104, 0.35);
  box-shadow: 0 2px 8px rgba(147, 125, 104, 0.1);
}

.filter-row--robin.is-active {
  background: var(--color-wood, #937D68);
  border-color: var(--color-wood, #937D68);
}

.filter-row--robin.is-active .robin-selection-icon,
.filter-row--robin.is-active .robin-selection-label {
  color: #fff;
}

.filter-row--robin.is-active .robin-selection-chip {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.filter-row--robin.is-active .robin-selection-chip-sep {
  color: rgba(255, 255, 255, 0.4);
}

.robin-selection-icon {
  flex-shrink: 0;
  color: var(--color-wood, #937D68);
}

.robin-selection-label {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  white-space: nowrap;
}

.robin-selection-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.robin-selection-chip {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 50px;
  background: rgba(147, 125, 104, 0.1);
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-dark, #323232);
  white-space: nowrap;
}

.robin-selection-chip-sep {
  color: rgba(147, 125, 104, 0.4);
  font-size: 0.65rem;
}

.robin-selection-btn {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.35rem 0.85rem;
  border-radius: 50px;
  border: 1.5px solid rgba(147, 125, 104, 0.25);
  background: transparent;
  color: var(--color-wood, #937D68);
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s var(--ease-smooth);
  white-space: nowrap;
}

.robin-selection-btn:hover {
  border-color: var(--color-wood, #937D68);
  background: rgba(147, 125, 104, 0.08);
}

.filter-row--robin.is-active .robin-selection-btn {
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}

.filter-row--robin.is-active .robin-selection-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.6);
}

.filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.75rem 1.5rem;
  border: 2px solid var(--color-gray-light);
  border-radius: 50px;
  background: var(--color-white);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-dark);
  cursor: pointer;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
  white-space: nowrap;
  text-decoration: none;
}

@media (hover: hover) {
  .filter-btn:hover {
    border-color: var(--color-wood);
    background: var(--color-warm);
    color: var(--color-wood);
  }
}

/* Active filter state - orange CTA style */
.filter-btn.active {
  background: var(--gradient-cta);
  border: none;
  color: var(--color-white);
  font-weight: 600;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  -webkit-transform: scale(1.02);
  transform: scale(1.02);
}

@media (hover: hover) {
  .filter-btn.active:hover {
    background: linear-gradient(180deg, #D14F1C 0%, #B8431A 100%);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
  }
}

/* Filter count badge */
.filter-count {
  font-size: 0.75rem;
  font-weight: 400;
  opacity: 0.7;
}

.filter-btn.active .filter-count {
  opacity: 0.9;
}

/* Gift Card Filter - Special golden style */
.filter-btn--gift {
  border-color: #D4AF37;
  background: linear-gradient(135deg, #FFF8DC 0%, #F5E6C8 100%);
  color: #8B6914;
}

@media (hover: hover) {
  .filter-btn--gift:hover {
    border-color: #C5A028;
    background: linear-gradient(135deg, #FFE87C 0%, #F5D780 100%);
    color: #6B5010;
  }
}

.filter-btn--gift.active {
  background: linear-gradient(135deg, #D4AF37 0%, #C5A028 100%);
  border-color: #C5A028;
  color: var(--color-white);
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.4);
}

@media (hover: hover) {
  .filter-btn--gift.active:hover {
    background: linear-gradient(135deg, #C5A028 0%, #B8941F 100%);
    border-color: #B8941F;
  }
}

/* Product Filters Wrapper */
.product-filters-wrapper {
  max-width: 1600px;
  margin: 0 auto;
  padding: 3rem 2rem 0;
}

/* Product Search Bar */
.product-search-bar {
  position: relative;
  max-width: 600px;
  margin: 0 auto 1rem;
  display: flex;
  align-items: center;
  gap: 0;
}

.product-search-bar .search-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-gray-mid);
  pointer-events: none;
  z-index: 1;
}

.product-search-input {
  width: 100%;
  padding: 14px 48px 14px 48px;
  border: 2px solid var(--color-gray-light);
  border-radius: 12px;
  background: var(--color-white);
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--color-dark);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  outline: none;
}

.product-search-input:focus {
  border-color: var(--color-wood);
  box-shadow: 0 0 0 4px rgba(147, 125, 104, 0.1);
}

.product-search-input::placeholder {
  color: var(--color-gray-mid);
}

.search-clear {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 6px;
  cursor: pointer;
  color: var(--color-gray-mid);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
  z-index: 2;
}

@media (hover: hover) {
  .search-clear:hover {
    background: var(--color-gray-light);
    color: var(--color-dark);
  }
}

/* Advanced Filters */
.product-filters-advanced {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  padding: 0 3rem 2rem;
  flex-wrap: wrap;
}

/* Ancien bloc filtres gris/minimal supprimé — styles premium dans la section filters plus haut */

/* Responsive - Mobile filters */
@media (max-width: 768px) {
  .product-filters-wrapper {
    padding: 0;
  }

  /* === Harmonisation filtres mobile === */
  .product-search-bar {
    margin: 0.75rem 1rem 0;
  }

  .product-search-input {
    border-radius: 50px;
    padding: 12px 48px;
  }

  /* Dropdown mobile visible, pills masquées */
  .filter-dropdown--mobile {
    display: block;
    width: 100%;
    padding: 0 1rem;
  }

  .filter-dropdown--mobile .filter-dropdown-toggle {
    width: 100%;
    justify-content: space-between;
    border-radius: 50px;
    border-color: var(--color-gray-light);
    background: var(--color-white, #fff);
    padding: 12px 20px;
    font-size: 0.875rem;
  }

  .filter-dropdown--mobile .filter-dropdown-menu {
    width: 100%;
    left: 0;
    right: 0;
    border-radius: 20px;
  }

  .filter-row--categories,
  .filter-row--extras {
    display: none;
  }

  .product-filters {
    padding: 0.5rem 0.5rem;
    gap: 0.5rem;
    flex-wrap: wrap;
    overflow-x: visible;
    justify-content: flex-start;
  }

  .filter-row--robin {
    padding: 12px 20px;
    border-radius: 50px;
    max-width: 100%;
    margin: 0 0.5rem;
    width: calc(100% - 1rem);
  }

  .filter-btn {
    padding: 0.6rem 1rem;
    font-size: 0.8rem;
    flex-shrink: 0;
    min-height: 44px;
  }

  .filter-count {
    font-size: 0.7rem;
  }

  /* Filtres avancés - compacts sur mobile */
  .product-filters-advanced {
    padding: 0 1rem 1rem;
    gap: 0.4rem;
    flex-wrap: wrap;
  }

  .filter-dropdown {
    flex: 0 0 auto;
  }

  .filter-dropdown-toggle {
    padding: 6px 10px;
    font-size: 12px;
    gap: 4px;
  }

  .filter-dropdown-menu {
    min-width: 150px;
    font-size: 13px;
  }

  .filter-option {
    padding: 8px 12px;
    font-size: 13px;
  }

  .filter-reset {
    padding: 6px 10px;
    font-size: 12px;
  }
}

/* No results message */
.shop-products .woocommerce-no-products-found {
  text-align: center;
  padding: 3rem 2rem;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--color-gray-mid, #888);
}

/* ========================================
   WOOCOMMERCE - Enhanced Product Cards
   ======================================== */

.products-grid-cinetique {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  padding: 0 3rem 4rem;
  max-width: 1600px;
  margin: 0 auto;
  list-style: none;
  align-items: stretch; /* Ensure all cards stretch to same height */
}

@media (max-width: 1200px) {
  .products-grid-cinetique {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 900px) {
  .products-grid-cinetique {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    padding: 0 1.5rem 3rem;
  }
}

@media (max-width: 540px) {
  .products-grid-cinetique {
    grid-template-columns: 1fr;
    padding: 0 1rem 2rem;
  }

  /* Carousel horizontal pour produits similaires sur mobile */
  .product-related .products-grid-cinetique {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 1rem;
    padding: 0 1rem 1rem;
    scrollbar-width: none;
  }

  .product-related .products-grid-cinetique::-webkit-scrollbar {
    display: none;
  }

  .product-related .products-grid-cinetique > .product-card-cinetique {
    flex: 0 0 80%;
    scroll-snap-align: center;
  }
}

/* CTA vers page catégorie sous produits similaires */
.related-cta {
  text-align: center;
  margin-top: 2rem;
}

.related-cta-btn {
  display: inline-block;
  padding: 0.75rem 2rem;
  background: linear-gradient(180deg, #937D68 0%, #7A6855 100%);
  color: #fff;
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(147, 125, 104, 0.3);
  transition: all 0.3s ease;
  cursor: pointer;
}

.related-cta-btn:active,
.related-cta-btn:focus,
.related-cta-btn:visited {
  color: #fff;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

@media (hover: hover) {
  .related-cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(147, 125, 104, 0.4);
  }
}

/* CTA maillage interne SEO — lien discret entre sections */
.seo-cta-maillage {
  text-align: center;
  padding: 2rem 1.5rem;
  font-family: var(--font-body);
  font-size: 0.92rem;
  color: var(--color-wood);
  letter-spacing: 0.2px;
}
.seo-cta-maillage a {
  color: var(--color-orange);
  text-decoration: none;
  font-weight: 600;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
@media (hover: hover) {
  .seo-cta-maillage a:hover {
    opacity: 0.8;
  }
}
.seo-cta-maillage--button {
  padding: 3rem 1.5rem;
}
.seo-cta-maillage--button p {
  margin-bottom: 1rem;
  font-size: 1.05rem;
}
.seo-cta-maillage--button .button {
  display: inline-block;
  padding: 0.75rem 2rem;
  background: linear-gradient(180deg, #E35B24 0%, #D14F1C 100%);
  color: #fff;
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  -webkit-transition: transform 0.2s ease, box-shadow 0.2s ease;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
@media (hover: hover) {
  .seo-cta-maillage--button .button:hover {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.4);
    opacity: 1;
  }
}
.seo-cta-maillage-inline {
  margin-top: 1.2rem;
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: var(--color-wood);
}
.seo-cta-maillage-inline a {
  color: var(--color-orange);
  text-decoration: none;
  font-weight: 600;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
@media (hover: hover) {
  .seo-cta-maillage-inline a:hover {
    opacity: 0.8;
  }
}
.seo-cta-maillage--thankyou {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.product-card-cinetique {
  position: relative;
  background: var(--color-white);
  border: none;
  border-radius: var(--radius-lg);
  overflow: hidden;
  list-style: none;
  height: 100%; /* Take full grid cell height — flex via ul.products li.product */
  -webkit-box-shadow: var(--shadow-card);
  box-shadow: var(--shadow-card);
  -webkit-transition: all 0.5s var(--ease-expo);
  transition: all 0.5s var(--ease-expo);
}

@media (hover: hover) {
  .product-card-cinetique:hover {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    -webkit-box-shadow: var(--shadow-card-hover);
    box-shadow: var(--shadow-card-hover);
  }
}

.product-card-cinetique:active {
  -webkit-transform: scale(0.98);
  transform: scale(0.98);
  transition-duration: 0.1s;
}

/* Product Card Media */
.product-card-cinetique .product-media {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--color-gray-light);
}

.product-card-cinetique .product-media img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  -webkit-transition: -webkit-transform 0.6s var(--ease-expo), opacity 0.4s ease;
  transition: transform 0.6s var(--ease-expo), opacity 0.4s ease;
}

@media (hover: hover) {
  .product-card-cinetique:hover .product-media img {
    -webkit-transform: scale(1.08);
    transform: scale(1.08);
  }
}

/* Hover Image Effect (lifestyle/ambiance photo) */
.product-card-cinetique .product-image-main,
.product-card-cinetique .product-image-hover {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.product-card-cinetique .product-image-main {
  z-index: 1;
}

.product-card-cinetique .product-image-hover {
  z-index: 2;
  opacity: 0;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

@media (hover: hover) {
  .product-card-cinetique .product-media.has-hover-image:hover .product-image-main {
    opacity: 0;
  }

  .product-card-cinetique .product-media.has-hover-image:hover .product-image-hover {
    opacity: 1;
  }
}

/* Product Badge */
.product-card-cinetique .product-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: 0.5rem 1rem;
  border-radius: 50px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  z-index: 2;
}

.product-card-cinetique .badge-new {
  background: var(--color-orange);
  color: var(--color-white);
}

.product-card-cinetique .badge-signature {
  background: var(--color-wood);
  color: var(--color-white);
}

.product-card-cinetique .badge-sale {
  background: var(--color-green);
  color: var(--color-white);
}

/* Product Info */
.product-card-cinetique .product-info {
  padding: 2rem;
  display: flex !important;
  flex-direction: column !important;
  flex: 1;
}

.product-card-cinetique .product-name {
  font-family: var(--font-body);
  font-size: 1.4rem !important;
  font-weight: 700;
  color: var(--color-dark);
  margin: 0;
  padding: 0 !important;
  line-height: 1;
  -webkit-transition: color 0.3s var(--ease-smooth);
  transition: color 0.3s var(--ease-smooth);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

@media (hover: hover) {
  .product-card-cinetique:hover .product-name {
    color: var(--color-wood);
  }
}

.product-card-cinetique .product-category {
  font-size: 1rem;
  font-weight: 300;
  color: var(--color-gray);
  margin-top: 0;
  margin-bottom: 1.5rem;
}

.product-card-cinetique .product-price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  align-items: baseline;
  gap: 0.4rem;
  margin-top: auto;
}

.product-card-cinetique .price-from {
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--color-gray-mid);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.product-card-cinetique .price-value {
  font-family: var(--font-body);
  font-size: 1.15rem;
  font-weight: 900;
  color: var(--color-dark);
}

.product-card-cinetique .price-value del {
  color: var(--color-gray-mid);
  font-weight: 400;
  font-size: 0.9rem;
  margin-right: 0.5rem;
}

.product-card-cinetique .price-value ins {
  text-decoration: none;
  color: var(--color-orange);
}

/* Product Actions */
.product-card-cinetique .product-actions {
  padding: 0;
  margin-top: 0;
  margin-bottom: 1rem;
  text-align: center;
}

.product-card-cinetique .btn-view {
  display: inline-block;
  padding: 0.65rem 1.5rem;
  background: transparent;
  border: none;
  border-radius: 50px;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-orange);
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
  box-shadow: none;
}

@media (hover: hover) {
  .product-card-cinetique .btn-view:hover,
  .product-card-cinetique:hover .btn-view {
    background: var(--gradient-cta);
    color: var(--color-white);
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    -webkit-box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
  }
}

/* ---- RESPONSIVE PRODUCT CARDS ---- */
@media (max-width: 768px) {
  .product-card-cinetique .product-info {
    padding: 1.25rem;
  }

  .product-card-cinetique .product-name {
    font-size: 1.1rem !important;
  }

  .product-card-cinetique .product-category {
    font-size: 0.85rem;
    margin-bottom: 0.25rem;
  }

  .product-card-cinetique .price-value {
    font-size: 1.2rem;
  }

  .product-card-cinetique .product-actions {
    padding: 0;
  }

  .product-card-cinetique .btn-view {
    padding: 0.7rem 1.25rem;
    min-height: 44px;
  }
}

@media (max-width: 480px) {
  .product-card-cinetique .product-info {
    padding: 1rem;
  }

  .product-card-cinetique .product-name {
    font-size: 1.6rem !important;
    margin: 0;
  }

  .product-card-cinetique .product-category {
    font-size: 0.8rem;
    margin-bottom: 0.25rem;
  }

  .product-card-cinetique .price-value {
    font-size: 1.1rem;
  }
}

/* ========================================
   WOOCOMMERCE - Mini Cart Sliding Panel
   ======================================== */

.mini-cart-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
}

.mini-cart-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

.mini-cart {
  position: fixed;
  top: 0;
  right: 0;
  width: 400px;
  max-width: 90vw;
  height: 100vh;
  height: 100dvh;
  background: var(--color-white);
  z-index: 9999;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.5s var(--ease-expo);
  transition: transform 0.5s var(--ease-expo);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-shadow: -10px 0 40px rgba(0, 0, 0, 0.1);
  box-shadow: -10px 0 40px rgba(0, 0, 0, 0.1);
}

.mini-cart.is-open {
  -webkit-transform: translateX(0);
  transform: translateX(0);
}

.mini-cart-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 1.5rem;
  border-bottom: 1px solid var(--color-gray-light);
}

.mini-cart-header h3 {
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-dark);
  margin: 0;
}

.mini-cart-close {
  background: rgba(255, 255, 255, 0.95);
  border: 2px solid var(--color-wood);
  border-radius: 50%;
  cursor: pointer;
  padding: 10px;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-wood);
  transition: all 0.3s ease;
  box-shadow: 0 4px 16px rgba(147, 125, 104, 0.15);
  flex-shrink: 0;
}

.mini-cart-close svg {
  display: block;
  width: 24px;
  height: 24px;
}

@media (hover: hover) {
  .mini-cart-close:hover {
    background: var(--color-orange);
    border-color: var(--color-orange);
    color: var(--color-white);
    transform: scale(1.1);
  }
}

.mini-cart-body {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem;
}

.mini-cart-empty {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  height: 100%;
  text-align: center;
  color: var(--color-gray);
}

.mini-cart-empty svg {
  width: 64px;
  height: 64px;
  margin-bottom: 1rem;
  opacity: 0.3;
}

.mini-cart-empty p {
  margin-bottom: 1.5rem;
}

.mini-cart-empty .btn-continue {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: var(--color-wood);
  color: var(--color-white);
  border-radius: 50px;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .mini-cart-empty .btn-continue:hover {
    background: var(--color-orange);
  }
}

.mini-cart-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
  padding: 1rem;
  background: var(--color-cream);
  border: 1px solid rgba(147, 125, 104, 0.15);
  border-radius: 8px;
  margin-bottom: 1rem;
}

.mini-cart-item-image {
  grid-column: 1 / -1;
  width: 120px;
  height: 120px;
  border-radius: 8px;
  overflow: visible;
  margin: 0 auto;
  position: relative;
}

/* Quantity selector */
.mini-cart-item-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.5rem;
}

.mini-cart-qty-selector {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1px solid rgba(147, 125, 104, 0.3);
  border-radius: 6px;
  overflow: hidden;
  transition: opacity 0.3s ease;
}

.mini-cart-qty-selector.is-loading {
  opacity: 0.5;
  pointer-events: none;
}

.mini-cart-qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: none;
  background: transparent;
  color: var(--color-dark);
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
  padding: 0;
  line-height: 1;
}

@media (hover: hover) {
  .mini-cart-qty-btn:hover {
    background: var(--color-wood);
    color: #fff;
  }
}

.mini-cart-qty-value {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 30px;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--color-dark);
  border-left: 1px solid rgba(147, 125, 104, 0.2);
  border-right: 1px solid rgba(147, 125, 104, 0.2);
}

.mini-cart-item-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mini-cart-item-details {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.mini-cart-item-name {
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: 0.4rem;
  font-size: 1.3rem;
}

.mini-cart-item-name a {
  color: inherit;
  text-decoration: none;
  font-size: inherit;
}

@media (hover: hover) {
  .mini-cart-item-name a:hover {
    color: var(--color-wood);
  }
}

.mini-cart-item-name .product-firstname {
  font-size: 0.85em;
}

.mini-cart-item-name .product-restname {
  font-size: 1.8em;
}

.mini-cart-item-variation {
  display: block;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 400;
  color: var(--color-wood);
  margin-top: 0.15rem;
}

.mini-cart-item-meta {
  font-size: 0.8rem;
  margin-top: 0.35rem;
}

.mini-cart-var-line {
  line-height: 1.5;
}

.mini-cart-var-label {
  font-weight: 600;
  color: var(--color-dark, #323232);
}

.mini-cart-var-value {
  font-weight: 400;
  color: var(--color-gray);
}


.mini-cart-item-price {
  font-weight: 700;
  color: var(--color-wood);
}

.mini-cart-item-remove {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  background: none;
  border: none;
  color: var(--color-gray);
  cursor: pointer;
  padding: 0.25rem;
  transition: color 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .mini-cart-item-remove:hover {
    color: var(--color-error);
  }
}

.mini-cart-footer {
  padding: 1.5rem;
  border-top: 1px solid var(--color-gray-light);
  background: var(--color-cream);
}

.mini-cart-total {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-bottom: 1rem;
  font-size: 1rem;
}

.mini-cart-total .total-amount {
  font-family: var(--font-body);
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--color-dark);
}

.mini-cart-footer .btn-view-cart {
  display: block;
  width: 100%;
  padding: 0.875rem;
  margin-bottom: 0.75rem;
  background: transparent;
  border: 1px solid var(--color-wood);
  border-radius: 8px;
  color: var(--color-wood);
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .mini-cart-footer .btn-view-cart:hover {
    background: var(--color-wood);
    color: var(--color-white);
  }
}

.mini-cart-footer .btn-checkout {
  display: block;
  width: 100%;
  padding: 1rem;
  background: var(--color-orange);
  border: none;
  border-radius: 8px;
  color: var(--color-white);
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .mini-cart-footer .btn-checkout:hover {
    background: var(--color-orange-hover);
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    -webkit-box-shadow: var(--shadow-orange);
    box-shadow: var(--shadow-orange);
  }
}

/* ========================================
   Global Search Modal
   ======================================== */

.search-toggle {
  background: transparent;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: var(--color-gray);
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (hover: hover) {
  .search-toggle:hover {
    color: var(--color-orange);
  }
}

.global-search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(4px);
  z-index: 10000;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.global-search-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

.global-search-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10001;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 10vh 1rem 1rem;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.global-search-modal[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
}

.global-search-content {
  width: 100%;
  max-width: 700px;
  background: var(--color-white);
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  -webkit-transform: translateY(-20px) scale(0.95);
  transform: translateY(-20px) scale(0.95);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.global-search-modal[aria-hidden="false"] .global-search-content {
  -webkit-transform: translateY(0) scale(1);
  transform: translateY(0) scale(1);
}

.global-search-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 1.5rem;
  border-bottom: 1px solid var(--color-gray-light);
}

.global-search-header .search-icon {
  flex-shrink: 0;
  color: var(--color-gray-mid);
}

.global-search-input {
  flex: 1;
  border: none;
  background: none;
  font-family: var(--font-body);
  font-size: 18px;
  color: var(--color-dark);
  outline: none;
}

.global-search-input::placeholder {
  color: var(--color-gray-mid);
}

.global-search-close {
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 6px;
  cursor: pointer;
  color: var(--color-gray-mid);
  border-radius: 6px;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}

@media (hover: hover) {
  .global-search-close:hover {
    background: var(--color-gray-light);
    color: var(--color-dark);
  }
}

.global-search-results {
  max-height: 60vh;
  overflow-y: auto;
  min-height: 200px;
}

.search-results-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 2rem;
  text-align: center;
  color: var(--color-gray-mid);
}

.search-results-empty svg {
  opacity: 0.3;
  margin-bottom: 1rem;
}

.search-results-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.search-result-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--color-gray-light);
  text-decoration: none;
  -webkit-transition: background 0.2s ease;
  transition: background 0.2s ease;
  cursor: pointer;
}

@media (hover: hover) {
  .search-result-item:hover,
  .search-result-item.active {
    background: var(--color-warm);
  }
}

.search-result-item:last-child {
  border-bottom: none;
}

.search-result-image {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--color-gray-light);
}

.search-result-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.search-result-info {
  flex: 1;
  min-width: 0;
}

.search-result-title {
  font-weight: 600;
  color: var(--color-dark);
  margin: 0 0 0.25rem;
  font-size: 1rem;
}

.search-result-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--color-gray-mid);
}

.search-result-price {
  font-weight: 600;
  color: var(--color-wood);
  flex-shrink: 0;
}

.global-search-footer {
  padding: 1rem 1.5rem;
  background: var(--color-gray-light);
  border-top: 1px solid var(--color-gray-light);
}

.search-hint {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: var(--color-gray-mid);
  flex-wrap: wrap;
}

.search-hint kbd {
  display: inline-block;
  padding: 2px 6px;
  background: var(--color-white);
  border: 1px solid var(--color-gray-mid);
  border-radius: 4px;
  font-family: monospace;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--color-dark);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.search-hint .divider {
  opacity: 0.5;
}

@media (max-width: 768px) {
  .global-search-modal {
    padding: 5vh 0.5rem 0.5rem;
  }

  .global-search-content {
    border-radius: 12px;
  }

  .global-search-header {
    padding: 1rem;
  }

  .global-search-input {
    font-size: 16px;
  }

  .search-result-item {
    padding: 0.75rem 1rem;
  }

  .search-result-image {
    width: 50px;
    height: 50px;
  }

  .search-hint {
    font-size: 0.85rem;
  }

  .search-hint kbd {
    font-size: 0.75rem;
  }

  .search-toggle {
    display: none; /* Hide on mobile for now */
  }
}

/* ========================================
   WOOCOMMERCE - Single Product Improvements
   ======================================== */

/* Better Gallery Thumbnails */
.product-gallery .flex-control-thumbs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.75rem;
  margin-top: 1rem;
  padding: 0;
  list-style: none;
}

.product-gallery .flex-control-thumbs li {
  width: 100px;
  height: 100px;
  -webkit-box-flex: 0;
  -ms-flex: 0 0 100px;
  flex: 0 0 100px;
}

.product-gallery .flex-control-thumbs li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
  border: 2px solid transparent;
  cursor: pointer;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .product-gallery .flex-control-thumbs li img:hover,
  .product-gallery .flex-control-thumbs li img.flex-active {
    border-color: var(--color-wood);
  }
}

/* Variation Swatches with Labels */
.variations-form .variations {
  width: 100%;
  border-collapse: collapse;
}

.variations-form .variations tr {
  margin-bottom: 1.5rem;
  display: block;
}

.variations-form .variations th.label {
  display: block;
  text-align: left;
  padding: 0 0 0.75rem 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-dark);
}

.variations-form .variations td.value {
  display: block;
  padding: 0;
}

/* Size Options as Radio Buttons */
.sapi-size-swatches {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.75rem;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.sapi-size-swatch {
  position: relative;
}

.sapi-size-swatch input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.sapi-size-swatch label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  min-width: 80px;
  padding: 0.75rem 1rem;
  border: 1px solid var(--color-gray-light);
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-dark);
  cursor: pointer;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
}

.sapi-size-swatch input:checked + label,
@media (hover: hover) {
  .sapi-size-swatch label:hover {
    border-color: var(--color-wood);
    background: var(--color-warm);
    color: var(--color-wood);
  }
}

/* Material Swatches with Labels */
.sapi-material-swatches {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1rem;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.sapi-material-swatch {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
}

.sapi-material-swatch input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.sapi-material-swatch .swatch-color {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 3px solid var(--color-gray-light);
  background-size: cover;
  background-position: center;
  -webkit-transition: all 0.3s var(--ease-smooth);
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .sapi-material-swatch:hover .swatch-color,
  .sapi-material-swatch.active .swatch-color {
    border-color: var(--color-wood);
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
}

/* Swatch Label - ALWAYS VISIBLE */
.sapi-material-swatch .swatch-label {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-gray);
  text-align: center;
  text-transform: capitalize;
}

.sapi-material-swatch.active .swatch-label,
@media (hover: hover) {
  .sapi-material-swatch:hover .swatch-label {
    color: var(--color-wood);
    font-weight: 600;
  }
}

/* Dynamic Price Display */
.product-price-display {
  font-size: 1.75rem;
  font-weight: 900;
  color: var(--color-dark);
  margin-bottom: 1.5rem;
}

.product-price-display .price-range {
  font-size: 1rem;
  font-weight: 400;
  color: var(--color-gray);
}

/* Lifestyle Images - Controlled Height */
.product-lifestyle-images {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  padding: 4rem 3rem;
  max-width: 1400px;
  margin: 0 auto;
}

.product-lifestyle-images .lifestyle-image {
  max-height: 50vh;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.product-lifestyle-images .lifestyle-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 768px) {
  .product-lifestyle-images {
    grid-template-columns: 1fr;
    padding: 2rem 1.5rem;
  }

  .product-lifestyle-images .lifestyle-image {
    max-height: 40vh;
  }
}

/* ========================================
   WOOCOMMERCE - Checkout Recap
   ======================================== */

.woocommerce-checkout .order-recap {
  background: var(--color-cream);
  border-radius: var(--radius-lg);
  padding: 2rem;
  margin-bottom: 2rem;
}

.woocommerce-checkout .order-recap h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: 1.5rem;
  text-transform: none;
}

.woocommerce-checkout .order-recap-item {
  display: grid;
  grid-template-columns: 60px 1fr auto;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--color-gray-light);
}

.woocommerce-checkout .order-recap-item:last-child {
  border-bottom: none;
}

.woocommerce-checkout .order-recap-image {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
}

.woocommerce-checkout .order-recap-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.woocommerce-checkout .order-recap-details {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.woocommerce-checkout .order-recap-name {
  font-weight: 600;
  color: var(--color-dark);
}

.woocommerce-checkout .order-recap-meta {
  font-size: 0.8rem;
  color: var(--color-gray);
}

.woocommerce-checkout .order-recap-price {
  font-weight: 700;
  color: var(--color-wood);
  -ms-flex-item-align: center;
  align-self: center;
}

/* ========================================
   WOOCOMMERCE - Variation Options Card (Sapi Design)
   Toggle-style selectors for material & size
   ======================================== */

/* Container card for all variation options */
.product-summary .variations_form .variations {
  background: var(--color-cream);
  border-radius: 12px;
  padding: 0 0.875rem 0.875rem 0.875rem !important; /* Top 0 pour test, réduit pour compacité */
  margin-bottom: 1.5rem;
  border: 1px solid rgba(147, 125, 104, 0.15);
}

/* Each variation row */
.product-summary .variations_form .variations tr {
  display: block;
  margin-bottom: 1rem;
}

.product-summary .variations_form .variations tr:last-child {
  margin-bottom: 0;
}

/* Variation label (Matériau, Taille, etc.) */
.product-summary .variations_form .variations th.label {
  display: block;
  padding: 0 0 0.5rem 0;
  font-weight: 600;
  color: var(--color-dark);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.product-summary .variations_form .variations th.label label {
  font-weight: inherit;
  color: inherit;
}

.product-summary .variations_form .variations td.value {
  display: block;
  padding: 0;
}

/* Hide the native select when swatches are present */
.product-summary .variations_form .variations select.swatch-select-hidden {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}

/* Fallback: Style native select when no swatches */
.product-summary .variations_form .variations select:not(.swatch-select-hidden) {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid transparent;
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--color-dark);
  background: var(--color-white);
  -webkit-transition: all 0.25s var(--ease-smooth);
  transition: all 0.25s var(--ease-smooth);
  cursor: pointer;
}

@media (hover: hover) {
  .product-summary .variations_form .variations select:not(.swatch-select-hidden):hover,
  .product-summary .variations_form .variations select:not(.swatch-select-hidden):focus {
    border-color: var(--color-wood);
    outline: none;
  }
}

/* ---- Toggle Swatches Container ---- */
.product-summary .attribute-swatch {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  gap: 0.5rem;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

/* ---- Individual Toggle Item ---- */
.product-summary .attribute-swatch .swatch-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1rem;
  background: var(--color-white);
  border: 2px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  -webkit-transition: all 0.25s var(--ease-smooth);
  transition: all 0.25s var(--ease-smooth);
  min-width: 80px;
}

@media (hover: hover) {
  .product-summary .attribute-swatch .swatch-item:hover {
    border-color: var(--color-wood);
    -webkit-box-shadow: 0 2px 8px rgba(147, 125, 104, 0.15);
    box-shadow: 0 2px 8px rgba(147, 125, 104, 0.15);
  }
}

.product-summary .attribute-swatch .swatch-item.selected {
  border-color: var(--color-wood);
  background: var(--color-warm);
}

/* ---- Swatch Preview (circle with letter or image) ---- */
.product-summary .attribute-swatch .swatch-item .swatch-preview {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--color-gray-light);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  overflow: hidden;
  -webkit-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  border: 2px solid var(--color-gray-light);
  -webkit-transition: all 0.25s var(--ease-smooth);
  transition: all 0.25s var(--ease-smooth);
}

.product-summary .attribute-swatch .swatch-item.selected .swatch-preview {
  border-color: var(--color-wood);
}

.product-summary .attribute-swatch .swatch-item .swatch-preview img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

/* Wood color gradient swatches */
.product-summary .attribute-swatch .swatch-item .swatch-color {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

.product-summary .attribute-swatch .swatch-item .swatch-letter {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--color-gray);
  text-transform: uppercase;
}

.product-summary .attribute-swatch .swatch-item.selected .swatch-letter {
  color: var(--color-wood);
}

/* ---- Swatch Label ---- */
.product-summary .attribute-swatch .swatch-item .swatch-name {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-dark);
  white-space: nowrap;
  line-height: 1.2;
}

.product-summary .attribute-swatch .swatch-item.selected .swatch-name {
  font-weight: 700;
  color: var(--color-wood);
}

/* ---- Reset link ---- */
.product-summary .variations_form .reset_variations {
  display: inline-block;
  margin-top: 0.75rem;
  font-size: 0.75rem;
  color: var(--color-gray);
  text-decoration: underline;
  cursor: pointer;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}

@media (hover: hover) {
  .product-summary .variations_form .reset_variations:hover {
    color: var(--color-wood);
  }
}

/* ---- Price display for variations ---- */
.product-summary .woocommerce-variation-price {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(147, 125, 104, 0.15);
}

.product-summary .woocommerce-variation-price .price {
  font-size: 1.5rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  color: #018501 !important;
}

/* ---- Variation description ---- */
.product-summary .woocommerce-variation-description {
  margin-top: 0.5rem;
  font-size: 0.85rem;
  color: var(--color-gray);
  font-style: italic;
}

/* ---- Responsive adjustments ---- */
@media (max-width: 540px) {
  .product-summary .variations_form .variations {
    padding: 0 0.75rem 0.75rem 0.75rem !important; /* Top 0 pour test, réduit mobile */
  }

  .product-summary .attribute-swatch {
    gap: 0.4rem;
  }

  .product-summary .attribute-swatch .swatch-item {
    padding: 0.65rem 0.85rem;
    min-width: 80px;
  }

  .product-summary .attribute-swatch .swatch-item .swatch-preview {
    width: 26px;
    height: 26px;
  }

  .product-summary .attribute-swatch .swatch-item .swatch-name {
    font-size: 0.9rem;
    font-weight: 600;
  }
}

/* ========================================
   WOOCOMMERCE - Notifications & Messages
   ======================================== */

/* Bandeau de confirmation d'ajout au panier */
.woocommerce-notices-wrapper {
  position: fixed;
  top: 100px;
  right: 20px;
  z-index: 10002; /* Au-dessus du header (10001) */
  max-width: 450px;
  width: calc(100% - 40px);
  pointer-events: none; /* Les notifications ne bloquent pas les clics sauf sur leurs boutons */
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  position: relative;
  display: flex;
  align-items: center; /* Centrer l'icône avec le texte */
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  padding-right: 3rem; /* Espace pour le bouton de fermeture */
  margin-bottom: 1rem;
  background: var(--color-white);
  border: 2px solid var(--color-wood);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(147, 125, 104, 0.2);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--color-dark);
  animation: slideInFromRight 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: all; /* La notification elle-même peut recevoir des clics */
  word-wrap: break-word;
  overflow-wrap: break-word;
  min-height: 60px; /* Hauteur minimale pour contenir l'icône */
}

@keyframes slideInFromRight {
  from {
    opacity: 0;
    transform: translateX(100px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Icône personnalisée pour le message de succès */
.woocommerce-message::before {
  content: '';
  display: block;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  background-color: var(--color-wood);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  mask-size: contain;
  mask-position: center;
  mask-repeat: no-repeat;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
}

.woocommerce-info::before {
  background-color: #4A90E2;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='16' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'%3E%3C/line%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='16' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'%3E%3C/line%3E%3C/svg%3E");
}

.woocommerce-error::before {
  background-color: var(--color-error);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='15' y1='9' x2='9' y2='15'%3E%3C/line%3E%3Cline x1='9' y1='9' x2='15' y2='15'%3E%3C/line%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='15' y1='9' x2='9' y2='15'%3E%3C/line%3E%3Cline x1='9' y1='9' x2='15' y2='15'%3E%3C/line%3E%3C/svg%3E");
}

/* Style pour les liens dans les messages */
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  margin-left: auto;
  background: var(--color-orange);
  color: var(--color-white);
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.3s var(--ease-smooth);
}

@media (hover: hover) {
  .woocommerce-message a:hover {
    background: var(--color-orange-hover);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(234, 134, 80, 0.3);
  }
}

/* Bouton de fermeture */
.woocommerce-message .woocommerce-Button,
.woocommerce-info .woocommerce-Button,
.woocommerce-error .woocommerce-Button {
  padding: 0.5rem 1rem;
  margin-left: auto;
}

/* Mobile responsive */
@media (max-width: 768px) {
  .woocommerce-notices-wrapper {
    top: 80px;
    right: 10px;
    left: 10px;
    max-width: none;
    width: auto;
  }

  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-error {
    flex-wrap: wrap;
    padding: 1rem;
  }

  .woocommerce-message a,
  .woocommerce-info a,
  .woocommerce-error a {
    margin-left: 0;
    width: 100%;
    justify-content: center;
  }
}

/* ========================================
   PAGES PAR DÉFAUT (Mentions légales, CGV, Confidentialité…)
   Template : page.php → content-page.php
   ======================================== */

.page-default {
  background: var(--color-cream, #FEFDFB);
}

.page-default-header {
  background: var(--color-warm, #FBF6EA);
  padding: 3rem 2rem 2.5rem;
  text-align: center;
}

.page-default-header h1 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  font-weight: 900;
  color: var(--color-dark, #323232);
  margin: 0;
}

.page-default .entry-content {
  max-width: 800px;
  margin: 0 auto;
  padding: 3rem 2rem 4rem;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--color-dark, #323232);
}

/* Exception : pages Panier & Checkout & Merci — largeur complète */
body.woocommerce-cart .page-default .entry-content,
body.woocommerce-checkout .page-default .entry-content,
body.woocommerce-order-received .page-default .entry-content {
  max-width: 1400px;
}

@media (max-width: 768px) {
  body.woocommerce-cart .page-default .entry-content,
  body.woocommerce-checkout .page-default .entry-content,
  body.woocommerce-order-received .page-default .entry-content {
    padding: 0.25rem 0;
  }
}

/* Titres dans le contenu */
.page-default .entry-content h2 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--color-dark, #323232);
  margin: 2.5rem 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid rgba(147, 125, 104, 0.2);
}

.page-default .entry-content h3 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-wood, #937D68);
  margin: 2rem 0 0.75rem;
}

.page-default .entry-content h4 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-dark, #323232);
  margin: 1.5rem 0 0.5rem;
}

/* Paragraphes */
.page-default .entry-content p {
  margin-bottom: 1.25rem;
}

/* Listes */
.page-default .entry-content ul,
.page-default .entry-content ol {
  padding-left: 1.5rem;
  margin-bottom: 1.25rem;
}

.page-default .entry-content li {
  margin-bottom: 0.5rem;
  padding-left: 0.25rem;
}

.page-default .entry-content ul li::marker {
  color: var(--color-wood, #937D68);
}

.page-default .entry-content ol li::marker {
  color: var(--color-wood, #937D68);
  font-weight: 600;
}

/* Liens */
.page-default .entry-content a {
  color: var(--color-wood, #937D68);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease, color 0.2s ease;
}

@media (hover: hover) {
  .page-default .entry-content a:hover {
    color: var(--color-orange, #E35B24);
    border-bottom-color: var(--color-orange, #E35B24);
  }
}

/* Strong et em */
.page-default .entry-content strong {
  font-weight: 700;
  color: var(--color-dark, #323232);
}

/* Tables (CGV) */
.page-default .entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: 0.95rem;
}

.page-default .entry-content th,
.page-default .entry-content td {
  padding: 0.75rem 1rem;
  border: 1px solid rgba(147, 125, 104, 0.2);
  text-align: left;
}

.page-default .entry-content th {
  background: var(--color-warm, #FBF6EA);
  font-weight: 700;
  color: var(--color-dark, #323232);
}

.page-default .entry-content tr:nth-child(even) td {
  background: rgba(251, 246, 234, 0.4);
}

/* Blockquotes */
.page-default .entry-content blockquote {
  margin: 1.5rem 0;
  padding: 1rem 1.5rem;
  border-left: 3px solid var(--color-wood, #937D68);
  background: var(--color-warm, #FBF6EA);
  border-radius: 0 8px 8px 0;
  font-style: italic;
}

/* Responsive */
@media (max-width: 768px) {
  .page-default-header {
    padding: 2rem 1rem 1.5rem;
  }

  .page-default .entry-content {
    padding: 2rem 1rem 3rem;
    font-size: 1rem;
  }

  .page-default .entry-content h2 {
    font-size: 1.25rem;
  }

  .page-default .entry-content h3 {
    font-size: 1.1rem;
  }

  .page-default .entry-content table {
    font-size: 0.85rem;
  }

  .page-default .entry-content th,
  .page-default .entry-content td {
    padding: 0.5rem 0.75rem;
  }
}

/* ========================================
   WOOCOMMERCE BLOCKS - Cart Page Sâpi
   .sapi-cart-outer = wrapper PHP injecté via render_block
   Résiste au remplacement DOM de React car il est AUTOUR du bloc WC.
   ======================================== */

/* Titre de la page panier — identique aux pages catégorie (.shop-hero-cinetique h1) */
/* Checkout et order-received : le H1 natif de content-page.php est caché,
   WooCommerce injecte ses propres titres via les hooks */
.woocommerce-checkout article.page > header,
.woocommerce-order-received article.page > header {
  display: none;
}

body.woocommerce-checkout,
body.woocommerce-order-received {
  background-color: var(--color-cream);
}

.woocommerce-cart article.page > header {
  padding: 1rem 0.5rem 0;
  background: var(--color-cream);
  text-align: center;
}

.woocommerce-cart article.page > header h1 {
  font-family: var(--font-body);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 900;
  color: var(--color-dark);
  margin: 0;
}

@media (max-width: 768px) {
  .woocommerce-cart article.page > header {
    padding: 1.5rem 1rem 1rem;
    text-align: center;
  }
}

/*
 * LAYOUT DEUX COLONNES + SIDEBAR STICKY
 * .wc-block-components-sidebar-layout = flex container créé par React
 * Nécessite align-items: flex-start sinon la sidebar étire sa hauteur
 * et position:sticky n'a aucun effet (élément déjà plein-hauteur).
 */
/* Centrage + largeur max de l'ensemble */
.sapi-cart-outer {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding: 2rem 3rem 4rem;
  box-sizing: border-box;
}

.sapi-cart-outer .wc-block-components-sidebar-layout {
  align-items: flex-start !important;
  gap: 2rem !important;
}

/* Colonne gauche (articles) — card
 * WC Blocks fixe width:65% — on soustrait la moitié du gap (1rem)
 * pour que 65%-1rem + 2rem gap + 35%-1rem = 100% exactement */
.sapi-cart-outer .wc-block-components-main {
  width: calc(65% - 1rem) !important;
  background: var(--color-white, #fff) !important;
  border: 1px solid var(--color-gray-light, #e8e2d9) !important;
  border-radius: var(--radius-lg, 16px) !important;
  padding: 2rem !important;
  box-sizing: border-box !important;
}

/* Colonne droite (totaux) — card + sticky
 * WC Blocks fixe width:35% — idem, on soustrait 1rem
 * top: 90px = hauteur header simplifié (logo 50px + padding 2×16px) + 8px marge */
.sapi-cart-outer .wc-block-components-sidebar {
  width: calc(35% - 1rem) !important;
  background: var(--color-white, #fff) !important;
  border: 1px solid var(--color-gray-light, #e8e2d9) !important;
  border-radius: var(--radius-lg, 16px) !important;
  padding: 2rem !important;
  box-sizing: border-box !important;
  position: sticky !important;
  top: 90px !important;
  align-self: flex-start !important;
}

/* Mobile : désactive sticky, passe en colonne pleine largeur */
@media (max-width: 768px) {
  .sapi-cart-outer {
    padding: 0.5rem;
  }

  .sapi-cart-outer .wc-block-components-main,
  .sapi-cart-outer .wc-block-components-sidebar {
    width: 100% !important;
    position: static !important;
    padding: 0.75rem !important;
  }
}

/* Note sous les frais de livraison */
.cart-shipping-note {
  font-family: var(--font-body);
  font-size: 0.75rem;
  color: var(--color-gray, #999);
  line-height: 1.4;
  margin: 0.5rem 0 0;
  font-style: italic;
}

.cart-shipping-note strong {
  font-style: normal;
  font-weight: 600;
  color: var(--color-dark, #323232);
  font-size: 0.75rem;
}

/* Bouton "Passer commande" — vert validation */
.sapi-cart-outer .wc-block-cart__submit-button {
  background: linear-gradient(180deg, #018501 0%, #026B02 100%) !important;
  color: #fff !important;
  border-radius: 12px !important;
  font-family: var(--font-body) !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  box-shadow: 0 4px 15px rgba(1, 133, 1, 0.25) !important;
  border: none !important;
}

@media (hover: hover) {
  .sapi-cart-outer .wc-block-cart__submit-button:hover {
    background: linear-gradient(180deg, #026B02 0%, #015A01 100%) !important;
    box-shadow: 0 6px 20px rgba(1, 133, 1, 0.35) !important;
  }
}

/* H2 allégés sur panier et checkout */
body.woocommerce-cart .sapi-cart-outer h2,
body.woocommerce-cart .sapi-cart-outer .wp-block-heading,
body.woocommerce-checkout .sapi-checkout-outer h2,
body.woocommerce-checkout .sapi-checkout-outer .wp-block-heading,
body.woocommerce-checkout .sapi-checkout-outer .wc-block-components-title {
  font-weight: 600 !important;
}


/* Supprimer le quadrillage du tableau produits */
.sapi-cart-outer .wc-block-cart-items,
.sapi-cart-outer .wc-block-cart-items th,
.sapi-cart-outer .wc-block-cart-items td,
.sapi-cart-outer .wc-block-cart-items tr,
.sapi-cart-outer .wc-block-cart-items thead,
.sapi-cart-outer .wc-block-cart-items tbody {
  border: none !important;
  border-collapse: collapse !important;
}

/* Bordure discrète autour de chaque produit */
.sapi-cart-outer .wc-block-cart-items tr {
  border: 1px solid rgba(147, 125, 104, 0.15) !important;
  border-radius: 8px !important;
  display: block !important;
  padding: 1rem !important;
  margin-bottom: 1rem !important;
}

/* Masquer l'en-tête PRODUIT / TOTAL */
.sapi-cart-outer .wc-block-cart-items thead {
  display: none !important;
}

/* Images produits arrondies */
.sapi-cart-outer .wc-block-cart-item__image img,
.sapi-cart-outer .wc-block-components-product-image img {
  border-radius: 12px !important;
  object-fit: cover !important;
  width: 120px !important;
  height: 120px !important;
}

/* Noms produits */
.sapi-cart-outer .wc-block-components-product-name {
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 1.25rem !important;
  color: var(--color-dark) !important;
}

/* Prix unitaire sous le nom — masqué uniquement dans la colonne produit */
.sapi-cart-outer .wc-block-cart-item__product .wc-block-components-product-price,
.sapi-cart-outer .wc-block-cart-item__description .wc-block-components-product-price {
  display: none !important;
}

/* Masquer la description (dimensions/poids) dans le panier */
.sapi-cart-outer .wc-block-components-product-metadata__description {
  display: none !important;
}

/* Variations + add-ons : chaque attribut sur sa propre ligne (Blocks = div + span) */
.sapi-cart-outer .wc-block-components-product-details {
  list-style: none !important;
  padding: 0 !important;
  margin: 0.5rem 0 0.75rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.15rem !important;
}

.sapi-cart-outer .wc-block-components-product-details > span {
  display: block !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
}

/* Réafficher uniquement les spans label + valeur à l'intérieur */
.sapi-cart-outer .wc-block-components-product-details__name {
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  line-height: 1.5 !important;
  color: var(--color-dark) !important;
  margin-right: 0.3em !important;
}

.sapi-cart-outer .wc-block-components-product-details__value {
  font-weight: 400 !important;
  font-size: 0.9rem !important;
  line-height: 1.5 !important;
  color: var(--color-dark) !important;
}

/* Cacher le séparateur "/" — <span aria-hidden="true"> */
.sapi-cart-outer .wc-block-components-product-details span[aria-hidden="true"] {
  display: none !important;
}

/* Cacher le 2ème .product-details (variations par défaut de Blocks = doublon) */
.sapi-cart-outer .wc-block-components-product-metadata > .wc-block-components-product-details ~ .wc-block-components-product-details {
  display: none !important;
}

/* Prix total à droite — conservé et stylisé */
.sapi-cart-outer .wc-block-cart-item__total .wc-block-components-product-price {
  display: block !important;
  font-weight: 700 !important;
  color: var(--color-wood) !important;
}

/* ---- Cross-sells "Ça peut vous intéresser…" ----
   Tout est dans .wc-block-cart__main, pas de wrapper dédié.
   Classes confirmées via inspection DOM live. */

/* Titre cross-sell — même style que les H2 du checkout */
.sapi-cart-outer .wc-block-cart__main .wp-block-heading {
  font-family: var(--font-body) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--color-dark) !important;
}

/* Noms produits (wp-block-post-title + son lien <a>) */
.sapi-cart-outer .wc-block-cart__main .wp-block-post-title,
.sapi-cart-outer .wc-block-cart__main .wp-block-post-title a {
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  color: var(--color-dark) !important;
  text-decoration: none !important;
}

/* Prix */
.sapi-cart-outer .wc-block-cart__main .wc-block-components-product-price,
.sapi-cart-outer .wc-block-cart__main .wc-block-components-product-price .woocommerce-Price-amount {
  font-weight: 700 !important;
  color: var(--color-wood) !important;
}

/* Bouton cross-sell "Voir le produit" — style outline discret */
.sapi-cart-outer .wc-block-cart__main .wc-block-components-product-button__button {
  background: transparent !important;
  color: var(--color-orange, #E35B24) !important;
  border: 1.5px solid var(--color-orange, #E35B24) !important;
  border-radius: 12px !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-size: 0.75rem !important;
  box-shadow: none !important;
  transition: background 0.2s ease, color 0.2s ease !important;
  min-height: 44px !important; /* Touch target iOS */
}

@media (hover: hover) {
  .sapi-cart-outer .wc-block-cart__main .wc-block-components-product-button__button:hover {
    background: var(--color-orange, #E35B24) !important;
    color: #fff !important;
    box-shadow: none !important;
    transform: none !important;
  }
}

/* ========================================
   PANIER CLASSIQUE (shortcode [woocommerce_cart])
   Même wrapper .sapi-cart-outer injecté via hooks PHP
   woocommerce_before_cart / woocommerce_after_cart
   ======================================== */

/* Layout deux colonnes : panier 65% + totaux 35% */
.sapi-cart-outer .woocommerce {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  align-items: flex-start;
}

.sapi-cart-outer .woocommerce-cart-form {
  flex: 0 0 calc(65% - 1rem);
  max-width: calc(65% - 1rem);
  background: var(--color-white, #fff);
  border: 1px solid var(--color-gray-light, #e8e2d9);
  border-radius: var(--radius-lg, 16px);
  padding: 2rem;
  box-sizing: border-box;
}

.sapi-cart-outer .cart-collaterals {
  flex: 0 0 calc(35% - 1rem);
  max-width: calc(35% - 1rem);
  position: sticky;
  top: 90px;
  align-self: flex-start;
}

/* Card des totaux */
.sapi-cart-outer .cart_totals {
  background: var(--color-white, #fff);
  border: 1px solid var(--color-gray-light, #e8e2d9);
  border-radius: var(--radius-lg, 16px);
  padding: 2rem;
}

/* Tableau produits — bordures discrètes par ligne */
.sapi-cart-outer .woocommerce-cart-form__contents {
  border-collapse: separate;
  border-spacing: 0;
}

.sapi-cart-outer .woocommerce-cart-form__contents thead th {
  padding: 0.75rem 1rem;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: var(--color-gray, #999);
  border: none;
  border-bottom: 1px solid var(--color-gray-light, #e8e2d9);
}

.sapi-cart-outer .woocommerce-cart-form__contents td {
  padding: 1.25rem 1rem;
  vertical-align: middle;
  border: none;
  border-bottom: 1px solid rgba(147, 125, 104, 0.1);
}

.sapi-cart-outer .woocommerce-cart-form__contents .product-thumbnail img {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 12px;
}

.sapi-cart-outer .woocommerce-cart-form__contents .product-name a {
  font-weight: 700;
  color: var(--color-dark);
  text-decoration: none;
  font-size: 1rem;
}

@media (hover: hover) {
  .sapi-cart-outer .woocommerce-cart-form__contents .product-name a:hover {
    color: var(--color-wood);
  }
}

.sapi-cart-outer .woocommerce-cart-form__contents .product-price .amount {
  font-weight: 700;
  color: var(--color-wood);
}

.sapi-cart-outer .woocommerce-cart-form__contents .product-subtotal .amount {
  font-weight: 800;
  color: var(--color-dark);
}

/* Bouton supprimer — discret */
.sapi-cart-outer .woocommerce-cart-form__contents .product-remove a {
  color: var(--color-gray, #999);
  font-size: 1.25rem;
  text-decoration: none;
  transition: color 0.2s ease;
}

@media (hover: hover) {
  .sapi-cart-outer .woocommerce-cart-form__contents .product-remove a:hover {
    color: var(--color-orange, #E35B24);
  }
}

/* Quantité — input plus propre */
.sapi-cart-outer .woocommerce-cart-form__contents .qty {
  width: 60px;
  padding: 0.5rem;
  border: 1px solid var(--color-gray-light, #e8e2d9);
  border-radius: 8px;
  text-align: center;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.95rem;
}

/* Actions (coupon + mettre à jour) */
.sapi-cart-outer .woocommerce-cart-form .actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem 0 0;
  border-top: none;
}

.sapi-cart-outer .woocommerce-cart-form .actions .coupon {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.sapi-cart-outer .woocommerce-cart-form .actions .coupon #coupon_code {
  padding: 0.65rem 1rem;
  border: 1px solid var(--color-gray-light, #e8e2d9);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 0.85rem;
  min-width: 160px;
}

.sapi-cart-outer .woocommerce-cart-form .actions .coupon .button {
  padding: 0.65rem 1.25rem;
  background: var(--color-wood, #937D68);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: background 0.2s ease;
}

@media (hover: hover) {
  .sapi-cart-outer .woocommerce-cart-form .actions .coupon .button:hover {
    background: var(--color-dark, #323232);
  }
}

/* Bouton "Mettre à jour le panier" */
.sapi-cart-outer .woocommerce-cart-form .actions button[name="update_cart"] {
  padding: 0.65rem 1.5rem;
  background: var(--color-cream, #FEFDFB);
  color: var(--color-dark, #323232);
  border: 1.5px solid var(--color-gray-light, #e8e2d9);
  border-radius: 8px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

@media (hover: hover) {
  .sapi-cart-outer .woocommerce-cart-form .actions button[name="update_cart"]:hover {
    border-color: var(--color-wood, #937D68);
    background: var(--color-warm, #FBF6EA);
  }
}

.sapi-cart-outer .woocommerce-cart-form .actions button[name="update_cart"]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Bouton "Passer commande" — vert comme WC Blocks */
.sapi-cart-outer .wc-proceed-to-checkout .checkout-button {
  display: block;
  width: 100%;
  padding: 1rem 2rem;
  background: linear-gradient(180deg, #018501 0%, #026B02 100%);
  color: #fff;
  border: none;
  border-radius: 12px;
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 4px 15px rgba(1, 133, 1, 0.25);
  transition: background 0.2s ease, box-shadow 0.2s ease;
  margin-top: 1.5rem;
}

@media (hover: hover) {
  .sapi-cart-outer .wc-proceed-to-checkout .checkout-button:hover {
    background: linear-gradient(180deg, #026B02 0%, #015A01 100%);
    box-shadow: 0 6px 20px rgba(1, 133, 1, 0.35);
  }
}

/* Totaux — typographie harmonisée */
.sapi-cart-outer .cart_totals h2 {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: 1.5rem;
  border: none;
  padding: 0;
}

.sapi-cart-outer .cart_totals th {
  font-weight: 600;
  color: var(--color-gray, #999);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.sapi-cart-outer .cart_totals td {
  text-align: right;
  font-weight: 600;
  color: var(--color-dark);
}

.sapi-cart-outer .cart_totals .order-total .amount {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--color-dark);
}

/* Cross-sells classiques */
.sapi-cart-outer .cross-sells {
  margin-top: 2rem;
}

.sapi-cart-outer .cross-sells > h2 {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-dark);
  margin-bottom: 1rem;
}

.sapi-cart-outer .cross-sells .products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.sapi-cart-outer .cross-sells .products li.product {
  background: var(--color-white, #fff);
  border: 1px solid var(--color-gray-light, #e8e2d9);
  border-radius: 12px;
  padding: 1rem;
  text-align: center;
}

.sapi-cart-outer .cross-sells .products li.product img {
  border-radius: 8px;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.sapi-cart-outer .cross-sells .products li.product a.button {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.5rem 1rem;
  background: transparent;
  color: var(--color-orange, #E35B24);
  border: 1.5px solid var(--color-orange, #E35B24);
  border-radius: 12px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

@media (hover: hover) {
  .sapi-cart-outer .cross-sells .products li.product a.button:hover {
    background: var(--color-orange, #E35B24);
    color: #fff;
  }
}

/* Responsive panier classique */
@media (max-width: 768px) {
  .sapi-cart-outer .woocommerce {
    flex-direction: column;
  }

  .sapi-cart-outer .woocommerce-cart-form,
  .sapi-cart-outer .cart-collaterals {
    flex: 0 0 100%;
    max-width: 100%;
    position: static;
  }

  .sapi-cart-outer .woocommerce-cart-form {
    padding: 1rem;
  }

  .sapi-cart-outer .woocommerce-cart-form .actions {
    flex-direction: column;
    gap: 0.75rem;
  }

  .sapi-cart-outer .woocommerce-cart-form .actions .coupon {
    width: 100%;
  }

  .sapi-cart-outer .woocommerce-cart-form .actions .coupon #coupon_code {
    flex: 1;
    min-width: 0;
  }

  .sapi-cart-outer .woocommerce-cart-form__contents thead {
    display: none;
  }

  .sapi-cart-outer .woocommerce-cart-form__contents td {
    display: block;
    padding: 0.5rem 0;
    border: none;
    text-align: left;
  }

  .sapi-cart-outer .woocommerce-cart-form__contents tr {
    display: block;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(147, 125, 104, 0.1);
  }

  .sapi-cart-outer .woocommerce-cart-form__contents .product-thumbnail {
    text-align: center;
  }
}

/* Fond page */
body.woocommerce-cart {
  background-color: var(--color-cream);
}

/* ========================================
   CHECKOUT — Même style que le panier
   .sapi-checkout-outer injecté via render_block
   ======================================== */

.sapi-checkout-outer {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding: 2rem 3rem 4rem;
  box-sizing: border-box;
}

.sapi-checkout-outer .wc-block-components-sidebar-layout {
  align-items: flex-start !important;
  gap: 2rem !important;
}

/* Colonne gauche (formulaire) */
.sapi-checkout-outer .wc-block-components-main {
  width: calc(65% - 1rem) !important;
  background: var(--color-white, #fff) !important;
  border: 1px solid var(--color-gray-light, #e8e2d9) !important;
  border-radius: var(--radius-lg, 16px) !important;
  padding: 2rem !important;
  box-sizing: border-box !important;
}

/* Colonne droite (récap commande) — sticky
 * top: 90px = hauteur header simplifié (logo 50px + padding 2×16px) + 8px marge */
.sapi-checkout-outer .wc-block-components-sidebar {
  width: calc(35% - 1rem) !important;
  background: var(--color-white, #fff) !important;
  border: 1px solid var(--color-gray-light, #e8e2d9) !important;
  border-radius: var(--radius-lg, 16px) !important;
  padding: 2rem !important;
  box-sizing: border-box !important;
  position: sticky !important;
  top: 90px !important;
  align-self: flex-start !important;
}

/* Bouton "Passer commande" — vert validation */
.sapi-checkout-outer .wc-block-components-checkout-place-order-button button,
.sapi-checkout-outer .wc-block-components-checkout-place-order-button {
  background: linear-gradient(180deg, #018501 0%, #026B02 100%) !important;
  color: #fff !important;
  border-radius: 12px !important;
  font-family: var(--font-body) !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  box-shadow: 0 4px 15px rgba(1, 133, 1, 0.25) !important;
  border: none !important;
  width: 100% !important;
}

@media (hover: hover) {
  .sapi-checkout-outer .wc-block-components-checkout-place-order-button button:hover,
  .sapi-checkout-outer .wc-block-components-checkout-place-order-button:hover {
    background: linear-gradient(180deg, #026B02 0%, #015A01 100%) !important;
    box-shadow: 0 6px 20px rgba(1, 133, 1, 0.35) !important;
  }
}

/* Titres de sections du formulaire */
.sapi-checkout-outer .wc-block-components-checkout-step__title {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  color: var(--color-dark) !important;
}

/* Labels des champs — labels flottants WooCommerce Blocks */
.sapi-checkout-outer label {
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  color: var(--color-dark) !important;
}

/* Champs input / select */
.sapi-checkout-outer .wc-block-components-text-input input,
.sapi-checkout-outer .wc-block-components-select select,
.sapi-checkout-outer .wc-block-components-combobox input {
  border: 2px solid var(--color-gray-light, #e8e2d9) !important;
  border-radius: 8px !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  /* padding-top élevé pour laisser de la place au label flottant */
  padding: 1.5rem 1rem 0.4rem !important;
  background: var(--color-cream) !important;
  transition: border-color 0.2s ease !important;
}

.sapi-checkout-outer .wc-block-components-text-input input:focus,
.sapi-checkout-outer .wc-block-components-select select:focus,
.sapi-checkout-outer .wc-block-components-combobox input:focus {
  border-color: var(--color-wood) !important;
  outline: none !important;
  background: var(--color-white, #fff) !important;
}

/* Masquer le message "Vous validez votre commande en tant qu'invité" */
.wc-block-checkout__guest-checkout-notice {
  display: none !important;
}

/* Produits dans le récap (sidebar) — layout vertical comme le mini-cart */
.sapi-checkout-outer .wc-block-components-order-summary-item {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.5rem !important;
  padding: 1rem !important;
  background: var(--color-cream) !important;
  border: 1px solid rgba(147, 125, 104, 0.15) !important;
  border-radius: 8px !important;
}

.sapi-checkout-outer .wc-block-components-order-summary-item__image {
  order: -1 !important;
  align-self: center !important;
}

.sapi-checkout-outer .wc-block-components-order-summary-item__image img {
  border-radius: 8px !important;
}

.sapi-checkout-outer .wc-block-components-product-name {
  font-size: 1.2rem !important;
  color: var(--color-dark) !important;
}

.sapi-checkout-outer .wc-block-components-order-summary-item__description {
  padding: 0 !important;
  margin: 0 !important;
}

/* Masquer prix individuel (doublon) + description longue (dimensions/poids) */
.sapi-checkout-outer .wc-block-components-order-summary-item__individual-prices,
.sapi-checkout-outer .wc-block-components-product-metadata__description {
  display: none !important;
}

/* Variations compactes — chaque attribut sur sa ligne */
.sapi-checkout-outer .wc-block-components-product-details {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.1rem !important;
  padding: 0 !important;
  margin: 0.25rem 0 0 !important;
}

.sapi-checkout-outer .wc-block-components-product-details > span {
  display: block !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
}

.sapi-checkout-outer .wc-block-components-product-details__name {
  font-weight: 600 !important;
  font-size: 0.8rem !important;
  line-height: 1.4 !important;
  color: var(--color-dark) !important;
  margin-right: 0.3em !important;
}

.sapi-checkout-outer .wc-block-components-product-details__value {
  font-weight: 400 !important;
  font-size: 0.8rem !important;
  line-height: 1.4 !important;
  color: var(--color-gray) !important;
}

/* Cacher le "/" et le doublon variations dans le checkout */
.sapi-checkout-outer .wc-block-components-product-details span[aria-hidden="true"] {
  display: none !important;
}

.sapi-checkout-outer .wc-block-components-product-metadata > .wc-block-components-product-details ~ .wc-block-components-product-details {
  display: none !important;
}

/* Prix total */
.sapi-checkout-outer .wc-block-components-order-summary-item__total-price {
  font-weight: 700 !important;
  color: var(--color-wood) !important;
}

/* Mobile */
@media (max-width: 768px) {
  .sapi-checkout-outer {
    padding: 0;
    margin: 0;
  }

  .sapi-checkout-outer .wc-block-components-sidebar-layout {
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
  }

  .sapi-checkout-outer .wp-block-woocommerce-checkout {
    padding: 0 !important;
    margin: 0 !important;
  }

  .sapi-checkout-outer .wc-block-components-main {
    width: 100% !important;
    position: static !important;
    padding: 0.25rem !important;
    margin: 2px !important;
    box-sizing: border-box !important;
    border-radius: 8px !important;
  }

  .sapi-checkout-outer .wc-block-components-checkout-step {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Masquer la sidebar (résumé commande) sur mobile — déjà affiché en haut par WC Blocks */
  .sapi-checkout-outer .wc-block-components-sidebar {
    display: none !important;
  }
}

/* ========================================
   WOOCOMMERCE - Cart Page CINÉTIQUE
   ======================================== */

/* Layout géré par .sapi-cart-outer / .sapi-checkout-outer — pas de padding ici */
.cart-page-cinetique,
.checkout-page-cinetique {
  max-width: 100%;
}

.cart-hero {
  text-align: center;
  margin-bottom: 3rem;
}

.cart-hero .section-number {
  display: block;
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
  margin-bottom: 1rem;
}

.cart-hero h1 {
  font-family: var(--font-body);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 900;
  color: var(--color-dark);
  margin-bottom: 0.75rem;
}

.cart-subtitle {
  font-size: 1.1rem;
  color: var(--color-gray);
  text-align: center;
}

/* Cart Table Enhancements */
.woocommerce-cart-form {
  margin-bottom: 2rem;
}

.woocommerce-cart-form__contents {
  width: 100%;
  border-collapse: collapse;
}

.woocommerce-cart-form__contents th {
  padding: 1rem;
  text-align: left;
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gray);
  border-bottom: 2px solid var(--color-gray-light);
}

.woocommerce-cart-form__contents td {
  padding: 1.5rem 1rem;
  vertical-align: middle;
  border-bottom: 1px solid var(--color-gray-light);
}

.woocommerce-cart-form__contents .product-thumbnail img {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 8px;
}

.woocommerce-cart-form__contents .product-name a {
  font-weight: 600;
  color: var(--color-dark);
  text-decoration: none;
}

@media (hover: hover) {
  .woocommerce-cart-form__contents .product-name a:hover {
    color: var(--color-wood);
  }
}

.woocommerce-cart-form__contents .product-price {
  font-weight: 600;
  color: var(--color-wood);
}

.woocommerce-cart-form__contents .product-subtotal {
  font-weight: 700;
  color: var(--color-dark);
}

/* Cart Reassurance Block */
.cart-reassurance {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  background: var(--color-white, #fff);
  border: 1px solid var(--color-gray-light, #e8e2d9);
  border-radius: var(--radius-lg, 16px);
  margin-top: 2rem;
  overflow: hidden;
}

.cart-reassurance .reassurance-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.75rem;
  padding: 1.5rem 1rem;
  position: relative;
}

.cart-reassurance .reassurance-item:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0;
  top: 20%;
  height: 60%;
  width: 1px;
  background: var(--color-gray-light, #e8e2d9);
}

.cart-reassurance .reassurance-item svg {
  color: var(--color-wood);
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  opacity: 0.7;
}

.reassurance-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.reassurance-text strong {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--color-dark);
}

.reassurance-text span {
  font-size: 0.75rem;
  color: var(--color-gray, #999);
  line-height: 1.3;
}

/* Cart Totals */
.cart_totals {
  background: var(--color-white);
  border: 1px solid var(--color-gray-light);
  border-radius: 12px;
  padding: 2rem;
}

.cart_totals h2 {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: var(--color-dark);
}

.cart_totals table {
  width: 100%;
}

.cart_totals th,
.cart_totals td {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-gray-light);
}

.cart_totals .order-total th,
.cart_totals .order-total td {
  padding-top: 1.25rem;
  border-bottom: none;
  font-weight: 700;
  font-size: 1.1rem;
}

.wc-proceed-to-checkout .checkout-button {
  display: block;
  width: 100%;
  padding: 1rem 2rem;
  background: var(--color-wood);
  color: var(--color-white);
  border: none;
  border-radius: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
  text-decoration: none;
  -webkit-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
}

@media (hover: hover) {
  .wc-proceed-to-checkout .checkout-button:hover {
    background: var(--color-dark);
  }
}

@media (max-width: 768px) {
  .cart-page-cinetique {
    padding: 0;
  }

  .cart-reassurance {
    grid-template-columns: 1fr;
  }

  .cart-reassurance .reassurance-item {
    padding: 1rem;
  }

  .cart-reassurance .reassurance-item:not(:last-child)::after {
    right: 10%;
    top: auto;
    bottom: 0;
    height: 1px;
    width: 80%;
  }

  .woocommerce-cart-form__contents th.product-thumbnail,
  .woocommerce-cart-form__contents td.product-thumbnail {
    display: none;
  }
}

/* ========================================
   WOOCOMMERCE - Checkout Page CINÉTIQUE
   ======================================== */

/* Pas de padding sur les wrappers internes — géré par .sapi-*-outer */

/* Checkout Progress Bar */
.checkout-progress {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 1rem;
  padding: 0.75rem 0;
}

.progress-step {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  position: relative;
  z-index: 2;
  width: 100px;
}

.progress-step .step-number {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
  background: var(--color-gray-light);
  color: var(--color-gray-mid);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.progress-step .step-label {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--color-gray-mid);
  white-space: nowrap;
}

/* Active step */
.progress-step.active .step-number {
  background: var(--color-wood);
  color: var(--color-white);
  box-shadow: 0 0 0 4px rgba(147, 125, 104, 0.2), 0 4px 12px rgba(147, 125, 104, 0.3);
}

.progress-step.active .step-label {
  color: var(--color-wood);
  font-weight: 600;
}

/* Completed step */
.progress-step.completed .step-number {
  background: var(--color-green);
  color: var(--color-white);
}

.progress-step.completed .step-label {
  color: var(--color-green);
}

/* Progress line between steps */
.progress-line {
  width: 60px;
  height: 3px;
  background: var(--color-gray-light);
  position: relative;
  z-index: 1;
  margin: 0 8px;
  margin-bottom: 28px; /* Align with step circles */
  border-radius: 2px;
}

.progress-line.completed {
  background: var(--color-green);
}

/* Responsive */
@media (max-width: 600px) {
  .checkout-progress {
    gap: 0;
  }

  .progress-step .step-number {
    width: 32px;
    height: 32px;
    font-size: 0.875rem;
  }

  .progress-step .step-label {
    font-size: 0.7rem;
  }

  .progress-line {
    width: 30px;
    margin-bottom: 24px;
  }
}

.checkout-title {
  font-family: var(--font-body);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 900;
  color: var(--color-dark);
  text-align: center;
  margin-bottom: 0.75rem;
}

.checkout-subtitle {
  font-size: 1.1rem;
  color: var(--color-gray);
  text-align: center;
  margin-bottom: 2rem;
}

/* Checkout Two-Column Layout */
.woocommerce-checkout .col2-set {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
}

.woocommerce-checkout .col-1,
.woocommerce-checkout .col-2 {
  width: 100%;
}

.woocommerce-checkout h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 1.25rem;
  color: var(--color-dark);
}

/* Form Fields Styling */
.woocommerce-checkout .form-row {
  margin-bottom: 1rem;
}

.woocommerce-checkout .form-row label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 500;
  font-size: 0.9rem;
  color: var(--color-dark);
}

.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 2px solid var(--color-gray-light);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 1rem;
  -webkit-transition: border-color 0.2s ease;
  transition: border-color 0.2s ease;
}

.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  outline: none;
  border-color: var(--color-wood);
}

/* Order Review Section */
#order_review_heading {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--color-gray-light);
}

.woocommerce-checkout-review-order {
  background: var(--color-cream);
  border-radius: 12px;
  padding: 2rem;
}

.woocommerce-checkout-review-order-table {
  width: 100%;
  margin-bottom: 1.5rem;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(147, 125, 104, 0.2);
}

.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
  font-weight: 700;
  font-size: 1.1rem;
  border-bottom: none;
  padding-top: 1rem;
}

/* ==========================================================================
   Fix Express Payment (Apple Pay / Google Pay) — WooPayments + WC Blocks
   ==========================================================================
   Le sélecteur `.page-default .entry-content ul` du thème écrase le reset
   de WooCommerce Blocks sur le <ul> des boutons Express Payment et y ajoute
   un padding-left asymétrique. WooPayments pose aussi des règles
   `> li { margin-left: 1px; width: 99% }` qui décalent les boutons.
   Enfin sur mobile le grid auto-fit force 2 colonnes qui débordent.
   On remet à zéro le padding, on neutralise le margin/width bizarres, et
   on force 1 colonne sous 768px sur la page checkout.
*/
.wc-block-components-express-payment .wc-block-components-express-payment__event-buttons {
  padding-left: 0 !important;
  margin-bottom: 20px !important;
}

.wc-block-components-express-payment .wc-block-components-express-payment__event-buttons > li {
  margin-left: 0 !important;
  width: 100% !important;
}

@media (max-width: 768px) {
  .wc-block-components-express-payment--checkout .wc-block-components-express-payment__event-buttons {
    grid-template-columns: 1fr !important;
  }
}

/* Masquer le titre "Validation de commande express" — WooPayments pose le
   title-container en position:absolute (top:-4px) et le <h2> hérite de
   font-size:22.4px du thème, ce qui fait 97px de haut qui recouvrent les
   boutons (~73px d'overlap). Apple Pay / Google Pay sont self-explanatory
   et la barre "Ou continuez ci-dessous" assure la séparation visuelle. */
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container {
  display: none !important;
}

/* Masquer le <li> Apple Pay quand le navigateur ne supporte pas Apple Pay
   (Chrome, Firefox, Edge, ...). Stripe rend un iframe vide de 8px dans ce li
   et WooPayments impose min-height: 48px → d'où un vide de ~60px au-dessus de
   Google Pay en layout mobile (1fr). La règle :has() native de WooPayments ne
   protège pas dans cette config car elle dépend d'un élément preview parfois
   absent. Safari (qui supporte -apple-pay-button) voit le li normalement. */
@supports not (-webkit-appearance: -apple-pay-button) {
  #express-payment-method-woocommerce_payments_express_checkout_applePay {
    display: none !important;
  }
}

/* Fermer le cadre et resserrer les paddings
   - Le title-container masqué avait des ::before/::after qui dessinaient le
     top-border du .content (initialement border-width: 0 1px 1px). On ferme
     avec un border-top continu et on passe le border-radius à 4px uniforme.
   - On enlève le margin-top: 5px résiduel (prévu pour laisser passer le title
     absolu) et le margin-bottom: 20px du ul, pour obtenir 16px en haut + 16px
     en bas autour des boutons — symétrique. */
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__content {
  border-top-width: 1px !important;
  border-top-style: solid !important;
  border-top-color: color-mix(in srgb, currentcolor 20%, transparent) !important;
  border-radius: 4px !important;
  margin-top: 0 !important;
  padding: 16px !important;
}

.wc-block-components-express-payment--checkout .wc-block-components-express-payment__event-buttons {
  margin-bottom: 0 !important;
}

/* Payment Methods */
.woocommerce-checkout-payment {
  background: var(--color-white);
  border: 1px solid var(--color-gray-light);
  border-radius: 12px;
  padding: 1.5rem;
  margin-top: 1.5rem;
}

.wc_payment_methods {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem 0;
}

.wc_payment_method {
  padding: 1rem;
  border: 1px solid var(--color-gray-light);
  border-radius: 8px;
  margin-bottom: 0.75rem;
  -webkit-transition: border-color 0.2s ease;
  transition: border-color 0.2s ease;
}

@media (hover: hover) {
  .wc_payment_method:hover {
    border-color: var(--color-wood);
  }
}

.wc_payment_method label {
  font-weight: 600;
  cursor: pointer;
}

/* Place Order Button */
#place_order {
  display: block;
  width: 100%;
  padding: 1.25rem 2rem;
  background: var(--color-wood);
  color: var(--color-white);
  border: none;
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  -webkit-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
}

@media (hover: hover) {
  #place_order:hover {
    background: var(--color-dark);
  }
}

@media (max-width: 768px) {
  .checkout-page-cinetique {
    padding: 1rem;
  }

  .woocommerce-checkout .col2-set {
    grid-template-columns: 1fr;
  }
}

/* ========================================
   ORDER PAY PAGE - Harmonisation tunnel
   ======================================== */

/* Conteneur formulaire order-pay */
body.woocommerce-order-pay .checkout-page-cinetique #order_review {
  max-width: 680px;
  margin: 0 auto;
}

/* ---- Récap commande (card blanche) ---- */
.sapi-order-pay-recap {
  background: var(--color-white);
  border: 1px solid var(--color-gray-light);
  border-radius: 16px;
  padding: 2rem;
  margin-bottom: 2rem;
}

.sapi-order-pay-recap__title {
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-dark);
  margin: 0 0 1.5rem 0;
}

/* ---- Produit item (card interne) ---- */
.sapi-order-pay-item {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-gray-light);
  border-radius: 12px;
  padding: 1.25rem;
  margin-bottom: 1rem;
}

.sapi-order-pay-item__image {
  position: relative;
  align-self: center;
  margin-bottom: 1rem;
}

.sapi-order-pay-item__image img {
  display: block;
  max-width: 100%;
  max-height: 200px;
  object-fit: contain;
  border-radius: 8px;
}

.sapi-order-pay-item__qty {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 28px;
  height: 28px;
  background: var(--color-gray-light);
  color: var(--color-dark);
  border-radius: 50%;
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--color-white);
}

.sapi-order-pay-item__details {
  text-align: left;
}

.sapi-order-pay-item__name {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-dark);
  margin: 0 0 0.75rem 0;
  text-align: left;
}

.sapi-order-pay-item__details .wc-item-meta {
  list-style: none;
  padding: 0;
  margin: 0 0 0.75rem 0;
}

.sapi-order-pay-item__details .wc-item-meta li {
  font-size: 0.9rem;
  color: var(--color-dark);
  margin-bottom: 0.35rem;
  line-height: 1.5;
  display: block;
}

.sapi-order-pay-item__details .wc-item-meta li strong {
  font-weight: 700;
  display: inline;
}

.sapi-order-pay-item__details .wc-item-meta li p {
  display: inline;
  font-weight: 400;
}

.sapi-order-pay-item__price {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-wood);
  text-align: right;
  margin: 0.5rem 0 0;
}

/* ---- Totaux ---- */
.sapi-order-pay-totals {
  border-top: 1px solid var(--color-gray-light);
  padding-top: 1rem;
}

.sapi-order-pay-totals__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.6rem 0;
  border-bottom: 1px solid rgba(147, 125, 104, 0.1);
  font-size: 0.95rem;
  color: var(--color-dark);
}

.sapi-order-pay-totals__row:last-child {
  border-bottom: none;
  padding-top: 1rem;
  padding-bottom: 0;
}

.sapi-order-pay-totals__row:last-child .sapi-order-pay-totals__label {
  font-size: 1.25rem;
  font-weight: 700;
}

.sapi-order-pay-totals__row:last-child .sapi-order-pay-totals__value {
  font-size: 1.25rem;
  font-weight: 700;
}

.sapi-order-pay-totals__label {
  font-weight: 500;
}

.sapi-order-pay-totals__value {
  font-weight: 600;
  text-align: right;
}

.sapi-order-pay-totals__value .amount {
  font-weight: 700;
  color: var(--color-wood);
}

/* ---- Notice invité ---- */
body.woocommerce-order-pay .woocommerce-info {
  background: var(--color-warm);
  border: 1px solid rgba(147, 125, 104, 0.25);
  border-left: 3px solid var(--color-wood);
  border-radius: 10px;
  padding: 1rem 1.25rem;
  font-size: 0.9rem;
  color: var(--color-dark);
  margin-bottom: 2rem;
}

body.woocommerce-order-pay .woocommerce-info::before {
  color: var(--color-wood);
}

/* ---- Section paiement ---- */
body.woocommerce-order-pay #payment {
  background: var(--color-white);
  border: 1px solid var(--color-gray-light);
  border-radius: 16px;
  padding: 2rem;
  margin-top: 0;
  -webkit-box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
}

body.woocommerce-order-pay #payment .wc_payment_methods {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem 0;
}

body.woocommerce-order-pay #payment .wc_payment_method {
  padding: 1.25rem;
  border: 2px solid var(--color-gray-light);
  border-radius: 12px;
  margin-bottom: 0.75rem;
  background: var(--color-white);
  -webkit-transition: border-color 0.2s ease, box-shadow 0.2s ease;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

@media (hover: hover) {
  body.woocommerce-order-pay #payment .wc_payment_method:hover {
    border-color: var(--color-wood);
    -webkit-box-shadow: 0 2px 8px rgba(147, 125, 104, 0.12);
    box-shadow: 0 2px 8px rgba(147, 125, 104, 0.12);
  }
}

body.woocommerce-order-pay #payment .wc_payment_method label {
  font-weight: 600;
  cursor: pointer;
}

body.woocommerce-order-pay #payment .payment_box {
  padding: 1rem 0 0.5rem 0;
  font-size: 0.9rem;
  color: var(--color-gray);
}

/* Bouton Payer — vert comme le checkout classique */
body.woocommerce-order-pay #place_order {
  display: block;
  width: 100%;
  padding: 1.25rem 2rem;
  background: linear-gradient(180deg, #018501 0%, #026B02 100%);
  color: var(--color-white);
  border: none;
  border-radius: 12px;
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  -webkit-transition: box-shadow 0.3s ease, transform 0.2s ease;
  transition: box-shadow 0.3s ease, transform 0.2s ease;
  -webkit-box-shadow: 0 4px 15px rgba(1, 133, 1, 0.25);
  box-shadow: 0 4px 15px rgba(1, 133, 1, 0.25);
  margin-top: 0.5rem;
}

@media (hover: hover) {
  body.woocommerce-order-pay #place_order:hover {
    background: linear-gradient(180deg, #017101 0%, #015A02 100%);
    -webkit-box-shadow: 0 6px 20px rgba(1, 133, 1, 0.35);
    box-shadow: 0 6px 20px rgba(1, 133, 1, 0.35);
    -webkit-transform: translateY(-1px);
    transform: translateY(-1px);
  }
}

/* Conditions + privacy */
body.woocommerce-order-pay .woocommerce-terms-and-conditions-wrapper {
  padding: 1rem 0;
  font-size: 0.85rem;
  color: var(--color-gray);
  line-height: 1.5;
}

body.woocommerce-order-pay .woocommerce-terms-and-conditions-wrapper a {
  color: var(--color-wood);
  text-decoration: underline;
}

body.woocommerce-order-pay .woocommerce-privacy-policy-text {
  font-size: 0.8rem;
  color: var(--color-gray);
  line-height: 1.5;
}

body.woocommerce-order-pay .woocommerce-privacy-policy-text a {
  color: var(--color-wood);
}

/* Section informations supplémentaires */
.sapi-order-pay-additional {
  background: var(--color-white);
  border: 1px solid var(--color-gray-light);
  border-radius: 16px;
  padding: 2rem;
  margin-bottom: 2rem;
}

.sapi-order-pay-additional__title {
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-dark);
  margin: 0 0 1.25rem 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--color-gray-light);
}

.sapi-order-pay-additional__checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 0;
  cursor: pointer;
  font-size: 0.9rem;
  color: var(--color-dark);
  line-height: 1.5;
}

.sapi-order-pay-additional__checkbox input[type="checkbox"] {
  margin-top: 0.2rem;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  accent-color: var(--color-wood);
  cursor: pointer;
}

.sapi-order-pay-additional__note-field {
  padding-top: 0.5rem;
}

.sapi-order-pay-additional__note-field textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 2px solid var(--color-gray-light);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  resize: vertical;
  -webkit-transition: border-color 0.2s ease;
  transition: border-color 0.2s ease;
}

.sapi-order-pay-additional__note-field textarea:focus {
  outline: none;
  border-color: var(--color-wood);
}

/* Actions (retour panier + bouton payer) */
.sapi-order-pay-actions {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-top: 0.5rem;
}

.sapi-order-pay-back {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--color-gray);
  text-decoration: none;
  white-space: nowrap;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}

@media (hover: hover) {
  .sapi-order-pay-back:hover {
    color: var(--color-wood);
  }
}

.sapi-order-pay-actions #place_order {
  flex: 1;
}

/* Mobile order-pay */
@media (max-width: 768px) {
  body.woocommerce-order-pay .checkout-page-cinetique #order_review {
    max-width: 100%;
  }

  .sapi-order-pay-recap {
    padding: 1.25rem;
  }

  .sapi-order-pay-item__image img {
    max-height: 160px;
  }

  body.woocommerce-order-pay #payment {
    padding: 1.25rem;
  }
}

/* ========================================
   PRODUCT HERO V2 - Premium Layout
   ======================================== */

.product-hero-v2 {
  position: relative;
  z-index: 10;
  margin-top: -15vh;
  padding: 2rem 0 4rem;
  background: transparent;
}

.product-hero-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
  align-items: start;
}

/* ---- GALERIE V2 ---- */
.product-gallery-v2 {
  position: sticky;
  top: var(--gallery-sticky-top, 100px);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(74, 63, 53, 0.08);
  padding: 1rem;
}

.gallery-main {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 12px;
  background: #f5f5f5;
}

/* Overlay lumière dorée subtile - DS 4.4 */
.gallery-main::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(255, 248, 231, 0.15) 0%,
    transparent 50%
  );
  pointer-events: none;
  z-index: 1;
}

.gallery-main-image {
  display: block;
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center;
  transition: transform 0.4s ease;
  -webkit-transition: transform 0.4s ease;
}

@media (hover: hover) {
  .gallery-main:hover .gallery-main-image {
    transform: scale(1.02);
    -webkit-transform: scale(1.02);
  }
}

.gallery-zoom {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  pointer-events: none; /* Disable click on all screen sizes */
  cursor: default;
}

.gallery-zoom-icon {
  display: none !important; /* Hide zoom icon on all screen sizes */
}

/* Thumbnails horizontaux */
.gallery-thumbnails {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.5rem;
}

.gallery-thumbnails .gallery-thumb {
  flex: 0 0 auto;
  width: 80px;
  aspect-ratio: 1 / 1;
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  background: #f5f5f5;
  padding: 0;
  transition: all 0.2s ease;
  -webkit-transition: all 0.2s ease;
}

.gallery-thumbnails .gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.7;
  transition: opacity 0.2s ease;
  -webkit-transition: opacity 0.2s ease;
}

@media (hover: hover) {
  .gallery-thumbnails .gallery-thumb:hover img,
  .gallery-thumbnails .gallery-thumb.active img {
    opacity: 1;
  }
}

/* Video thumbnail play icon */
.gallery-thumb-video {
  position: relative;
}

.gallery-thumb-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  border-radius: 6px;
  transition: background 0.2s ease;
}

.gallery-thumb-video:hover .gallery-thumb-play {
  background: rgba(0, 0, 0, 0.5);
}

.gallery-thumb-video-placeholder {
  width: 100%;
  height: 100%;
  background: var(--color-dark, #323232);
  display: block;
}

/* Video player in main gallery */
.gallery-main-video {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: #000;
  border-radius: 12px;
  overflow: hidden;
}

.gallery-main-video iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.gallery-thumbnails .gallery-thumb.active {
  border-color: var(--color-accent);
}

@media (hover: hover) {
  .gallery-thumbnails .gallery-thumb:hover {
    border-color: var(--color-text-light);
  }
}

/* Mobile gallery header (titre + phrase au-dessus de la photo) */
.product-gallery-mobile-header {
  display: none; /* Hidden on desktop */
}

/* Mobile gallery navigation arrows (minimal style) */
.gallery-nav {
  display: none; /* Hidden on desktop */
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: none !important;
  border: none !important;
  padding: 0;
  margin: 0;
  cursor: pointer;
  z-index: 10;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
  box-shadow: none !important;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (hover: hover) {
  .gallery-nav:hover,
  .gallery-nav:active,
  .gallery-nav:focus {
    background: none !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    transform: translateY(-50%);
  }
}

.gallery-nav svg {
  stroke: var(--color-wood, #937D68);
  stroke-width: 2;
  pointer-events: none;
}

@media (hover: hover) {
  .gallery-nav:hover svg,
  .gallery-nav:active svg,
  .gallery-nav:focus svg {
    stroke: var(--color-wood, #937D68);
  }
}

.gallery-nav-prev {
  left: 1rem;
}

.gallery-nav-next {
  right: 1rem;
}

/* Mobile-specific styles */
@media (max-width: 768px) {
  /* Thumbnails as dots on mobile */
  .gallery-thumbnails {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 0 0;
  }

  .gallery-thumbnails .gallery-thumb {
    flex: 0 0 auto;
    width: 10px !important;
    height: 10px !important;
    min-width: 0;
    min-height: 0;
    padding: 0;
    border-radius: 50% !important;
    border: none !important;
    background: var(--color-gray-light, #ddd);
    overflow: hidden;
    aspect-ratio: 1 / 1 !important;
    transition: all 0.3s ease;
  }

  .gallery-thumbnails .gallery-thumb img {
    display: none;
  }

  .gallery-thumbnails .gallery-thumb.active {
    background: var(--color-wood, #937D68);
    transform: scale(1.2);
  }


  .gallery-main {
    position: relative;
  }

  /* Show navigation arrows on mobile */
  .gallery-nav {
    display: block;
  }

  /* Show mobile header on mobile */
  .product-gallery-mobile-header {
    display: block;
    margin-bottom: 1.5rem;
    text-align: center;
  }

  .product-title-mobile {
    font-family: var(--font-body, 'Montserrat', sans-serif);
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark, #323232);
    margin: 0 0 0.5rem 0;
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }

  .product-tagline-mobile {
    font-family: var(--font-body, 'Montserrat', sans-serif);
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--color-text-light, #666);
    margin: 0;
  }

  /* Hide desktop title and tagline on mobile */
  .product-info-v2 .product-title-v2 {
    display: none;
  }

  .product-info-v2 .product-tagline {
    display: none;
  }
}

@media (max-width: 480px) {
  .gallery-nav {
    width: 50px;
    height: 50px;
  }

  .gallery-nav svg {
    width: 20px;
    height: 20px;
  }

  .gallery-nav-prev {
    left: 0.5rem;
  }

  .gallery-nav-next {
    right: 0.5rem;
  }
}

/* ---- INFO PRODUIT V2 ---- */
.product-info-v2 {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(74, 63, 53, 0.08);
  padding: 2rem;
}

/* Badge catégorie */
.product-badge-category {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.25rem;
}

.badge-text {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  color: var(--color-text-light);
  text-transform: uppercase;
}

.badge-featured {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  background: var(--color-accent);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-radius: 100px;
}

/* Titre H1 */
.product-title-v2 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 800;
  line-height: 1.15;
  margin: 0 0 0.5rem 0;
  color: var(--color-text);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

/* Catégorie */
/* Prix - Hidden on all screen sizes */
.product-price-v2 {
  display: none !important; /* Hide "À partir de XX€" on desktop — variations show the price */
}

/* Prix masqué partout — les variations/add-ons affichent le prix */

.price-prefix {
  font-size: 0.85rem;
  color: var(--color-text-light);
}

.price-from-label {
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--color-text-light);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.product-price-v2 .price-amount,
.product-price-v2 .price-amount .woocommerce-Price-amount {
  font-size: 1.75rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  color: #018501 !important;
}

.product-price-v2 .price-amount del {
  font-size: 1.1rem;
  color: var(--color-text-light);
  font-weight: 400;
}

.product-price-v2 .price-amount ins {
  text-decoration: none;
  color: var(--color-accent);
}

/* Tagline */
.product-tagline {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--color-text-light);
  margin: 0 0 0.75rem 0;
}

/* Séparateur - Hidden on all screen sizes */
.product-divider {
  display: none !important; /* Remove spacing between tagline and variations */
}

/* ---- FORMULAIRE V2 - Premium Variations ---- */
.product-form-v2 {
  margin: 0.5rem 0 0.25rem 0;
}

/* Override WooCommerce variations */
.product-form-v2 .variations_form {
  margin: 0;
}

/* Produits simples (pas de variations) : espacement quantité / bouton */
.product-form-v2 form.cart:not(.variations_form) .quantity {
  display: inline-flex;
  margin-bottom: 1rem !important;
}

.product-form-v2 form.cart:not(.variations_form) .single_add_to_cart_button {
  margin-top: 0.5rem;
}

/* Introduction aux variations */
.variations-intro {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--color-text);
  margin: 0 0 1.5rem 0;
  padding-left: 1rem;
  border-left: 3px solid var(--color-orange, #E35B24);
  letter-spacing: 0.02em;
}

/* More spacing above variations intro on desktop */
@media (min-width: 769px) {
  .variations-intro {
    margin-top: 2rem;
  }
}

@media (max-width: 768px) {
  .variations-intro {
    display: none;
  }
}

/* Variations in 2 columns - Materials left, Sizes right (all screen sizes) */
.product-form-v2 .variations {
  margin-bottom: 1.5rem;
  border-spacing: 0;
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  grid-template-rows: auto;
}

/* Handle tbody if it exists - makes it transparent to grid layout */
.product-form-v2 .variations tbody {
  display: contents;
}

.product-form-v2 .variations tr {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 0; /* No vertical spacing - grid gap handles it */
  padding: 0 0.875rem 0.875rem 0.875rem !important; /* Top 0 pour test, côtés et bas réduits */
  background: var(--color-cream);
  border-radius: 12px;
  border: 1px solid rgba(147, 125, 104, 0.1);
}

.product-form-v2 .variations .label {
  padding: 0;
}

.product-form-v2 .variations .label label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-text);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.product-form-v2 .variations .label label::before {
  content: '';
  width: 6px;
  height: 6px;
  background: var(--color-orange, #E35B24); /* Orange accent for visual coherence */
  border-radius: 50%;
}

.product-form-v2 .variations .value {
  padding: 0;
}

/* Hide native select when swatches are present */
.product-form-v2 .variations select.swatch-select-hidden {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}

/* Premium select styling */
.product-form-v2 .variations select {
  width: 100%;
  padding: 0.875rem 1rem;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--color-text);
  background: #fff;
  border: 2px solid rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  -webkit-transition: all 0.2s ease;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23323232' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
}

@media (hover: hover) {
  .product-form-v2 .variations select:hover {
    border-color: var(--color-wood);
  }
}

.product-form-v2 .variations select:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.15);
}

/* Style des swatches dans le hero (si plugin swatches actif) */
.product-form-v2 .swatch-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.product-form-v2 .swatch-item {
  min-width: 56px;
  padding: 0.75rem 1.25rem;
  border: 2px solid rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  background: #fff;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s ease;
  -webkit-transition: all 0.25s ease;
  text-align: center;
  position: relative;
}

@media (hover: hover) {
  .product-form-v2 .swatch-item:hover {
    border-color: var(--color-wood);
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  }
}

.product-form-v2 .swatch-item.selected,
.product-form-v2 .swatch-item.active {
  border-color: var(--color-accent);
  background: linear-gradient(135deg, var(--color-warm) 0%, #fff 100%);
}

.product-form-v2 .swatch-item.selected::after,
.product-form-v2 .swatch-item.active::after {
  content: '✓';
  position: absolute;
  top: -6px;
  right: -6px;
  width: 18px;
  height: 18px;
  background: var(--color-accent);
  color: #fff;
  border-radius: 50%;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Swatches bois visuels - Cards avec preview */
.product-form-v2 .swatch-item.wood-swatch {
  width: auto;
  min-width: 80px;
  height: auto;
  padding: 0.5rem;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.product-form-v2 .swatch-item.wood-swatch .wood-preview {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 2px solid rgba(0, 0, 0, 0.05);
}

.product-form-v2 .swatch-item.wood-swatch.selected,
.product-form-v2 .swatch-item.wood-swatch.active {
  box-shadow: 0 0 0 2px var(--color-accent);
  background: var(--color-warm);
}

.product-form-v2 .swatch-item .swatch-label,
.product-form-v2 .swatch-item .swatch-name,
.product-form-v2 .attribute-swatch .swatch-item .swatch-name {
  display: block;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--color-text);
  margin-top: 0.35rem;
  text-align: center;
}

.product-form-v2 .swatch-item.selected .swatch-label,
.product-form-v2 .swatch-item.active .swatch-label,
.product-form-v2 .swatch-item.selected .swatch-name,
.product-form-v2 .swatch-item.active .swatch-name,
.product-form-v2 .attribute-swatch .swatch-item.selected .swatch-name {
  color: var(--color-accent);
  font-weight: 700;
}

/* Ensure swatch wrapper displays properly */
.product-form-v2 .attribute-swatch {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.product-form-v2 .attribute-swatch .swatch-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.75rem;
  border: 2px solid rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.25s ease;
  -webkit-transition: all 0.25s ease;
  background: #fff;
}

@media (hover: hover) {
  .product-form-v2 .attribute-swatch .swatch-item:hover {
    border-color: var(--color-wood);
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  }
}

.product-form-v2 .attribute-swatch .swatch-item.selected {
  border-color: var(--color-accent);
  background: var(--color-warm);
}

/* ========================================
   SWATCHES MATÉRIAUX PREMIUM - Design System 4.2
   ======================================== */

/* Container option matériau avec pastille visuelle */
.material-option {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  min-width: 140px;

  background: var(--creme-chaud);
  border: 2px solid transparent;
  border-radius: 12px;

  transition: all 0.25s ease;
  -webkit-transition: all 0.25s ease;
  cursor: pointer;
}

@media (hover: hover) {
  .material-option:hover {
    background: var(--ivoire-doux);
    border-color: var(--bois-dore);
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(74, 63, 53, 0.1);
  }
}

.material-option.selected,
.material-option.active {
  background: linear-gradient(135deg, var(--ivoire-doux) 0%, var(--creme-chaud) 100%);
  border-color: var(--bois-dore);
  box-shadow: 0 4px 12px rgba(147, 125, 104, 0.15);
}

/* Pastille texture bois avec gradient visuel */
.material-swatch {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;

  /* Bordure fine pour définition */
  border: 2px solid rgba(74, 63, 53, 0.15);

  /* Ombre intérieure pour effet "enfoncé" */
  box-shadow:
    inset 0 2px 4px rgba(0, 0, 0, 0.1),
    0 1px 2px rgba(255, 255, 255, 0.8);

  transition: transform 0.2s ease;
  -webkit-transition: transform 0.2s ease;
}

@media (hover: hover) {
  .material-option:hover .material-swatch {
    transform: scale(1.05);
    -webkit-transform: scale(1.05);
  }
}

/* Gradients bois spécifiques */
.material-swatch.okoume {
  background: var(--wood-okoume);
}

.material-swatch.peuplier {
  background: var(--wood-peuplier);
}

.material-swatch.noyer {
  background: var(--wood-noyer);
}

/* Support pour les noms d'attributs WooCommerce */
.material-swatch[data-wood="okoume"],
.material-swatch[data-value*="okoumé"],
.material-swatch[data-value*="Okoumé"] {
  background: var(--wood-okoume);
}

.material-swatch[data-wood="peuplier"],
.material-swatch[data-value*="peuplier"],
.material-swatch[data-value*="Peuplier"] {
  background: var(--wood-peuplier);
}

.material-swatch[data-wood="noyer"],
.material-swatch[data-value*="noyer"],
.material-swatch[data-value*="Noyer"] {
  background: var(--wood-noyer);
}

/* Info texte matériau */
.material-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.material-name {
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--bois-sombre);
  line-height: 1.3;
}

.material-option.selected .material-name,
.material-option.active .material-name {
  color: var(--color-orange);
}

.material-description {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--bois-profond);
  opacity: 0.7;
  line-height: 1.4;
}

/* Animation sélection */
@keyframes swatchSelect {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}

.material-option.just-selected {
  animation: swatchSelect 0.25s var(--ease-bounce);
}

/* Compatibilité avec l'ancien système de swatches */
.product-form-v2 .attribute-swatch .swatch-item.material-option {
  padding: 16px 20px;
  background: var(--creme-chaud);
}

@media (hover: hover) {
  .product-form-v2 .attribute-swatch .swatch-item.material-option:hover {
    background: var(--ivoire-doux);
  }
}

.product-form-v2 .attribute-swatch .swatch-item.material-option.selected {
  background: linear-gradient(135deg, var(--ivoire-doux) 0%, var(--creme-chaud) 100%);
  border-color: var(--bois-dore);
}

/* Quantité avec boutons +/- */
.product-form-v2 .quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 6px;
  overflow: hidden;
  margin-right: 1rem;
}

.product-form-v2 .quantity input {
  width: 60px;
  text-align: center;
  border: none;
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  font-size: 1rem;
  padding: 0.75rem 0.5rem;
  -moz-appearance: textfield;
  font-weight: 500;
  color: var(--color-dark, #323232);
}

.product-form-v2 .quantity input::-webkit-inner-spin-button,
.product-form-v2 .quantity input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Boutons +/- */
.product-form-v2 .qty-btn {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-cream, #FEFDFB);
  border: none;
  cursor: pointer;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  transition: all 0.2s ease;
  user-select: none;
}

@media (hover: hover) {
  .product-form-v2 .qty-btn:hover:not(:disabled) {
    background: var(--color-warm, #FBF6EA);
    color: var(--color-orange, #E35B24);
  }
}

.product-form-v2 .qty-btn:active:not(:disabled) {
  transform: scale(0.95);
}

.product-form-v2 .qty-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.product-form-v2 .qty-minus {
  border-radius: 6px 0 0 6px;
}

.product-form-v2 .qty-plus {
  border-radius: 0 6px 6px 0;
}

/* CTA Principal - Design System Premium 4.1 */
.product-form-v2 .single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  width: 100%;
  padding: 14px 40px !important; /* Réduit hauteur bouton */

  /* Gradient vert - charte graphique */
  background: linear-gradient(180deg, #019501 0%, #018501 100%) !important;
  color: var(--creme-papier, #FEFDFB) !important;
  border: none;
  border-radius: 8px;

  /* Typo */
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;

  /* Ombre verte - DS 4.1 */
  box-shadow:
    0 4px 12px rgba(1, 133, 1, 0.25),
    0 2px 4px rgba(1, 133, 1, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);

  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  margin-top: 0;
}

@media (hover: hover) {
  .product-form-v2 .single_add_to_cart_button:hover {
    background: linear-gradient(180deg, #018501 0%, #016701 100%) !important;
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    box-shadow:
      0 8px 20px rgba(1, 133, 1, 0.3),
      0 4px 8px rgba(1, 133, 1, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.2);
  }
}

.product-form-v2 .single_add_to_cart_button:active {
  transform: translateY(0);
  -webkit-transform: translateY(0);
  box-shadow:
    0 2px 6px rgba(1, 133, 1, 0.2),
    inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

.product-form-v2 .single_add_to_cart_button.loading {
  opacity: 0.7;
  pointer-events: none;
}

/* Wrappers WooCommerce */
.product-form-v2 .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.product-form-v2 .woocommerce-variation-price {
  width: 100%;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.product-form-v2 .woocommerce-variation-price .price {
  font-size: 1.75rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  color: #018501 !important;
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
}

.product-form-v2 .woocommerce-variation-price .price del {
  font-size: 1.1rem;
  color: var(--color-text-light);
  font-weight: 400;
}

.product-form-v2 .woocommerce-variation-price .price ins {
  text-decoration: none;
  color: var(--color-accent);
}

/* Prix variation discret quand un add-on affiche le sous-total */
.product-form-v2 .variations_form:has(.wc-pao-addons-container) .woocommerce-variation-price .price {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-gray) !important;
}

/* ---- QUICK PAY ---- */
.product-quick-pay {
  padding-top: 0.375rem;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.product-quick-pay:empty {
  display: none;
}

/* Style pour Apple Pay / GPay si présent */
.product-quick-pay .wc-stripe-payment-request-wrapper,
.product-quick-pay .gpay-card-info-container {
  margin: 0;
}

/* ---- REASSURANCE V2 - Bloc Premium ---- */
.product-reassurance-v2 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  padding: 1.25rem;
  margin: 1rem 0;
  background: linear-gradient(135deg, rgba(147, 125, 104, 0.06) 0%, rgba(251, 246, 234, 0.8) 100%);
  border-radius: 12px;
  border: 1px solid rgba(147, 125, 104, 0.12);
}

.reassurance-item-v2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.4rem;
  padding: 0.5rem;
}

.reassurance-item-v2 svg {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  color: var(--color-accent);
  margin-bottom: 0.25rem;
}

.reassurance-item-v2 span {
  font-size: 0.8rem;
  line-height: 1.3;
  color: var(--color-text-light);
}

.reassurance-item-v2 strong {
  display: block;
  color: var(--color-text);
  font-weight: 700;
  font-size: 0.9rem;
}

/* Highlight delivery date - Phase 4 Proposal B */
.reassurance-delivery {
  position: relative;
}

.reassurance-delivery svg {
  color: var(--color-green, #018501) !important;
}

.reassurance-delivery strong {
  color: var(--color-green, #018501);
  font-size: 0.95rem;
  font-weight: 700;
}

/* Variante horizontale compacte */
.product-reassurance-v2.reassurance-compact {
  grid-template-columns: 1fr;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
}

.product-reassurance-v2.reassurance-compact .reassurance-item-v2 {
  flex-direction: row;
  justify-content: flex-start;
  text-align: left;
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.product-reassurance-v2.reassurance-compact .reassurance-item-v2:last-child {
  border-bottom: none;
}

.product-reassurance-v2.reassurance-compact .reassurance-item-v2 svg {
  margin-bottom: 0;
  margin-right: 0.5rem;
  width: 18px;
  height: 18px;
}

/* ---- STOCK BADGE V2 ---- */
/* ---- CTA SUR-MESURE ---- */
/* ---- BANDEAU ROBIN CONTACT ---- */
.robin-contact-bandeau {
  background: var(--color-warm);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  text-align: center;
}

.robin-contact-closed {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
}

.robin-contact-question {
  font-size: 0.9rem;
  color: var(--color-text);
}

.robin-contact-toggle {
  font-size: 0.85rem;
  color: var(--color-accent);
  font-weight: 600;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  transition: color 0.2s;
}

@media (hover: hover) {
  .robin-contact-toggle:hover {
    color: var(--color-dark);
  }
}

.robin-contact-label {
  font-size: 0.85rem;
  color: var(--color-text-light);
  margin-bottom: 0.75rem;
}

.robin-contact-form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-width: 400px;
  margin: 0 auto;
}

.robin-contact-email,
.robin-contact-message {
  padding: 0.5rem 0.75rem;
  border: 1px solid rgba(147, 125, 104, 0.25);
  border-radius: 8px;
  font-size: 0.85rem;
  font-family: inherit;
  background: var(--color-white, #fff);
  color: var(--color-dark);
  outline: none;
  transition: border-color 0.2s;
}

.robin-contact-email:focus,
.robin-contact-message:focus {
  border-color: var(--color-wood);
}

.robin-contact-message {
  resize: vertical;
}

.robin-contact-submit {
  padding: 0.5rem 1.25rem;
  background: var(--color-accent);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.2s;
  align-self: center;
}

@media (hover: hover) {
  .robin-contact-submit:hover {
    background: var(--color-dark);
  }
}

.robin-contact-submit:disabled {
  opacity: 0.6;
  cursor: wait;
}

.robin-contact-done {
  font-size: 0.9rem;
  color: var(--color-wood);
  font-weight: 600;
}

/* ---- NOTE ARTISAN ---- */
.product-artisan-note {
  font-size: 0.85rem;
  color: var(--color-text-light);
  margin: 0;
  line-height: 1.5;
}

.product-artisan-note em {
  font-style: italic;
}

/* ---- STICKY ADD TO CART BAR ---- */
.sticky-add-to-cart {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.1);
  transform: translateY(100%);
  -webkit-transform: translateY(100%);
  transition: transform 0.3s ease;
  -webkit-transition: transform 0.3s ease;
  z-index: 999;
}

.sticky-add-to-cart.is-visible {
  transform: translateY(0);
  -webkit-transform: translateY(0);
}

.sticky-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0.75rem 2rem;
}

.sticky-product-info {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.sticky-product-info img {
  width: 50px;
  height: 50px;
  object-fit: cover;
  border-radius: 6px;
}

.sticky-product-details {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.sticky-product-name {
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--color-text);
}

.sticky-product-price {
  font-size: 0.9rem;
  color: var(--color-text-light);
}

.sticky-product-price .woocommerce-Price-amount {
  color: var(--color-accent);
  font-weight: 500;
}

.sticky-actions {
  flex-shrink: 0;
}

.sticky-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 2rem;
  background: linear-gradient(180deg, #019501 0%, #018501 100%);
  color: var(--color-cream, #FEFDFB);
  font-size: 0.9rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(1, 133, 1, 0.25), 0 2px 4px rgba(1, 133, 1, 0.15);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (hover: hover) {
  .sticky-btn:hover {
    background: linear-gradient(180deg, #018501 0%, #016701 100%);
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(1, 133, 1, 0.3), 0 3px 6px rgba(1, 133, 1, 0.2);
  }
}

.sticky-btn.variation-selected {
  background: linear-gradient(180deg, #019501 0%, #018501 100%);
}

/* ---- RESPONSIVE HERO V2 ---- */
@media (max-width: 1024px) {
  .product-hero-container {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .product-gallery-v2 {
    position: relative;
    top: 0;
  }

  .gallery-main {
    /* Keep aspect-ratio 1:1 on all screen sizes */
    aspect-ratio: 1 / 1;
  }

  .product-info-v2 {
    max-width: 600px;
  }
}

@media (max-width: 768px) {
  .product-hero-v2 {
    padding: 0.5rem 0 1rem;
    margin-top: -10vh;
  }

  .product-hero-container {
    padding: 0 1rem;
    gap: 0.25rem;
  }

  .gallery-main {
    border-radius: 8px;
  }

  .gallery-thumbnails .gallery-thumb {
    flex: 0 0 auto;
    width: 60px;
    aspect-ratio: 1 / 1;
  }

  .product-title-v2 {
    font-size: 1.75rem;
  }

  .product-price-v2 .price-amount,
  .product-price-v2 .price-amount .woocommerce-Price-amount {
    font-size: 1.5rem;
  }

  .product-reassurance-v2 {
    grid-template-columns: 1fr;
    gap: 0.5rem;
    padding: 1rem;
  }

  .reassurance-item-v2 {
    flex-direction: row;
    text-align: left;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
  }

  .reassurance-item-v2:last-child {
    border-bottom: none;
  }

  .reassurance-item-v2 svg {
    margin-bottom: 0;
  }

  .sticky-inner {
    padding: 0.6rem 1rem;
    gap: 1rem;
  }

  .sticky-product-info img {
    width: 40px;
    height: 40px;
  }

  .sticky-product-name {
    font-size: 0.85rem;
  }

  .sticky-btn {
    padding: 0.7rem 1.25rem;
    font-size: 0.8rem;
  }
}

@media (max-width: 480px) {
  .product-title-v2 {
    font-size: 1.5rem;
  }

  .product-form-v2 .woocommerce-variation-add-to-cart {
    flex-direction: column;
    align-items: stretch;
  }

  .product-form-v2 .quantity {
    width: 100%;
    margin-right: 0;
    margin-bottom: 0.75rem;
    justify-content: center;
  }

  .sticky-product-details {
    display: none;
  }

  .sticky-btn {
    padding: 0.7rem 1rem;
    font-size: 0.75rem;
    min-height: 44px;
  }

  /* Variations en 1 colonne sur mobile */
  .product-form-v2 .variations {
    grid-template-columns: 1fr;
  }
}

/* ---- Dots pagination galerie mobile ---- */
.gallery-dots {
  display: none;
}

/* ---- GALERIE DESKTOP — masquer les slides extra ---- */
@media (min-width: 601px) {
  .gallery-slide-extra {
    display: none;
  }

  .gallery-main-video {
    display: none;
  }
}

/* ---- GALERIE MOBILE — scroll-snap horizontal ---- */
@media (max-width: 600px) {
  .gallery-thumbnails {
    display: none !important;
  }

  .gallery-nav {
    display: none !important;
  }

  .gallery-main {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    aspect-ratio: auto;
    height: 70vw;
  }

  .gallery-main::-webkit-scrollbar {
    display: none;
  }

  .gallery-main .gallery-main-image,
  .gallery-main .gallery-slide-extra,
  .gallery-main .gallery-main-video {
    position: relative !important;
    inset: auto !important;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100% !important;
    scroll-snap-align: center;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100%;
    -o-object-fit: cover;
    object-fit: cover !important;
  }

  .product-gallery-v2 {
    border-radius: 12px;
    padding: 0.5rem;
    overflow: hidden;
  }

  .product-gallery-mobile-header {
    padding: 0.5rem 0.75rem 0;
  }

  .product-info-v2 {
    padding: 1rem;
    gap: 0.75rem;
  }

  .robin-pill {
    padding: 0.4rem 0.75rem;
    font-size: 0.75rem;
  }

  .product-form-v2 .variations tbody {
    display: flex;
    flex-direction: row;
    gap: 0.75rem;
  }

  .product-form-v2 .variations tr {
    flex: 1;
    min-width: 0;
    gap: 0.15rem;
    padding: 0.5rem 0.75rem !important;
  }

  .product-form-v2 .variations .label,
  .product-form-v2 .variations th.label {
    padding: 0 !important;
    margin: 0 !important;
  }

  .gallery-main-wrap {
    position: relative;
  }

  .gallery-dots {
    display: flex;
    justify-content: center;
    gap: 6px;
    position: absolute;
    bottom: 10px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    z-index: 5;
    padding: 6px 10px;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 100px;
  }

  .gallery-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }

  .gallery-dot.active {
    background: #fff;
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
  }
}

/* ========================================
   MOBILE OPTIMIZATIONS - Content Pages
   ======================================== */

@media (max-width: 768px) {
  /* Réduction hauteur hero sections pour mobile */
  .advice-hero,
  .artisan-hero,
  .blog-hero {
    min-height: 45vh !important; /* Réduit de 60vh à 45vh */
    padding: 120px 20px 80px !important;
  }

  /* Images sections conseils moins hautes */
  .advice-image {
    min-height: 300px !important; /* Réduit de 450px à 300px */
  }

  /* Padding sections réduit */
  .advice-section-block,
  .artisan-step {
    padding: 60px 20px !important; /* Réduit de 100px à 60px */
  }

  /* Gallery thumbnails visibles sur mobile */
  .gallery-thumbnails .gallery-thumb {
    flex: 0 0 auto;
    width: 80px;
    aspect-ratio: 1 / 1;
  }

  /* Barre de réassurance moins intrusive */
  .reassurance-bar-sticky {
    position: sticky;
    top: calc(76px + env(safe-area-inset-top, 0px));
  }

  /* Mini-cart footer toujours visible */
  .mini-cart-footer {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* ========================================
   ACCESSIBILITY - Reduced Motion
   ======================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  /* Disable parallax effects */
  .bento-bg {
    transform: none !important;
  }

  /* Disable hover transforms */
  @media (hover: hover) {
    .bento-card:hover {
      transform: none;
    }
  }

  @media (hover: hover) {
    .bento-card:hover .bento-bg {
      transform: none;
    }
  }

  /* Keep important visual feedback but remove motion */
  @media (hover: hover) {
    .process-step:hover {
      transform: none;
    }
  }

  /* Disable custom cursor animations */
  .cursor-custom {
    display: none;
  }
}

/* WooCommerce Wrapper - Base styles for all WooCommerce pages */
.woocommerce-wrapper {
  max-width: 1400px;
  margin: 0 auto;
  padding: 2rem 3rem 4rem;
  width: 100%;
  box-sizing: border-box;
}

/* Override for specific WooCommerce pages to use wrapper width */
.woocommerce-cart,
.woocommerce-checkout,
.woocommerce-account {
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* Cart Layout - Harmonize with site content width (1200px standard) */
/* Multiple selectors for maximum specificity and fallback */
.woocommerce-cart .woocommerce-wrapper,
.woocommerce-wrapper--cart,
.woocommerce-wrapper[data-cart-page="true"],
body.woocommerce-cart .woocommerce-wrapper,
body.woocommerce-cart div.woocommerce-wrapper {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart-collaterals {
  max-width: 100%;
}

/* =========================================
   PAGE CONFIRMATION — Sâpi
   Miroir du panier : 2 colonnes 65/35, mêmes cards
   ========================================= */

.sapi-thankyou-outer {
  max-width: 1400px;
  margin: 0 auto;
  padding: 2rem 3rem 4rem;
  box-sizing: border-box;
}

/* ===== ANIMATION SÉQUENTIELLE THANKYOU ===== */

/* État initial : tout est invisible */
.sapi-thankyou-outer .checkout-progress .progress-step,
.sapi-thankyou-outer .checkout-progress .progress-line {
  opacity: 0;
  transform: scale(0.5);
  animation: thankyouPopIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* Phase 1 : les 3 étapes apparaissent une par une */
.sapi-thankyou-outer .checkout-progress .progress-step:nth-child(1) { animation-delay: 0.3s; }
.sapi-thankyou-outer .checkout-progress .progress-line:nth-child(2) { animation-delay: 0.6s; }
.sapi-thankyou-outer .checkout-progress .progress-step:nth-child(3) { animation-delay: 0.9s; }
.sapi-thankyou-outer .checkout-progress .progress-line:nth-child(4) { animation-delay: 1.2s; }
.sapi-thankyou-outer .checkout-progress .progress-step:nth-child(5) { animation-delay: 1.5s; }

@keyframes thankyouPopIn {
  0% { opacity: 0; transform: scale(0.5); }
  100% { opacity: 1; transform: scale(1); }
}

/* Phase 2 : "Merci !" — animation manuscrite SVG stroke */
.thankyou-merci {
  text-align: center;
  margin-bottom: 0.5rem;
}

.thankyou-merci-svg {
  width: clamp(280px, 55vw, 550px);
  height: auto;
  overflow: visible;
}

.thankyou-merci-svg text {
  font-family: var(--font-display);
  font-size: 120px;
  fill: transparent;
  stroke: var(--color-wood);
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 700;
  stroke-dashoffset: 700;
  animation:
    drawMerciStroke 5s ease 2s forwards,
    drawMerciFill 1s ease 6.5s forwards;
}

@keyframes drawMerciStroke {
  to { stroke-dashoffset: 0; }
}

@keyframes drawMerciFill {
  from { fill: transparent; }
  to { fill: var(--color-wood); }
}

/* Phase 3 : le reste de la page apparaît progressivement */
.sapi-thankyou-outer .thankyou-hero,
.sapi-thankyou-outer .thankyou-reassurance,
.sapi-thankyou-outer .thankyou-layout,
.sapi-thankyou-outer .thankyou-social,
.sapi-thankyou-outer .thankyou-cta {
  opacity: 0;
  transform: translateY(20px);
  animation: thankyouFadeUp 0.6s ease forwards;
}

.sapi-thankyou-outer .thankyou-hero { animation-delay: 7s; }
.sapi-thankyou-outer .thankyou-reassurance { animation-delay: 7.3s; }
.sapi-thankyou-outer .thankyou-layout { animation-delay: 7.6s; }
.sapi-thankyou-outer .thankyou-social { animation-delay: 7.9s; }
.sapi-thankyou-outer .thankyou-cta { animation-delay: 8.2s; }

@keyframes thankyouFadeUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* Désactiver les animations si l'utilisateur préfère le mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  .sapi-thankyou-outer .checkout-progress .progress-step,
  .sapi-thankyou-outer .checkout-progress .progress-line,
  .thankyou-merci-svg text,
  .sapi-thankyou-outer .thankyou-hero,
  .sapi-thankyou-outer .thankyou-reassurance,
  .sapi-thankyou-outer .thankyou-layout,
  .sapi-thankyou-outer .thankyou-social,
  .sapi-thankyou-outer .thankyou-cta {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    stroke-dashoffset: 0 !important;
    fill: var(--color-wood) !important;
  }
}

/* Hero succès */
.thankyou-hero {
  text-align: center;
  margin-bottom: 3rem;
}

.thankyou-success-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  background: rgba(1, 133, 1, 0.08);
  border-radius: 50%;
  color: var(--color-green, #018501);
  margin-bottom: 1.5rem;
}

.thankyou-hero .section-number {
  display: block;
  font-size: 0.875rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: var(--color-wood);
  margin-bottom: 0.75rem;
}

.thankyou-hero h1 {
  font-family: var(--font-body);
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 900;
  color: var(--color-dark);
  margin-bottom: 1rem;
}

.thankyou-subtitle {
  font-size: 1rem;
  color: var(--color-gray);
  line-height: 1.7;
}

/* Layout 2 colonnes — identique au panier */
.thankyou-layout {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  margin-bottom: 2.5rem;
}

.thankyou-main {
  width: calc(65% - 1rem);
}

.thankyou-sidebar {
  width: calc(35% - 1rem);
  position: sticky;
  top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* Cards — même style que les colonnes du panier */
.thankyou-card {
  background: var(--color-white, #fff);
  border: 1px solid var(--color-gray-light, #e8e2d9);
  border-radius: var(--radius-lg, 16px);
  padding: 2rem;
  box-sizing: border-box;
}

.thankyou-card h2 {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-wood);
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--color-gray-light, #e8e2d9);
}

/* Récapitulatif commande (sidebar) */
.thankyou-overview {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.thankyou-overview li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--color-gray-light, #e8e2d9);
  font-size: 0.9rem;
  gap: 1rem;
}

.thankyou-overview li:last-child {
  border-bottom: none;
}

.thankyou-overview li span {
  color: var(--color-gray);
  flex-shrink: 0;
}

.thankyou-overview li strong {
  color: var(--color-dark);
  font-weight: 600;
  text-align: right;
  word-break: break-word;
}

.thankyou-overview__total {
  margin-top: 0.5rem;
  padding-top: 1rem !important;
  border-top: 2px solid var(--color-gray-light, #e8e2d9);
}

.thankyou-overview__total span {
  font-weight: 700;
  color: var(--color-dark) !important;
  font-size: 1rem !important;
}

.thankyou-overview__total strong {
  font-size: 1.1rem;
  color: var(--color-wood) !important;
}

/* Tableau des articles commandés */
.sapi-thankyou-outer .woocommerce-table--order-details {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  border: none;
}

.sapi-thankyou-outer .woocommerce-table--order-details thead th {
  text-align: left;
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gray);
  padding: 0.75rem 1rem;
  border-bottom: 2px solid var(--color-gray-light, #e8e2d9);
  border-top: none;
  border-left: none;
  border-right: none;
}

.sapi-thankyou-outer .woocommerce-table--order-details td {
  padding: 1.25rem 1rem;
  border-bottom: 1px solid var(--color-gray-light, #e8e2d9);
  border-left: none;
  border-right: none;
  vertical-align: middle;
}

.sapi-thankyou-outer .woocommerce-table--order-details .product-name {
  font-weight: 600;
  color: var(--color-dark);
}

.sapi-thankyou-outer .woocommerce-table--order-details .product-name a {
  color: var(--color-dark);
  text-decoration: none;
}

.sapi-thankyou-outer .woocommerce-table--order-details .product-total {
  text-align: right;
  font-weight: 700;
  color: var(--color-wood);
}

.sapi-thankyou-outer .woocommerce-table--order-details tfoot tr td,
.sapi-thankyou-outer .woocommerce-table--order-details tfoot tr th {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--color-gray-light, #e8e2d9);
  border-left: none;
  border-right: none;
  font-size: 0.9rem;
  text-transform: none;
  letter-spacing: normal;
  font-weight: 500;
  color: var(--color-gray);
}

/* Supprimer toute bordure latérale du tableau WooCommerce */
.sapi-thankyou-outer .woocommerce-table--order-details,
.sapi-thankyou-outer .woocommerce-table--order-details thead,
.sapi-thankyou-outer .woocommerce-table--order-details tbody,
.sapi-thankyou-outer .woocommerce-table--order-details tfoot,
.sapi-thankyou-outer .woocommerce-table--order-details tr,
.sapi-thankyou-outer .woocommerce-table--order-details th,
.sapi-thankyou-outer .woocommerce-table--order-details td {
  border-left: none !important;
  border-right: none !important;
}

.sapi-thankyou-outer .woocommerce-table--order-details tr:last-child td {
  border-bottom: none;
}

.sapi-thankyou-outer .woocommerce-table--order-details tfoot .order-total td,
.sapi-thankyou-outer .woocommerce-table--order-details tfoot .order-total th {
  font-weight: 900;
  font-size: 1.1rem;
  color: var(--color-dark);
  border-bottom: none;
  padding-top: 1rem;
}

/* Quantité produit — pastille discrète */
.sapi-thankyou-outer .product-quantity {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  margin-left: 8px;
  border-radius: 11px;
  background: var(--color-warm, #FBF6EA);
  color: var(--color-wood);
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0;
  vertical-align: middle;
}

/* Masquer les adresses dans la colonne principale (déjà affichées en sidebar) */
.thankyou-main .woocommerce-customer-details {
  display: none;
}

/* Détails client (adresses) — dans la sidebar */
.sapi-thankyou-outer .woocommerce-customer-details {
  margin: 0;
}

/* Masquer "Informations complémentaires" (opt-out newsletter) — inutile sur la confirmation */
.sapi-thankyou-outer .woocommerce-additional-fields,
.sapi-thankyou-outer .wc-block-order-confirmation-additional-fields-wrapper,
.sapi-thankyou-outer .wc-block-order-confirmation-additional-fields,
.sapi-thankyou-outer .wc-block-components-order-confirmation-additional-fields {
  display: none;
}

.sapi-thankyou-outer .woocommerce-customer-details h2,
.sapi-thankyou-outer .woocommerce-columns--addresses h2 {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-wood);
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--color-gray-light, #e8e2d9);
}

.sapi-thankyou-outer .woocommerce-columns--addresses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.sapi-thankyou-outer .woocommerce-column h3 {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gray);
  margin-bottom: 0.75rem;
}

.sapi-thankyou-outer address {
  font-style: normal;
  font-size: 0.9rem;
  color: var(--color-dark);
  line-height: 1.7;
}

/* Réassurance post-achat */
.thankyou-reassurance {
  display: flex;
  gap: 2rem;
  justify-content: center;
  margin-bottom: 3rem;
  padding: 0 2rem;
}

.thankyou-reassurance-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  flex: 1;
  max-width: 320px;
}

.thankyou-reassurance-item svg {
  flex-shrink: 0;
  color: var(--color-wood);
  margin-top: 2px;
}

.thankyou-reassurance-item strong {
  display: block;
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--color-dark);
  margin-bottom: 0.2rem;
}

.thankyou-reassurance-item span {
  font-size: 0.8rem;
  color: var(--color-gray);
  line-height: 1.5;
}

/* Réseaux sociaux */
.thankyou-social {
  text-align: center;
  margin-bottom: 1.5rem;
}

.thankyou-social p {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-gray);
  margin-bottom: 0.75rem;
}

.thankyou-social-links {
  display: flex;
  justify-content: center;
  gap: 1rem;
}

.thankyou-social-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--color-gray-light, #e8e2d9);
  color: var(--color-wood);
  transition: all 0.2s ease;
}

@media (hover: hover) {
  .thankyou-social-links a:hover {
    background: var(--color-wood);
    color: #fff;
    border-color: var(--color-wood);
  }
}

/* CTA retour boutique */
.thankyou-cta {
  text-align: center;
  margin-top: 1rem;
}

.thankyou-cta-btn {
  display: inline-block;
  padding: 0.9rem 2rem;
  background: var(--gradient-cta);
  color: #fff;
  border-radius: 12px;
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

@media (hover: hover) {
  .thankyou-cta-btn:hover {
    background: linear-gradient(180deg, #D14F1C 0%, #B8431A 100%);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
    transform: translateY(-1px);
  }
}

/* Commande échouée */
.thankyou-hero--failed .thankyou-success-icon {
  background: rgba(220, 53, 69, 0.08);
  color: #dc3545;
}

.thankyou-btn-retry {
  display: inline-block;
  margin-top: 1.5rem;
  padding: 0.9rem 2rem;
  background: var(--color-wood);
  color: #fff;
  border-radius: 12px;
  font-family: var(--font-body);
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s ease;
}

@media (hover: hover) {
  .thankyou-btn-retry:hover {
    background: var(--color-dark);
  }
}

/* Responsive */
@media (max-width: 768px) {
  .sapi-thankyou-outer {
    padding: 0.5rem;
  }

  .thankyou-layout {
    flex-direction: column;
  }

  .thankyou-main,
  .thankyou-sidebar {
    width: 100%;
    position: static;
  }

  .sapi-thankyou-outer .woocommerce-columns--addresses {
    grid-template-columns: 1fr;
  }

  .thankyou-reassurance {
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
  }

  .thankyou-reassurance-item {
    max-width: 100%;
  }
}

/* =========================================
   AMBIANCE LIGHTBOX - Photos ACF
   ========================================= */


/* Lightbox overlay — fond sombre, tout flotte dessus */
.ambiance-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s cubic-bezier(0.34, 0.61, 0.4, 0.97), visibility 0.4s;
}

.ambiance-lightbox[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
}

.ambiance-lightbox-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* Photo : taille naturelle, contrainte par max */
.ambiance-lightbox-image {
  display: block;
  max-width: 90vw;
  max-height: 80vh;
  width: auto;
  height: auto;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 8px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
  user-select: none;
  z-index: 1;
}

/* Bouton fermer — fixed en haut à droite */
.ambiance-lightbox-close {
  position: fixed;
  top: 1rem;
  right: 1rem;
  background: rgba(0, 0, 0, 0.45);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: background 0.3s ease, -webkit-transform 0.3s ease;
  transition: background 0.3s ease, transform 0.3s ease;
  z-index: 10;
}

@media (hover: hover) {
  .ambiance-lightbox-close:hover {
    background: var(--color-orange, #E35B24);
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
}

/* Navigation arrows — fixed sur les bords du viewport */
.ambiance-lightbox-prev,
.ambiance-lightbox-next {
  position: fixed;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(255, 255, 255, 0.9);
  border: 1.5px solid var(--color-wood, #937D68);
  border-radius: 50%;
  width: 48px;
  height: 48px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-wood, #937D68);
  cursor: pointer;
  transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.ambiance-lightbox-prev { left: 3.5rem; }
.ambiance-lightbox-next { right: 3.5rem; }

@media (hover: hover) {
  .ambiance-lightbox-prev:hover,
  .ambiance-lightbox-next:hover {
    background: var(--color-orange, #E35B24);
    border-color: var(--color-orange, #E35B24);
    color: #fff;
  }
}

/* Strip miniatures — fixed en bas, centré */
.ambiance-lightbox-thumbs {
  position: fixed;
  bottom: 16px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  align-items: center;
  z-index: 10;
  max-width: 90vw;
  overflow-x: auto;
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.3);
}

.ambiance-thumb {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: none;
  border: 2px solid transparent;
  border-radius: 8px;
  padding: 3px;
  cursor: pointer;
  transition: border-color 0.2s;
  flex-shrink: 0;
}

.ambiance-thumb.active {
  border-color: var(--color-orange, #E35B24);
}

@media (hover: hover) {
  .ambiance-thumb:hover:not(.active) {
    border-color: rgba(255, 255, 255, 0.6);
  }
}

.ambiance-thumb img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 6px;
}

/* Responsive mobile */
@media (max-width: 768px) {
  .ambiance-lightbox-image {
    max-width: 95vw;
    max-height: 70vh;
    border-radius: 6px;
  }

  /* Boutons masqués — navigation au swipe */
  .ambiance-lightbox-prev,
  .ambiance-lightbox-next {
    display: none;
  }

  .ambiance-lightbox-thumbs {
    bottom: 12px;
    max-width: 100vw;
    width: calc(100vw - 1rem);
    justify-content: center;
  }

  .ambiance-thumb img {
    width: 44px;
    height: 44px;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .ambiance-lightbox {
    transition: none;
  }
}

/* =========================================
   CAROUSEL EDITORIAL - Hover improvements
   ========================================= */

/* Zoom effect on "Découvrir" button text + orange border + inset shadow */
@media (hover: hover) {
  .carousel-editorial-slide .btn-view:hover {
    background: linear-gradient(135deg, var(--color-orange) 0%, #E67D3F 100%);
    border-color: var(--color-orange);
    border-top-color: var(--color-orange);
    transform: none;
    box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.1);
    font-size: 0.9375rem;
    letter-spacing: 0.02em;
  }
}

/* Ensure product media container clips the zoomed image */
.carousel-editorial-slide .product-media {
  overflow: hidden;
  border-radius: 16px 16px 0 0;
}

/* ═══════════════════════════════════════════════════════════════
   PRODUCT SLIDESHOW — Ambiance plein-largeur (refonte fiche produit)
   ═══════════════════════════════════════════════════════════════ */

.product-slideshow {
  position: relative;
  z-index: 1;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  height: var(--slideshow-height, 80vh);
  overflow: hidden;
  background: #000;
}

/* Wrapper sticky desktop */
@media (min-width: 601px) {
  .product-intro-wrapper {
    position: relative;
  }

  .product-slideshow {
    position: -webkit-sticky;
    position: sticky;
    top: var(--slideshow-sticky-top, 0px);
    z-index: 2;
  }
}

.product-slideshow-track {
  position: relative;
  width: 100%;
  height: 100%;
}

.product-slideshow-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  -webkit-transition: opacity 0.6s ease;
  transition: opacity 0.6s ease;
}

.product-slideshow-slide.is-active {
  opacity: 1;
}

.product-slideshow-slide .product-slideshow-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

/* Barres de progression — cohérence avec showcase cards */
.product-slideshow-bars {
  position: absolute;
  bottom: calc(15vh + 10px);
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  width: 20%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 4px;
  z-index: 2;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.product-slideshow-bar {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  height: 10px;
  background: rgba(0, 0, 0, 0.15);
  border-radius: 5px;
  overflow: hidden;
  cursor: pointer;
}

.product-slideshow-bar__fill {
  width: 0;
  height: 100%;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 5px;
}

.product-slideshow-bar.is-done .product-slideshow-bar__fill {
  width: 100%;
}

.product-slideshow-bar.is-active .product-slideshow-bar__fill {
  width: 100%;
  -webkit-transition: width linear;
  transition: width linear;
}

@media (max-width: 768px) {
  .product-slideshow {
    height: 85vh;
    height: 85dvh;
    margin-bottom: 0;
  }

  /* Barres fines en haut — style Stories Instagram */
  .product-slideshow-bars {
    top: 12px;
    bottom: auto;
    width: calc(100% - 1.5rem);
    gap: 3px;
  }

  .product-slideshow-bar {
    height: 3px;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.3);
  }

  .product-slideshow-bar__fill {
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.9);
  }

  /* Zones tap gauche/droite */
  .product-slideshow-tap {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50%;
    z-index: 3;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .product-slideshow-tap--prev {
    left: 0;
  }

  .product-slideshow-tap--next {
    right: 0;
  }
}

/* Zones tap masquées sur desktop */
.product-slideshow-tap {
  display: none;
}

@media (max-width: 768px) {
  .product-slideshow-tap {
    display: block;
  }
}

/* ========================================
   Page 404
   ======================================== */

.error-404-page {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  padding: 4rem 2rem;
  background: var(--color-cream, #FEFDFB);
}

.error-404-content {
  text-align: center;
  max-width: 520px;
}

.error-404-code {
  display: block;
  font-family: var(--font-display, 'Square Peg', cursive);
  font-size: clamp(5rem, 12vw, 8rem);
  color: var(--color-wood, #937D68);
  line-height: 1;
  opacity: 0.3;
  margin-bottom: -0.5rem;
}

.error-404-title {
  font-family: var(--font-display, 'Square Peg', cursive);
  font-size: clamp(1.8rem, 5vw, 2.8rem);
  color: var(--color-dark, #323232);
  font-weight: 400;
  margin: 0 0 1rem;
  line-height: 1.3;
}

.error-404-text {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  color: var(--color-gray, #666);
  line-height: 1.7;
  margin-bottom: 2rem;
}

.error-404-search {
  display: flex;
  max-width: 400px;
  margin: 0 auto 2rem;
  border: 2px solid var(--color-wood, #937D68);
  border-radius: 50px;
  overflow: hidden;
  transition: border-color 0.3s ease;
}

.error-404-search:focus-within {
  border-color: var(--color-dark, #323232);
}

.error-404-search input {
  flex: 1;
  padding: 0.75rem 1.25rem;
  border: none;
  outline: none;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  color: var(--color-dark, #323232);
  background: transparent;
}

.error-404-search input::placeholder {
  color: var(--color-wood, #937D68);
  opacity: 0.7;
}

.error-404-search button {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  background: transparent;
  border: none;
  color: var(--color-wood, #937D68);
  cursor: pointer;
  transition: color 0.3s ease;
}

@media (hover: hover) {
  .error-404-search button:hover {
    color: var(--color-dark, #323232);
  }
}

.error-404-btn {
  display: inline-block;
  padding: 0.75rem 2rem;
  background: linear-gradient(180deg, #937D68 0%, #7A6855 100%);
  color: #fff;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(147, 125, 104, 0.3);
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .error-404-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(147, 125, 104, 0.4);
    color: #fff;
  }
}

.error-404-btn:active,
.error-404-btn:focus,
.error-404-btn:visited {
  color: #fff;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

/* ========================================
   Page Résultats de recherche
   ======================================== */

.search-results-page {
  max-width: 1000px;
  margin: 0 auto;
  padding: 3rem 2rem 4rem;
}

.search-results-header {
  text-align: center;
  margin-bottom: 3rem;
}

.search-results-header h1 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: clamp(1.3rem, 3vw, 1.8rem);
  font-weight: 700;
  color: var(--color-dark, #323232);
  margin: 0 0 1.5rem;
}

.search-results-header h1 em {
  font-style: normal;
  color: var(--color-wood, #937D68);
}

.search-results-form {
  display: flex;
  max-width: 400px;
  margin: 0 auto;
  border: 2px solid var(--color-wood, #937D68);
  border-radius: 50px;
  overflow: hidden;
  transition: border-color 0.3s ease;
}

.search-results-form:focus-within {
  border-color: var(--color-dark, #323232);
}

.search-results-form input {
  flex: 1;
  padding: 0.75rem 1.25rem;
  border: none;
  outline: none;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  color: var(--color-dark, #323232);
  background: transparent;
}

.search-results-form input::placeholder {
  color: var(--color-wood, #937D68);
  opacity: 0.7;
}

.search-results-form button {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  background: transparent;
  border: none;
  color: var(--color-wood, #937D68);
  cursor: pointer;
  transition: color 0.3s ease;
}

@media (hover: hover) {
  .search-results-form button:hover {
    color: var(--color-dark, #323232);
  }
}

/* Grille de résultats */
.search-results-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.search-result-card {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .search-result-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(147, 125, 104, 0.15);
  }
}

.search-result-image {
  flex: 0 0 100px;
  height: 100px;
  border-radius: 8px;
  overflow: hidden;
}

.search-result-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.search-result-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.25rem;
}

.search-result-info h2 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-dark, #323232);
  margin: 0;
}

.search-result-info p {
  font-size: 0.85rem;
  color: var(--color-gray, #666);
  line-height: 1.5;
  margin: 0;
}

.search-result-price {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
}

.search-result-type {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-wood, #937D68);
  opacity: 0.7;
}

/* Aucun résultat */
.search-no-results {
  text-align: center;
  padding: 3rem 1rem;
}

.search-no-results p {
  font-size: 1rem;
  color: var(--color-gray, #666);
  margin-bottom: 1.5rem;
}

.search-browse-btn {
  display: inline-block;
  padding: 0.75rem 2rem;
  background: linear-gradient(180deg, #937D68 0%, #7A6855 100%);
  color: #fff;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(147, 125, 104, 0.3);
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .search-browse-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(147, 125, 104, 0.4);
    color: #fff;
  }
}

/* Mobile */
@media (max-width: 600px) {
  .search-results-grid {
    grid-template-columns: 1fr;
  }

  .search-results-page {
    padding: 2rem 1rem 3rem;
  }
}

/* ========================================
   Page Panier Vide
   ======================================== */

.empty-cart-page {
  max-width: 800px;
  margin: 0 auto;
  padding: 3rem 2rem 4rem;
}

.empty-cart-content {
  text-align: center;
  margin-bottom: 3rem;
}

.empty-cart-icon {
  color: var(--color-wood, #937D68);
  opacity: 0.4;
  margin-bottom: 1.5rem;
}

.empty-cart-title {
  font-family: var(--font-display, 'Square Peg', cursive);
  font-size: clamp(2rem, 5vw, 3rem);
  color: var(--color-dark, #323232);
  font-weight: 400;
  margin: 0 0 1rem;
  line-height: 1.3;
}

.empty-cart-text {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  color: var(--color-gray, #666);
  line-height: 1.7;
  margin: 0;
}

/* Sélection de l'artisan */
.empty-cart-viewed {
  margin-top: 3rem;
  margin-bottom: 2.5rem;
}

.empty-cart-viewed-title {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-dark, #323232);
  text-align: center;
  margin: 0 0 1.5rem;
}

.empty-cart-viewed-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.empty-cart-viewed-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .empty-cart-viewed-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(147, 125, 104, 0.15);
  }
}

.empty-cart-viewed-image {
  aspect-ratio: 1;
  overflow: hidden;
}

.empty-cart-viewed-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

@media (hover: hover) {
  .empty-cart-viewed-card:hover .empty-cart-viewed-image img {
    transform: scale(1.05);
  }
}

.empty-cart-viewed-info {
  padding: 1rem;
  text-align: center;
}

.empty-cart-viewed-info h3 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-dark, #323232);
  margin: 0 0 0.2rem;
}

.empty-cart-viewed-desc {
  display: block;
  font-size: 0.8rem;
  color: var(--color-gray, #666);
  margin-bottom: 0.5rem;
}

.empty-cart-viewed-price {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
}

/* CTA */
.empty-cart-cta {
  text-align: center;
}

.empty-cart-btn {
  display: inline-block;
  padding: 0.75rem 2rem;
  background: linear-gradient(180deg, #937D68 0%, #7A6855 100%);
  color: #fff;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(147, 125, 104, 0.3);
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .empty-cart-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(147, 125, 104, 0.4);
    color: #fff;
  }
}

.empty-cart-btn:active,
.empty-cart-btn:focus,
.empty-cart-btn:visited {
  color: #fff;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

/* Mobile */
@media (max-width: 600px) {
  .empty-cart-page {
    padding: 2rem 1rem 3rem;
  }

  .empty-cart-viewed-grid {
    grid-template-columns: 1fr;
    max-width: 280px;
    margin: 0 auto;
  }
}


/* ============================================================
   PAGE SUR MESURE
   ============================================================ */

/* --- Hero avec onglets --- */
.surmesure-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 70vh;
  padding: 140px 20px 100px;
  overflow: hidden;
}

.surmesure-hero-bg {
  position: absolute;
  inset: 0;
  opacity: 0;
  -webkit-transition: opacity 0.5s ease;
  transition: opacity 0.5s ease;
  z-index: 0;
}

.surmesure-hero-bg.is-active {
  opacity: 1;
}

.surmesure-hero-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.surmesure-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(50, 50, 50, 0.35) 0%,
    rgba(50, 50, 50, 0.55) 100%
  );
  z-index: 1;
}

.surmesure-hero-content {
  position: relative;
  text-align: center;
  max-width: 900px;
  z-index: 2;
}

/* Onglets */
.surmesure-tabs {
  display: inline-flex;
  gap: 4px;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 100px;
  padding: 4px;
  margin-top: 0.5rem;
}

.surmesure-tab {
  padding: 10px 28px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: rgba(255, 255, 255, 0.8);
  background: transparent;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.surmesure-tab.is-active {
  background: rgba(255, 255, 255, 0.95);
  color: var(--bois-sombre, #4A3F35);
}

@media (hover: hover) {
  .surmesure-tab:not(.is-active):hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.15);
  }
}

/* Titres et sous-titres hero */
.surmesure-hero-title {
  font-family: 'Square Peg', cursive;
  font-size: clamp(56px, 12vw, 120px);
  font-weight: 400;
  color: #fff;
  line-height: 0.95;
  margin: 0 0 1rem;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.15);
  min-height: 1.2em;
}

/* Animation lettre par lettre */
.surmesure-letter {
  opacity: 0;
  -webkit-animation: surmesureLetterIn 0.3s ease forwards;
  animation: surmesureLetterIn 0.3s ease forwards;
}

@keyframes surmesureLetterIn {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .surmesure-letter {
    animation: none;
    -webkit-animation: none;
    opacity: 1;
  }
}

.surmesure-hero-subtitle {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.7;
  margin: 0 0 2rem;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.15);
  opacity: 0;
  -webkit-transform: translateY(12px);
  transform: translateY(12px);
  -webkit-transition: opacity 0.5s ease, transform 0.5s ease;
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.surmesure-hero-subtitle.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0);
}


/* --- Processus --- */
.surmesure-process {
  padding: 100px 20px;
  background: linear-gradient(135deg, var(--creme-papier, #FEFDFB) 0%, var(--creme-chaud, #FAF6F0) 100%);
}

.surmesure-process-header {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 60px;
}

.surmesure-process-header h2 {
  font-family: 'Square Peg', cursive;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin: 0 0 0.75rem;
}

.surmesure-process-header p {
  font-size: 1.05rem;
  color: var(--bois-dore, #937D68);
  margin: 0;
}

.surmesure-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  max-width: 1000px;
  margin: 0 auto;
}

.surmesure-step {
  text-align: center;
  padding: 40px 30px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 16px;
  border: 1px solid rgba(147, 125, 104, 0.1);
  box-shadow: var(--shadow-card);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (hover: hover) {
  .surmesure-step:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-card-hover);
  }
}

.surmesure-step-number {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--color-orange, #E35B24);
  margin-bottom: 1rem;
}

.surmesure-step-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 auto 1.25rem;
  background: linear-gradient(135deg, rgba(227, 91, 36, 0.08) 0%, rgba(227, 91, 36, 0.03) 100%);
  border-radius: 50%;
  color: var(--color-orange, #E35B24);
}

.surmesure-step h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--bois-sombre, #4A3F35);
  margin: 0 0 0.75rem;
}

.surmesure-step p {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-dark, #323232);
  margin: 0;
}

/* --- Réalisations --- */
.surmesure-realisations {
  padding: 100px 20px;
  background: var(--creme-papier, #FEFDFB);
}

.surmesure-realisations-header {
  max-width: 1100px;
  margin: 0 auto 2.5rem;
  padding: 0 2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
}

.surmesure-realisations-title {
  display: flex;
  flex-direction: column;
}

.surmesure-realisations-header .section-number {
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--bois-dore, #937D68);
  text-transform: uppercase;
  margin-bottom: 0.25rem;
}

.surmesure-realisations-header h2 {
  font-family: 'Square Peg', cursive;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  margin: 0;
}

.surmesure-realisations-header p {
  width: 100%;
  font-size: 1.05rem;
  color: var(--bois-dore, #937D68);
  margin: 0;
}

.surmesure-grid {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-behavior: smooth;
  gap: 1.5rem;
  padding: 10px calc((100vw - 580px) / 2) 30px;
}

.surmesure-grid::-webkit-scrollbar {
  display: none;
}

.surmesure-grid .surmesure-card {
  flex: 0 0 580px;
  scroll-snap-align: center;
}

.surmesure-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(147, 125, 104, 0.1);
  box-shadow: var(--shadow-card);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (hover: hover) {
  .surmesure-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-card-hover);
  }
}

.surmesure-card-image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.surmesure-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (hover: hover) {
  .surmesure-card:hover .surmesure-card-image img {
    transform: scale(1.05);
  }
}

.surmesure-card-content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.surmesure-card-content h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--bois-sombre, #4A3F35);
  margin: 0 0 0.75rem;
}

.surmesure-card-details {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 0.75rem;
}

.surmesure-detail {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--bois-dore, #937D68);
  background: rgba(147, 125, 104, 0.06);
  padding: 4px 10px;
  border-radius: 20px;
}

.surmesure-detail svg {
  flex-shrink: 0;
}

.surmesure-card-desc {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--color-dark, #323232);
  margin: 0 0 0.75rem;
}

.surmesure-card-cta {
  display: inline-block;
  align-self: flex-start;
  margin-top: auto;
  padding-top: 0.75rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  border-radius: 50px;
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .surmesure-card:hover .surmesure-card-cta {
    background: var(--color-orange, #E35B24);
    color: #fff;
    padding: 10px 24px;
  }
}

.surmesure-card-quote {
  margin: 0;
  padding: 12px 16px;
  background: rgba(147, 125, 104, 0.04);
  border-left: 3px solid var(--color-orange, #E35B24);
  border-radius: 0 8px 8px 0;
}

.surmesure-card-quote p {
  font-size: 0.88rem;
  font-style: italic;
  line-height: 1.6;
  color: var(--color-dark, #323232);
  margin: 0;
}

.surmesure-card-quote cite {
  display: block;
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 600;
  color: var(--bois-dore, #937D68);
  margin-top: 6px;
}

/* État vide (pas de projets) */
.surmesure-empty {
  text-align: center;
  max-width: 500px;
  margin: 0 auto;
  padding: 60px 20px;
  background: rgba(147, 125, 104, 0.04);
  border-radius: 16px;
  border: 2px dashed rgba(147, 125, 104, 0.15);
}

.surmesure-empty p {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--bois-dore, #937D68);
  margin: 0 0 0.5rem;
}

.surmesure-empty p:last-child {
  margin-bottom: 0;
  font-size: 0.95rem;
}

/* --- Formulaire --- */
.surmesure-form-section {
  padding: 100px 20px;
  position: relative;
  background: linear-gradient(135deg, var(--creme-chaud, #FAF6F0) 0%, var(--creme-papier, #FEFDFB) 100%);
  overflow: hidden;
}

.surmesure-form-section > .surmesure-form-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

.surmesure-form-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(254, 253, 251, 0.92) 0%,
    rgba(251, 246, 234, 0.88) 50%,
    rgba(250, 246, 240, 0.92) 100%
  );
  pointer-events: none;
  z-index: 1;
}

.surmesure-form-wrapper {
  max-width: 650px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.surmesure-form-wrapper h2 {
  font-family: 'Square Peg', cursive;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  color: var(--bois-sombre, #4A3F35);
  text-align: center;
  margin: 0 0 0.75rem;
}

.surmesure-form-intro {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--bois-dore, #937D68);
  text-align: center;
  margin: 0 0 2.5rem;
}

.surmesure-form-wrapper form {
  display: grid;
  gap: 1.25rem;
  background: var(--color-white, #FFFFFF);
  border-radius: 16px;
  border: 1px solid rgba(147, 125, 104, 0.12);
  padding: 2.5rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.surmesure-form-wrapper label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--bois-profond, #6B5A4A);
  margin-bottom: 0.4rem;
}

.surmesure-form-wrapper input[type="text"],
.surmesure-form-wrapper input[type="email"],
.surmesure-form-wrapper textarea {
  width: 100%;
  padding: 14px 16px;
  font-size: 16px;
  font-family: inherit;
  color: var(--bois-sombre, #4A3F35);
  background: var(--creme-papier, #FEFDFB);
  border: 2px solid rgba(147, 125, 104, 0.15);
  border-radius: 8px;
  -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-sizing: border-box;
}

.surmesure-form-wrapper input:focus,
.surmesure-form-wrapper textarea:focus {
  outline: none;
  border-color: var(--color-orange, #E35B24);
  background: var(--color-white, #FFFFFF);
  box-shadow:
    0 0 0 3px rgba(227, 91, 36, 0.1),
    0 2px 8px rgba(227, 91, 36, 0.15);
}

.surmesure-form-wrapper textarea {
  min-height: 140px;
  resize: vertical;
}

.surmesure-form-wrapper input::placeholder,
.surmesure-form-wrapper textarea::placeholder {
  color: rgba(147, 125, 104, 0.5);
}

.surmesure-form-wrapper button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 16px 40px;
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--creme-papier, #FEFDFB);
  background: var(--gradient-cta);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  box-shadow:
    0 4px 12px rgba(227, 91, 36, 0.25),
    0 2px 4px rgba(227, 91, 36, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
  -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (hover: hover) {
  .surmesure-form-wrapper button[type="submit"]:hover {
    background: linear-gradient(180deg, #D14F1C 0%, #B8441A 100%);
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    box-shadow:
      0 8px 20px rgba(227, 91, 36, 0.3),
      0 4px 8px rgba(227, 91, 36, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.2);
  }
}

.surmesure-form-alt {
  text-align: center;
  font-size: 0.9rem;
  color: var(--bois-dore, #937D68);
  margin-top: 2rem;
}

.surmesure-form-alt a {
  color: var(--color-orange, #E35B24);
  text-decoration: none;
  font-weight: 600;
  transition: opacity 0.3s ease;
}

@media (hover: hover) {
  .surmesure-form-alt a:hover {
    opacity: 0.8;
  }
}

/* --- Responsive --- */
@media (max-width: 768px) {
  .surmesure-hero {
    min-height: 60vh;
    padding: 100px 20px 60px;
  }

  .surmesure-hero-title {
    font-size: clamp(40px, 10vw, 64px);
    min-height: 1.4em;
  }

  .surmesure-tabs {
    margin-bottom: 1.5rem;
  }

  .surmesure-tab {
    padding: 8px 20px;
    font-size: 0.8rem;
  }

  .surmesure-process {
    padding: 60px 0;
  }

  .surmesure-steps {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 1rem;
    padding: 15px 5% 30px;
  }
  .surmesure-steps::-webkit-scrollbar { display: none; }
  .surmesure-steps > .surmesure-step {
    flex: 0 0 90%;
    scroll-snap-align: center;
    padding: 30px 24px;
  }

  .surmesure-realisations {
    padding: 60px 0;
  }
  .surmesure-realisations-header {
    padding: 0 20px;
  }

  .surmesure-grid {
    gap: 1rem;
    padding: 0 7.5% 30px;
  }

  .surmesure-grid .surmesure-card {
    flex: 0 0 90%;
    scroll-snap-align: center;
  }

  .surmesure-card-content {
    padding: 20px;
  }
  .surmesure-card-details .surmesure-detail:first-child,
  .surmesure-card-details .surmesure-detail:last-child {
    display: none;
  }
  .surmesure-form-section {
    padding: 60px 20px;
  }

  /* Champs pro */
  .is-pro-field {
    width: 100%;
  }
}

/* --- Cartes cliquables --- */
.surmesure-card {
  cursor: pointer;
}

/* --- Modale projet --- */
.surmesure-modal {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.surmesure-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.surmesure-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(50, 50, 50, 0.6);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.surmesure-modal-container {
  position: relative;
  width: 92vw;
  max-width: 1100px;
  height: 85vh;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.25);
  transform: translateY(20px) scale(0.97);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.surmesure-modal.is-open .surmesure-modal-container {
  transform: translateY(0) scale(1);
}

.surmesure-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.95);
  border: 2px solid var(--color-wood, #937D68);
  border-radius: 50%;
  cursor: pointer;
  padding: 10px;
  color: var(--color-wood, #937D68);
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .surmesure-modal-close:hover {
    background: var(--color-orange, #E35B24);
    border-color: var(--color-orange, #E35B24);
    color: #fff;
    transform: scale(1.1);
  }
}

.surmesure-modal-close svg {
  display: block;
  width: 24px;
  height: 24px;
}

.surmesure-modal-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
  height: 100%;
  overflow: hidden;
}

.surmesure-modal-gallery {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.surmesure-modal-image {
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.surmesure-modal-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.surmesure-modal-thumbs {
  display: flex;
  gap: 6px;
  padding: 8px;
  background: rgba(50, 50, 50, 0.04);
}

.surmesure-modal-thumb {
  width: 60px;
  height: 60px;
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  padding: 0;
  background: none;
  opacity: 0.6;
  transition: all 0.25s ease;
}

@media (hover: hover) {
  .surmesure-modal-thumb:hover {
    opacity: 0.9;
  }
}

.surmesure-modal-thumb.is-active {
  border-color: var(--color-orange, #E35B24);
  opacity: 1;
}

.surmesure-modal-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.surmesure-modal-content {
  padding: 60px 32px 40px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* --- Flèches navigation galerie modale --- */
.surmesure-modal-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.95);
  border: 2px solid var(--color-wood, #937D68);
  border-radius: 50%;
  color: var(--color-wood, #937D68);
  cursor: pointer;
  z-index: 2;
  transition: all 0.3s ease;
}

@media (hover: hover) {
  .surmesure-modal-nav:hover {
    background: var(--color-orange, #E35B24);
    border-color: var(--color-orange, #E35B24);
    color: #fff;
    transform: translateY(-50%) scale(1.1);
  }
}

.surmesure-modal-nav svg {
  display: block;
  width: 24px;
  height: 24px;
}

.surmesure-modal-nav-prev {
  left: 12px;
}

.surmesure-modal-nav-next {
  right: 12px;
}

.surmesure-modal-title {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--bois-sombre, #4A3F35);
  margin: 0;
}

.surmesure-modal-subtitle {
  font-size: 0.95rem;
  color: var(--bois-dore, #937D68);
  margin: 0.25rem 0 0;
}

.surmesure-modal-details {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.surmesure-modal-desc {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--color-dark, #323232);
}

.surmesure-modal-quote {
  margin: 8px 0 0;
}

.surmesure-modal-cta {
  display: inline-block;
  margin-top: auto;
  padding-top: 16px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-orange, #E35B24);
  text-decoration: none;
  transition: opacity 0.3s ease;
}

@media (hover: hover) {
  .surmesure-modal-cta:hover {
    opacity: 0.75;
  }
}

/* Modale responsive */
@media (max-width: 768px) {
  .surmesure-modal {
    padding: 1rem;
  }

  .surmesure-modal-container {
    width: 100%;
    height: auto;
    max-height: 92vh;
    max-height: 92dvh;
    border-radius: 16px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .surmesure-modal-body {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    height: auto;
    overflow: visible;
  }

  .surmesure-modal-gallery {
    position: relative;
    height: auto;
  }

  /* Slider photos mobile : scroll horizontal */
  .surmesure-modal-image {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    flex: none;
  }
  .surmesure-modal-image::-webkit-scrollbar { display: none; }

  .surmesure-modal-image img {
    flex: 0 0 100%;
    scroll-snap-align: center;
    height: 55vh;
    height: 55dvh;
    object-fit: cover;
  }

  /* Dots en overlay sur les photos */
  .surmesure-modal-photo-dots {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: center;
    gap: 6px;
    padding: 6px 14px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 20px;
    z-index: 2;
  }

  .surmesure-modal-photo-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-gray-light, #e8e2d9);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: all 0.3s ease;
    -webkit-tap-highlight-color: transparent;
  }

  .surmesure-modal-photo-dot.active {
    background: var(--color-wood);
    transform: scale(1.3);
  }

  /* Masquer thumbnails et flèches en mobile */
  .surmesure-modal-thumbs,
  .surmesure-modal-nav {
    display: none;
  }

  .surmesure-modal-content {
    padding: 24px 20px 32px;
  }

  .surmesure-modal-close {
    top: 0.75rem;
    right: 0.75rem;
    width: 36px;
    height: 36px;
    z-index: 2;
  }
}

/* ==========================================================================
   WooCommerce Product Add-Ons – Styles
   ========================================================================== */

/* Add-on container — même esthétique que les cartes variations V2 */
.product-form-v2 .wc-pao-addons-container {
  margin-top: 0;
}

.product-form-v2 .wc-pao-addon {
  background: var(--color-cream);
  border-radius: 12px;
  border: 1px solid rgba(147, 125, 104, 0.1);
  padding: 0 0.875rem 0.875rem 0.875rem;
  margin-bottom: 1rem;
}

.product-form-v2 .wc-pao-addon:last-child {
  margin-bottom: 0;
}

/* Label add-on — identique aux labels variations (uppercase, dot orange) */
.product-form-v2 .wc-pao-addon-name {
  font-family: var(--font-body);
  font-size: 0.75rem !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-text);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0.875rem 0 0.5rem 0;
  font-style: normal;
}

.product-form-v2 .wc-pao-addon-name::before {
  content: '';
  width: 6px;
  height: 6px;
  background: var(--color-orange, #E35B24);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Masquer l'astérisque required (géré visuellement par le dot) */
.product-form-v2 .wc-pao-addon-name .required {
  display: none;
}

/* Select add-on — même style que les selects variations */
.product-form-v2 .wc-pao-addon-select,
.product-form-v2 .wc-pao-addon-field {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 2px solid transparent;
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--color-dark);
  background: var(--color-white);
  transition: all 0.25s var(--ease-smooth);
  cursor: pointer;
}

@media (hover: hover) {
  .product-form-v2 .wc-pao-addon-select:hover,
  .product-form-v2 .wc-pao-addon-select:focus,
  .product-form-v2 .wc-pao-addon-field:hover,
  .product-form-v2 .wc-pao-addon-field:focus {
    border-color: var(--color-wood);
    outline: none;
  }
}

/* Fallback hors product-form-v2 */
.wc-pao-addons-container {
  margin-top: 1.5rem;
}

/* Masque les lignes de détail sur la FICHE PRODUIT uniquement */
.single-product .product-addon-totals > ul > li:not(.wc-pao-subtotal-line) {
  display: none;
}

/* Style du subtotal — fiche produit uniquement */
.single-product .wc-pao-subtotal-line {
  list-style: none;
  justify-content: flex-start !important;
}

.single-product .wc-pao-subtotal-line p.price {
  color: #018501 !important;
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  margin: 0;
  font-size: 0;
}

.single-product .wc-pao-subtotal-line p.price .amount {
  font-size: 1.5rem;
}

/* Retire bordures du bloc totals — fiche produit uniquement */
.single-product .product-addon-totals,
.single-product .product-addon-totals ul,
.single-product .product-addon-totals li {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ========================================
   SCROLL DOTS — Grilles verticales → Sliders horizontaux sur mobile
   ======================================== */

/* --- Scroll Dots (base) --- */
.scroll-dots {
  display: none;
  justify-content: center;
  gap: 0.5rem;
  padding: 0;
}

.scroll-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-gray-light, #e8e2d9);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: all 0.3s ease;
  -webkit-tap-highlight-color: transparent;
}

.scroll-dot.active {
  background: var(--color-wood);
  transform: scale(1.3);
}

/* Dots toujours visibles pour les sliders alwaysActive */
.surmesure-grid + .scroll-dots {
  display: flex;
}

@media (max-width: 768px) {

  /* --- Collections --- */
  .collections-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 1rem;
    padding: 15px 5%;
    scroll-padding-left: 0;
    scroll-behavior: auto;
  }
  .collections-grid::-webkit-scrollbar { display: none; }
  .collections-grid > .collection-card {
    flex: 0 0 90%;
    scroll-snap-align: center;
    max-height: none;
  }

  /* --- Conseils tips --- */
  .advice-tips-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 1rem;
    padding: 25px 5%;
    align-items: stretch;
  }
  .advice-tips-grid::-webkit-scrollbar { display: none; }
  .advice-tips-grid > .advice-tip {
    flex: 0 0 90%;
    scroll-snap-align: center;
  }
  /* Masquer le panneau citation et le CTA guide dans le slider */
  .advice-tips-grid > .advice-quote-panel,
  .advice-tips-grid > .advice-guide-cta {
    display: none !important;
  }

  /* --- Témoignages --- */
  .testimonials-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 1rem;
    padding: 15px 5%;
  }
  .testimonials-grid::-webkit-scrollbar { display: none; }
  .testimonials-grid > .testimonial-card {
    flex: 0 0 90%;
    scroll-snap-align: center;
  }

  /* --- Valeurs artisan --- */
  .artisan-values-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 1rem;
    padding: 15px 5%;
  }
  .artisan-values-grid::-webkit-scrollbar { display: none; }
  .artisan-values-grid > .artisan-value-item {
    flex: 0 0 90%;
    scroll-snap-align: center;
  }

  /* --- Processus artisanal --- */
  .process-inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 1rem;
    padding: 15px 5%;
    justify-content: flex-start;
  }
  .process-inner::-webkit-scrollbar { display: none; }
  .process-inner::before {
    display: none !important;
  }
  .process-inner > .process-step {
    flex: 0 0 90%;
    scroll-snap-align: center;
    min-width: unset;
    width: auto;
    height: 140px;
    border-radius: 16px;
  }
  .process-inner > .process-step .step-image-img {
    opacity: 0.15;
  }
  .bento-process {
    padding: 1.5rem 0 !important;
  }
  .bento-process .process-header {
    padding: 0 1rem;
    margin-bottom: 0.75rem;
  }

  /* --- Dots --- */
  .scroll-dots {
    display: flex;
  }
}

/* ==========================================================================
   PAGE SUIVI COLISSIMO — Tracking premium Atelier Sâpi
   ========================================================================== */

.lpc_tracking {
  max-width: 700px;
  margin: 2rem auto 4rem;
  padding: 0 1.5rem;
  font-family: 'Montserrat', sans-serif;
}

/* --- Masquer le logo Colissimo brut --- */
.lpc_tracking_logo {
  display: none;
}

/* --- Icône colis + titre --- */
.lpc_tracking_title {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.8rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-gray, #888);
  text-align: center;
  margin: 0 0 0.25rem;
}

.lpc_tracking_title::before {
  content: '';
  display: block;
  width: 48px;
  height: 48px;
  margin: 0 auto 1rem;
  background: var(--color-warm, #FBF6EA);
  border-radius: 50%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23937D68' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.5 9.4 7.55 4.24'/%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpolyline points='3.29 7 12 12 20.71 7'/%3E%3Cline x1='12' y1='22' x2='12' y2='12'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 24px;
}

.lpc_tracking_title b {
  display: block;
  font-family: 'Square Peg', cursive;
  font-size: 3rem;
  font-weight: 400;
  color: var(--color-dark, #323232);
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.2;
  margin-top: 0.25rem;
}

/* --- Méthode de livraison --- */
.lpc_tracking_method {
  text-align: center;
  font-size: 0.85rem;
  color: var(--color-gray, #888);
  margin: 0.5rem 0 2rem;
}

.lpc_tracking_method b {
  color: var(--color-dark, #323232);
  font-weight: 600;
}

/* --- Séparateur --- */
.lpc_tracking_separator {
  border: none;
  border-top: 1px solid var(--color-gray-light, #e8e2d9);
  margin: 0 0 2rem;
}

/* --- Card statut actuel --- */
.lpc_tracking_summary {
  background: var(--color-warm, #FBF6EA);
  border-radius: 16px;
  padding: 1.5rem;
  margin-bottom: 2.5rem;
}

.lpc_tracking_summary table {
  width: 100%;
  border: none;
  border-collapse: collapse;
}

.lpc_tracking_summary thead {
  display: none;
}

.lpc_tracking_summary tbody tr {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.lpc_tracking_summary td {
  padding: 0;
  border: none;
  font-size: 0.9rem;
  color: var(--color-dark, #323232);
  line-height: 1.6;
}

.lpc_tracking_summary .lpc_tracking_tracknumber {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--color-wood, #937D68);
  background: rgba(147, 125, 104, 0.1);
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  width: fit-content;
}

.lpc_tracking_summary .lpc_tracking_tracknumber::before {
  content: 'N° ';
  font-weight: 500;
  opacity: 0.7;
}

.lpc_tracking_summary td a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-cream, #FEFDFB);
  background: var(--gradient-cta);
  padding: 0.6rem 1.25rem;
  border-radius: 50px;
  text-decoration: none;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  width: fit-content;
}

.lpc_tracking_summary td a:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
}

/* --- Titres de sections (H3) --- */
.lpc_tracking h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-wood, #937D68);
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--color-gray-light, #e8e2d9);
}

/* --- Historique des statuts --- */
.lpc_tracking_events table {
  width: 100%;
  border: none;
  border-collapse: collapse;
}

.lpc_tracking_events thead {
  display: none;
}

.lpc_tracking_events tbody tr {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--color-gray-light, #e8e2d9);
  position: relative;
}

.lpc_tracking_events tbody tr:last-child {
  border-bottom: none;
}

.lpc_tracking_events tbody tr::before {
  content: '';
  flex: 0 0 10px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-wood, #937D68);
  margin-top: 0.35rem;
}

.lpc_tracking_events td {
  padding: 0;
  border: none;
}

.lpc_tracking_events td:first-child {
  flex: 0 0 auto;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  white-space: nowrap;
}

.lpc_tracking_events td:last-child {
  flex: 1;
  font-size: 0.88rem;
  color: var(--color-dark, #323232);
  line-height: 1.5;
}

/* --- Chronologie (timeline) --- */
.lpc_tracking_steps {
  margin-bottom: 2rem;
}

.lpc_tracking_steps table {
  width: 100%;
  border: none;
  border-collapse: collapse;
}

.lpc_tracking_steps thead {
  display: none;
}

.lpc_tracking_steps tbody tr {
  display: flex;
  gap: 1.25rem;
  padding: 1.25rem 0;
  position: relative;
  border: none;
}

.lpc_tracking_steps tbody tr + tr {
  border-top: none;
}

/* Ligne verticale entre les étapes */
.lpc_tracking_steps tbody tr:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 15px;
  top: calc(1.25rem + 28px);
  bottom: 0;
  width: 2px;
  background: var(--color-gray-light, #e8e2d9);
}

/* Numéro d'étape → cercle */
.lpc_tracking_steps td:first-child {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  border: none;
  padding: 0;
  position: relative;
  z-index: 1;
  background: var(--color-gray-light, #e8e2d9);
  color: var(--color-gray, #888);
}

/* Étape active */
.lpc_tracking_steps tr.lpc__timeline__active td:first-child {
  background: var(--color-wood, #937D68);
  color: #fff;
}

.lpc_tracking_steps td:last-child {
  flex: 1;
  font-size: 0.88rem;
  color: var(--color-dark, #323232);
  line-height: 1.6;
  padding: 0.25rem 0 0;
  border: none;
}

/* Étape active — texte */
.lpc_tracking_steps tr.lpc__timeline__active td:last-child {
  font-weight: 500;
}

/* --- Message vide --- */
.lpc_tracking_message:empty {
  display: none;
}

/* --- Responsive mobile --- */
@media (max-width: 768px) {
  .lpc_tracking {
    padding: 0 1rem;
    margin: 1rem auto 3rem;
  }

  .lpc_tracking_title b {
    font-size: 2.5rem;
  }

  .lpc_tracking_summary {
    padding: 1.25rem;
  }

  .lpc_tracking_summary td a {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   Modal choix point relais Colissimo — Fix responsive mobile
   ==========================================================================
   Le plugin utilise des dimensions fixes en px (container 1000x574, map
   598x483 floatée à droite) et n'a que 3 media queries cosmétiques. Sur
   mobile, la map est écrasée et la liste prend tout l'écran.
   On force une répartition lisible : liste limitée à 40vh, map au moins
   300px / 50vh. Fallback : tâche S22 pour évaluer un autre plugin à terme.
*/
@media (max-width: 768px) {
  /* Container + contenu : plein écran, hauteur auto */
  #lpc_widget_container {
    width: 100% !important;
    max-width: 100vw !important;
  }

  .widget_colissimo_contenu {
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    box-sizing: border-box !important;
  }

  /* Map : pleine largeur, hauteur confortable, non-floatée */
  #widget_colissimo_map,
  .widget_colissimo_map {
    width: 100% !important;
    height: 50vh !important;
    min-height: 300px !important;
    float: none !important;
    top: 0 !important;
    position: relative !important;
    border: none !important;
  }

  /* Liste : pleine largeur, scrollable, limitée à 40vh */
  #widget_colissimo_liste,
  .widget_colissimo_liste {
    width: 100% !important;
    max-height: 40vh !important;
    float: none !important;
    overflow-y: auto !important;
  }

  /* Zones adresse + filtres : pleine largeur */
  #widget_colissimo_table_adresse,
  #widget_colissimo_filtres {
    width: 100% !important;
  }
}

/* ========================================
   PAGE STAR DU MOMENT
   ======================================== */

/* Hero plein écran */
.star-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
}

.star-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.star-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.5) 100%);
}

.star-hero__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  height: 100%;
  padding: 0 2rem 6rem;
  text-align: center;
  color: #fff;
}

.star-hero__badge {
  display: inline-block;
  padding: 0.4rem 1.25rem;
  border-radius: 50px;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 1.5rem;
}

.star-hero__title {
  line-height: 1.1;
  margin: 0 0 1rem;
  color: #fff;
}

.star-hero__title .product-firstname {
  color: #fff;
}

.star-hero__title .product-restname {
  color: #fff;
  font-size: 4rem;
}

.star-hero__accroche {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 300;
  max-width: 600px;
  opacity: 0.9;
  margin: 0 0 2rem;
}

.star-hero__scroll {
  color: #fff;
  opacity: 0.6;
  transition: opacity 0.3s;
  animation: starBounce 2s ease infinite;
}

.star-hero__scroll:hover {
  opacity: 1;
}

@keyframes starBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(8px); }
}

/* Présentation produit */
.star-presentation {
  padding: 5rem 2rem;
  background: var(--color-cream, #FEFDFB);
}

.star-presentation__inner {
  max-width: 750px;
  margin: 0 auto;
  text-align: center;
}

.star-presentation__accroche {
  font-family: var(--font-display);
  font-size: 2.2rem;
  color: var(--color-wood);
  margin: 0 0 2rem;
  line-height: 1.3;
}

.star-presentation__desc {
  font-family: var(--font-body);
  font-size: 1.2rem;
  line-height: 1.9;
  color: var(--color-dark);
  margin: 0 0 2rem;
}

.star-presentation__link {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  text-decoration: none;
  border-bottom: 1.5px solid rgba(147, 125, 104, 0.3);
  padding-bottom: 2px;
  transition: border-color 0.2s, color 0.2s;
}

.star-presentation__link:hover {
  color: var(--color-orange, #E35B24);
  border-bottom-color: var(--color-orange, #E35B24);
}

/* Galerie — carrousel horizontal */
.star-galerie {
  padding: 0;
}

.star-carousel {
  position: relative;
  overflow: hidden;
}

.star-carousel__track {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 2rem 10vw;
}

.star-carousel__track::-webkit-scrollbar {
  display: none;
}

.star-carousel__slide {
  flex: 0 0 auto;
  width: 70vw;
  scroll-snap-align: center;
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.4s var(--ease-smooth), box-shadow 0.4s var(--ease-smooth);
}

.star-carousel__slide img {
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  transition: transform 0.4s var(--ease-smooth);
}

@media (hover: hover) {
  .star-carousel__slide:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(147, 125, 104, 0.15);
  }

  .star-carousel__slide:hover img {
    transform: scale(1.05);
  }
}

/* Flèches navigation */
.star-carousel__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--color-dark);
  font-size: 1.5rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
  transition: all 0.2s;
}

.star-carousel__arrow:hover {
  background: #fff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  transform: translateY(-50%) scale(1.05);
}

.star-carousel__arrow--prev {
  left: 1rem;
}

.star-carousel__arrow--next {
  right: 1rem;
}

/* Carrousel 2 — slides plus petites */
.star-carousel--small .star-carousel__slide {
  width: 45vw;
  max-width: 500px;
}

.star-carousel--small .star-carousel__slide img {
  aspect-ratio: 4 / 3;
}

/* Interludes entre les carrousels */
.star-interlude {
  display: flex;
  justify-content: center;
  padding: 4rem 2rem;
  background: var(--color-cream, #FEFDFB);
}

.star-interlude__inner {
  max-width: 700px;
  width: 100%;
}

.star-interlude__title {
  font-family: var(--font-display);
  font-size: 2rem;
  color: var(--color-wood);
  margin: 0 0 1.5rem;
  text-align: left;
}

/* Pourquoi cette pièce */
.star-pourquoi {
  background: var(--color-warm, #FBF6EA);
  padding: 5rem 2rem;
}

.star-pourquoi__inner {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

.star-pourquoi__inner h2 {
  font-family: var(--font-display);
  font-size: 2.5rem;
  color: var(--color-wood);
  margin: 0 0 2rem;
}

.star-pourquoi__text {
  font-family: var(--font-body);
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--color-dark);
}

.star-descriptif__card {
  padding: 0;
  text-align: left;
}

.star-descriptif__card ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.star-descriptif__card li {
  font-family: var(--font-body);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--color-dark);
  padding: 0.4rem 0 0.4rem 1.5rem;
  position: relative;
}

.star-descriptif__card li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.85rem;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-wood, #937D68);
}

.star-descriptif__card p {
  font-family: var(--font-body);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--color-dark);
  margin: 0 0 0.5rem;
}

.star-descriptif__card a {
  color: var(--color-orange, #E35B24);
  font-weight: 600;
}

.star-storytelling__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1rem 0;
  text-align: center;
}

.star-storytelling__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--color-warm, #FBF6EA);
  color: var(--color-wood, #937D68);
  margin-bottom: 1.25rem;
}

.star-storytelling__card h3 {
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-dark);
  margin: 0 0 0.75rem;
}

.star-storytelling__card p {
  font-family: var(--font-body);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--color-dark);
  opacity: 0.8;
  margin: 0 0 1.25rem;
}

.star-storytelling__link {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s;
}

.star-storytelling__link:hover {
  border-bottom-color: var(--color-wood, #937D68);
}

/* CTA final */
.star-cta {
  padding: 5rem 2rem;
  text-align: center;
  background: var(--color-cream, #FEFDFB);
}

.star-cta__inner {
  max-width: 600px;
  margin: 0 auto;
}

.star-cta__title {
  margin: 0 0 1rem;
}

.star-cta__title .product-restname {
  font-size: 3rem;
}

.star-cta__price {
  font-family: var(--font-body);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--color-dark);
  margin-bottom: 2rem;
}

.star-cta__btn {
  display: inline-block;
  padding: 1rem 2.5rem;
  background: var(--gradient-cta);
  color: #fff;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 50px;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  transition: all 0.3s var(--ease-smooth);
}

.star-cta__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
}

.star-cta__link {
  display: block;
  margin-top: 1.5rem;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--color-wood);
  text-decoration: none;
  transition: color 0.2s;
}

.star-cta__link:hover {
  color: var(--color-orange);
}

/* Responsive mobile */
@media (max-width: 768px) {
  .star-hero {
    min-height: 500px;
    height: 85vh;
  }

  .star-hero__content {
    padding: 0 1.5rem 4rem;
  }

  .star-hero__title .product-restname {
    font-size: 2.5rem;
  }

  .star-hero__accroche {
    font-size: 0.95rem;
  }

  .star-presentation {
    padding: 3rem 1.5rem;
  }

  .star-presentation__accroche {
    font-size: 1.7rem;
  }

  .star-carousel__slide {
    width: 85vw;
  }

  .star-carousel__track {
    padding: 1.5rem 5vw;
  }

  .star-carousel__arrow {
    width: 36px;
    height: 36px;
    font-size: 1.2rem;
  }

  .star-interlude {
    padding: 2.5rem 1.5rem;
  }

  .star-pourquoi {
    padding: 3rem 1.5rem;
  }

  .star-pourquoi__inner h2 {
    font-size: 2rem;
  }

  .star-cta {
    padding: 3rem 1.5rem;
  }

  .star-cta__title .product-restname {
    font-size: 2rem;
  }
}

/* ========================================
   PAGE PRESSE ET PARTENARIATS
   ======================================== */

/* --- Hero --- */
.presse-hero {
  background: var(--color-warm, #FBF6EA);
  padding: 5rem 2rem 4rem;
  text-align: center;
}

.presse-hero-inner {
  max-width: 700px;
  margin: 0 auto;
}

.presse-hero-label {
  display: inline-block;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--color-wood, #937D68);
  margin-bottom: 1.25rem;
  padding: 0.4rem 1.2rem;
  border: 1px solid rgba(147, 125, 104, 0.3);
  border-radius: 30px;
}

.presse-hero h1 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: clamp(1.8rem, 4.5vw, 2.8rem);
  font-weight: 900;
  color: var(--color-dark, #323232);
  line-height: 1.2;
  margin: 0 0 1rem;
}

.presse-hero-subtitle {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.05rem;
  color: var(--color-wood, #937D68);
  font-weight: 500;
  margin: 0;
}

/* --- Sections communes --- */
.presse-section {
  padding: 4rem 2rem;
}

.presse-container {
  max-width: 1000px;
  margin: 0 auto;
}

.presse-brief-header {
  margin-bottom: 2.5rem;
}

.presse-section-number {
  display: block;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--color-orange, #E35B24);
  margin-bottom: 0.5rem;
}

.presse-brief-header h2 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: var(--color-dark, #323232);
  margin: 0;
}

/* --- En bref : intro + pillars --- */
.presse-brief {
  background: var(--color-cream, #FEFDFB);
}

.presse-brief-intro {
  max-width: 800px;
  margin-bottom: 3rem;
}

.presse-brief-intro p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.05rem;
  line-height: 1.7;
  color: #555;
}

.presse-pillars {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

.presse-pillar {
  background: var(--color-warm, #FBF6EA);
  border-radius: 12px;
  padding: 2rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@media (hover: hover) {
  .presse-pillar:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(147, 125, 104, 0.12);
  }
}

.presse-pillar-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(147, 125, 104, 0.1);
  border-radius: 10px;
  margin-bottom: 1rem;
  color: var(--color-wood, #937D68);
}

.presse-pillar h3 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-dark, #323232);
  margin: 0 0 0.5rem;
}

.presse-pillar p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.92rem;
  line-height: 1.6;
  color: #666;
  margin: 0;
}

/* --- Citation --- */
.presse-quote {
  background: var(--color-warm, #FBF6EA);
  padding: 3.5rem 2rem;
  text-align: center;
}

.presse-quote blockquote {
  max-width: 700px;
  margin: 0 auto;
  position: relative;
  padding: 0;
  border: none;
}

.presse-quote blockquote::before {
  content: '\201C';
  font-family: Georgia, serif;
  font-size: clamp(8rem, 15vw, 14rem);
  font-style: normal;
  color: var(--color-orange, #E35B24);
  opacity: 0.2;
  position: absolute;
  top: -0.4em;
  left: -0.1em;
  line-height: 1;
}

.presse-quote blockquote p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.15rem;
  font-style: italic;
  line-height: 1.7;
  color: var(--color-dark, #323232);
  margin: 0 0 1rem;
}

.presse-quote cite {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.85rem;
  font-style: normal;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  letter-spacing: 0.03em;
}

/* --- Kit info --- */
.presse-kit-info {
  background: var(--color-cream, #FEFDFB);
  text-align: center;
  padding: 3rem 2rem;
}

.presse-kit-info .presse-container {
  max-width: 700px;
}

.presse-kit-info p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1rem;
  line-height: 1.7;
  color: #555;
}

.presse-tagline {
  font-family: var(--font-display, 'Square Peg', cursive);
  font-size: 2.2rem;
  color: var(--color-orange, #E35B24);
  margin-top: 1rem;
}

/* --- Dossier de présentation --- */
.presse-dossier {
  background: var(--color-warm, #FBF6EA);
}

.presse-dossier-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}

.presse-dossier-image a {
  display: block;
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
}

.presse-dossier-image img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.4s ease;
}

@media (hover: hover) {
  .presse-dossier-image a:hover img {
    transform: scale(1.03);
  }

  .presse-dossier-image a:hover .presse-dossier-overlay {
    opacity: 1;
  }
}

.presse-dossier-overlay {
  position: absolute;
  inset: 0;
  background: rgba(50, 50, 50, 0.6);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  color: #fff;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.presse-dossier-content h3 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-dark, #323232);
  margin: 0 0 0.75rem;
}

.presse-dossier-content h3:nth-of-type(2) {
  margin-top: 1.5rem;
}

.presse-dossier-content p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  line-height: 1.65;
  color: #555;
  margin: 0 0 0.75rem;
}

.presse-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
  padding: 0.75rem 1.5rem;
  background: var(--gradient-cta);
  color: #fff;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(227, 91, 36, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

@media (hover: hover) {
  .presse-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(227, 91, 36, 0.35);
  }
}

/* --- Cas client --- */
.presse-case {
  background: var(--color-cream, #FEFDFB);
}

.presse-case-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 3rem;
  align-items: start;
}

.presse-case-image {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
}

.presse-case-image img {
  width: 100%;
  height: auto;
  display: block;
}

.presse-case-location {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-wood, #937D68);
  margin-bottom: 1rem;
}

.presse-case-content p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  line-height: 1.65;
  color: #555;
  margin: 0 0 1rem;
}

.presse-case-quote {
  margin: 1.5rem 0;
  padding: 1rem 1.5rem;
  border-left: 3px solid var(--color-orange, #E35B24);
  background: var(--color-warm, #FBF6EA);
  border-radius: 0 8px 8px 0;
}

.presse-case-quote p {
  font-style: italic;
  color: var(--color-dark, #323232);
  margin: 0;
}

.presse-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-wood, #937D68);
  text-decoration: none;
  transition: color 0.2s ease;
}

@media (hover: hover) {
  .presse-link:hover {
    color: var(--color-orange, #E35B24);
  }
}

/* --- Galerie photos --- */
.presse-gallery {
  background: var(--color-warm, #FBF6EA);
}

.presse-gallery-sub {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.9rem;
  color: #777;
  margin-top: 0.5rem;
}

.presse-gallery-sub a {
  color: var(--color-wood, #937D68);
  text-decoration: none;
}

@media (hover: hover) {
  .presse-gallery-sub a:hover {
    color: var(--color-orange, #E35B24);
  }
}

.presse-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 0.75rem;
}

.presse-gallery-item {
  display: block;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 1;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@media (hover: hover) {
  .presse-gallery-item:hover {
    transform: scale(1.05);
    box-shadow: 0 8px 30px rgba(147, 125, 104, 0.15);
    z-index: 1;
    position: relative;
  }
}

.presse-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* --- Contact presse --- */
.presse-contact {
  background: var(--color-cream, #FEFDFB);
  padding-bottom: 5rem;
}

.presse-contact-card {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
  background: var(--color-warm, #FBF6EA);
  border-radius: 16px;
  padding: 3rem 2.5rem;
  box-shadow: 0 2px 12px rgba(147, 125, 104, 0.08);
}

.presse-contact-card h2 {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--color-dark, #323232);
  margin: 0 0 0.5rem;
}

.presse-contact-card > p {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  color: #666;
  margin: 0 0 2rem;
}

.presse-contact-links {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}

.presse-contact-item {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--color-dark, #323232);
  text-decoration: none;
  transition: color 0.2s ease;
}

.presse-contact-item svg {
  color: var(--color-wood, #937D68);
  flex-shrink: 0;
}

@media (hover: hover) {
  .presse-contact-item:hover {
    color: var(--color-orange, #E35B24);
  }

  .presse-contact-item:hover svg {
    color: var(--color-orange, #E35B24);
  }
}

/* --- Responsive mobile --- */
@media (max-width: 768px) {
  .presse-hero {
    padding: 3.5rem 1.25rem 3rem;
  }

  .presse-section {
    padding: 3rem 1.25rem;
  }

  .presse-pillars {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .presse-pillar {
    padding: 1.5rem;
  }

  .presse-dossier-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .presse-dossier-overlay {
    opacity: 1;
    background: rgba(50, 50, 50, 0.45);
  }

  .presse-case-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .presse-gallery-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
  }

  .presse-contact-card {
    padding: 2rem 1.5rem;
  }

  .presse-quote {
    padding: 2.5rem 1.25rem;
  }

  .presse-tagline {
    font-size: 1.8rem;
  }
}
