/*
ENCHANTER — CHARTE GLOBALE À CLASSES COMMUNES
Un seul CSS pour toutes les pages.

Principe :
- les HTML utilisent tous les mêmes classes ;
- les variantes se font avec des modificateurs communs ;
- aucun style ne dépend du nom d’une page.
*/

.ectw-page {
    --ectw-green: #166955;
    --ectw-green-dark: #073f35;
    --ectw-green-light: #289A7C;
    --ectw-green-soft: #88B98F;
    --ectw-green-pale: #D9EAD8;
    --ectw-gold: #D98F38;
    --ectw-gold-dark: #B86D19;
    --ectw-gold-soft: #F2C879;
    --ectw-cream: #F8F3E8;
    --ectw-cream-soft: #EEEBCD;
    --ectw-text: #17120e;
    --ectw-muted: #3f372f;
    --ectw-red-link: #8f120f;

    width: 100%;
    max-width: none;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent;
    font-family: inherit;
    color: var(--ectw-text);
    line-height: 1.52;
    font-weight: 400;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
}

.ectw-page,
.ectw-page * {
    box-sizing: border-box;
}

.ectw-page p { margin-top: 0; }

.ectw-page h1,
.ectw-page h2,
.ectw-page h3,
.ectw-page h4 {
    margin-top: 0;
    line-height: 1.18;
    color: var(--ectw-green-dark);
}

.ectw-page a { color: inherit; }
.ectw-page [id] { scroll-margin-top: 130px; }

.ectw-page--pull-left {
    margin-left: -10px !important;
    width: calc(100% + 10px) !important;
}

.ectw-page--pull-left-soft {
    margin-left: -6px !important;
    width: calc(100% + 6px) !important;
}

/* Sections */
.ectw-section { margin: 8px 0 !important; }
.ectw-center { text-align: center !important; }
.ectw-left { text-align: left !important; }
.ectw-muted { color: var(--ectw-muted); }

.ectw-lead,
.ectw-topintro-text {
    font-size: 1.04rem;
    color: #3f372f !important;
    max-width: 930px;
}

.ectw-topintro {
    margin: 0 0 8px 0 !important;
    padding: 4px 0 8px 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    text-align: center;
}

.ectw-topintro-text {
    margin: 0 auto 10px auto !important;
    line-height: 1.45;
}

/* Hero */
.ectw-hero {
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.ectw-hero--split {
    display: grid;
    grid-template-columns: minmax(0, 1.38fr) minmax(220px, 0.62fr);
    gap: 10px;
    align-items: start;
}

.ectw-hero-head {
    text-align: center;
    padding: 2px 4px 0;
}

.ectw-hero--split .ectw-hero-head {
    grid-column: 1 / -1;
}

.ectw-hero-content { min-width: 0; }
.ectw-hero-text { font-size: 1.02rem; max-width: none; }

.ectw-hero h1 {
    font-size: clamp(2rem, 3.5vw, 3rem);
    margin-bottom: 5px;
    color: var(--ectw-green-dark);
}

.ectw-hero h1 span {
    display: block;
    color: var(--ectw-green);
}

.ectw-subtitle {
    font-size: clamp(1.05rem, 1.8vw, 1.25rem);
    color: var(--ectw-muted);
    margin-bottom: 8px;
}

.ectw-eyebrow {
    display: inline-block;
    margin-bottom: 5px;
    padding: 3px 11px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(217,143,56,0.92), rgba(240,179,101,0.76), rgba(242,215,161,0.62)) !important;
    color: #3d2208 !important;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-shadow: 1px 1px 1px rgba(255,255,255,0.42) !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.14) !important;
}

.ectw-animated-by {
    margin: 8px auto 0 !important;
    text-align: center;
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--ectw-green-dark);
}

.ectw-animated-by a {
    color: #336666 !important;
    text-decoration: none !important;
}

.ectw-animated-by a:hover {
    text-decoration: underline !important;
}

/* Images */
.ectw-media {
    align-self: start;
    position: relative;
}

.ectw-img-open {
    display: block;
    width: 100%;
    cursor: zoom-in;
    position: relative;
    border-radius: 13px;
    text-decoration: none !important;
}

.ectw-img-open img,
.ectw-img {
    width: 100%;
    border-radius: 13px;
    display: block;
    border: 2px solid rgba(22,106,86,0.28) !important;
    box-shadow: 0 5px 15px rgba(0,0,0,0.16);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ectw-img-open:hover img {
    transform: scale(1.012);
    box-shadow: 0 9px 20px rgba(0,0,0,0.20);
}

.ectw-img-zoom-label {
    position: absolute;
    right: 7px;
    bottom: 7px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(15,73,59,0.82);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    pointer-events: none;
}

.ectw-caption {
    margin-top: 5px;
    font-size: 0.82rem;
    color: var(--ectw-muted);
    text-align: center;
}

/* Boutons / menus */
.ectw-actions,
.ectw-topnav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    margin-top: 10px;
}

.ectw-actions--left { justify-content: flex-start; }


.ectw-floating-nav {
    position: fixed !important;
    top: var(--ectw-floating-top, 52px) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2147483647 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 7px !important;
    margin: 0 !important;
    padding: 6px 10px !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    pointer-events: none !important;
}

.ectw-floating-nav.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto !important;
}

.ectw-floating-nav.is-visible a,
.ectw-floating-nav.is-visible .btn {
    pointer-events: auto !important;
}

/* Blocs */
.ectw-block {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 14px;
    border-radius: 13px;
    background: linear-gradient(135deg, rgba(248,243,232,0.90) 0%, rgba(217,234,216,0.76) 52%, rgba(242,200,121,0.34) 100%) !important;
    border: 1px solid rgba(7,63,53,0.30) !important;
    box-shadow: 0 7px 18px rgba(0,0,0,0.14), inset 0 1px 0 rgba(255,255,255,0.45) !important;
}

.ectw-block--soft {
    background: linear-gradient(135deg, rgba(248,243,232,0.92) 0%, rgba(217,234,216,0.80) 58%, rgba(221,165,98,0.30) 100%) !important;
}

.ectw-block--green {
    background: linear-gradient(135deg, rgba(173,205,172,0.82) 0%, rgba(217,234,216,0.74) 48%, rgba(248,243,232,0.86) 100%) !important;
    border-color: rgba(7,63,53,0.36) !important;
}

.ectw-block--gold {
    background: linear-gradient(135deg, rgba(242,200,121,0.64) 0%, rgba(248,243,232,0.88) 48%, rgba(217,234,216,0.66) 100%) !important;
    border-color: rgba(184,109,25,0.38) !important;
}

.ectw-block--detail {
    background: linear-gradient(135deg, rgba(7,63,53,0.12) 0%, rgba(248,243,232,0.92) 45%, rgba(242,200,121,0.42) 100%) !important;
    border-color: rgba(184,109,25,0.34) !important;
}


.ectw-center h2 {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    color: var(--ectw-green-dark) !important;
    text-shadow: none !important;
}

/* Grilles / cartes */
.ectw-grid {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.ectw-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ectw-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ectw-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ectw-card {
    padding: 12px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(248,243,232,0.94), rgba(217,234,216,0.68)) !important;
    border: 1px solid rgba(7,63,53,0.26) !important;
    box-shadow: 0 5px 14px rgba(0,0,0,0.12), inset 0 1px 0 rgba(255,255,255,0.45) !important;
}

.ectw-card--green,
.ectw-card:nth-child(odd) {
    background: linear-gradient(135deg, rgba(173,205,172,0.82), rgba(248,243,232,0.84)) !important;
}

.ectw-card--gold,
.ectw-card:nth-child(even) {
    background: linear-gradient(135deg, rgba(242,200,121,0.58), rgba(248,243,232,0.88)) !important;
}

.ectw-card--strong {
    box-shadow: 0 7px 16px rgba(184,122,35,0.16) !important;
}

/* =========================================================
   ENCHANTER — TITRES DE PETITES CARTES ASSAGIS
   100 % CSS : aucun changement HTML.
   Les titres h3/h4 des petites cartes reprennent l'esprit des gros titres,
   mais en plus discret : moins flashy, plus homogène avec le site.
   Police Salsa conservée.
   ========================================================= */

.ectw-card h3,
.ectw-card h4 {
    margin: -6px -6px 8px -6px !important;
    padding: 4px 9px !important;
    border-radius: 8px 8px 3px 3px !important;
    background:
        linear-gradient(90deg,
            rgba(22,106,86,0.78),
            rgba(42,154,125,0.52),
            rgba(173,205,172,0.28)) !important;
    color: #ffffff !important;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.42) !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.08) !important;
    font-size: 1.04rem !important;
    line-height: 1.18 !important;
    font-weight: 700 !important;
    font-family: inherit !important;
}

/* Version dorée : plus proche du bandeau "Le bilan vocal", moins orange vif */
.ectw-card--gold h3,
.ectw-card--gold h4,
.ectw-card:nth-child(even) h3,
.ectw-card:nth-child(even) h4 {
    background:
        linear-gradient(90deg,
            rgba(217,143,56,0.76),
            rgba(240,179,101,0.58),
            rgba(242,215,161,0.34)) !important;
    color: #241305 !important;
    text-shadow: 1px 1px 1px rgba(255,255,255,0.50) !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.07) !important;
    font-family: inherit !important;
}

/* Les cartes vertes explicites restent vertes, même si elles sont en position paire */
.ectw-card--green h3,
.ectw-card--green h4 {
    background:
        linear-gradient(90deg,
            rgba(22,106,86,0.78),
            rgba(42,154,125,0.52),
            rgba(173,205,172,0.28)) !important;
    color: #ffffff !important;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.42) !important;
    font-family: inherit !important;
}

@media (max-width: 700px) {
    .ectw-card h3,
    .ectw-card h4 {
        font-size: 0.96rem !important;
        line-height: 1.18 !important;
    }
}

.ectw-card p { margin-bottom: 7px; }
.ectw-card p:last-child { margin-bottom: 0; }

/* Listes classiques dans les cartes :
   les puces restent proches du texte, sans grand décalage à droite. */
.ectw-card ul:not(.ectw-list-check),
.ectw-card ol {
    margin: 7px 0 0 0 !important;
    padding-left: 1.15em !important;
    list-style-position: outside !important;
    text-align: left !important;
}

.ectw-card ul:not(.ectw-list-check) li,
.ectw-card ol li {
    margin-bottom: 5px !important;
    padding-left: 0.15em !important;
    text-align: left !important;
}

.ectw-panel {
    padding: 10px 12px;
    border-radius: 10px;
    box-shadow: 0 3px 9px rgba(0,0,0,0.06);
}

.ectw-panel--green {
    border: 1px solid rgba(22,106,86,0.14);
    background: linear-gradient(135deg, rgba(173,205,172,0.78), rgba(248,243,232,0.80)) !important;
    border-color: rgba(7,63,53,0.30) !important;
}

.ectw-panel--gold {
    border: 1px solid rgba(217,143,56,0.16);
    background: linear-gradient(135deg, rgba(242,200,121,0.60), rgba(248,243,232,0.84)) !important;
    border-color: rgba(184,109,25,0.34) !important;
}

/* Infos rapides / pills */
.ectw-info-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
    margin: 8px 0;
}

.ectw-info-card {
    padding: 9px 8px;
    border-radius: 11px;
    background: linear-gradient(135deg, rgba(248,243,232,0.92), rgba(217,234,216,0.54)) !important;
    border: 1px solid rgba(7,63,53,0.28) !important;
    box-shadow: 0 5px 14px rgba(0,0,0,0.13) !important;
    text-align: center;
    transition: transform .18s ease, box-shadow .18s ease;
}

.ectw-info-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(0,0,0,0.14) !important;
}

.ectw-info-card strong {
    display: block;
    color: #073f35 !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    margin-bottom: 3px;
}

.ectw-info-card span {
    display: block;
    color: #241305 !important;
    font-size: 0.98rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

/* Pastilles générales : petites capsules adaptées au contenu */
.ectw-pill-list {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin-top: 10px !important;
    width: 100% !important;
    overflow: visible !important;
}

.ectw-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 4px 12px !important;
    border-radius: 999px !important;
    background:
        linear-gradient(135deg,
            rgba(248,243,232,0.86),
            rgba(241,195,126,0.34)) !important;
    border: 1px solid rgba(22,105,85,0.24) !important;
    box-shadow:
        0 2px 7px rgba(0,0,0,0.08),
        inset 0 1px 0 rgba(255,255,255,0.48) !important;
    color: #241305 !important;
    font-size: 0.90rem !important;
    font-weight: 600 !important;
    line-height: 1.16 !important;
    text-align: center !important;
    white-space: nowrap !important;
}

.ectw-pill strong,
.ectw-pill span {
    display: inline !important;
    margin: 0 2px !important;
    line-height: 1.16 !important;
    white-space: nowrap !important;
}

.ectw-pill strong {
    color: #073f35 !important;
    font-weight: 800 !important;
}

.ectw-pill span {
    color: #241305 !important;
    font-weight: 600 !important;
}

/* Listes */
.ectw-list-check {
    padding: 0;
    margin: 9px 0 0;
    list-style: none !important;
}

.ectw-list-check li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 6px;
    list-style: none !important;
    text-align: left !important;
}

.ectw-list-check li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--ectw-green);
    font-weight: 900;
}

/* Citation */
.ectw-quote {
    position: relative;
    padding: 17px 21px;
    border-radius: 13px;
    background: linear-gradient(135deg, rgba(173,205,172,0.76), rgba(248,243,232,0.88), rgba(242,200,121,0.48)) !important;
    border: 1px solid rgba(7,63,53,0.26) !important;
    box-shadow: 0 7px 18px rgba(0,0,0,0.14) !important;
}

.ectw-quote::before {
    content: "“";
    position: absolute;
    top: -18px;
    left: 14px;
    font-family: Georgia, serif;
    font-size: 64px;
    color: rgba(22,106,86,0.13);
}

.ectw-quote p {
    position: relative;
    z-index: 1;
    font-family: Georgia, serif;
    font-size: 1.08rem;
    line-height: 1.42;
    color: #302a24;
    text-align: center;
}

.ectw-quote strong {
    display: block;
    text-align: center;
    color: var(--ectw-green-dark);
    font-size: 0.92rem;
}

/* FAQ */
.ectw-faq { margin-top: 8px !important; }
.ectw-faq .ectw-center { margin-bottom: 5px !important; }
.ectw-faq h2 { font-size: 1.18rem !important; margin-bottom: 5px !important; }

.ectw-faq details {
    margin-bottom: 4px !important;
    padding: 0 !important;
    border-radius: 8px !important;
    background: linear-gradient(135deg, rgba(248,243,232,0.94), rgba(217,234,216,0.74)) !important;
    border: 1px solid rgba(7,63,53,0.24) !important;
    box-shadow: 0 3px 9px rgba(0,0,0,0.09) !important;
    overflow: hidden !important;
}

.ectw-faq summary {
    cursor: pointer;
    font-weight: 700 !important;
    color: #073f35 !important;
    padding: 8px 11px !important;
    font-size: 1rem !important;
    line-height: 1.35 !important;
    text-align: left !important;
    background:
        linear-gradient(90deg,
            rgba(173,205,172,0.50),
            rgba(217,234,216,0.38),
            rgba(241,195,126,0.20)) !important;
    border-radius: 8px !important;
    text-shadow: none !important;
}

.ectw-faq details[open] summary {
    background:
        linear-gradient(90deg,
            rgba(22,105,85,0.68),
            rgba(40,154,124,0.46),
            rgba(241,195,126,0.34)) !important;
    color: #ffffff !important;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.34) !important;
    border-bottom: 1px solid rgba(255,255,255,0.22) !important;
}

.ectw-faq details p {
    margin: 0 !important;
    padding: 2px 12px 11px 12px !important;
    color: #241f19 !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
    text-align: left !important;
    background: rgba(248,243,232,0.62) !important;
    border-top: none !important;
}

/* Galerie */
.ectw-gallery-compact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.46fr);
    gap: 12px;
    align-items: start;
}

.ectw-gallery { margin-top: 0; }

.ectw-gallery-stage,
.ectw-gallery-stage * {
    box-sizing: border-box;
}

.ectw-gallery-stage {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    background: transparent;
}

.ectw-gallery-stage .main-image-wrapper {
    position: relative;
    width: 100%;
    background: #111;
    overflow: hidden;
    border-radius: 10px;
    aspect-ratio: 16 / 9;
    max-height: 245px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.16);
}

.ectw-gallery-stage .main-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #111;
    opacity: 0;
    transition: opacity 0.7s ease-in-out;
}

.ectw-gallery-stage .main-image.visible { opacity: 1; }
.ectw-gallery-stage .caption { display: none; }

.ectw-gallery-stage .thumbs-wrapper {
    margin-top: 2px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ectw-gallery-stage .thumb-arrow {
    border: none;
    background: var(--ectw-green-soft);
    width: 24px;
    height: 31px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
    padding: 0;
    transition: background .2s, transform .1s, box-shadow .2s;
    user-select: none;
}

.ectw-gallery-stage .thumb-arrow:hover:not(:disabled) {
    background: var(--ectw-gold);
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0,0,0,.15);
}

.ectw-gallery-stage .thumb-arrow:disabled {
    opacity: .3;
    cursor: default;
    transform: none;
    box-shadow: none;
}

.ectw-gallery-stage .thumbs-viewport {
    overflow-x: hidden;
    overflow-y: visible;
    flex: 1;
}

.ectw-gallery-stage .thumbs {
    display: flex;
    gap: 7px;
    padding: 4px 0;
}

.ectw-gallery-stage .thumb {
    flex: 0 0 auto;
    width: 38px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    opacity: .52;
}

.ectw-gallery-stage .thumb-inner {
    width: 100%;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ectw-gallery-stage .thumb img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}

.ectw-gallery-stage .thumb-bar {
    width: 0;
    height: 2px;
    background: rgba(54,135,111,1);
    border-radius: 2px;
    transition: width .25s ease;
}

.ectw-gallery-stage .thumb:hover { opacity: .82; }
.ectw-gallery-stage .thumb.active { opacity: 1; }
.ectw-gallery-stage .thumb.active .thumb-bar { width: 70%; }

.ectw-gallery-stage .photo-logo {
    position: absolute;
    right: 8px;
    bottom: 6px;
    z-index: 50;
    opacity: .9;
    transition: opacity .2s ease;
}

.ectw-gallery-stage .photo-logo:hover { opacity: 1; }

.ectw-gallery-stage .photo-logo img {
    width: 30px;
    height: auto;
    pointer-events: auto;
}

/* Lightbox */
.ectw-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(0,0,0,0.82);
}

.ectw-lightbox.is-open { display: flex; }

.ectw-lightbox-inner {
    position: relative;
    max-width: min(1100px, 96vw);
    max-height: 92vh;
}

.ectw-lightbox img {
    display: block;
    max-width: 100%;
    max-height: 92vh;
    border-radius: 14px;
    box-shadow: 0 18px 46px rgba(0,0,0,0.45);
}

.ectw-lightbox-close {
    position: absolute;
    top: -14px;
    right: -14px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: #ffffff;
    color: var(--ectw-green-dark);
    font-size: 23px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(0,0,0,0.25);
}

/* Bloc final */
.ectw-final {
    text-align: center;
}

.ectw-final p {
    max-width: 850px;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Responsive */
@media (max-width: 900px) {
    .ectw-pill-list {
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 7px !important;
    }

    .ectw-pill {
        font-size: 0.88rem !important;
        padding: 4px 10px !important;
    }


    .ectw-hero--split,
    .ectw-grid--2,
    .ectw-grid--3,
    .ectw-grid--4,
    .ectw-gallery-compact {
        grid-template-columns: 1fr;
    }

    .ectw-info-grid,
    
.ectw-media {
        max-width: 420px;
        margin: 0 auto;
    }

    .ectw-gallery-stage { max-width: 100%; }
    .ectw-gallery-stage .main-image-wrapper { max-height: 260px; }
}

@media (max-width: 700px) {
    html,
    body {
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .ectw-page {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .ectw-section { margin: 6px 0 !important; }
    .ectw-block { padding: 10px !important; }

    .ectw-block > h2 {
        font-size: 1.05rem !important;
        line-height: 1.18 !important;
        padding: 5px 9px !important;
        margin: -5px -5px 8px -5px !important;
    }

    .ectw-center h2,
    .ectw-faq h2 {
        font-size: 1.10rem !important;
        line-height: 1.18 !important;
        margin-bottom: 6px !important;
    }

    
.ectw-eyebrow {
        font-size: 0.69rem !important;
        line-height: 1.2 !important;
        padding: 3px 8px !important;
    }

    .ectw-subtitle {
        font-size: 0.96rem !important;
        line-height: 1.34 !important;
    }

    .ectw-lead,
    .ectw-page p,
    .ectw-page li {
        font-size: 0.93rem !important;
        line-height: 1.42 !important;
    }

    .ectw-topnav,
    .ectw-actions {
        flex-direction: column;
        align-items: center;
    }

    .ectw-floating-nav {
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        overflow-x: auto !important;
        padding: 6px 7px !important;
        -webkit-overflow-scrolling: touch;
    }

    .ectw-page [id] {
        scroll-margin-top: 125px;
    }

    .ectw-gallery-compact,
    .ectw-gallery,
    .ectw-gallery-stage,
    .ectw-gallery-stage .main-image-wrapper,
    .ectw-gallery-stage .thumbs-wrapper,
    .ectw-gallery-stage .thumbs-viewport {
        box-sizing: border-box !important;
        min-width: 0 !important;
        overflow-x: hidden !important;
    }

    .ectw-gallery-compact {
        display: block !important;
        width: 100% !important;
        max-width: calc(100vw - 32px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .ectw-gallery {
        width: 100% !important;
        max-width: calc(100vw - 32px) !important;
        margin: 10px auto 0 auto !important;
        padding: 0 !important;
    }

    .ectw-gallery-stage {
        display: block !important;
        width: 100% !important;
        max-width: calc(100vw - 32px) !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    .ectw-gallery-stage .main-image-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        aspect-ratio: 16 / 10 !important;
        height: auto !important;
        min-height: 175px !important;
        max-height: none !important;
        border-radius: 9px !important;
    }

    .ectw-gallery-stage .main-image {
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
    }

    .ectw-gallery-stage .thumbs-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        display: flex !important;
        align-items: center !important;
        gap: 4px !important;
        margin-top: 5px !important;
    }

    .ectw-gallery-stage .thumbs-viewport {
        flex: 1 1 auto !important;
        width: auto !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .ectw-gallery-stage .thumbs {
        display: flex !important;
        gap: 5px !important;
        padding: 3px 0 !important;
        min-width: 0 !important;
    }

    .ectw-gallery-stage .thumb-arrow {
        flex: 0 0 22px !important;
        width: 22px !important;
        min-width: 22px !important;
        max-width: 22px !important;
        height: 28px !important;
        padding: 0 !important;
        font-size: 16px !important;
        border-radius: 5px !important;
    }

    .ectw-gallery-stage .thumb {
        flex: 0 0 31px !important;
        width: 31px !important;
    }

    .ectw-gallery-stage .thumb-inner {
        height: 24px !important;
    }

    .ectw-gallery-stage .photo-logo img {
        width: 21px !important;
    }
}

@media (max-width: 520px) {
    .ectw-pill-list {
        justify-content: flex-start !important;
        gap: 6px !important;
    }

    .ectw-pill {
        white-space: normal !important;
        font-size: 0.86rem !important;
        padding: 4px 9px !important;
    }

    .ectw-pill strong,
    .ectw-pill span {
        white-space: normal !important;
    }


    .ectw-info-grid,
    
.ectw-actions {
        flex-direction: column;
        align-items: center;
    }

    .ectw-actions--left {
        align-items: flex-start;
    }

    .ectw-img-zoom-label {
        font-size: 0.70rem;
        padding: 4px 8px;
    }
}

@media (max-width: 420px) {
    .ectw-gallery,
    .ectw-gallery-stage {
        max-width: calc(100vw - 36px) !important;
    }

    .ectw-gallery-stage .main-image-wrapper {
        aspect-ratio: 4 / 3 !important;
        min-height: 168px !important;
    }

    .ectw-block > h2 {
        font-size: 1rem !important;
    }

    .ectw-center h2,
    .ectw-faq h2 {
        font-size: 1.04rem !important;
    }
}


/* =========================================================
   Correctif lisibilité FAQ
   Texte ouvert plus grand et plus confortable à lire
   ========================================================= */

@media (max-width: 700px) {
    .ectw-faq summary {
        font-size: 0.98rem !important;
        line-height: 1.35 !important;
    text-align: left !important;
}

    .ectw-faq details p {
        font-size: 0.96rem !important;
        line-height: 1.55 !important;
    text-align: left !important;
}
}

/* =========================================================
   ENCHANTER — VERSION PLUS CONTRASTÉE SITE
   À garder en fin de fichier : elle renforce la charte globale
   sans changer les HTML.
   ========================================================= */

/* Infos rapides : alternance commune pour les deux stages.
   1 orange, 2 vert, 3 orange, 4 vert. */
.ectw-info-grid .ectw-info-card:nth-child(odd) {
    background: linear-gradient(135deg, rgba(242,200,121,0.58), rgba(248,243,232,0.88)) !important;
    border-color: rgba(184,109,25,0.34) !important;
}

.ectw-info-grid .ectw-info-card:nth-child(even) {
    background: linear-gradient(135deg, rgba(173,205,172,0.82), rgba(248,243,232,0.84)) !important;
    border-color: rgba(7,63,53,0.30) !important;
}

.ectw-page p,
.ectw-page li {
    color: #211912;
    font-weight: 400 !important;
}

/* Texte courant : normal.
   Les titres, strong, boutons et encadrés volontaires gardent leurs règles dédiées. */
.ectw-card p,
.ectw-card li,
.ectw-lead,
.ectw-topintro-text,
.ectw-faq details p {
    font-weight: 400 !important;
    text-align: left !important;
}

/* =========================================================
   ENCHANTER — RÉGLAGE FINAL
   Contraste conservé sur les contenus.
   Boutons laissés à TOWeb / Bootstrap.
   Titres des gros blocs revenus à la première version.
   ========================================================= */

/* Ne pas rhabiller les boutons : TOWeb / Bootstrap prend le relais.
   On garde seulement les conteneurs .ectw-actions et .ectw-topnav. */

.ectw-block > h2 {
    font-family: inherit !important;
    margin: -7px -7px 10px -7px !important;
    padding: 5px 12px !important;
    border-radius: 9px 9px 4px 4px !important;
    background: linear-gradient(90deg, rgba(22,106,86,0.90), rgba(42,154,125,0.68), rgba(173,205,172,0.44)) !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: 0 2px 7px rgba(0,0,0,0.13) !important;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.62) !important;
    font-size: 1.25rem !important;
    line-height: 1.20 !important;
}

.ectw-block--gold > h2 {
    background: linear-gradient(90deg, rgba(217,143,56,0.92), rgba(240,179,101,0.72), rgba(242,215,161,0.52)) !important;
    color: #241305 !important;
    text-shadow: 1px 1px 1px rgba(255,255,255,0.45) !important;
}

/* =========================================================
   ENCHANTER — INTRO SIMPLE COURS DE CHANT
   100 % CSS : aucun changement HTML.
   Pour les intros sans image, on réduit l'effet "gros bandeau"
   et on remet l'accroche à une taille plus naturelle.
   ========================================================= */

.ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) {
    margin: 4px 0 10px 0 !important;
    padding: 10px 14px 12px 14px !important;
    border-radius: 12px !important;
    background:
        linear-gradient(135deg,
            rgba(248,243,232,0.62),
            rgba(217,234,216,0.32),
            rgba(241,195,126,0.10)) !important;
    border: 1px solid rgba(22,105,85,0.14) !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.06) !important;
}

/* Phrase "Des cours pour..." : moins grande, plus naturelle */
.ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) .ectw-subtitle {
    font-size: clamp(1.02rem, 1.32vw, 1.16rem) !important;
    line-height: 1.36 !important;
    max-width: 900px !important;
    margin: 0 auto 10px auto !important;
    color: #1f1710 !important;
    font-weight: 400 !important;
    text-align: center !important;
}

/* Paragraphes de l'intro : lisibles mais pas surdimensionnés */
.ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) .ectw-lead,
.ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) p:not(.ectw-subtitle) {
    font-size: 1rem !important;
    line-height: 1.46 !important;
    color: #211912 !important;
}

/* L'encadré d'accroche dans cette intro : un peu moins massif */
.ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) .ectw-highlight {
    margin: 10px 0 8px 0 !important;
    padding: 10px 14px 10px 16px !important;
    border-left-width: 5px !important;
    font-size: 0.98rem !important;
    line-height: 1.40 !important;
    background: rgba(248,243,232,0.84) !important;
}

/* Le menu sous l'intro respire moins haut */
.ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) + .ectw-topintro {
    margin-top: 4px !important;
}

@media (max-width: 700px) {
    .ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) {
        padding: 9px 11px 11px 11px !important;
    }

    .ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) .ectw-subtitle {
        font-size: 0.98rem !important;
        text-align: left !important;
    }

    .ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) .ectw-lead,
    .ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) p:not(.ectw-subtitle) {
        font-size: 0.94rem !important;
        line-height: 1.42 !important;
    }

    .ectw-page > .ectw-section:first-of-type.ectw-hero:not(.ectw-hero--split) .ectw-highlight {
        font-size: 0.94rem !important;
    }
}

/* =========================================================
   ENCHANTER — INTRO MENU COMPACTE
   Début de page simple : texte centré + menu dans une même zone douce.
   ========================================================= */

.ectw-intro-menu {
    margin: 4px 0 10px 0 !important;
    padding: 13px 16px 12px 16px !important;
    border-radius: 12px !important;
    background:
        linear-gradient(135deg,
            rgba(248,243,232,0.68),
            rgba(217,234,216,0.34),
            rgba(241,195,126,0.10)) !important;
    border: 1px solid rgba(22,105,85,0.16) !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.07) !important;
    text-align: center !important;
}

.ectw-intro-menu-text {
    max-width: 930px !important;
    margin: 0 auto 12px auto !important;
    color: #211912 !important;
    font-size: 1.02rem !important;
    line-height: 1.42 !important;
    text-align: center !important;
}

.ectw-intro-menu .ectw-topnav {
    margin-top: 8px !important;
    justify-content: center !important;
}

@media (max-width: 700px) {
    .ectw-intro-menu {
        padding: 10px 11px 11px 11px !important;
    }

    .ectw-intro-menu-text {
        font-size: 0.94rem !important;
        line-height: 1.42 !important;
        text-align: left !important;
    }
}

/* =========================================================
   ENCHANTER — RÉGLAGE ENCADRÉS IMPORTANTS
   Remplace les grands dégradés verts/or par un encadré plus net,
   plus lisible sur fond image, et moins dépendant du contexte.
   ========================================================= */

.ectw-highlight,
.ectw-note {
    position: relative !important;
    margin: 12px 0 !important;
    padding: 12px 16px 12px 18px !important;
    border-radius: 10px !important;
    background: rgba(248,243,232,0.88) !important;
    border: 1px solid rgba(22,105,85,0.24) !important;
    border-left: 6px solid #D98F38 !important;
    box-shadow:
        0 5px 14px rgba(0,0,0,0.13),
        inset 0 1px 0 rgba(255,255,255,0.55) !important;
    color: #073f35 !important;
    font-weight: 700 !important;
    line-height: 1.42 !important;
    text-shadow: none !important;
}

.ectw-highlight::before,
.ectw-note::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    border-radius: 10px !important;
    background:
        linear-gradient(90deg,
            rgba(217,143,56,0.08),
            rgba(217,234,216,0.18),
            rgba(248,243,232,0.00)) !important;
    pointer-events: none !important;
}

.ectw-highlight > *,
.ectw-note > * {
    position: relative !important;
    z-index: 1 !important;
}

@media (max-width: 700px) {
    .ectw-highlight,
    .ectw-note {
        padding: 11px 13px 11px 15px !important;
        border-left-width: 5px !important;
        font-size: 0.96rem !important;
        line-height: 1.42 !important;
    }
}


/* =========================================================
   ENCHANTER — CONDITIONS ANNULATION, VERSION 100 % CSS
   Bloc isolé par classes dédiées.
   Ne dépend plus des pastilles générales .ectw-pill.
   ========================================================= */

.ectw-conditions-section .ectw-conditions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    align-items: stretch !important;
}

.ectw-conditions-left {
    padding: 12px 14px 14px 14px !important;
    border-radius: 12px !important;
    background:
        linear-gradient(135deg,
            rgba(247,226,182,0.50),
            rgba(248,243,232,0.70),
            rgba(217,234,216,0.18)) !important;
    border: 1px solid rgba(22,106,86,0.18) !important;
    box-shadow:
        0 5px 13px rgba(0,0,0,0.08),
        inset 0 1px 0 rgba(255,255,255,0.45) !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.ectw-conditions-left > h3 {
    margin: -6px -6px 8px -6px !important;
    padding: 4px 9px !important;
    border-radius: 8px 8px 3px 3px !important;
    background:
        linear-gradient(90deg,
            rgba(217,143,56,0.76),
            rgba(240,179,101,0.58),
            rgba(242,215,161,0.34)) !important;
    color: #241305 !important;
    text-shadow: 1px 1px 1px rgba(255,255,255,0.50) !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.07) !important;
    font-size: 1.04rem !important;
    line-height: 1.18 !important;
    font-weight: 700 !important;
    font-family: inherit !important;
    text-align: center !important;
}

.ectw-conditions-list {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 8px !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

.ectw-conditions-pill {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 110px !important;
    padding: 13px 8px 10px 8px !important;
    border-radius: 9px !important;
    background: rgba(238,235,205,0.56) !important;
    border: 1px solid rgba(22,106,86,0.15) !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.08) !important;
    text-align: center !important;
    white-space: normal !important;
    overflow: hidden !important;
}

.ectw-conditions-pill strong,
.ectw-conditions-pill span {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.12 !important;
}

.ectw-conditions-pill strong {
    color: #073f35 !important;
    font-weight: 800 !important;
    font-size: 0.98rem !important;
}

.ectw-conditions-pill span {
    color: #241305 !important;
    font-weight: 800 !important;
    font-size: 0.96rem !important;
}

.ectw-conditions-section .ectw-card {
    align-self: stretch !important;
    min-width: 0 !important;
}

@media (max-width: 900px) {
    .ectw-conditions-section .ectw-conditions {
        grid-template-columns: 1fr !important;
    }

    .ectw-conditions-list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .ectw-conditions-pill {
        min-height: 88px !important;
    }
}

@media (max-width: 520px) {
    .ectw-conditions-list {
        grid-template-columns: 1fr !important;
    }

    .ectw-conditions-pill {
        min-height: 0 !important;
        padding: 9px 10px !important;
    }
}

/* =========================================================
   ENCHANTER — RÉGLAGE DÉBUT DE PAGE AVEC IMAGE
   Intro plus lisible : fond moins transparent, texte dans une zone claire,
   image moins envahissante.
   ========================================================= */

.ectw-page > .ectw-section:first-of-type.ectw-hero,
.ectw-page > .ectw-section:first-of-type .ectw-hero,
.ectw-page .ectw-hero--split:first-child {
    position: relative !important;
}

.ectw-page > .ectw-section:first-of-type.ectw-hero--split,
.ectw-page > .ectw-section:first-of-type .ectw-hero--split {
    margin: 4px 0 12px 0 !important;
    padding: 14px 18px 16px 18px !important;
    border-radius: 14px !important;
    background:
        linear-gradient(135deg,
            rgba(248,243,232,0.92),
            rgba(217,234,216,0.84),
            rgba(241,195,126,0.34)) !important;
    border: 1px solid rgba(22,105,85,0.26) !important;
    box-shadow:
        0 7px 18px rgba(0,0,0,0.14),
        inset 0 1px 0 rgba(255,255,255,0.55) !important;
}

.ectw-page > .ectw-section:first-of-type.ectw-hero--split > h2,
.ectw-page > .ectw-section:first-of-type .ectw-hero--split > h2,
.ectw-page > .ectw-section:first-of-type.ectw-block > h2:first-child {
    margin: -4px -4px 12px -4px !important;
    padding: 8px 12px !important;
    border-radius: 10px !important;
    background:
        linear-gradient(90deg,
            rgba(173,205,172,0.72),
            rgba(217,234,216,0.46),
            rgba(241,195,126,0.18)) !important;
    color: #073f35 !important;
    text-shadow: 0 1px 0 rgba(255,255,255,0.55) !important;
    box-shadow: none !important;
    border: 1px solid rgba(22,105,85,0.16) !important;
    font-size: 1.34rem !important;
    line-height: 1.18 !important;
}

/* Texte de l'intro : vrai panneau clair pour ne plus lire sur l'image de fond */
.ectw-page > .ectw-section:first-of-type .ectw-hero-text {
    padding: 12px 14px !important;
    border-radius: 12px !important;
    background: linear-gradient(
        135deg,
        rgba(223, 236, 222, 0.92),
        rgba(236, 244, 232, 0.90),
        rgba(245, 247, 240, 0.88)
    ) !important;
    border: 1px solid rgba(22,105,85,0.18) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08), inset 0 1px 0 rgba(255,255,255,0.55) !important;
}

.ectw-page > .ectw-section:first-of-type .ectw-hero-text p {
    color: #17120e !important;
    text-shadow: none !important;
}

.ectw-page > .ectw-section:first-of-type .ectw-highlight {
    background: rgba(248,243,232,0.94) !important;
}

.ectw-page > .ectw-section:first-of-type .ectw-eyebrow {
    background:
        linear-gradient(90deg,
            rgba(217,143,56,0.82),
            rgba(241,195,126,0.62),
            rgba(248,243,232,0.28)) !important;
    color: #3d2208 !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important;
}

.ectw-page > .ectw-section:first-of-type .ectw-media,
.ectw-page > .ectw-section:first-of-type .ectw-hero-img {
    align-self: center !important;
    max-width: 380px !important;
    justify-self: center !important;
}

.ectw-page > .ectw-section:first-of-type .ectw-img-open img,
.ectw-page > .ectw-section:first-of-type .ectw-img {
    border-color: rgba(22,105,85,0.34) !important;
    box-shadow: 0 7px 18px rgba(0,0,0,0.18) !important;
}

.ectw-page > .ectw-section:first-of-type .ectw-info-grid {
    margin-top: 12px !important;
}

@media (max-width: 900px) {
    .ectw-page > .ectw-section:first-of-type.ectw-hero--split,
    .ectw-page > .ectw-section:first-of-type .ectw-hero--split {
        padding: 12px !important;
    }

    .ectw-page > .ectw-section:first-of-type.ectw-hero--split > h2,
    .ectw-page > .ectw-section:first-of-type .ectw-hero--split > h2,
    .ectw-page > .ectw-section:first-of-type.ectw-block > h2:first-child {
        font-size: 1.16rem !important;
    }

    .ectw-page > .ectw-section:first-of-type .ectw-media,
    .ectw-page > .ectw-section:first-of-type .ectw-hero-img {
        max-width: 420px !important;
    }
}

/* =========================================================
   ENCHANTER — MICRO RÉGLAGE ACCROCHE INTRO
   Correction propre : les phrases longues ne dépassent jamais la page.
   Elles peuvent utiliser toute la largeur disponible, puis revenir à la ligne
   seulement quand c'est nécessaire.
   ========================================================= */

.ectw-page > .ectw-section:first-of-type .ectw-subtitle,
.ectw-page > .ectw-section:first-of-type .ectw-lead:first-of-type,
.ectw-page > .ectw-section:first-of-type.ectw-hero--split .ectw-hero-head + .ectw-hero-content > p:first-child {
    font-size: clamp(1.02rem, 1.32vw, 1.16rem) !important;
    line-height: 1.34 !important;
    max-width: min(1180px, 100%) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
}

/* Paragraphes longs des blocs de détail :
   largeur complète, mais retour à la ligne autorisé pour éviter le débordement. */
.ectw-block--detail > .ectw-lead {
    max-width: 100% !important;
    width: auto !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    font-size: 1rem !important;
    line-height: 1.42 !important;
}

@media (max-width: 700px) {
    .ectw-page > .ectw-section:first-of-type .ectw-subtitle,
    .ectw-page > .ectw-section:first-of-type .ectw-lead:first-of-type {
        font-size: 0.98rem !important;
        line-height: 1.38 !important;
    }

    .ectw-block--detail > .ectw-lead {
        font-size: 0.94rem !important;
        line-height: 1.42 !important;
    }
}

/* =========================================================
   ENCHANTER — ANTI-RETOURS DE LIGNE SALES
   À garder tout en bas du fichier.
   Objectif : éviter les mots isolés en fin de paragraphe,
   laisser les phrases utiliser toute la largeur utile,
   et empêcher les coupures artificielles.
   ========================================================= */

/* Tous les blocs texte doivent pouvoir utiliser leur largeur réelle */
.ectw-page p,
.ectw-page li,
.ectw-page summary,
.ectw-page .ectw-lead,
.ectw-page .ectw-subtitle,
.ectw-page .ectw-topintro-text,
.ectw-page .ectw-intro-menu-text,
.ectw-page .ectw-note,
.ectw-page .ectw-highlight,
.ectw-page .ectw-card p,
.ectw-page .ectw-card li,
.ectw-page .ectw-panel p,
.ectw-page .ectw-faq details p,
.ectw-page .pv-copy p,
.ectw-page .bpvel-intro-copy p {
    max-width: none !important;
    width: auto !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    text-wrap: pretty !important;
    widows: 3 !important;
    orphans: 3 !important;
}

/* Les phrases d'intro centrées gardent une largeur confortable,
   mais sans être bloquées à 930px. */
.ectw-page .ectw-center .ectw-lead,
.ectw-page .ectw-topintro-text,
.ectw-page .ectw-intro-menu-text {
    max-width: min(1180px, 100%) !important;
}

/* Les titres doivent se répartir proprement, pas se casser au mauvais endroit */
.ectw-page h1,
.ectw-page h2,
.ectw-page h3,
.ectw-page h4,
.ectw-page .ectw-card h3,
.ectw-page .ectw-card h4,
.ectw-page .pv-copy h3,
.ectw-page .pv-title,
.ectw-page .ectw-faq summary,
.ectw-page .ectw-info-card strong,
.ectw-page .ectw-info-card span {
    max-width: none !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    text-wrap: balance !important;
}

/* Les grilles et colonnes ne doivent pas comprimer le texte */
.ectw-page .ectw-grid,
.ectw-page .ectw-card,
.ectw-page .ectw-block,
.ectw-page .ectw-panel,
.ectw-page .ectw-hero-content,
.ectw-page .ectw-hero-text,
.ectw-page .ectw-media,
.ectw-page .pv-feature,
.ectw-page .pv-copy,
.ectw-page .bpvel-intro-grid,
.ectw-page .bpvel-intro-copy {
    min-width: 0 !important;
}

/* Sur les petits écrans, on garde le texte naturel sans coupure forcée */
@media (max-width: 700px) {
    .ectw-page p,
    .ectw-page li,
    .ectw-page summary,
    .ectw-page .ectw-lead,
    .ectw-page .ectw-subtitle,
    .ectw-page .ectw-topintro-text,
    .ectw-page .ectw-intro-menu-text,
    .ectw-page .ectw-note,
    .ectw-page .ectw-highlight,
    .ectw-page .pv-copy p,
    .ectw-page .bpvel-intro-copy p {
        text-wrap: pretty !important;
        max-width: none !important;
        width: auto !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
        -webkit-hyphens: none !important;
    }

    .ectw-page h1,
    .ectw-page h2,
    .ectw-page h3,
    .ectw-page h4,
    .ectw-page .pv-copy h3 {
        text-wrap: balance !important;
    }
}

/* FIN — ANTI-RETOURS DE LIGNE SALES */
