/* Charte « Lever de soleil vibrant » */

    /* ===== Charte graphique « Lever de soleil vibrant » ===== */
    :root {
      --magenta: #FF3D7F;
      --magenta-fonce: #E0226A;
      --orange: #FF8A00;
      --jaune: #FFC93C;
      --turquoise: #00C2B8;
      --violet: #7B2FF7;
      --prune: #2A1745;          /* texte uniquement, jamais en fond */

      --fond: #FFFAF4;
      --surface: #FFFFFF;
      --rose-pale: #FFEEF4;
      --turquoise-pale: #E3FAF8;
      --lilas-pale: #F3EBFF;
      --texte: var(--prune);
      --texte-doux: #5B4E6E;
      --trait: #F0E0EA;

      --titre: "Cormorant Garamond", Georgia, "Times New Roman", serif;
      --corps: "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;

      color-scheme: light;
      box-sizing: border-box;
      padding-top: env(safe-area-inset-top, 0px);
      padding-bottom: env(safe-area-inset-bottom, 0px);
    }
    html { scroll-padding-top: calc(80px + env(safe-area-inset-top, 0px)); }
    *, *::before, *::after { box-sizing: inherit; }

    body {
      background: var(--fond);
      color: var(--texte);
      font-family: var(--corps);
      font-size: 1.0625rem;
      line-height: 1.7;
      overflow-x: hidden;
    }
    h1, h2, h3, .font-titre { font-family: var(--titre); font-weight: 700; line-height: 1.15; color: var(--texte); }
    h2 { font-size: clamp(2rem, 4vw, 2.85rem); margin-bottom: 1rem; }
    h3 { font-size: 1.6rem; }
    p { max-width: 62ch; }
    img { max-width: 100%; }
    a { color: var(--magenta-fonce); }
    .text-doux { color: var(--texte-doux); }
    :focus-visible { outline: 3px solid var(--violet); outline-offset: 3px; }
    .section { padding: 6rem 0; }

    /* ===== Boutons ===== */
    .btn-principal {
      background: linear-gradient(90deg, var(--magenta), var(--orange)); color: #fff; border: 0;
      border-radius: 999px; padding: .85rem 1.9rem; font-weight: 700;
      box-shadow: 0 8px 20px rgba(255,61,127,.3); transition: transform .2s, box-shadow .2s;
    }
    .btn-principal:hover, .btn-principal:focus { color: #fff; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(255,61,127,.4); }
    .btn-blanc {
      background: #fff; color: var(--magenta-fonce); border: 0;
      border-radius: 999px; padding: .85rem 1.9rem; font-weight: 700;
    }
    .btn-blanc:hover, .btn-blanc:focus { background: var(--jaune); color: var(--prune); }
    .btn-secondaire {
      background: transparent; color: var(--texte); border: 2px solid var(--turquoise);
      border-radius: 999px; padding: .7rem 1.5rem; font-weight: 700;
    }
    .btn-secondaire:hover, .btn-secondaire:focus { background: var(--turquoise); color: #fff; }

    /* ===== Navigation ===== */
    #mainNav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 1030;
      padding: 1.1rem 0; padding-top: calc(1.1rem + env(safe-area-inset-top, 0px));
      transition: background-color .3s, padding .3s, box-shadow .3s;
    }
    #mainNav .navbar-brand { font-family: var(--titre); font-size: 1.75rem; font-weight: 700; color: #fff; }
    #mainNav .nav-link { color: #fff; font-weight: 700; padding: .5rem .9rem; }
    #mainNav .nav-link:hover { color: var(--jaune); }
    #mainNav .navbar-toggler { border-color: rgba(255,255,255,.7); }
    #mainNav .navbar-toggler-icon { filter: invert(1); }
    #mainNav.scrolled {
      background: #fff; padding-top: calc(.6rem + env(safe-area-inset-top, 0px)); padding-bottom: .6rem;
      box-shadow: 0 4px 20px rgba(123,47,247,.08);
    }
    #mainNav.scrolled .navbar-brand { color: var(--violet); }
    #mainNav.scrolled .nav-link { color: var(--texte); }
    #mainNav.scrolled .nav-link:hover { color: var(--magenta); }
    #mainNav.scrolled .navbar-toggler { border-color: var(--trait); }
    #mainNav.scrolled .navbar-toggler-icon { filter: none; }
    @media (max-width: 1199.98px) {
      #mainNav .navbar-collapse { background: #fff; border-radius: 1.25rem; padding: 1rem; margin-top: .75rem; box-shadow: 0 10px 30px rgba(123,47,247,.15); }
      #mainNav .navbar-collapse .nav-link { color: var(--texte); }
    }

    /* ===== Hero : lever de soleil vibrant ===== */
    .hero {
      position: relative; overflow: hidden;
      min-height: 100svh; display: flex; align-items: center;
      background: linear-gradient(180deg, #7B2FF7 0%, #B42FD8 28%, #FF3D7F 55%, #FF8A00 82%, #FFC93C 100%);
      color: #fff;
      padding: 8rem 0 10rem;
    }
    .hero .soleil {
      position: absolute; left: 50%; bottom: -24vmin;
      width: 64vmin; height: 64vmin; border-radius: 50%;
      transform: translateX(-50%);
      background: radial-gradient(circle at 50% 45%, #FFFBE0 0%, #FFE76A 35%, #FFC93C 58%, rgba(255,201,60,0) 72%);
      box-shadow: 0 0 140px 50px rgba(255,231,106,.45);
      animation: lever 2.6s cubic-bezier(.22,.8,.3,1) both;
    }
    .hero .horizon {
      position: absolute; left: 0; right: 0; bottom: 0; height: 18vmin;
      background: var(--fond);
      clip-path: ellipse(75% 100% at 50% 100%);
    }
    @keyframes lever {
      from { transform: translate(-50%, 30vmin); opacity: .5; }
      to   { transform: translate(-50%, 0); opacity: 1; }
    }
    .hero-contenu { position: relative; z-index: 2; text-align: center; }
    .hero h1 {
      color: #fff; text-shadow: 0 2px 24px rgba(90,20,120,.35);
      font-size: clamp(2.6rem, 7vw, 5.4rem);
      font-weight: 700; letter-spacing: -.01em;
      max-width: 15ch; margin: 0 auto 1.5rem;
      animation: apparition 1.6s .5s ease-out both;
    }
    .hero p.lead {
      color: #fff; font-weight: 600; text-shadow: 0 1px 12px rgba(90,20,120,.35);
      margin: 0 auto 2.5rem; max-width: 46ch;
      animation: apparition 1.6s .9s ease-out both;
    }
    .hero .ctas { animation: apparition 1.6s 1.2s ease-out both; }
    @keyframes apparition { from { opacity: 0; } to { opacity: 1; } }
    @media (prefers-reduced-motion: reduce) {
      .hero .soleil, .hero h1, .hero p.lead, .hero .ctas { animation: none; }
    }

    /* ===== À propos ===== */
    .portrait {
      aspect-ratio: 4 / 5; max-width: 420px; margin: 0 auto;
      border-radius: 58% 42% 46% 54% / 44% 52% 48% 56%;
      background: linear-gradient(150deg, var(--jaune), var(--orange) 35%, var(--magenta) 70%, var(--violet));
      display: flex; align-items: center; justify-content: center;
      color: #fff; font-family: var(--titre); font-size: 1.35rem; font-weight: 700; text-align: center; padding: 2rem;
    }
    .signature { font-family: var(--titre); font-style: italic; font-weight: 700; font-size: 1.7rem; color: var(--magenta); }

    /* ===== Piliers ===== */
    .piliers { background: var(--rose-pale); }
    .pilier { padding: 1rem 2rem; }
    .pilier + .pilier { border-left: 2px solid #fff; }
    @media (max-width: 767.98px) {
      .pilier + .pilier { border-left: 0; border-top: 2px solid #fff; padding-top: 2rem; margin-top: 1rem; }
    }
    .pilier .icone {
      width: 72px; height: 72px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1rem;
    }
    .pilier .icone svg { width: 40px; height: 40px; }
    .icone-orange { background: var(--orange); }
    .icone-turquoise { background: var(--turquoise); }
    .icone-magenta { background: var(--magenta); }
    .pilier h3 { margin-bottom: .6rem; }

    /* ===== Pensée du jour ===== */
    .pensee { background: var(--jaune); color: var(--prune); padding: 5rem 0; text-align: center; }
    .pensee blockquote {
      font-family: var(--titre); font-style: italic; font-weight: 700;
      font-size: clamp(1.6rem, 3.6vw, 2.4rem); line-height: 1.3;
      max-width: 30ch; margin: 0 auto 2rem; min-height: 3.9em;
      display: flex; align-items: center; justify-content: center;
    }
    .pensee .btn { background: #fff; color: var(--magenta-fonce); border: 0; border-radius: 999px; font-weight: 700; padding: .65rem 1.5rem; }
    .pensee .btn:hover, .pensee .btn:focus { background: var(--magenta); color: #fff; }

    /* ===== Cadeau gratuit ===== */
    .cadeau-boite {
      background: linear-gradient(120deg, var(--turquoise) 0%, #2BB3E8 45%, var(--violet) 100%); color: #fff;
      border-radius: 2rem; padding: clamp(2rem, 5vw, 4rem); position: relative; overflow: hidden;
    }
    .cadeau-boite h2 { color: #fff; }
    .cadeau-boite p { color: #fff; font-weight: 600; }
    .cadeau-boite::after {
      content: ""; position: absolute; right: -80px; top: -80px; width: 280px; height: 280px; border-radius: 50%;
      background: radial-gradient(circle, rgba(255,201,60,.7), transparent 70%);
    }
    .journal {
      aspect-ratio: 3 / 4; max-width: 230px; margin: 0 auto;
      background: #fff; color: var(--prune); border-radius: 6px 16px 16px 6px;
      box-shadow: -12px 0 0 var(--magenta) inset, 14px 18px 0 rgba(42,23,69,.18);
      display: flex; flex-direction: column; justify-content: center; padding: 1.5rem 1.5rem 1.5rem 2rem;
      transform: rotate(-4deg);
    }
    .journal .nb { font-family: var(--titre); font-size: 4.2rem; font-weight: 700; line-height: 1; color: var(--orange); }
    .journal .t { font-family: var(--titre); font-size: 1.35rem; font-weight: 700; line-height: 1.2; }
    .form-control {
      border-radius: 999px; padding: .8rem 1.3rem; border: 2px solid transparent; background: #fff; color: var(--prune);
    }
    .form-control:focus { border-color: var(--jaune); box-shadow: 0 0 0 4px rgba(255,201,60,.4); }
    .form-control.is-invalid { border-color: var(--magenta); }
    .cadeau-boite .invalid-feedback { color: #fff; font-weight: 700; padding-left: 1.3rem; }
    .petite-note { color: #fff; opacity: .9; }
    #merci { display: none; }

    /* ===== Formations : un parcours ===== */
    .etape {
      background: var(--surface); border-radius: 1.5rem; border-top: 6px solid var(--turquoise);
      box-shadow: 0 10px 30px rgba(123,47,247,.08);
      padding: 2rem; height: 100%; display: flex; flex-direction: column;
    }
    .etape.etape-3 { border-top-color: var(--orange); }
    .etape .num {
      width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
      background: var(--turquoise); color: #fff; font-family: var(--titre); font-size: 1.4rem; font-weight: 700; margin-bottom: 1rem;
    }
    .etape.etape-3 .num { background: var(--orange); }
    .etape .prix { font-family: var(--titre); font-size: 2.3rem; font-weight: 700; margin: .5rem 0 1rem; color: var(--violet); }
    .etape ul { padding-left: 1.1rem; margin-bottom: 1.5rem; color: var(--texte-doux); }
    .etape ul li { margin-bottom: .3rem; }
    .etape .btn { margin-top: auto; align-self: flex-start; }
    .etape.phare { background: linear-gradient(160deg, var(--magenta), var(--orange)); border-top: 0; color: #fff; box-shadow: 0 16px 40px rgba(255,61,127,.35); }
    .etape.phare h3, .etape.phare .prix { color: #fff; }
    .etape.phare ul { color: #fff; }
    .etape.phare .num { background: #fff; color: var(--magenta); }
    .badge-phare { background: var(--jaune); color: var(--prune); border-radius: 999px; font-weight: 700; font-size: .85rem; padding: .3rem .9rem; align-self: flex-start; margin-bottom: .8rem; }
    @media (min-width: 992px) { .etape.phare { transform: translateY(-1.2rem); } }

    /* ===== Témoignages ===== */
    .temoignages { background: var(--turquoise-pale); }
    .temoignage { max-width: 720px; margin: 0 auto; text-align: center; padding: 0 3rem; }
    .temoignage p { font-family: var(--titre); font-weight: 600; font-size: clamp(1.4rem, 2.6vw, 1.8rem); line-height: 1.45; margin: 0 auto 1.5rem; max-width: none; }
    .temoignage .auteur { font-weight: 700; color: var(--magenta-fonce); }
    .temoignage .contexte { color: var(--texte-doux); font-size: .95rem; }
    .carousel-indicators { position: static; margin-top: 2rem; }
    .carousel-indicators [data-bs-target] { background-color: var(--magenta); width: 12px; height: 12px; border-radius: 50%; border: 0; }
    .carousel-control-prev, .carousel-control-next { width: 3rem; }
    .carousel-control-prev-icon, .carousel-control-next-icon { background-color: var(--magenta); border-radius: 50%; background-size: 55%; width: 2.5rem; height: 2.5rem; }

    /* ===== Ressources gratuites ===== */
    .ressource { display: flex; gap: 1.5rem; align-items: baseline; padding: 1.5rem 0; border-bottom: 2px solid var(--trait); text-decoration: none; color: var(--texte); }
    .ressource:first-child { border-top: 2px solid var(--trait); }
    .ressource:hover h3 { color: var(--magenta); }
    .ressource .type { flex: 0 0 120px; }
    .ressource .type span { display: inline-block; border-radius: 999px; padding: .15rem .8rem; font-weight: 700; font-size: .9rem; color: #fff; }
    .type-article { background: var(--orange); }
    .type-podcast { background: var(--violet); }
    .type-meditation { background: var(--turquoise); }
    .ressource h3 { font-size: 1.5rem; margin: 0 0 .25rem; transition: color .2s; }
    .ressource .meta { color: var(--texte-doux); font-size: .95rem; }
    @media (max-width: 575.98px) { .ressource { flex-direction: column; gap: .4rem; } .ressource .type { flex: none; } }

    /* ===== Pied de page ===== */
    footer { background: var(--lilas-pale); color: var(--texte); padding: 4rem 0 2rem; border-top: 6px solid; border-image: linear-gradient(90deg, var(--violet), var(--magenta), var(--orange), var(--jaune)) 1; }
    footer .marque { font-family: var(--titre); font-weight: 700; font-size: 1.9rem; color: var(--violet); }
    footer a { color: var(--texte); text-decoration: none; }
    footer a:hover { color: var(--magenta); }
    footer h4 { font-family: var(--corps); font-size: 1rem; font-weight: 700; color: var(--violet); margin-bottom: 1rem; }
    footer ul { list-style: none; padding: 0; }
    footer li { margin-bottom: .4rem; }
    footer .bas { border-top: 1px solid #DCCBFA; margin-top: 3rem; padding-top: 1.5rem; font-size: .9rem; color: var(--texte-doux); }
  
    /* ================================================= */
    /* ===== Pages intérieures                     ===== */
    /* ================================================= */
    #mainNav .nav-link.active { color: var(--jaune); }
    #mainNav.scrolled .nav-link.active { color: var(--magenta); }
    @media (max-width: 1199.98px) { #mainNav .navbar-collapse .nav-link.active { color: var(--magenta); } }

    .page-hero {
      position: relative; overflow: hidden; text-align: center; color: #fff;
      padding: calc(9rem + env(safe-area-inset-top, 0px)) 0 7rem;
      background: linear-gradient(135deg, var(--violet) 0%, var(--magenta) 55%, var(--orange) 100%);
    }
    .page-hero.ph-turquoise { background: linear-gradient(135deg, var(--turquoise) 0%, #2BB3E8 50%, var(--violet) 100%); }
    .page-hero.ph-soleil { background: linear-gradient(135deg, var(--magenta) 0%, var(--orange) 60%, var(--jaune) 100%); }
    .page-hero::before {
      content: ""; position: absolute; right: -10vmin; top: -10vmin; width: 45vmin; height: 45vmin; border-radius: 50%;
      background: radial-gradient(circle, rgba(255,231,106,.55), rgba(255,231,106,0) 70%);
    }
    .page-hero::after {
      content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 7vmin;
      background: var(--fond); clip-path: ellipse(75% 100% at 50% 100%);
    }
    .page-hero .container { position: relative; z-index: 1; }
    .page-hero h1 {
      color: #fff; font-size: clamp(2.4rem, 5.5vw, 4.2rem); max-width: 20ch; margin: 0 auto 1rem;
      text-shadow: 0 2px 24px rgba(90,20,120,.3);
    }
    .page-hero p { color: #fff; font-weight: 600; margin: 0 auto; max-width: 54ch; text-shadow: 0 1px 12px rgba(90,20,120,.3); }
    .page-hero .pastille-hero { display: inline-block; background: #fff; color: var(--magenta-fonce); border-radius: 999px; font-weight: 700; padding: .3rem 1rem; margin-bottom: 1.2rem; }

    .fond-rose { background: var(--rose-pale); }
    .fond-turquoise { background: var(--turquoise-pale); }
    .fond-lilas { background: var(--lilas-pale); }

    .pastille { display: inline-block; border-radius: 999px; padding: .15rem .8rem; font-weight: 700; font-size: .85rem; color: #fff; margin-bottom: .7rem; }

    /* Bandeau d'appel à l'action */
    .bandeau-cta {
      background: linear-gradient(120deg, var(--jaune), var(--orange)); border-radius: 2rem;
      padding: clamp(2.5rem, 6vw, 4rem); text-align: center;
    }
    .bandeau-cta h2 { color: var(--prune); }
    .bandeau-cta p { margin: 0 auto 1.8rem; font-weight: 600; }

    /* Frise chronologique */
    .frise { position: relative; padding-left: 2.5rem; max-width: 720px; }
    .frise::before {
      content: ""; position: absolute; left: 7px; top: .6rem; bottom: .6rem; width: 4px; border-radius: 2px;
      background: linear-gradient(var(--violet), var(--magenta), var(--orange), var(--jaune));
    }
    .frise-item { position: relative; padding-bottom: 2.2rem; }
    .frise-item:last-child { padding-bottom: 0; }
    .frise-item::before {
      content: ""; position: absolute; left: -2.5rem; top: .55rem; width: 18px; height: 18px; border-radius: 50%;
      background: #fff; border: 4px solid var(--magenta);
    }
    .frise-annee { font-family: var(--titre); font-weight: 700; font-size: 1.6rem; color: var(--magenta); line-height: 1.2; }
    .frise-item h3 { font-size: 1.4rem; margin: .2rem 0 .4rem; }

    .note-ethique { background: #fff; border-left: 6px solid var(--turquoise); border-radius: 1rem; padding: 1.25rem 1.5rem; }

    /* Filtres */
    .filtres { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin-bottom: 3rem; }
    .btn-filtre {
      border-radius: 999px; border: 2px solid var(--trait); background: #fff; color: var(--texte);
      font-weight: 700; padding: .45rem 1.2rem; transition: background-color .2s, color .2s;
    }
    .btn-filtre:hover { border-color: var(--magenta); }
    .btn-filtre.actif { background: var(--magenta); border-color: var(--magenta); color: #fff; }

    /* Cartes ressources */
    .carte-ressource {
      background: #fff; border-radius: 1.5rem; overflow: hidden; height: 100%;
      display: flex; flex-direction: column; text-decoration: none; color: var(--texte);
      box-shadow: 0 10px 30px rgba(123,47,247,.08); transition: transform .2s;
    }
    .carte-ressource:hover { transform: translateY(-4px); color: var(--texte); }
    .carte-ressource:hover h3 { color: var(--magenta); }
    .carte-ressource .visuel { aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; }
    .carte-ressource .visuel svg { width: 56px; height: 56px; }
    .carte-ressource .corps { padding: 1.5rem; }
    .carte-ressource h3 { font-size: 1.45rem; margin-bottom: .4rem; transition: color .2s; }
    .carte-ressource .meta { color: var(--texte-doux); font-size: .95rem; margin: 0; }
    .v-article { background: linear-gradient(135deg, var(--orange), var(--jaune)); }
    .v-podcast { background: linear-gradient(135deg, var(--violet), var(--magenta)); }
    .v-meditation { background: linear-gradient(135deg, var(--turquoise), #2BB3E8); }

    /* Article */
    .article-corps { max-width: 720px; margin: 0 auto; font-size: 1.125rem; }
    .article-corps p { max-width: none; }
    .article-corps h2 { font-size: clamp(1.7rem, 3vw, 2.1rem); margin-top: 2.8rem; }
    .article-corps .chapo { font-size: 1.3rem; font-weight: 600; color: var(--texte-doux); }
    .encart { background: var(--rose-pale); border-left: 6px solid var(--magenta); border-radius: 1rem; padding: 1.5rem 1.75rem; margin: 2.5rem 0; }
    .encart h3 { font-size: 1.5rem; color: var(--magenta-fonce); }
    .encart p:last-child { margin-bottom: 0; }
    .auteur-boite { display: flex; gap: 1.5rem; align-items: center; background: var(--lilas-pale); border-radius: 1.5rem; padding: 1.75rem; margin-top: 3rem; }
    .auteur-boite p { margin: 0; }
    .avatar { width: 84px; height: 84px; border-radius: 50%; flex: none; background: linear-gradient(150deg, var(--jaune), var(--orange), var(--magenta), var(--violet)); }
    @media (max-width: 575.98px) { .auteur-boite { flex-direction: column; text-align: center; } }

    /* Accordéons (programme, FAQ) */
    .accordion { --bs-accordion-bg: #fff; }
    .accordion-item { border: 0; border-radius: 1rem !important; margin-bottom: .8rem; overflow: hidden; box-shadow: 0 6px 20px rgba(123,47,247,.07); }
    .accordion-button { font-weight: 700; color: var(--texte); background: #fff; padding: 1.2rem 1.5rem; font-size: 1.05rem; }
    .accordion-button:not(.collapsed) { background: var(--rose-pale); color: var(--magenta-fonce); box-shadow: none; }
    .accordion-button:focus { box-shadow: 0 0 0 3px rgba(123,47,247,.3); }
    .accordion-body { padding: 1.2rem 1.5rem 1.5rem; color: var(--texte-doux); }
    .accordion-button .semaine { color: var(--magenta); margin-right: .6rem; white-space: nowrap; }

    /* Listes cochées */
    .liste-coche { list-style: none; padding: 0; }
    .liste-coche li { position: relative; padding-left: 2.4rem; margin-bottom: 1rem; }
    .liste-coche li::before {
      content: "✓"; position: absolute; left: 0; top: .15rem; width: 1.6rem; height: 1.6rem; border-radius: 50%;
      background: var(--turquoise); color: #fff; font-weight: 700; font-size: .85rem;
      display: flex; align-items: center; justify-content: center;
    }

    /* Avant / après */
    .avant, .apres { border-radius: 1.5rem; padding: 2rem; height: 100%; }
    .avant { background: #fff; box-shadow: 0 10px 30px rgba(123,47,247,.08); }
    .avant h3 { color: var(--texte-doux); }
    .avant ul { color: var(--texte-doux); padding-left: 1.2rem; }
    .apres { background: linear-gradient(150deg, var(--magenta), var(--orange)); color: #fff; }
    .apres h3 { color: #fff; }
    .apres ul { padding-left: 1.2rem; font-weight: 600; }
    .avant li, .apres li { margin-bottom: .5rem; }

    /* Bloc prix */
    .offre-prix {
      max-width: 620px; margin: 0 auto; text-align: center; border-radius: 2rem; padding: clamp(2rem, 5vw, 3.5rem);
      border: 4px solid transparent;
      background-image: linear-gradient(#fff, #fff), linear-gradient(90deg, var(--violet), var(--magenta), var(--orange), var(--jaune));
      background-origin: border-box; background-clip: padding-box, border-box;
      box-shadow: 0 20px 50px rgba(255,61,127,.15);
    }
    .offre-prix .montant { font-family: var(--titre); font-size: clamp(3.2rem, 8vw, 4.5rem); font-weight: 700; color: var(--violet); line-height: 1; }
    .offre-prix .liste-coche { text-align: left; max-width: 400px; margin: 2rem auto; }
    .garantie { background: var(--turquoise-pale); border-radius: 1rem; padding: 1rem 1.5rem; margin-top: 1.5rem; font-weight: 600; }

    /* Témoignages en grille */
    .carte-temoignage { background: #fff; border-radius: 1.5rem; padding: 2rem; height: 100%; box-shadow: 0 10px 30px rgba(123,47,247,.08); display: flex; flex-direction: column; }
    .carte-temoignage blockquote { font-family: var(--titre); font-size: 1.4rem; font-weight: 600; line-height: 1.45; margin-bottom: 1.5rem; }
    .carte-temoignage .auteur { font-weight: 700; color: var(--magenta-fonce); margin-top: auto; }
    .carte-temoignage .pastille { align-self: flex-start; }
    .video {
      aspect-ratio: 16 / 9; border-radius: 1.5rem; color: #fff; text-align: center; font-weight: 700;
      display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem;
      background: linear-gradient(135deg, var(--violet), var(--magenta) 60%, var(--orange));
    }
    .video.v2 { background: linear-gradient(135deg, var(--turquoise), #2BB3E8 50%, var(--violet)); }
    .video .play { width: 72px; height: 72px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; }
    .video .play svg { width: 28px; height: 28px; margin-left: 4px; }

    /* Formulaires sur fond clair */
    .form-clair label { font-weight: 700; margin-bottom: .4rem; }
    .form-clair .form-control, .form-clair .form-select {
      background-color: #fff; border: 2px solid var(--trait); border-radius: 1rem; padding: .8rem 1rem; color: var(--texte);
    }
    .form-clair .form-control:focus, .form-clair .form-select:focus { border-color: var(--violet); box-shadow: 0 0 0 4px rgba(123,47,247,.15); }
    .form-clair .form-control.is-invalid, .form-clair .form-select.is-invalid { border-color: var(--magenta); }
    .form-clair .invalid-feedback { color: var(--magenta-fonce); font-weight: 700; }
    .form-check-input:checked { background-color: var(--magenta); border-color: var(--magenta); }
    .form-check-input.is-invalid ~ .form-check-label { color: var(--magenta-fonce); }
    .boite-info { background: var(--lilas-pale); border-radius: 1.5rem; padding: 2rem; }
    .boite-info h3 { color: var(--violet); font-size: 1.5rem; }
    .merci-boite { display: none; background: var(--turquoise-pale); border-radius: 1.5rem; padding: 2rem; }

    /* Textes légaux */
    .texte-legal { max-width: 760px; margin: 0 auto; }
    .texte-legal h2 { font-size: 1.8rem; margin-top: 2.5rem; }
    .texte-legal p, .texte-legal li { color: var(--texte-doux); }
    .a-completer { background: #FFE8A3; padding: 0 .35rem; border-radius: .3rem; font-weight: 700; color: var(--prune); }
    .avertissement { background: #FFF3D6; border: 2px solid var(--jaune); border-radius: 1rem; padding: 1.25rem 1.5rem; font-weight: 600; }
    #mainNav .nav-link, #mainNav .btn { white-space: nowrap; }
    @media (min-width: 1200px) and (max-width: 1399.98px) { #mainNav .nav-link { padding: .5rem .6rem; } }
    .accordion-button { font-family: var(--corps); }
