   /* Variables de couleurs - Conservation des couleurs originales */
   :root {
      --bleu-marial: #02193b;
      --bleu-vierge: #002b6b;
      --jaune-or: #008cff;
      --blanc-pur: #ffffff;
      --gris-clair: #cec9c4;
      --orange-accent: #bd5800;

      /* Nouvelles variables pour le design moderne */
      --text-primary: #2c3e50;
      --text-secondary: #5a6c7d;
      --gray-light: #f8f9fa;
      --gray-medium: #e9ecef;
      --gray-border: #dde2e7;
      --cream: #f8f6f3;

      /* Ombres */
      --shadow-sm: 0 2px 8px rgba(2, 25, 59, 0.08);
      --shadow-md: 0 4px 16px rgba(2, 25, 59, 0.12);
      --shadow-lg: 0 8px 32px rgba(2, 25, 59, 0.16);

      /* Typographie */
      --font-title: "Playfair Display", serif;
      --font-body: "Inter", sans-serif;
   }

   /* Import Google Fonts */
   @import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Inter:wght@300;400;500;600;700&display=swap");

   * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
   }

   body {
      font-family: var(--font-body);
      background: linear-gradient(135deg, var(--cream) 0%, #fffdf8 100%);
      color: var(--text-primary);
      line-height: 1.7;
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      overflow-x: hidden;
   }

   /* En-tête Hero Section */
   .marian-header {
      position: relative;
      background: linear-gradient(135deg,
            var(--bleu-marial) 0%,
            var(--bleu-vierge) 100%);
      padding: 100px 20px 60px;
      margin-bottom: 0;
      margin-top: 0;
      text-align: center;
      overflow: hidden;
   }

   .marian-header::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: radial-gradient(circle at 20% 30%,
            rgba(0, 140, 255, 0.15) 0%,
            transparent 50%),
         radial-gradient(circle at 80% 70%,
            rgba(0, 140, 255, 0.1) 0%,
            transparent 50%);
      pointer-events: none;
   }

   .marian-header .container {
      position: relative;
      z-index: 2;
   }

   .marian-header h1 {
      font-family: var(--font-title);
      font-size: 3rem;
      font-weight: 700;
      color: var(--blanc-pur);
      margin-bottom: 20px;
      text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
      animation: fadeInDown 0.8s ease;
   }

   .marian-header h1 i {
      color: var(--jaune-or);
      margin-right: 15px;
      animation: float 3s ease-in-out infinite;
   }

   @keyframes float {

      0%,
      100% {
         transform: translateY(0px);
      }

      50% {
         transform: translateY(-10px);
      }
   }

   @keyframes fadeInDown {
      from {
         opacity: 0;
         transform: translateY(-30px);
      }

      to {
         opacity: 1;
         transform: translateY(0);
      }
   }

   .lead {
      color: var(--jaune-or);
      font-size: 1.3rem;
      font-weight: 600;
      font-style: italic;
      text-shadow: 0 1px 10px rgba(0, 0, 0, 0.2);
      animation: fadeIn 1s ease 0.3s both;
   }

   @keyframes fadeIn {
      from {
         opacity: 0;
      }

      to {
         opacity: 1;
      }
   }

   /* Contenu principal */
   main {
      flex: 1;
      padding: 40px 0 60px;
      position: relative;
   }

   /* Cartes des messes - Design moderne */
   .messe-card {
      background: var(--blanc-pur);
      border: none;
      border-radius: 20px;
      box-shadow: var(--shadow-md);
      margin-bottom: 30px;
      overflow: hidden;
      transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
      position: relative;
   }

   .messe-card::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 6px;
      height: 100%;
      background: linear-gradient(180deg,
            var(--bleu-marial) 0%,
            var(--jaune-or) 100%);
      opacity: 0;
      transition: opacity 0.3s ease;
   }

   .messe-card:hover::before {
      opacity: 1;
   }

   .messe-card:hover {
      transform: translateY(-8px);
      box-shadow: var(--shadow-lg);
   }

   .card-header {
      background: linear-gradient(135deg,
            var(--bleu-marial) 0%,
            var(--bleu-vierge) 100%);
      color: var(--blanc-pur);
      font-weight: 700;
      font-size: 1.2rem;
      padding: 20px 30px;
      border-bottom: 3px solid var(--jaune-or);
      position: relative;
      overflow: hidden;
   }

   .card-header::after {
      content: "";
      position: absolute;
      top: 0;
      right: -50px;
      width: 150px;
      height: 150px;
      background: radial-gradient(circle,
            rgba(0, 140, 255, 0.2) 0%,
            transparent 70%);
      border-radius: 50%;
   }

   .card-header i {
      margin-right: 12px;
      color: var(--jaune-or);
      font-size: 1.1rem;
   }

   .card-body {
      padding: 30px;
   }

   .messe-horaire {
      font-size: 1.2rem;
      font-weight: 600;
      color: var(--bleu-marial);
      margin-bottom: 10px;
      display: flex;
      align-items: center;
      padding: 15px 20px;
      background: linear-gradient(135deg,
            rgba(2, 25, 59, 0.03) 0%,
            rgba(0, 140, 255, 0.03) 100%);
      border-radius: 12px;
      transition: all 0.3s ease;
      position: relative;
      overflow: hidden;
   }

   .messe-horaire::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      height: 100%;
      width: 4px;
      background: var(--jaune-or);
      transition: width 0.3s ease;
   }

   .messe-horaire:hover {
      background: linear-gradient(135deg,
            rgba(2, 25, 59, 0.08) 0%,
            rgba(0, 140, 255, 0.08) 100%);
      transform: translateX(5px);
   }

   .messe-horaire:hover::before {
      width: 8px;
   }

   .messe-horaire i {
      margin-right: 15px;
      color: var(--bleu-vierge);
      font-size: 1.3rem;
      min-width: 30px;
   }

   .messe-description {
      color: var(--text-secondary);
      margin-bottom: 20px;
      padding-left: 45px;
      font-size: 0.95rem;
      line-height: 1.6;
   }

   /* Boutons - Design moderne avec effet ripple */
   .btn-marian {
      background: linear-gradient(135deg,
            var(--bleu-marial) 0%,
            var(--bleu-vierge) 100%);
      color: var(--blanc-pur);
      border: none;
      padding: 16px 36px;
      font-weight: 700;
      font-size: 1.1rem;
      border-radius: 50px;
      transition: all 0.3s ease;
      box-shadow: var(--shadow-md);
      position: relative;
      overflow: hidden;
      cursor: pointer;
   }

   .btn-marian::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 0;
      height: 0;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.2);
      transform: translate(-50%, -50%);
      transition: width 0.6s, height 0.6s;
   }

   .btn-marian:hover::before {
      width: 400px;
      height: 400px;
   }

   .btn-marian:hover {
      transform: translateY(-3px);
      box-shadow: 0 8px 24px rgba(2, 25, 59, 0.3);
      color: var(--blanc-pur);
   }

   .btn-marian:active {
      transform: translateY(-1px);
   }

   .btn-marian i {
      margin-right: 10px;
      transition: transform 0.3s ease;
   }

   .btn-marian:hover i {
      transform: scale(1.1);
   }

   /* Plateformes de streaming - Design moderne */
   .streaming-platform {
      background: var(--blanc-pur);
      border: 2px solid var(--gray-border);
      border-radius: 16px;
      padding: 35px;
      margin-bottom: 25px;
      transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
      position: relative;
      overflow: hidden;
   }

   .streaming-platform::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(135deg,
            rgba(2, 25, 59, 0.02) 0%,
            rgba(0, 140, 255, 0.02) 100%);
      opacity: 0;
      transition: opacity 0.3s ease;
   }

   .streaming-platform:hover::before {
      opacity: 1;
   }

   .streaming-platform:hover {
      border-color: var(--bleu-vierge);
      box-shadow: var(--shadow-lg);
      transform: translateY(-5px);
   }

   .platform-icon {
      font-size: 3.5rem;
      margin-bottom: 20px;
      color: var(--bleu-marial);
      transition: all 0.3s ease;
      display: inline-block;
   }

   .streaming-platform:hover .platform-icon {
      transform: scale(1.1) rotate(5deg);
      color: var(--jaune-or);
   }

   .streaming-platform h5 {
      font-family: var(--font-title);
      font-size: 1.4rem;
      color: var(--bleu-marial);
      margin-bottom: 15px;
      font-weight: 700;
   }

   .streaming-platform p {
      color: var(--text-secondary);
      line-height: 1.7;
      margin-bottom: 0;
   }

   /* Boîte d'information - Design amélioré */
   .info-box {
      background: linear-gradient(135deg,
            rgba(0, 140, 255, 0.05) 0%,
            rgba(2, 25, 59, 0.05) 100%);
      border-left: 6px solid var(--jaune-or);
      padding: 30px;
      margin: 30px 0;
      border-radius: 0 16px 16px 0;
      box-shadow: var(--shadow-sm);
      position: relative;
      overflow: hidden;
   }

   .info-box::after {
      content: "\f05a";
      font-family: "Font Awesome 6 Free";
      font-weight: 900;
      position: absolute;
      bottom: -20px;
      right: 20px;
      font-size: 8rem;
      color: rgba(0, 140, 255, 0.05);
      pointer-events: none;
   }

   .info-box h4 {
      font-family: var(--font-title);
      color: var(--bleu-marial);
      margin-bottom: 20px;
      font-size: 1.5rem;
      font-weight: 700;
      display: flex;
      align-items: center;
      gap: 12px;
   }

   .info-box h4 i {
      color: var(--jaune-or);
      font-size: 1.3rem;
   }

   .info-box ul {
      padding-left: 0;
      list-style: none;
   }

   .info-box li {
      margin-bottom: 12px;
      padding-left: 35px;
      position: relative;
      color: var(--text-secondary);
      line-height: 1.7;
   }

   .info-box li::before {
      content: "\f00c";
      font-family: "Font Awesome 6 Free";
      font-weight: 900;
      position: absolute;
      left: 0;
      color: var(--jaune-or);
      font-size: 0.9rem;
   }

   /* Modal - Design moderne */
   .modal-priere-container {
      background: linear-gradient(135deg,
            var(--bleu-marial) 0%,
            var(--bleu-vierge) 100%);
      padding: 30px;
      border-radius: 20px;
   }

   .modal-priere-content {
      background: rgba(255, 255, 255, 0.98);
      border-radius: 20px;
      padding: 40px;
      box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
      position: relative;
   }

   .modal-priere-content h3 {
      font-family: var(--font-title);
      color: var(--bleu-marial);
      font-size: 2rem;
      margin-bottom: 25px;
      text-align: center;
   }

   .modal-priere-content .form-label {
      font-weight: 600;
      color: var(--bleu-marial);
      margin-bottom: 8px;
      font-size: 0.95rem;
   }

   .modal-priere-content .form-control,
   .modal-priere-content .form-select {
      border: 2px solid var(--gray-border);
      border-radius: 12px;
      padding: 12px 18px;
      transition: all 0.3s ease;
      background: var(--gray-light);
   }

   .modal-priere-content .form-control:focus,
   .modal-priere-content .form-select:focus {
      border-color: var(--bleu-vierge);
      box-shadow: 0 0 0 4px rgba(0, 43, 107, 0.1);
      background: var(--blanc-pur);
   }

   /* Méthode de paiement - Design moderne */
   .payment-method {
      display: flex;
      align-items: center;
      margin-bottom: 15px;
      padding: 18px 20px;
      border: 2px solid var(--gray-border);
      border-radius: 12px;
      background: var(--gray-light);
      transition: all 0.3s ease;
      cursor: pointer;
      position: relative;
      overflow: hidden;
   }

   .payment-method::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      height: 100%;
      width: 0;
      background: var(--jaune-or);
      transition: width 0.3s ease;
   }

   .payment-method:hover {
      border-color: var(--bleu-vierge);
      background: var(--blanc-pur);
      transform: translateX(8px);
      box-shadow: var(--shadow-sm);
   }

   .payment-method:hover::before {
      width: 4px;
   }

   .payment-method i {
      font-size: 2.2rem;
      margin-right: 18px;
      color: var(--bleu-marial);
      min-width: 50px;
      text-align: center;
      transition: all 0.3s ease;
   }

   .payment-method:hover i {
      color: var(--jaune-or);
      transform: scale(1.1);
   }

   .payment-method span {
      font-weight: 600;
      color: var(--text-primary);
      font-size: 1rem;
   }

   /* Pied de page - Design moderne */
   .marian-footer {
      background: linear-gradient(135deg,
            var(--bleu-marial) 0%,
            var(--bleu-vierge) 100%);
      color: var(--blanc-pur);
      padding: 40px 0;
      margin-top: auto;
      border-top: 4px solid var(--jaune-or);
      position: relative;
      overflow: hidden;
   }

   .marian-footer::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: radial-gradient(circle at 30% 50%,
            rgba(0, 140, 255, 0.1) 0%,
            transparent 50%),
         radial-gradient(circle at 70% 50%,
            rgba(0, 140, 255, 0.08) 0%,
            transparent 50%);
      pointer-events: none;
   }

   .marian-footer .container {
      position: relative;
      z-index: 2;
   }

   .marian-footer p {
      margin: 0;
      opacity: 0.95;
      font-size: 1rem;
   }

   /* Titres de section */
   h2 {
      font-family: var(--font-title);
      color: var(--bleu-marial);
      font-size: 2.2rem;
      margin-bottom: 30px;
      position: relative;
      padding-bottom: 15px;
   }

   h2::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      width: 80px;
      height: 4px;
      background: linear-gradient(90deg,
            var(--bleu-marial) 0%,
            var(--jaune-or) 100%);
      border-radius: 2px;
   }

   h2 i {
      color: var(--jaune-or);
      margin-right: 12px;
      font-size: 2rem;
   }

   /* Animation des cartes au scroll */
   .fade-in {
      animation: fadeInUp 0.8s ease-out forwards;
      opacity: 0;
   }

   @keyframes fadeInUp {
      from {
         opacity: 0;
         transform: translateY(30px);
      }

      to {
         opacity: 1;
         transform: translateY(0);
      }
   }

   /* Effet de pulsation pour le bouton principal */
   @keyframes pulse {

      0%,
      100% {
         box-shadow: 0 0 0 0 rgba(2, 25, 59, 0.4);
      }

      50% {
         box-shadow: 0 0 0 20px rgba(2, 25, 59, 0);
      }
   }

   .btn-marian.pulse {
      animation: pulse 2s infinite;
   }

   /* Séparateurs décoratifs */
   .divider {
      height: 2px;
      background: linear-gradient(90deg,
            transparent 0%,
            var(--jaune-or) 50%,
            transparent 100%);
      margin: 40px 0;
   }

   /* Badges et étiquettes */
   .badge-marian {
      background: linear-gradient(135deg,
            var(--bleu-marial) 0%,
            var(--bleu-vierge) 100%);
      color: var(--blanc-pur);
      padding: 8px 16px;
      border-radius: 20px;
      font-weight: 600;
      font-size: 0.85rem;
      display: inline-flex;
      align-items: center;
      gap: 8px;
   }

   .badge-marian i {
      color: var(--jaune-or);
   }

   /* Cartes de contenu supplémentaire */
   .content-card {
      background: var(--blanc-pur);
      border-radius: 16px;
      padding: 30px;
      box-shadow: var(--shadow-sm);
      margin-bottom: 25px;
      transition: all 0.3s ease;
   }

   .content-card:hover {
      box-shadow: var(--shadow-md);
      transform: translateY(-3px);
   }

   .content-card h3 {
      font-family: var(--font-title);
      color: var(--bleu-marial);
      font-size: 1.6rem;
      margin-bottom: 15px;
   }

   .content-card p {
      color: var(--text-secondary);
      line-height: 1.7;
   }

   /* Responsive Design */
   @media (max-width: 992px) {
      .marian-header h1 {
         font-size: 2.5rem;
      }

      .lead {
         font-size: 1.1rem;
      }

      h2 {
         font-size: 1.9rem;
      }
   }

   @media (max-width: 768px) {
      body {
         padding-top: 0;
      }

      .marian-header {
         padding: 80px 20px 50px;
         margin-top: 0;
      }

      .marian-header h1 {
         font-size: 2rem;
      }

      .lead {
         font-size: 1rem;
      }

      .modal-priere-content {
         padding: 25px 20px;
      }

      .messe-horaire {
         font-size: 1.05rem;
         padding: 12px 15px;
      }

      .messe-description {
         padding-left: 35px;
         font-size: 0.9rem;
      }

      .card-header {
         padding: 18px 20px;
         font-size: 1.1rem;
      }

      .card-body {
         padding: 20px;
      }

      h2 {
         font-size: 1.7rem;
      }

      .btn-marian {
         padding: 14px 28px;
         font-size: 1rem;
      }

      .streaming-platform {
         padding: 25px;
      }

      .platform-icon {
         font-size: 2.8rem;
      }

      .info-box {
         padding: 20px;
      }

      .info-box h4 {
         font-size: 1.3rem;
      }
   }

   @media (max-width: 480px) {
      .marian-header {
         padding: 70px 15px 40px;
      }

      .marian-header h1 {
         font-size: 1.7rem;
      }

      .lead {
         font-size: 0.95rem;
      }

      .messe-card {
         border-radius: 16px;
         margin-bottom: 20px;
      }

      .card-header {
         padding: 15px;
         font-size: 1rem;
      }

      .card-body {
         padding: 15px;
      }

      .messe-horaire {
         font-size: 1rem;
         padding: 10px 12px;
         flex-direction: column;
         align-items: flex-start;
         gap: 8px;
      }

      .messe-horaire i {
         margin-right: 8px;
      }

      .messe-description {
         padding-left: 0;
         margin-top: 8px;
      }

      .btn-marian {
         width: 100%;
         padding: 14px 20px;
      }

      h2 {
         font-size: 1.5rem;
      }
   }

   /* Animations d'entrée progressives */
   .messe-card:nth-child(1) {
      animation-delay: 0.1s;
   }

   .messe-card:nth-child(2) {
      animation-delay: 0.2s;
   }

   .messe-card:nth-child(3) {
      animation-delay: 0.3s;
   }

   .messe-card:nth-child(4) {
      animation-delay: 0.4s;
   }

   .messe-card:nth-child(5) {
      animation-delay: 0.5s;
   }

   /* Effet de brillance au hover sur les cartes */
   .messe-card::after {
      content: "";
      position: absolute;
      top: -100%;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(45deg,
            transparent,
            rgba(0, 140, 255, 0.1),
            transparent);
      transition: all 0.6s ease;
   }

   .messe-card:hover::after {
      top: 100%;
      left: 100%;
   }

   /* Amélioration de l'accessibilité */
   .btn-marian:focus,
   .payment-method:focus,
   .form-control:focus,
   .form-select:focus {
      outline: 3px solid var(--jaune-or);
      outline-offset: 2px;
   }

   /* Smooth scrolling */
   html {
      scroll-behavior: smooth;
   }

   /* Loader/Spinner pour les états de chargement */
   .spinner {
      width: 40px;
      height: 40px;
      border: 4px solid var(--gray-medium);
      border-top: 4px solid var(--bleu-marial);
      border-radius: 50%;
      animation: spin 1s linear infinite;
      margin: 20px auto;
   }

   @keyframes spin {
      0% {
         transform: rotate(0deg);
      }

      100% {
         transform: rotate(360deg);
      }
   }
   