/* app/assets/stylesheets/application.css */
/*
 *= require_tree .
 *= require_self
 */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital@0;1&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

  html, body {
    overflow-x: hidden;
    max-width: 100%;
  }


* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Styles de base */
body {
  background-color: var(--bg-primary);
  color: var(--text-primary);
  /* La transition est gérée dans le inline CSS */
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Playfair Display", serif;
}
p {
  font-family: "Roboto", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.bg-menu {
  background-color: #8b4367; /* Couleur sombre pour le menu */
}

.border-menu {
  color: #8b4367 !important; /* Couleur sombre pour le menu */
}

.btn-elle {
  background-color: var(--bg-menu);
  color: var(--text-white);
  /* La transition est gérée dans le inline CSS */
}

/* =========================================
   PREMIUM MOBILE LOADER STYLES
   ========================================= */

.mobile-loader-wrapper { display: block; }

@media (min-width: 768px) { 
  .mobile-loader-wrapper { display: none !important; } 
}

#global-loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #8b4367; /* Ta couleur Premium */
  z-index: 2147483647;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  transition: opacity 0.4s ease; /* Transition un peu plus douce */
  padding: 20px; /* Marge de sécurité sur les bords du téléphone */
  box-sizing: border-box;
}

#global-loader.hidden {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

/* --- LE LOGO --- */
.loader-logo {
  width: 120px; /* Taille idéale sur mobile */
  height: auto;
  object-fit: contain;
  margin-bottom: 20px;
  /* Petite animation de respiration "Premium" */
  animation: pulseLogo 2s infinite ease-in-out;
}

@keyframes pulseLogo {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.05); opacity: 0.9; }
  100% { transform: scale(1); opacity: 1; }
}

/* --- LE TEXTE --- */
.loader-text {
  color: #ffffff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; /* Police propre */
  font-size: 0.85rem; /* ~13-14px, lisible mais discret */
  font-weight: 300; /* Fin et élégant */
  text-align: center;
  line-height: 1.4;
  margin-bottom: 30px; /* Espace avant le spinner */
  max-width: 280px; /* Évite que le texte ne soit trop large */
  opacity: 0.9;
}

/* --- LE SPINNER (BLANC) --- */
.spinner {
  width: 35px;
  height: 35px;
  border: 3px solid rgba(255, 255, 255, 0.2); /* Cercle transparent */
  border-top: 3px solid #ffffff; /* Partie qui tourne en blanc pur */
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin { 
  0% { transform: rotate(0deg); } 
  100% { transform: rotate(360deg); } 
}

/* ====================================== */
/* Header & Navigation */
/* ====================================== */
.le-header {
  background-color: var(--bg-menu);
  padding-bottom: 0%;
  padding-top: 1%;
}
.le-header .top-bar {
  background-color: transparent;
  padding: 0px 0;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  transition: background-color 0.3s ease;
  color: var(--text-primary);
}

.le-header .top-bar a{
  color: var(--text-white);
  text-decoration: none;
  font-size: 14px;
}

.le-header .top-bar i{
  color: var(--text-white);
  text-decoration: none;
  font-size: 18px;
}

[data-theme="dark"] .le-header .top-bar {
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.le-header .nav {
  background-color: transparent;
  padding: 0px 0;
  transition: background-color 0.3s ease;
  margin-top: 1%;
  position: relative;
}
.le-header .nav .nav-link {
  color: var(--text-white);
  font-weight: normal;
  margin: 0 5px;
  transition: color 0.3s ease;
  text-transform: uppercase;
  font-size: 12px;
}

.le-header .nav .nav-link:hover {
  color: var(--accent-yellow);
}

.le-header .theme-toggle {
  background: none;
  border: none;
  color: var(--text-white);
  font-size: 14px;
  cursor: pointer;
  padding: 0px;
  transition: color 0.3s ease, transform 0.2s ease;
}

.le-header .theme-toggle:hover {
  transform: scale(1.1);
  color: var(--accent-yellow);
}

.le-logo{
  width: 65%; 
  height: auto;
  margin: auto;
}


/* ==========================================================================
   MEGA MENU : STRUCTURE & CORRECTIF DE SURVOL
   ========================================================================== */

/* 2. Le dropdown parent en position static */
.mega-dropdown {
  position: static !important;
}

/* 3. Le conteneur du Mega Menu */
.dropdown-menu.mega-menu {
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  
  /* COULEURS : Fond sombre avec texte blanc */
  background-color: var(--bg-menu);
  color: var(--text-white);
  
  border: none;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0);
  
  position: absolute !important;
  top: 100%;
  margin-top: 0 !important;
  z-index: 1000;
  
  display: block !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  overflow: visible !important;
  
  transition: opacity 0.15s ease, visibility 0.15s ease;
  transition-delay: 0.1s;
}

/* 4. LE PONT INVISIBLE */
.dropdown-menu.mega-menu::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
  top: -15px;
  height: 15px;
  background: transparent;
  z-index: 10;
}

.dropdown-menu.mega-menu .card {
  background-color: transparent;
  border: none;
}

/* 5. COMPORTEMENT AU SURVOL */
@media all and (min-width: 992px) {
  .hover-dropdown:hover > .dropdown-menu.mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
  
  .hover-dropdown:not(:hover) > .dropdown-menu.mega-menu {
    transition-delay: 0.1s;
  }
}

/* ==========================================================================
   CONTENU DU MENU : STYLE & COULEURS
   ========================================================================== */

/* Titres de section en majuscules */
.mega-menu h6 {
  color: var(--text-white);
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 700;
  font-size: 0.75rem;
}

/* Bordure droite blanche */
.mega-menu .border-end {
  border-color: rgba(255, 255, 255, 0.15) !important;
}

/* Liens de sous-catégories : blanc par défaut */
.mega-menu .subcategory-link {
  color: var(--text-white);
  text-decoration: none;
  display: inline-block;
  padding: 0.25rem 0;
  transition: all 0.2s ease-in-out;
  font-size: 12px;
  text-transform: uppercase;
}

.mega-menu .subcategory-link:hover {
  color: var(--accent-yellow);
  padding-left: 8px;
  transform: translateX(5px);
}

/* Bouton "Tout voir" */
.mega-menu .btn-view-all {
  background-color: transparent;
  border: 2px solid #ffffff;
  color: #ffffff;
  text-transform: uppercase;
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: 1px;
  padding: 0.5rem 1rem;
  transition: all 0.3s ease;
}

.mega-menu .btn-view-all:hover {
  background-color: var(--bg-yellow);
  border-color: var(--bg-yellow);
  color: var(--text-black);
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(255, 69, 0, 0);
}

/* Cartes d'articles */
.mega-menu .article-card {
  transition: transform 0.3s ease;
  background: transparent;
}

.mega-menu .article-card:hover {
  transform: translateY(-5px);
  box-shadow: none !important;
}

/* Titres d'articles : blanc par défaut, orange au survol */
.mega-menu .article-title {
  color: var(--text-white);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  line-height: 1.4;
  transition: color 0.2s ease;
  text-transform: none !important;
}

.mega-menu .article-title::first-letter{
  text-transform: uppercase !important;
}

.mega-menu .article-title:hover {
  color: var(--bg-yellow);
}

/* Date d'article */
.mega-menu .article-date {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.75rem;
}

/* Image placeholder */
.mega-menu .image-placeholder {
  background-color: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.4);
}

/* Effet zoom sur les images */
.hover-zoom {
  transition: transform 0.3s ease;
}

.article-card:hover .hover-zoom {
  transform: scale(1.05);
}

/* Message "Aucun article" */
.mega-menu .no-content-message {
  color: rgba(255, 255, 255, 0.5);
  font-style: italic;
}

/* ==========================================================================
   COLONNES DYNAMIQUES (SOUS-CATÉGORIES)
   ========================================================================== */

.subcategory-dynamic-list {
  column-count: 1;
  column-gap: 20px;
}

@media (min-width: 992px) {
  .subcategory-dynamic-list {
    column-count: 2;
  }
}

.break-avoid {
  break-inside: avoid-column;
  page-break-inside: avoid;
}

/* ==========================================================================
   RESPONSIVE : MOBILE
   ========================================================================== */

@media (max-width: 991px) {
  /* Sur mobile, le mega-menu devient un dropdown classique */
  .dropdown-menu.mega-menu {
    position: relative !important;
    width: 100% !important;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    box-shadow: none;
    margin-top: 0.5rem !important;
  }
  
  /* Pas de pont invisible sur mobile */
  .dropdown-menu.mega-menu::before {
    display: none;
  }
  
  /* Colonnes en pleine largeur sur mobile */
  .mega-menu .col-lg-3,
  .mega-menu .col-lg-9 {
    width: 100%;
    border: none !important;
    margin-bottom: 1.5rem;
  }
  
  /* Articles en 1 colonne sur mobile */
  .mega-menu .row-cols-md-3 {
    row-gap: 1rem;
  }
  
  /* Réduction des paddings sur mobile */
  .dropdown-menu.mega-menu .container-fluid {
    padding: 1rem !important;
  }
}

/* Très petits écrans */
@media (max-width: 576px) {
  .mega-menu h6 {
    font-size: 0.7rem;
  }
  
  .mega-menu .subcategory-link {
    font-size: 0.85rem;
    text-transform: uppercase;
  }
  
  .mega-menu .article-title {
    font-size: 0.85rem;
  }
}
/* ====================================== */
/* Header & Navigation fin */
/* ====================================== */
/* ==========================================================================
   OFFCANVAS MOBILE AVANCÉ
   ========================================================================== */

.mobile-offcanvas {
  background-color: var(--bg-menu) !important;
  color: var(--text-white);
  border-right: 1px solid rgba(255,255,255,0.1);
}

/* Accordéon Mobile : Reset du style Bootstrap par défaut */
.mobile-offcanvas .accordion-button {
  color: var(--text-white);
  font-size: 0.95rem;
  letter-spacing: 1px;
}

.mobile-offcanvas .accordion-button:after {
  filter: invert(1); /* Flèche blanche */
  transform: scale(0.8);
}

.mobile-offcanvas .accordion-button:not(.collapsed) {
  background-color: rgba(255, 255, 255, 0.05); /* Fond très léger au clic */
  color: var(--accent-yellow);
  box-shadow: none;
}

/* Fond légèrement plus sombre pour le contenu déroulé */
.bg-black-opacity {
  background-color: rgba(0, 0, 0, 0.2);
}

/* --- CARTE ARTICLE MOBILE (Horizontal Layout) --- */
.mobile-article-card {
  transition: background-color 0.2s ease;
  background-color: rgba(255, 255, 255, 0.02);
}

.mobile-article-card:hover, 
.mobile-article-card:active {
  background-color: rgba(255, 255, 255, 0.1);
}

.text-truncate-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  white-space: normal; /* Important pour le multiline clamp */
}

/* --- RÉSEAUX SOCIAUX & UTILITAIRES --- */
.mobile-socials i {
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.2rem;
  transition: color 0.3s ease, transform 0.2s ease;
}

.mobile-socials i:hover {
  color: var(--accent-yellow);
  transform: translateY(-3px);
}

/* Supprimer la flèche pour les liens simples qui n'ont pas d'accordéon */
.remove-arrow::after {
  display: none !important;
}

/* Sticky Top pour la barre de nav mobile */
.sticky-top {
  z-index: 1020;
}
/* ====================================== */
/* Hero Tuiles */
/* ====================================== */
  /* Reset et base */
.vertical-mode-title {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
  
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-style: italic;
  font-size: 2.5rem;
  line-height: 0.8;
  letter-spacing: -2px;
  color: #FFFFFF;
  
  margin: 0;
  padding: 0;
  white-space: nowrap;
  position: absolute;
  z-index: 10;
  left: 8%;
  top: 35%;
  text-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .vertical-mode-title {
    writing-mode: horizontal-tb;
    transform: none;
    font-size: 1.5rem;
    margin-bottom: 15px;
    border-bottom: 2px solid #000;
    display: inline-block;
    letter-spacing: -1px;
  }
}

/* Media query pour écrans 410px et plus (anciennement max-width: 410px) */
@media (min-width: 410px) and (max-width: 991px) {
  .vertical-mode-title {
    writing-mode: horizontal-tb;
    transform: none;
    font-size: 1.5rem;
    margin-bottom: 15px;
    border-bottom: 2px solid #000;
    display: inline-block;
    letter-spacing: -1px;
  }
}

@media (max-width: 991px) {
  .vertical-mode-title {
    writing-mode: horizontal-tb;
    transform: none;
    font-size: 2rem;
    margin-bottom: 20px;
    border-bottom: 2px solid #000;
    display: inline-block;
  }
}

/* Grille des tuiles featured */
.featured-tiles-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 250px);
  gap: 15px;
  margin-bottom: 40px;
  width: 100%;
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .featured-tiles-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap: 10px;
    row-gap: 10px;
    margin-bottom: 20px;
  }
}

/* Media query pour écrans 410px à 768px */
@media (min-width: 410px) and (max-width: 768px) {
  .featured-tiles-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap: 10px;
    row-gap: 10px;
    margin-bottom: 30px;
  }
}

@media (max-width: 768px) {
  .featured-tiles-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap: 10px;
    row-gap: 10px;
    margin-bottom: 30px;
  }
}

/* Positionnement des tuiles */
.featured-tile {
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease;
  background: transparent;
  min-height: 150px;
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .featured-tile {
    min-height: 200px;
  }
}

/* Media query pour écrans 410px et plus */
@media (min-width: 410px) and (max-width: 768px) {
  .featured-tile {
    min-height: 200px;
  }
}

.tile-1 {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}

.tile-2 {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
}

.tile-3 {
  grid-column: 4 / 5;
  grid-row: 1 / 2;
}

.tile-4 {
  grid-column: 3 / 5;
  grid-row: 2 / 3;
}

/* Media query pour écrans 300px à 409px - disposition en grille 2x2 */
@media (min-width: 300px) and (max-width: 409px) {
  .tile-1 {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  .tile-2, .tile-3 {
    grid-column: auto;
    grid-row: auto;
  }
  .tile-4 {
    grid-column: 1 / -1;
    grid-row: auto;
  }
}

/* Media query pour écrans 410px à 768px - disposition en grille 2x2 */
@media (min-width: 410px) and (max-width: 768px) {
  .tile-1 {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  .tile-2, .tile-3 {
    grid-column: auto;
    grid-row: auto;
  }
  .tile-4 {
    grid-column: 1 / -1;
    grid-row: auto;
  }
}

@media (max-width: 768px) {
  .tile-1 {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  .tile-2, .tile-3 {
    grid-column: auto;
    grid-row: auto;
  }
  .tile-4 {
    grid-column: 1 / -1;
    grid-row: auto;
  }
}

.featured-tile:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

/* Contenu des tuiles */
.tile-content-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.tile-content-wrapper.active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
  transform: none;
}

.tile-content-wrapper.exit-fade {
  opacity: 0;
}

.tile-content-wrapper.exit-slide-left {
  opacity: 0;
  transform: translateX(-100px);
}

.tile-content-wrapper.exit-slide-right {
  opacity: 0;
  transform: translateX(100px);
}

.tile-content-wrapper.exit-slide-up {
  opacity: 0;
  transform: translateY(-50px);
}

.tile-content-wrapper.exit-slide-down {
  opacity: 0;
  transform: translateY(50px);
}

.tile-content-wrapper.exit-zoom-out {
  opacity: 0;
  transform: scale(0.8);
}

.tile-content-wrapper.exit-flip {
  opacity: 0;
  transform: rotateY(-90deg);
}

.tile-content-wrapper.exit-rotate {
  opacity: 0;
  transform: scale(0.8) rotate(-15deg);
}

.tile-content-wrapper.enter-fade {
  opacity: 0;
}

.tile-content-wrapper.enter-slide-left {
  opacity: 0;
  transform: translateX(-100px);
}

.tile-content-wrapper.enter-slide-right {
  opacity: 0;
  transform: translateX(100px);
}

.tile-content-wrapper.enter-slide-up {
  opacity: 0;
  transform: translateY(-50px);
}

.tile-content-wrapper.enter-slide-down {
  opacity: 0;
  transform: translateY(50px);
}

.tile-content-wrapper.enter-zoom-in {
  opacity: 0;
  transform: scale(1.2);
}

.tile-content-wrapper.enter-flip {
  opacity: 0;
  transform: rotateY(90deg);
}

.tile-content-wrapper.enter-rotate {
  opacity: 0;
  transform: scale(1.2) rotate(15deg);
}

.tile-link-block {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: white;
  position: relative;
}

.tile-bg-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.3s ease;
}

.featured-tile:hover .tile-bg-image {
  opacity: 0.9;
}

.tile-gradient-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top,rgba(0, 0, 0, 0.5),transparent);
  transition: all 0.3s ease;
  z-index: 1;
}

.featured-tile:hover .tile-gradient-overlay {
  background: linear-gradient(
  to bottom,
  rgba(0, 0, 0, 0.1) 0%,
  rgba(0, 0, 0, 0.4) 40%,
  rgba(0, 0, 0, 0.9) 100%
  );
}

.tile-text-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 25px;
  z-index: 2;
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .tile-text-content {
    padding: 12px;
  }
}

/* Media query pour écrans 410px et plus */
@media (min-width: 410px) and (max-width: 768px) {
  .tile-text-content {
    padding: 12px;
  }
}

.tile-badge {
  display: inline-block;
  padding: 6px 16px;
  background: rgba(142, 68, 173, 0.95);
  color: white;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin-bottom: 12px;
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .tile-badge {
    font-size: 0.6rem;
    padding: 4px 10px;
    margin-bottom: 8px;
  }
}

/* Media query pour écrans 410px et plus */
@media (min-width: 410px) and (max-width: 768px) {
  .tile-badge {
    font-size: 0.6rem;
    padding: 4px 10px;
    margin-bottom: 8px;
  }
}

.tile-heading {
  font-size: 1.2rem;
  font-weight: 700;
  color: white;
  margin: 10px 0;
  line-height: 1.4;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.6);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-transform: lowercase !important;
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .tile-heading {
    font-size: 0.9rem;
    margin: 5px 0;
    -webkit-line-clamp: 2;
    line-height: 1.3;
  }
}

/* Media query pour écrans 410px et plus */
@media (min-width: 410px) and (max-width: 768px) {
  .tile-heading {
    font-size: 0.9rem;
    margin: 5px 0;
    -webkit-line-clamp: 2;
    line-height: 1.3;
  }
}

.tile-heading::first-letter{
  text-transform: uppercase !important;
}

.tile-1 .tile-heading {
  font-size: 2rem;
  -webkit-line-clamp: 4;
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .tile-1 .tile-heading {
    font-size: 1rem;
    -webkit-line-clamp: 2;
  }
}

/* Media query pour écrans 410px et plus */
@media (min-width: 410px) and (max-width: 768px) {
  .tile-1 .tile-heading {
    font-size: 1rem;
    -webkit-line-clamp: 2;
  }
}

.tile-author-date {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.9);
  margin: 8px 0 0;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .tile-author-date {
    font-size: 0.7rem;
    margin: 4px 0 0;
  }
}

/* Media query pour écrans 410px et plus */
@media (min-width: 410px) and (max-width: 768px) {
  .tile-author-date {
    font-size: 0.7rem;
    margin: 4px 0 0;
  }
}

/* Indicateurs de progression */
.tile-indicators {
  position: absolute;
  bottom: 15px;
  right: 15px;
  display: flex;
  gap: 6px;
  z-index: 10;
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .tile-indicators {
    bottom: 8px;
    right: 8px;
    gap: 4px;
  }
}

/* Media query pour écrans 410px et plus */
@media (min-width: 410px) and (max-width: 768px) {
  .tile-indicators {
    bottom: 8px;
    right: 8px;
    gap: 4px;
  }
}

.indicator-dot {
  width: 8px;
  height: 8px;
  background: rgba(255, 255, 255, 0.4);
  transition: all 0.3s ease;
  cursor: pointer;
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .indicator-dot {
    width: 6px;
    height: 6px;
  }
}

/* Media query pour écrans 410px et plus */
@media (min-width: 410px) and (max-width: 768px) {
  .indicator-dot {
    width: 6px;
    height: 6px;
  }
}

.indicator-dot.active {
  background: white;
  width: 24px;
  box-shadow: 0 2px 6px rgba(255, 255, 255, 0.4);
}

/* Media query pour écrans 300px à 409px */
@media (min-width: 300px) and (max-width: 409px) {
  .indicator-dot.active {
    width: 18px;
  }
}

/* Media query pour écrans 410px et plus */
@media (min-width: 410px) and (max-width: 768px) {
  .indicator-dot.active {
    width: 18px;
  }
}
/* ====================================== */
/* Hero Tuiles fin */
/* ====================================== */

/* ====================================== */
/* Recent section */
/* ====================================== */
  /* Titre principal */
.dont-miss-title {
  font-size: 2rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 25px;
  padding: 12px 20px;
  background: #8b4367;
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Container des pills avec flèches */
.category-pills-wrapper {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 30px;
  position: relative;
}

.pill-nav-arrow {
  background: #8b4367;
  border: none;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  cursor: pointer;
  transition: background 0.3s ease;
  flex-shrink: 0;
}

.pill-nav-arrow:hover {
  background: #47142e;
}

.pill-nav-arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.category-pills-container {
  flex: 1;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.category-pills-container::-webkit-scrollbar {
  display: none;
}

.category-pills {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  border-bottom: 2px solid var(--text-primary);
  padding-bottom: 10px;
  margin-bottom: 0;
}

.pill-item {
  flex-shrink: 0;
  cursor: move;
  transition: opacity 0.3s ease;
}

.pill-item.dragging {
  opacity: 0.4;
}

.pill-item.drag-over {
  transform: translateX(10px);
}

.nav-pills .nav-link {
  color: var(--text-primary);
  background: transparent;
  border: none;
  padding: 10px 20px;
  font-weight: 600;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.3s ease;
  white-space: nowrap;
  border-bottom: 3px solid transparent;
}

.nav-pills .nav-link:hover {
  color: #f8b739;
  background: transparent;
}

.nav-pills .nav-link.active {
  color: #8b4367;
  background: transparent;
  border-bottom-color: #8b4367;
}

/* Article featured */
.featured-article-large {
  position: relative;
  overflow: hidden;
  height: 500px;
  background: #000;
}

.featured-link {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: white;
  position: relative;
}

.featured-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.featured-article-large:hover .featured-img {
  transform: scale(1.05);
}

.featured-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 30px;
  background: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.9) 100%);
}

.featured-badge {
  display: inline-block;
  background: #8b4367;
  color: #ffffff;
  padding: 5px 15px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 15px;
}

.featured-title {
  font-size: 1.8rem;
  font-weight: 700;
  color: white;
  margin-bottom: 12px;
  line-height: 1.3;
}

.featured-meta {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 10px;
}

.featured-excerpt {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.6;
}

/* Liste des articles récents */
.recent-articles-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.recent-item {
  display: flex;
  gap: 15px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--text-primary);
  transition: transform 0.3s ease;
}

.recent-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.recent-item:hover {
  transform: translateX(5px);
}

.recent-link {
  display: flex;
  gap: 15px;
  text-decoration: none;
  color: inherit;
  width: 100%;
}

.recent-img-wrapper {
  width: 120px;
  height: 90px;
  flex-shrink: 0;
  overflow: hidden;
  background: #f0f0f0;
}

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

.recent-item:hover .recent-img {
  transform: scale(1.1);
}

.recent-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.recent-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 8px;
  line-height: 1.4;
  transition: color 0.3s ease;
}

.recent-item:hover .recent-title {
  color: #f8b739;
}

.recent-date {
  font-size: 0.85rem;
  color: var(--text-primary);
  margin: 0;
}

/* Responsive */
@media (max-width: 992px) {
  .featured-article-large {
    height: 400px;
  }
  
  .featured-title {
    font-size: 1.5rem;
  }
  
  .recent-articles-list {
    margin-top: 20px;
  }
}

@media (max-width: 768px) {
  .dont-miss-title {
    font-size: 1.5rem;
    padding: 10px 15px;
  }
  
  .pill-nav-arrow {
    width: 35px;
    height: 35px;
  }
  
  .nav-pills .nav-link {
    padding: 8px 15px;
    font-size: 0.85rem;
  }
  
  .featured-article-large {
    height: 350px;
  }
  
  .featured-content {
    padding: 20px;
  }
  
  .featured-title {
    font-size: 1.3rem;
  }
  
  .featured-excerpt {
    display: none;
  }
  
  .recent-img-wrapper {
    width: 100px;
    height: 75px;
  }
  
  .recent-title {
    font-size: 0.9rem;
  }
}
/* ====================================== */
/* Recent section */

/* Liste des articles récents */
.category-magazine-section .recent-articles-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.category-magazine-section .recent-item {
  display: flex;
  gap: 15px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--text-primary);
  transition: transform 0.3s ease;
}

.category-magazine-section.recent-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.category-magazine-section .recent-item:hover {
  transform: translateX(5px);
}

.category-magazine-section .recent-link {
  display: flex;
  gap: 15px;
  text-decoration: none;
  color: inherit;
  width: 100%;
}

.category-magazine-section .recent-img-wrapper {
  width: 120px;
  height: 90px;
  flex-shrink: 0;
  overflow: hidden;
  background: #f0f0f0;
}

.category-magazine-section .recent-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.category-magazine-section .recent-item:hover .recent-img {
  transform: scale(1.1);
}

.category-magazine-section .recent-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.category-magazine-section .recent-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 8px;
  line-height: 1.4;
  transition: color 0.3s ease;
}

.category-magazine-section .recent-item:hover .recent-title {
  color: #f8b739;
}

.category-magazine-section .recent-date {
  font-size: 0.85rem;
  color: #999;
  margin: 0;
}

/* Responsive */
@media (max-width: 992px) {
  .category-magazine-section .featured-article-large {
    height: 400px;
  }
  
  .category-magazine-section .featured-title {
    font-size: 1.5rem;
  }
  
  .category-magazine-section .recent-articles-list {
    margin-top: 20px;
  }
}

@media (max-width: 768px) {
  .dont-miss-title {
    font-size: 1.5rem;
    padding: 10px 15px;
  }
  
  .pill-nav-arrow {
    width: 35px;
    height: 35px;
  }
  
  .nav-pills .nav-link {
    padding: 8px 15px;
    font-size: 0.85rem;
  }
  
   .category-magazine-section.featured-article-large {
    height: 350px;
  }
  
  .category-magazine-section .featured-content {
    padding: 20px;
  }
  
  .category-magazine-section .featured-title {
    font-size: 1.3rem;
  }
  
  .category-magazine-section .featured-excerpt {
    display: none;
  }
  
  .category-magazine-section .recent-img-wrapper {
    width: 100px;
    height: 75px;
  }
  
  .category-magazine-section .recent-title {
    font-size: 0.9rem;
  }
}
/* ====================================== */
/* categories section */
/* ====================================== */
/* ====================================== */
/* Carnet section */
/* ====================================== */
  .carnet-sidebar-widget {
  background: white;
  border-radius: 0px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  position: sticky;
  top: 20px;
  margin-bottom: 2rem;
}

/* En-tête */
.carnet-sidebar-header {
  background: linear-gradient(135deg, #D4A5D8 0%, #8B4367 100%);
  color: white;
  padding: 1.5rem;
  text-align: center;
}

.carnet-sidebar-title {
  font-size: 1.5rem;
  font-weight: 700;
  font-style: italic;
  margin: 0 0 0.5rem 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.carnet-sidebar-date {
  font-size: 0.85rem;
  margin: 0;
  opacity: 0.9;
}

/* Statistiques mini */
.carnet-stats-mini {
  display: flex;
  justify-content: space-around;
  padding: 1rem;
  background: #f8f9fa;
  border-bottom: 2px solid #e9ecef;
}

.stat-mini {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  font-size: 1.2rem;
}

.stat-mini span {
  font-weight: 700;
  font-size: 1rem;
  color: #2c3e50;
}

.stat-mini.mariage { color: #ff6b9d; }
.stat-mini.naissance { color: #64b5f6; }
.stat-mini.anniversaire { color: #ffc107; }
.stat-mini.fiançailles { color: #ab47bc; }

/* Liste des annonces */
.carnet-sidebar-list {
  max-height: 500px;
  overflow-y: auto;
  padding: 1rem 0;
}

/* Scrollbar personnalisée */
.carnet-sidebar-list::-webkit-scrollbar {
  width: 6px;
}

.carnet-sidebar-list::-webkit-scrollbar-track {
  background: #f1f1f1;
}

.carnet-sidebar-list::-webkit-scrollbar-thumb {
  background: #D4A5D8;
  border-radius: 3px;
}

.carnet-sidebar-list::-webkit-scrollbar-thumb:hover {
  background: #8B4367;
}

/* Item d'annonce */
.carnet-sidebar-item {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s ease;
  border-bottom: 1px solid #f8f9fa;
}

.carnet-sidebar-item:hover {
  background: #f8f9fa;
  transform: translateX(3px);
}

.carnet-sidebar-item:last-child {
  border-bottom: none;
}

/* Photo/Icône de l'item */
.sidebar-item-icon {
  flex-shrink: 0;
  width: 100px;
  height: 100px;
  border-radius: 10px;
  overflow: hidden;
}

.sidebar-item-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sidebar-item-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: white;
}

.sidebar-item-placeholder.mini-wedding {
  background: linear-gradient(135deg, #ff6b9d 0%, #c239b3 100%);
}

.sidebar-item-placeholder.mini-birth {
  background: linear-gradient(135deg, #64b5f6 0%, #42a5f5 100%);
}

.sidebar-item-placeholder.mini-birthday {
  background: linear-gradient(135deg, #ffd740 0%, #ffc107 100%);
}

.sidebar-item-placeholder.mini-engagement {
  background: linear-gradient(135deg, #ab47bc 0%, #8e24aa 100%);
}

.sidebar-item-placeholder.mini-default {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

/* Contenu de l'item */
.sidebar-item-content {
  flex: 1;
  min-width: 0;
}

.sidebar-item-badge {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 50px;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.5rem;
  color: white;
}

.sidebar-item-badge.mini-wedding {
  background: linear-gradient(135deg, #ff6b9d 0%, #c239b3 100%);
}

.sidebar-item-badge.mini-birth {
  background: linear-gradient(135deg, #64b5f6 0%, #42a5f5 100%);
}

.sidebar-item-badge.mini-birthday {
  background: linear-gradient(135deg, #ffd740 0%, #ffc107 100%);
  color: #333;
}

.sidebar-item-badge.mini-engagement {
  background: linear-gradient(135deg, #ab47bc 0%, #8e24aa 100%);
}

.sidebar-item-badge.mini-default {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.sidebar-item-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #2c3e50;
  margin: 0 0 0.5rem 0;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.sidebar-item-date {
  font-size: 0.75rem;
  color: #6c757d;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.3rem;
}

/* Footer du widget */
.carnet-sidebar-footer {
  padding: 1rem;
  background: #f8f9fa;
  border-top: 2px solid #e9ecef;
}

.btn-voir-tout {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.75rem;
  background: linear-gradient(135deg, #D4A5D8 0%, #8B4367 100%);
  color: white;
  text-decoration: none;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.9rem;
  transition: all 0.3s ease;
  margin-bottom: 0.75rem;
}

.btn-voir-tout:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(102, 126, 234, 0.3);
  color: white;
}

/* Navigation rapide */
.quick-nav {
  display: flex;
  gap: 0.5rem;
}

.quick-nav-link {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem;
  background: white;
  border: 2px solid #e9ecef;
  border-radius: 8px;
  color: #6c757d;
  text-decoration: none;
  font-size: 0.8rem;
  font-weight: 600;
  transition: all 0.3s ease;
}

.quick-nav-link:hover {
  border-color: #667eea;
  color: #667eea;
  background: #f0f2ff;
}

/* État vide */
.carnet-sidebar-empty {
  padding: 2rem 1.5rem;
  text-align: center;
}

.empty-icon {
  font-size: 3rem;
  color: #dee2e6;
  margin-bottom: 1rem;
}

.carnet-sidebar-empty p {
  color: #6c757d;
  margin-bottom: 1rem;
}

.btn-publish-mini {
  display: inline-block;
  padding: 0.5rem 1.5rem;
  background: linear-gradient(135deg, #D4A5D8 0%, #8B4367 100%);
  color: white;
  text-decoration: none;
  border-radius: 50px;
  font-weight: 600;
  font-size: 0.85rem;
  transition: all 0.3s ease;
}

.btn-publish-mini:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(102, 126, 234, 0.3);
  color: white;
}

/* Animation d'apparition */
.carnet-sidebar-widget {
  animation: slideInRight 0.5s ease-out;
}

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

/* Responsive */
@media (max-width: 1200px) {
  .carnet-sidebar-widget {
    position: relative;
    top: 0;
  }
}

@media (max-width: 991px) {
  .carnet-sidebar-widget {
    margin-top: 2rem;
  }
  
  .carnet-sidebar-list {
    max-height: 400px;
  }
}

@media (max-width: 768px) {
  .carnet-sidebar-title {
    font-size: 1.1rem;
  }
  
  .sidebar-item-icon {
    width: 50px;
    height: 50px;
  }
  
  .sidebar-item-title {
    font-size: 0.85rem;
  }
  
  .quick-nav {
    flex-direction: column;
  }
}
/* ====================================== */
/* Carnet section fin */
/* Carnet show page */
/* Page container */
.annonce-show-page {
  min-height: 100vh;
  padding-top: 2rem;
  padding-bottom: 3rem;
}

/* Breadcrumb */
.breadcrumb-item a {
  color: #666;
  transition: color 0.2s ease;
}

.breadcrumb-item a:hover {
  color: #333;
}

/* ============================================
   CARD PRINCIPALE DE L'ANNONCE
   ============================================ */

.annonce-card {
  background: white;
  border-radius: 16px;
  padding: 2rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  margin-bottom: 2rem;
  overflow: hidden;
}

/* Header de la card */
.annonce-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e9ecef;
}

.rubrique-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1.25rem;
  border-radius: 25px;
  font-weight: 600;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.annonce-date {
  font-size: 0.875rem;
}

/* ============================================
   CONTENU PRINCIPAL (Photo + Texte en ligne)
   ============================================ */

.annonce-main-content {
  display: flex;
  gap: 2rem;
  margin-bottom: 2rem;
}

/* Photo container */
.annonce-photo-container {
  flex-shrink: 0;
  width: 280px;
}

.photo-frame {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.photo-frame:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
}

.photo-frame img {
  width: 100%;
  height: auto;
  display: block;
}

.photo-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
  padding: 1.5rem;
  font-size: 2rem;
  color: white;
  opacity: 0;
  transition: opacity 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.photo-frame:hover .photo-overlay {
  opacity: 1;
}

/* Texte content */
.annonce-text-content {
  flex: 1;
  min-width: 0;
}

.annonce-name {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1.25rem;
}

.annonce-message {
  margin-bottom: 1.5rem;
}

.message-text {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: #333;
  margin-bottom: 0;
}

.message-text p {
  margin-bottom: 0.75rem;
}

/* Citations */
.annonce-quote {
  padding: 1.25rem;
  border-radius: 8px;
  font-style: italic;
  margin-bottom: 1.5rem;
}

.quote-text {
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 0.5rem;
  font-weight: 500;
}

.quote-author {
  font-size: 0.875rem;
  opacity: 0.8;
  font-style: normal;
  margin-bottom: 0;
}

/* Métadonnées */
.annonce-metadata {
  display: flex;
  gap: 1.5rem;
  font-size: 0.875rem;
  color: #6c757d;
  flex-wrap: wrap;
}

.meta-item i {
  margin-right: 0.25rem;
}

/* Actions */
.annonce-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding-top: 1.5rem;
  border-top: 1px solid #e9ecef;
}

.annonce-actions .btn {
  font-size: 0.875rem;
  padding: 0.5rem 1.25rem;
  border-radius: 8px;
  transition: all 0.2s ease;
}

.annonce-actions .btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* ============================================
   SIDEBAR - Annonces similaires
   ============================================ */

.similar-annonce-item {
  transition: all 0.2s ease;
}

.similar-annonce-item:hover {
  transform: translateX(3px);
}

.similar-annonce-item a {
  color: inherit;
}

.similar-annonce-item:hover h6 {
  color: #CD2C58 !important;
}

.similar-thumbnail,
.similar-icon {
  transition: transform 0.3s ease;
}

.similar-annonce-item:hover .similar-thumbnail,
.similar-annonce-item:hover .similar-icon {
  transform: scale(1.05);
}

/* ============================================
   THÈMES PAR RUBRIQUE
   ============================================ */

/* Mariage - Rose romantique */
.theme-wedding {
  background: linear-gradient(135deg, #fff5f7 0%, #ffe0e9 100%);
}

.wedding-card {
  border-top: 4px solid #ff6b9d;
}

.wedding-badge {
  background: linear-gradient(135deg, #ff6b9d, #c239b3);
  color: white;
}

.wedding-title {
  color: #c239b3;
}

.wedding-frame {
  border: 3px solid #ff6b9d;
}

.wedding-overlay {
  background: linear-gradient(to top, rgba(194, 57, 179, 0.9), transparent) !important;
}

.wedding-quote {
  background: linear-gradient(135deg, rgba(255, 107, 157, 0.1), rgba(194, 57, 179, 0.1));
  border-left: 4px solid #ff6b9d;
  color: #c239b3;
}

.btn-pink {
  background-color: #ff6b9d;
  border-color: #ff6b9d;
  color: white;
}

.btn-pink:hover {
  background-color: #c239b3;
  border-color: #c239b3;
  color: white;
}

.btn-outline-pink {
  color: #ff6b9d;
  border-color: #ff6b9d;
}

.btn-outline-pink:hover {
  background-color: #ff6b9d;
  border-color: #ff6b9d;
  color: white;
}

/* Naissance - Bleu/Rose tendre */
.theme-birth {
  background: linear-gradient(135deg, #f3f0ff 0%, #e8e0ff 100%);
}

.birth-card {
  border-top: 4px solid #8a7fb9;
}

.birth-badge {
  background: linear-gradient(135deg, #8a7fb9, #6a5f99);
  color: white;
}

.birth-title {
  color: #6a5f99;
}

.birth-frame {
  border: 3px solid #f0a8d0;
}

.birth-overlay {
  background: linear-gradient(to top, rgba(138, 127, 185, 0.9), transparent) !important;
}

.birth-quote {
  background: linear-gradient(135deg, rgba(138, 127, 185, 0.1), rgba(240, 168, 208, 0.1));
  border-left: 4px solid #8a7fb9;
  color: #6a5f99;
}

/* Anniversaire - Doré festif */
.theme-birthday {
  background: linear-gradient(135deg, #fff9e6 0%, #ffe9a0 100%);
}

.birthday-card {
  border-top: 4px solid #ffc107;
}

.birthday-badge {
  background: linear-gradient(135deg, #ffd740, #ffc107);
  color: #333;
}

.birthday-title {
  color: #f57c00;
}

.birthday-frame {
  border: 3px solid #ffd740;
}

.birthday-overlay {
  background: linear-gradient(to top, rgba(255, 193, 7, 0.9), transparent) !important;
}

.birthday-quote {
  background: linear-gradient(135deg, rgba(255, 215, 64, 0.15), rgba(255, 193, 7, 0.15));
  border-left: 4px solid #ffc107;
  color: #f57c00;
}

/* Fiançailles - Violet romantique */
.theme-engagement {
  background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%);
}

.engagement-card {
  border-top: 4px solid #ab47bc;
}

.engagement-badge {
  background: linear-gradient(135deg, #ab47bc, #8e24aa);
  color: white;
}

.engagement-title {
  color: #8e24aa;
}

.engagement-frame {
  border: 3px solid #ab47bc;
}

.engagement-overlay {
  background: linear-gradient(to top, rgba(142, 36, 170, 0.9), transparent) !important;
}

.engagement-quote {
  background: linear-gradient(135deg, rgba(171, 71, 188, 0.1), rgba(142, 36, 170, 0.1));
  border-left: 4px solid #ab47bc;
  color: #8e24aa;
}

.btn-purple {
  background-color: #ab47bc;
  border-color: #ab47bc;
  color: white;
}

.btn-purple:hover {
  background-color: #8e24aa;
  border-color: #8e24aa;
  color: white;
}

.btn-outline-purple {
  color: #ab47bc;
  border-color: #ab47bc;
}

.btn-outline-purple:hover {
  background-color: #ab47bc;
  border-color: #ab47bc;
  color: white;
}

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

@media (max-width: 991px) {
  .annonce-main-content {
    flex-direction: column;
  }
  
  .annonce-photo-container {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
  }
}

@media (max-width: 768px) {
  .annonce-card {
    padding: 1.5rem;
  }
  
  .annonce-name {
    font-size: 1.5rem;
  }
  
  .message-text {
    font-size: 1rem;
  }
  
  .annonce-actions {
    flex-direction: column;
  }
  
  .annonce-actions .btn {
    width: 100%;
  }
  
  .rubrique-badge {
    font-size: 0.75rem;
    padding: 0.4rem 1rem;
  }
}

@media (max-width: 576px) {
  .annonce-show-page {
    padding-top: 1rem;
  }
  
  .annonce-card {
    border-radius: 12px;
  }
  
  .annonce-card-header {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* Carnt show end */
/* ====================================== */
* Accessibilité */
/* ====================================== */

*:focus-visible {
  outline: 2px solid var(--accent-pink);
  outline-offset: 2px;
}

button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--accent-pink);
  outline-offset: 4px;
}

/* Page article show */
/* ====================================== */
/* Barre de progression de lecture */
#reading-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 4px;
  background: linear-gradient(90deg, var(--accent-pink), var(--accent-yellow));
  z-index: 9999;
  transition: width 0.1s ease;
}

/* Article detail styles */
.article-detail {
  padding: 60px 0;
}

.article-header {
  margin-bottom: 40px;
}

.article-title {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 20px;
  color: var(--text-primary);
}

.article-meta {
  color: var(--text-secondary);
  font-size: 0.95rem;
}

.article-featured-image {
  max-height: 500px;
  overflow: hidden;
  border-radius: 12px;
}

.article-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.article-content {
  font-size: 1.1rem;
  line-height: 1.8;
  color: var(--text-primary);
}

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

.article-content h2,
.article-content h3,
.article-content h4 {
  margin-top: 2rem;
  margin-bottom: 1rem;
  font-weight: 600;
}

.article-share .btn {
  padding: 10px 20px;
}

/* Articles similaires */
.article-card {
  transition: transform 0.3s ease;
}

.article-card:hover {
  transform: translateY(-5px);
}

.article-card-title {
  color: var(--text-primary);
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 10px;
}

/* Responsive */
@media (max-width: 768px) {
  .article-title {
    font-size: 1.8rem;
  }
  
  .article-content {
    font-size: 1rem;
  }
}
/* Page article show fin*/
/* ====================================== */