:root {
  --color-burgundy: #8B2E16;
  --color-burgundy-dark: #6B1F0F;
  --color-burgundy-mid: #A03A1E;
  --color-burgundy-bright: #C73B26;
  /* Alias rétro-compatibles */
  --color-orange: #8B2E16;
  --color-beige: #F5F1E9;
  --color-sand: #E6D5B8;
  --color-brown: #4A2C2A;

  /* Charte — dégagement sous la navbar fixe (logo + padding, mobile → grand écran) */
  --edition-below-nav: clamp(6rem, 4.25rem + 8vmin, 10.25rem);
  /* Marge visible entre le bas du header et le début du contenu (hors accueil / carousel) */
  --edition-content-gap: clamp(1.5rem, 2.5vw + 0.75rem, 3rem);
  /* Aligné sur la charte maquette (voir assets/styles/app.css) */
  --edition-cream: #faf8f5;
  --edition-brown: #6d4c2e;
}

/* Pages type actualités / à propos (fond crème, texte lisible) */
.edition-page-content {
  background-color: var(--edition-cream);
  color: #333;
  padding: clamp(1.25rem, 3vw, 2rem) clamp(1rem, 4vw, 2.5rem) clamp(2rem, 5vw, 3.5rem);
}

.edition-page-content h1 {
  color: var(--edition-brown);
  font-size: clamp(1.5rem, 2.5vw, 1.75rem);
  font-weight: 600;
}

/* Contenu riche (CKEditor) sur les pages actualités */
.prose-actuality {
  line-height: 1.65;
}
.prose-actuality p {
  margin-bottom: 0.85em;
}
.prose-actuality a {
  color: var(--color-burgundy-mid);
  text-decoration: underline;
}
.prose-actuality ul,
.prose-actuality ol {
  margin: 0.75em 0 0.75em 1.25em;
  padding-left: 1em;
}

/*
 * Contenu principal — espace sous la navbar fixe + marge avant la 1ʳᵉ section.
 * Fond blanc (pas le beige du body) pour éviter la « bande » sous le header.
 * Exclut : admin (autre layout), accueil carousel (.edition-main--flush-top).
 */
main.edition-main:not(.edition-main--flush-top) {
  padding-top: var(--edition-below-nav);
  background-color: #ffffff;
}

.edition-main-inner {
  padding-top: var(--edition-content-gap);
  padding-bottom: 0.25rem;
}

main.edition-main.edition-main--flush-top,
main.edition-main.edition-main--flush-top .edition-main-inner,
.edition-main-inner--flush {
  padding-top: 0;
  background-color: #ffffff;
}

/* Accueil : carousel collé à la navbar (navbar fixe en overlay, sans bande beige) */
#hero-slider.edition-hero-flush {
  margin-top: 0;
}

/* Pas de marge beige entre les sections de la page d'accueil */
main.edition-main--flush-top section {
  margin-top: 0;
}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background-color: var(--color-beige);
  color: var(--color-brown);
  overflow-x: hidden;
  scroll-behavior: smooth;
}

h1, h2, h3, h4 {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.bg-pattern {
  background-color: var(--color-sand);
  background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%238B2E16' fill-opacity='0.08'%3E%3Cpath d='M0 38.59V1.41L1.41 0H38.59L40 1.41V38.59L38.59 40H1.41L0 38.59zM1 1.41V38.59L38.59 1V38.59L1 1.41z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

#hero-slider {
  height: 100vh;
  width: 100%;
  overflow: hidden;
  position: relative;
}

.slider-wrapper {
  display: flex;
  height: 100%;
  transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1);
}

.slide {
  min-width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.slide-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 50;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: 0.3s;
}

.slide-nav:hover {
  background: rgba(255, 255, 255, 0.3);
  scale: 1.1;
}

.active-nav-link {
  font-size: 18px;
}

.shop-product-card {
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.shop-product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 22px rgba(50, 20, 8, 0.12);
}

.shop-product-card .shop-card-description {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 1024px) {
  #hero-slider {
    height: 92vh;
  }
}

@media (max-width: 768px) {
  #hero-slider {
    height: 86vh;
    min-height: 420px;
  }

  .slide-nav {
    width: 40px;
    height: 40px;
  }

  #prevBtn {
    left: 0.5rem;
  }

  #nextBtn {
    right: 0.5rem;
  }
}

/* =============================================================================
   Site public — responsive mobile / tablette (hors admin)
   ============================================================================= */

main.edition-main .container {
  padding-left: clamp(1rem, 3vw, 1.5rem);
  padding-right: clamp(1rem, 3vw, 1.5rem);
}

/* Navbar */
.edition-nav--scrolled {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

#menu.menu-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  max-height: min(70vh, calc(100dvh - 5.5rem));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

/* Accueil — sections catégories */
.edition-home-split {
  min-height: 0;
}

.edition-home-split__media {
  min-height: clamp(220px, 52vw, 360px);
  height: clamp(220px, 52vw, 360px);
}

@media (min-width: 768px) {
  .edition-home-split {
    min-height: 600px;
  }

  .edition-home-split__media {
    min-height: 600px;
    height: 600px;
  }
}

.edition-hero-brand-logo {
  height: clamp(26vh, 42vw, 70vh);
  max-width: min(92vw, 520px);
  width: auto;
  object-fit: contain;
}

/* Pied de page */
.edition-footer-logo {
  height: clamp(5rem, 22vw, 11rem);
  width: auto;
}

/* Fiche produit */
.edition-product-main-image {
  height: clamp(220px, 58vw, 420px);
}

.edition-product-thumb-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (min-width: 640px) {
  .edition-product-thumb-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Panier / checkout — colonne récap sticky sous la navbar */
.edition-sticky-below-nav {
  position: sticky;
  top: calc(var(--edition-below-nav) + 0.35rem);
}

/* reCAPTCHA & iframes tiers */
.edition-recaptcha-wrap {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.edition-recaptcha-wrap > div {
  transform-origin: left top;
}

@media (max-width: 400px) {
  .edition-recaptcha-wrap > div {
    transform: scale(0.92);
  }
}

/* Typographie mobile */
@media (max-width: 639px) {
  main.edition-main h1.text-4xl:not(.md\:text-5xl),
  main.edition-main h1.text-4xl.md\:text-5xl {
    font-size: clamp(1.65rem, 6.5vw, 2.25rem);
    line-height: 1.2;
  }

  main.edition-main h2.text-4xl,
  main.edition-main h2.text-3xl {
    font-size: clamp(1.5rem, 5.5vw, 2rem);
    line-height: 1.25;
  }

  .edition-page-content {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* Tablette */
@media (min-width: 640px) and (max-width: 1023px) {
  :root {
    --edition-below-nav: clamp(5.5rem, 4rem + 6vmin, 8.5rem);
    --edition-content-gap: clamp(1.25rem, 2vw + 0.5rem, 2rem);
  }
}

/* Boutons tactiles */
@media (max-width: 1023px) {
  main.edition-main .btn,
  main.edition-main button[type="submit"]:not(.btn-close),
  main.edition-main a.inline-flex.items-center.justify-center {
    min-height: 2.75rem;
  }
}

/* Images & médias fluides */
main.edition-main img,
main.edition-main video,
main.edition-main iframe {
  max-width: 100%;
}

/* Page à propos */
.edition-about-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: flex-start;
  margin: 2rem 0;
}

.edition-about-grid > * {
  flex: 1 1 min(100%, 200px);
}

.edition-about-inner {
  max-width: 900px;
  margin: 0 auto;
}
