/* ── Wrapper de largeur max (optionnel) ── */
.livio-section-max-width {
    width: 100%;
    box-sizing: border-box;
}

.livio-block {
    color: var(--livio-text, #1f2937);
    display: block;
    width: 100%;
    box-sizing: border-box;
}

.livio-block *,
.livio-block *:before,
.livio-block *:after {
    box-sizing: border-box;
}

.livio-block a {
    text-decoration: none;
    color: inherit;
}

.livio-block img {
    max-width: 100%;
    height: auto;
    display: block;
}

.livio-empty-state {
    padding: 24px;
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    background: var(--livio-bg, #ffffff);
    color: var(--livio-text, #1f2937);
    opacity: 0.8;
}

/* =========================================================
   SHADOWS — tous les types de blocs
========================================================= */

.livio-shadow-none .livio-event-card,
.livio-shadow-none .livio-event-list-row,
.livio-shadow-none .livio-event-slide,
.livio-shadow-none .livio-agenda-item-card,
.livio-shadow-none .livio-agenda-accordion-item,
.livio-shadow-none .livio-agenda-card,
.livio-shadow-none .livio-speaker-card,
.livio-shadow-none .livio-speaker-row,
.livio-shadow-none .livio-speaker-slide,
.livio-shadow-none .livio-partner-card,
.livio-shadow-none .livio-partner-card-full,
.livio-shadow-none .livio-partner-logo-item {
    box-shadow: none;
}

.livio-shadow-small .livio-event-card,
.livio-shadow-small .livio-event-list-row,
.livio-shadow-small .livio-event-slide,
.livio-shadow-small .livio-agenda-item-card,
.livio-shadow-small .livio-agenda-accordion-item,
.livio-shadow-small .livio-agenda-card,
.livio-shadow-small .livio-speaker-card,
.livio-shadow-small .livio-speaker-row,
.livio-shadow-small .livio-speaker-slide,
.livio-shadow-small .livio-partner-card,
.livio-shadow-small .livio-partner-card-full,
.livio-shadow-small .livio-partner-logo-item {
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.livio-shadow-medium .livio-event-card,
.livio-shadow-medium .livio-event-list-row,
.livio-shadow-medium .livio-event-slide,
.livio-shadow-medium .livio-agenda-item-card,
.livio-shadow-medium .livio-agenda-accordion-item,
.livio-shadow-medium .livio-agenda-card,
.livio-shadow-medium .livio-speaker-card,
.livio-shadow-medium .livio-speaker-row,
.livio-shadow-medium .livio-speaker-slide,
.livio-shadow-medium .livio-partner-card,
.livio-shadow-medium .livio-partner-card-full,
.livio-shadow-medium .livio-partner-logo-item {
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

.livio-shadow-large .livio-event-card,
.livio-shadow-large .livio-event-list-row,
.livio-shadow-large .livio-event-slide,
.livio-shadow-large .livio-agenda-item-card,
.livio-shadow-large .livio-agenda-accordion-item,
.livio-shadow-large .livio-agenda-card,
.livio-shadow-large .livio-speaker-card,
.livio-shadow-large .livio-speaker-row,
.livio-shadow-large .livio-speaker-slide,
.livio-shadow-large .livio-partner-card,
.livio-shadow-large .livio-partner-card-full,
.livio-shadow-large .livio-partner-logo-item {
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
}

/* =========================================================
   EVENTS - GRID
========================================================= */

.livio-events-grid-inner {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(var(--livio-cols-desktop, 3), 1fr);
}

@media (max-width: 1024px) {
    .livio-events-grid-inner {
        grid-template-columns: repeat(var(--livio-cols-tablet, 2), 1fr);
    }
}

@media (max-width: 640px) {
    .livio-events-grid-inner {
        grid-template-columns: repeat(var(--livio-cols-mobile, 1), 1fr);
    }
}

.livio-event-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    background: var(--livio-bg, #ffffff);
    color: var(--livio-text, #1f2937);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.livio-event-card:hover {
    transform: translateY(-2px);
}

.livio-event-card-link {
    display: block;
    height: 100%;
}

.livio-event-card-media {
    width: 100%;
    height: 0;
    padding-top: 56.25%;
    background: #f8fafc;
    overflow: hidden;
    position: relative;
}

.livio-event-card-media img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.livio-event-card-body {
    padding: 18px;
}

.livio-event-card-logo {
    width: 58px;
    height: 58px;
    border-radius: 14px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.livio-event-card-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 6px;
}

.livio-event-card-title {
    margin: 0 0 10px;
    font-size: 20px;
    line-height: 1.3;
    font-weight: 700;
    color: var(--livio-text, #1f2937);
}

.livio-event-card-date {
    font-size: 14px;
    line-height: 1.5;
    color: #64748b;
    margin-bottom: 14px;
}

.livio-event-card-status {
    display: inline-block;
    min-height: 32px;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 13px;
    line-height: 1;
    font-weight: 700;
}

/* =========================================================
   EVENTS - LIST
========================================================= */

.livio-events-list-inner {
    display: block;
}

.livio-event-list-row {
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    background: var(--livio-bg, #ffffff);
    color: var(--livio-text, #1f2937);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    margin-bottom: 16px;
}

.livio-event-list-row:hover {
    transform: translateY(-2px);
}

.livio-event-list-link {
    display: flex;
    align-items: stretch;
    gap: 18px;
    padding: 16px;
}

.livio-event-list-media {
    width: 160px;
    min-width: 160px;
    border-radius: 12px;
    overflow: hidden;
    background: #f8fafc;
}

.livio-event-list-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.livio-event-list-content {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.livio-event-list-main {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    flex: 1;
}

.livio-event-list-logo {
    width: 54px;
    height: 54px;
    min-width: 54px;
    border-radius: 14px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: center;
}

.livio-event-list-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 6px;
}

.livio-event-list-texts {
    min-width: 0;
    flex: 1;
}

.livio-event-list-title {
    margin: 0 0 8px;
    font-size: 20px;
    line-height: 1.3;
    font-weight: 700;
    color: var(--livio-text, #1f2937);
}

.livio-event-list-date {
    font-size: 14px;
    line-height: 1.5;
    color: #64748b;
}

.livio-event-list-status {
    display: inline-block;
    min-height: 36px;
    padding: 10px 14px;
    border-radius: 999px;
    font-size: 13px;
    line-height: 1;
    font-weight: 700;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .livio-event-list-link {
        flex-direction: column;
        gap: 14px;
    }

    .livio-event-list-media {
        width: 100%;
        min-width: 0;
        height: 180px;
    }

    .livio-event-list-content {
        flex-direction: column;
        align-items: flex-start;
    }

    .livio-event-list-main {
        width: 100%;
    }

    .livio-event-list-status {
        align-self: flex-start;
    }

    .livio-event-card-title,
    .livio-event-list-title {
        font-size: 18px;
    }
}

/* =========================================================
   EVENTS - SLIDER
========================================================= */

.livio-events-slider-track {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    scrollbar-width: none;
    scroll-behavior: smooth;
}

.livio-events-slider-track::-webkit-scrollbar {
    display: none;
}

/* Desktop : nombre exact de slides selon --livio-cols-desktop */
.livio-event-slide {
    flex: 0 0 calc((100% - (var(--livio-cols-desktop, 2) - 1) * 16px) / var(--livio-cols-desktop, 2));
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    background: var(--livio-bg, #ffffff);
    color: var(--livio-text, #1f2937);
    overflow: hidden;
    scroll-snap-align: start;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Tablet */
@media (max-width: 1024px) and (min-width: 641px) {
    .livio-event-slide {
        flex: 0 0 calc((100% - (var(--livio-cols-tablet, 1) - 1) * 16px) / var(--livio-cols-tablet, 1));
    }
}

/* Mobile : aperçu de la slide suivante pour indiquer le swipe */
@media (max-width: 640px) {
    .livio-event-slide {
        flex: 0 0 85%;
    }
}

.livio-event-slide:hover {
    transform: translateY(-2px);
}

/* Dots */
.livio-slider-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
}

.livio-slider-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: none;
    background: #d1d5db;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s ease, transform 0.2s ease, width 0.2s ease;
    flex-shrink: 0;
}

.livio-slider-dot.livio-slider-dot-active {
    background: #6f62ef;
    width: 24px;
    border-radius: 999px;
}

/* Slider mobile : on cache les dots, le swipe suffit */
@media (max-width: 640px) {
    .livio-events-slider-template .livio-slider-dots,
    .livio-partners-slider-template .livio-slider-dots {
        display: none;
    }
    /* Carousel : dots visibles même sur mobile (navigation explicite) */
    .livio-speakers-carousel-template .livio-slider-dots,
    .livio-partners-carousel-template .livio-slider-dots {
        display: flex;
    }
}

/* =========================================================
   STATUSES
========================================================= */

.livio-event-card-status-ongoing,
.livio-event-list-status-ongoing {
    background: #ecfdf3;
    color: #15803d;
}

.livio-event-card-status-upcoming,
.livio-event-list-status-upcoming {
    background: #eff6ff;
    color: #2563eb;
}

.livio-event-card-status-finished,
.livio-event-list-status-finished {
    background: #f3f4f6;
    color: #6b7280;
}

.livio-event-card-status-unknown,
.livio-event-list-status-unknown {
    background: #f8fafc;
    color: #64748b;
}

/* =========================================================
   CARD STYLE VARIANTS — tous les types de blocs
========================================================= */

.livio-card-style-default .livio-event-card,
.livio-card-style-default .livio-event-list-row,
.livio-card-style-default .livio-event-slide,
.livio-card-style-default .livio-agenda-item-card,
.livio-card-style-default .livio-agenda-accordion-item,
.livio-card-style-default .livio-agenda-card,
.livio-card-style-default .livio-speaker-card,
.livio-card-style-default .livio-speaker-row,
.livio-card-style-default .livio-speaker-slide,
.livio-card-style-default .livio-partner-card,
.livio-card-style-default .livio-partner-card-full,
.livio-card-style-default .livio-partner-logo-item {
    background: var(--livio-bg, #ffffff);
    border: 1px solid var(--livio-border, #e5e7eb);
}

.livio-card-style-soft .livio-event-card,
.livio-card-style-soft .livio-event-list-row,
.livio-card-style-soft .livio-event-slide,
.livio-card-style-soft .livio-agenda-item-card,
.livio-card-style-soft .livio-agenda-accordion-item,
.livio-card-style-soft .livio-agenda-card,
.livio-card-style-soft .livio-speaker-card,
.livio-card-style-soft .livio-speaker-row,
.livio-card-style-soft .livio-speaker-slide,
.livio-card-style-soft .livio-partner-card,
.livio-card-style-soft .livio-partner-card-full,
.livio-card-style-soft .livio-partner-logo-item {
    background: #fafbff;
    border: 1px solid rgba(229, 231, 235, 0.9);
}

.livio-card-style-bordered .livio-event-card,
.livio-card-style-bordered .livio-event-list-row,
.livio-card-style-bordered .livio-event-slide,
.livio-card-style-bordered .livio-agenda-item-card,
.livio-card-style-bordered .livio-agenda-accordion-item,
.livio-card-style-bordered .livio-agenda-card,
.livio-card-style-bordered .livio-speaker-card,
.livio-card-style-bordered .livio-speaker-row,
.livio-card-style-bordered .livio-speaker-slide,
.livio-card-style-bordered .livio-partner-card,
.livio-card-style-bordered .livio-partner-card-full,
.livio-card-style-bordered .livio-partner-logo-item {
    border-width: 2px;
}

.livio-card-style-minimal .livio-event-card,
.livio-card-style-minimal .livio-event-list-row,
.livio-card-style-minimal .livio-event-slide,
.livio-card-style-minimal .livio-agenda-item-card,
.livio-card-style-minimal .livio-agenda-accordion-item,
.livio-card-style-minimal .livio-agenda-card,
.livio-card-style-minimal .livio-speaker-card,
.livio-card-style-minimal .livio-speaker-row,
.livio-card-style-minimal .livio-speaker-slide,
.livio-card-style-minimal .livio-partner-card,
.livio-card-style-minimal .livio-partner-card-full,
.livio-card-style-minimal .livio-partner-logo-item {
    box-shadow: none;
    border: none;
    background: transparent;
}









/* =========================================================
   AGENDA - TIMELINE
========================================================= */

.livio-agenda-timeline {
    position: relative;
    padding-left: 30px;
}

.livio-agenda-timeline:before {
    content: "";
    position: absolute;
    left: 6px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--livio-agenda-line, #e5e7eb);
}

.livio-agenda-timeline:after {
    content: "";
    position: absolute;
    left: 1px;
    bottom: 0;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 10px solid var(--livio-agenda-line, #e5e7eb);
}

.livio-agenda-item {
    position: relative;
    margin-bottom: 28px;
}

.livio-agenda-item-rail {
    position: absolute;
    left: -18px;
    top: 0;
    width: 20px;
    height: 20px;
}

.livio-agenda-item-dot {
    position: absolute;
    left: 0;
    top: 6px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--livio-agenda-dot, #6f62ef);
    z-index: 2;
}

/* ── Entete de groupe / sous-groupe dans l'agenda (timeline / accordion / cards) ── */
.livio-agenda-group {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 18px 0 10px;
}
.livio-agenda-group:first-child { margin-top: 0; }
.livio-agenda-group-bar {
    width: 14px;
    height: 4px;
    border-radius: 2px;
    background: var(--livio-agenda-group-title, #6F62EF);
    flex-shrink: 0;
}
.livio-agenda-group-name {
    font-size: 0.95rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--livio-agenda-group-title, #6F62EF);
}
.livio-agenda-group--sub .livio-agenda-group-bar {
    background: var(--livio-agenda-subgroup-title, #6B7280);
}
.livio-agenda-group--sub .livio-agenda-group-name {
    color: var(--livio-agenda-subgroup-title, #6B7280);
}
.livio-agenda-cards-grouped .livio-agenda-cards-grid {
    margin-bottom: 8px;
}

/* ── Icône de type de session (tous layouts) ── */
.livio-agenda-ico{
    width:34px;height:34px;border-radius:9px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    color:var(--livio-agenda-icon,#6F62EF);
    background:color-mix(in srgb, var(--livio-agenda-icon,#6F62EF) 14%, transparent);
}
.livio-agenda-ico svg{display:block}
/* Timeline : carte en flex icône + contenu */
.livio-agenda-item-card{display:flex;gap:12px;align-items:flex-start}
.livio-agenda-item-card-body{flex:1;min-width:0}
/* Accordéon : icône dans le summary */
.livio-agenda-accordion-summary{display:flex;align-items:center;gap:12px}
.livio-agenda-accordion-summary-main{flex:1;min-width:0}
/* Cards : icône en tête */
.livio-agenda-ico--card{margin-bottom:10px}

/* =========================================================
   AGENDA - COMPACT
========================================================= */
.livio-agenda-compact{display:flex;flex-direction:column;gap:6px}
.livio-agenda-compact-item{
    border:1px solid var(--livio-border,#eef0f4);
    border-left:3px solid var(--livio-agenda-icon,#6F62EF);
    border-radius:10px;background:var(--livio-bg,#fff);overflow:hidden;
}
.livio-agenda-compact-row{display:flex;align-items:center;gap:12px;padding:8px 12px;list-style:none}
details.livio-agenda-compact-item>summary.livio-agenda-compact-row{cursor:pointer}
.livio-agenda-compact-row::-webkit-details-marker{display:none}
.livio-agenda-compact .livio-agenda-ico{width:30px;height:30px;border-radius:8px}
.livio-agenda-compact-time{font-size:12px;font-weight:700;color:var(--livio-agenda-datetime,#64748b);white-space:nowrap;font-variant-numeric:tabular-nums}
.livio-agenda-compact-title{font-weight:600;font-size:14px;flex:1;min-width:0;color:var(--livio-agenda-conf-title,#1F2937)}
.livio-agenda-compact-type{font-size:10px;font-weight:700;padding:2px 8px;border-radius:6px;white-space:nowrap;color:var(--livio-agenda-icon,#6F62EF);background:color-mix(in srgb,var(--livio-agenda-icon,#6F62EF) 14%,transparent)}
.livio-agenda-compact-lim{font-size:10px;font-weight:700;color:#b45309;background:rgba(252,211,77,.30);border:1px solid #fcd34d;border-radius:6px;padding:2px 7px;white-space:nowrap}
.livio-agenda-compact-chev{display:flex;color:#9aa3b2;flex-shrink:0;transition:transform .18s}
details.livio-agenda-compact-item[open] .livio-agenda-compact-chev{transform:rotate(180deg)}
.livio-agenda-compact-expand{padding:0 12px 12px 54px;font-size:13px;line-height:1.6;color:var(--livio-agenda-conf-text,#1F2937)}
.livio-agenda-compact-desc{margin-bottom:6px}
.livio-agenda-compact-date{margin-top:6px;font-size:12px;color:var(--livio-agenda-datetime,#64748b)}
.livio-agenda-compact-expand .livio-agenda-item-people{color:var(--livio-agenda-speakers,#1F2937)}
.livio-agenda-compact-expand .livio-agenda-item-section{color:var(--livio-agenda-section,#6F62EF)}
.livio-agenda-compact-expand .livio-agenda-item-location{color:var(--livio-agenda-datetime,#64748b)}
/* Compact : titre à côté de l'horaire (défaut) ou sous l'horaire */
.livio-agenda-compact-main{flex:1;min-width:0;display:flex;gap:10px}
.livio-agenda-compact-main--beside{flex-direction:row;align-items:center}
.livio-agenda-compact-main--below{flex-direction:column;align-items:stretch;gap:2px}
/* « Places limitées » — élément dédié (tous layouts) */
.livio-agenda-item-limited{font-size:13px;font-weight:700;margin-top:6px;color:var(--livio-agenda-conf-text,#1F2937)}
.livio-agenda-item-limited strong{font-weight:700}
.livio-agenda-compact-expand .livio-agenda-item-limited{margin-top:0;margin-bottom:6px}

/* =========================================================
   AGENDA - DESIGN (carte bordee ; chaque groupe = une zone :
   icone + nom + horaire optionnel, ses confs encadrees par un
   rail a gauche ; sessions icone(optionnelle) + nom, detail indente)
   Toutes les couleurs sont pilotees par les reglages du generateur
   (Titre de groupe / sous-groupe / sessions / description / icones /
   date-heure-lieu / section / ligne verticale / bordure de carte).
========================================================= */
.livio-agenda-design-template{
    border:2px solid var(--livio-agenda-design-border,#E5E7EB);
    border-radius:var(--livio-radius,22px);
    background:var(--livio-bg,#fff);
    padding:24px 28px 26px;
    box-sizing:border-box;
    box-shadow:0 12px 34px rgba(15,23,42,0.05);
}
.livio-agenda-design{display:block}

/* ── En-tete de groupe : icone (ou barre) + nom + horaire ── */
.livio-agenda-design-group{display:flex;align-items:center;gap:11px;margin:20px 0 8px}
.livio-agenda-design-group:first-child{margin-top:2px}
.livio-agenda-design-group-ico{
    flex-shrink:0;width:32px;height:32px;border-radius:9px;
    display:flex;align-items:center;justify-content:center;
    color:var(--livio-agenda-design-group-icon,var(--livio-agenda-group-title,#6F62EF));
    background:#eef0fb;
    background:color-mix(in srgb,var(--livio-agenda-design-group-icon,var(--livio-agenda-group-title,#6F62EF)) 14%,#ffffff);
}
.livio-agenda-design-group-ico svg{display:block;width:17px;height:17px}
.livio-agenda-design-group-bar{
    width:3px;height:16px;border-radius:2px;flex-shrink:0;
    background:var(--livio-agenda-group-title,#6F62EF);
}
.livio-agenda-design-group-text{display:flex;align-items:center;min-width:0}
.livio-agenda-design-group-name{
    font-size:var(--dg-grouptitle-size,13px);
    font-weight:var(--dg-grouptitle-weight,800);
    font-style:var(--dg-grouptitle-style,normal);
    text-decoration:var(--dg-grouptitle-decoration,none);
    letter-spacing:.06em;text-transform:uppercase;
    color:var(--livio-agenda-group-title,#6F62EF);
}
.livio-agenda-design-group-time{
    font-size:var(--dg-grouptime-size,12px);
    font-weight:var(--dg-grouptime-weight,800);
    font-style:var(--dg-grouptime-style,normal);
    text-decoration:var(--dg-grouptime-decoration,none);
    color:var(--livio-agenda-design-grouptime,var(--livio-agenda-datetime,#64748b));
    font-variant-numeric:tabular-nums;white-space:nowrap;
}
.livio-agenda-design-group-time::before{content:"·";margin:0 7px 0 3px;color:#c7ccd6;display:inline-block;text-decoration:none} /* inline-block : le soulignement de l'horaire ne s'étend pas au séparateur */
/* Horaire de groupe au-dessus du nom */
.livio-agenda-design-group--time-above .livio-agenda-design-group-text{flex-direction:column;align-items:flex-start;gap:1px}
.livio-agenda-design-group-time--above{letter-spacing:.02em}
.livio-agenda-design-group-time--above::before{content:none;margin:0}
/* Titre de groupe masqué : l'horaire est seul, pas de séparateur devant. */
.livio-agenda-design-group-time--alone::before{content:none;margin:0}
.livio-agenda-design-group--sub .livio-agenda-design-group-ico{
    width:28px;height:28px;
    color:var(--livio-agenda-design-group-icon,var(--livio-agenda-subgroup-title,#6B7280));
    background:color-mix(in srgb,var(--livio-agenda-design-group-icon,var(--livio-agenda-subgroup-title,#6B7280)) 14%,#ffffff);
}
.livio-agenda-design-group--sub .livio-agenda-design-group-bar{background:var(--livio-agenda-subgroup-title,#6B7280);height:13px}
.livio-agenda-design-group--sub .livio-agenda-design-group-name{
    color:var(--livio-agenda-subgroup-title,#6B7280);
    font-size:var(--dg-subgrouptitle-size,12px);
    font-weight:var(--dg-subgrouptitle-weight,800);
    font-style:var(--dg-subgrouptitle-style,normal);
    text-decoration:var(--dg-subgrouptitle-decoration,none);
    letter-spacing:.04em;
}

/* ── Zone du groupe : rail vertical a gauche encadrant les confs ── */
.livio-agenda-design-zone{
    /* Ligne verticale : épaisseur réglable + couleur (réglage dédié sinon couleur
       du titre de groupe teintée). */
    border-left-style:solid;
    border-left-width:var(--livio-agenda-design-line-width,3px);
    border-left-color:var(--livio-agenda-design-line,color-mix(in srgb,var(--livio-agenda-group-title,#6F62EF) 45%,#ffffff));
    padding-left:15px; /* fallback ; surchargé en inline selon l'indentation configurée */
    margin-bottom:14px;
}
/* Ligne des sous-groupes : suit « Titre de sous-groupe » (sauf réglage dédié). */
.livio-agenda-design-group--sub + .livio-agenda-design-zone{
    border-left-color:var(--livio-agenda-design-line,color-mix(in srgb,var(--livio-agenda-subgroup-title,#6B7280) 45%,#ffffff));
}

/* ── Session : icone (optionnelle) + nom ── */
.livio-agenda-design-item{display:flex;align-items:flex-start;gap:13px;padding:var(--dg-session-gap,6px) 0}
.livio-agenda-design-item--noicon{gap:0}
.livio-agenda-design-ico{
    flex-shrink:0;width:36px;height:36px;border-radius:11px;margin-top:1px;
    display:flex;align-items:center;justify-content:center;
    color:var(--livio-agenda-icon,#6F62EF);
    background:#f1eefe;
    background:color-mix(in srgb,var(--livio-agenda-icon,#6F62EF) 12%,#ffffff);
}
.livio-agenda-design-ico svg{display:block;width:18px;height:18px}
/* Session sans groupe, option « ligne verticale » (2.0.47) : présentée comme un
   groupe — en-tête (icône + horaire), puis la zone du groupe : le trait part sous
   l'icône et longe titre, description, intervenants et détails. Couleur et
   épaisseur = celles de .livio-agenda-design-zone. */
.livio-agenda-design-item--rail{display:block}
.livio-agenda-design-session-head{display:flex;align-items:center;gap:11px;margin-bottom:6px}
.livio-agenda-design-session-head .livio-agenda-design-ico{margin-top:0}
.livio-agenda-design-session-head .livio-agenda-design-conf-time{padding-top:0}
.livio-agenda-design-zone--session{margin-bottom:8px}
.livio-agenda-design-zone--session .livio-agenda-design-title{padding-top:0}
.livio-agenda-design-body{flex:1;min-width:0}
.livio-agenda-design-title{
    font-size:var(--dg-conftitle-size,16px);
    font-weight:var(--dg-conftitle-weight,800);
    font-style:var(--dg-conftitle-style,normal);
    text-decoration:var(--dg-conftitle-decoration,none);
    line-height:1.4;padding-top:6px;
    color:var(--livio-agenda-conf-title,#1F2937);
}
.livio-agenda-design-item--noicon .livio-agenda-design-title{padding-top:0}
/* Horaire de session (optionnel, layout Design) — au-dessus du nom */
.livio-agenda-design-conf-time{
    font-size:var(--dg-time-size,12px);
    font-weight:var(--dg-time-weight,800);
    font-style:var(--dg-time-style,normal);
    text-decoration:var(--dg-time-decoration,none);
    padding-top:6px;
    color:var(--livio-agenda-datetime,#64748b);
    font-variant-numeric:tabular-nums;
}
.livio-agenda-design-conf-time + .livio-agenda-design-title{padding-top:1px}
.livio-agenda-design-item--noicon .livio-agenda-design-conf-time{padding-top:0}
/* Horaire de session à côté du titre (réglage « Horaire des sessions — position ») :
   frères dans une ligne flex, pour que le soulignement du titre ne déborde pas sur l'horaire. */
.livio-agenda-design-title-row{display:flex;flex-wrap:wrap;align-items:baseline}
.livio-agenda-design-conf-time--beside{padding-top:0;white-space:nowrap}
.livio-agenda-design-conf-time--beside::before{content:"·";margin:0 7px 0 7px;color:#c7ccd6;font-weight:400;text-decoration:none;display:inline-block}

/* ── Detail (description / intervenants / meta) indente avec barre ── */
.livio-agenda-design-detail{
    margin-top:7px;padding-left:14px;border-radius:2px;
    border-left:3px solid color-mix(in srgb,var(--livio-agenda-icon,#6F62EF) 40%,#ffffff);
    color:var(--livio-agenda-conf-text,#1F2937);
    font-size:13.5px;line-height:1.7;
}
.livio-agenda-design-detail>div{margin-bottom:3px}
.livio-agenda-design-detail>div:last-child{margin-bottom:0}
.livio-agenda-design-desc{
    font-size:var(--dg-description-size,14px);
    font-weight:var(--dg-description-weight,400);
    font-style:var(--dg-description-style,normal);
    text-decoration:var(--dg-description-decoration,none);
}
.livio-agenda-design-desc p{margin:0 0 3px}
.livio-agenda-design-people{
    color:var(--livio-agenda-speakers,#1F2937);
    font-size:var(--dg-speakers-size,14px);
    font-weight:var(--dg-speakers-weight,400);
    font-style:var(--dg-speakers-style,normal);
    text-decoration:var(--dg-speakers-decoration,none);
}
.livio-agenda-design-limited{font-weight:700}
.livio-agenda-design-meta{
    color:var(--livio-agenda-datetime,#64748b);
    font-size:var(--dg-meta-size,13px);
    font-weight:var(--dg-meta-weight,400);
    font-style:var(--dg-meta-style,normal);
    text-decoration:var(--dg-meta-decoration,none);
}
.livio-agenda-design-meta--section{color:var(--livio-agenda-section,#6F62EF)}

.livio-agenda-item-card {
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    background: var(--livio-bg, #ffffff);
    padding: 18px;
    transition: all 0.2s ease;
}

.livio-agenda-item-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

.livio-agenda-item-meta {
    font-size: 13px;
    color: var(--livio-agenda-datetime, #64748b);
    margin-bottom: 8px;
}

.livio-agenda-item-title {
    margin: 0 0 10px;
    font-size: 18px;
    font-weight: 700;
    color: var(--livio-agenda-conf-title, #1F2937);
}

.livio-agenda-item-location {
    font-size: 14px;
    color: var(--livio-agenda-datetime, #64748b);
    margin-bottom: 10px;
}

.livio-agenda-item-section {
    font-size: 13px;
    color: var(--livio-agenda-section, #6f62ef);
    font-weight: 600;
    margin-bottom: 8px;
}

.livio-agenda-item-people {
    font-size: 14px;
    color: var(--livio-agenda-speakers, #1F2937);
    margin-bottom: 6px;
}

.livio-agenda-item-description {
    margin-top: 12px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--livio-agenda-conf-text, #1F2937);
}

.livio-agenda-item-separator {
    color: var(--livio-agenda-datetime, #94a3b8);
    margin: 0 6px;
}

/* =========================================================
   AGENDA - ACCORDION
========================================================= */

.livio-agenda-accordion-item {
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    margin-bottom: 14px;
    overflow: hidden;
    background: var(--livio-bg, #ffffff);
}

.livio-agenda-accordion-summary {
    padding: 16px 18px;
    cursor: pointer;
    list-style: none;
}

.livio-agenda-accordion-summary::-webkit-details-marker {
    display: none;
}

.livio-agenda-accordion-title {
    font-weight: 700;
    font-size: 16px;
    color: var(--livio-agenda-conf-title, #1F2937);
}

.livio-agenda-accordion-meta {
    display: block;
    font-size: 13px;
    color: var(--livio-agenda-datetime, #64748b);
    margin-top: 4px;
}

.livio-agenda-accordion-content {
    padding: 16px 18px;
    border-top: 1px solid var(--livio-border, #e5e7eb);
}

/* =========================================================
   AGENDA - CARDS
========================================================= */

.livio-agenda-cards-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(var(--livio-cols-desktop, 2), 1fr);
}

@media (max-width: 1024px) {
    .livio-agenda-cards-grid {
        grid-template-columns: repeat(var(--livio-cols-tablet, 1), 1fr);
    }
}

@media (max-width: 640px) {
    .livio-agenda-cards-grid {
        grid-template-columns: repeat(var(--livio-cols-mobile, 1), 1fr);
    }
}

.livio-agenda-card {
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    background: var(--livio-bg, #ffffff);
    padding: 18px;
    transition: all 0.2s ease;
}

.livio-agenda-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 35px rgba(0,0,0,0.08);
}

.livio-agenda-card-meta {
    font-size: 13px;
    color: var(--livio-agenda-datetime, #64748b);
    margin-bottom: 8px;
}

.livio-agenda-card-title {
    font-size: 17px;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--livio-agenda-conf-title, #1F2937);
}

/* =========================================================
   AGENDA - TIMELINE / ACCORDION / CARDS / COMPACT : réglages
   repris du layout Design (plugin 2.0.45).
   La typographie passe par des classes livio-typo-<élément>-<propriété>
   que le renderer pose sur le wrapper SEULEMENT quand un réglage quitte
   sa valeur par défaut : sans réglage, aucune règle de ce bloc ne
   s'applique et chaque layout garde ses tailles et graisses propres.
========================================================= */
/* En-tête de groupe : icône du groupe à la place de la barre (option) */
.livio-agenda-group-ico{
    flex-shrink:0;width:28px;height:28px;border-radius:8px;
    display:flex;align-items:center;justify-content:center;
    color:var(--livio-agenda-group-icon,var(--livio-agenda-group-title,#6F62EF));
    background:#eef0fb;
    background:color-mix(in srgb,var(--livio-agenda-group-icon,var(--livio-agenda-group-title,#6F62EF)) 14%,#ffffff);
}
.livio-agenda-group-ico svg,.livio-agenda-group-ico img{display:block;width:16px;height:16px}
.livio-agenda-group--sub .livio-agenda-group-ico{
    color:var(--livio-agenda-group-icon,var(--livio-agenda-subgroup-title,#6B7280));
    background:color-mix(in srgb,var(--livio-agenda-group-icon,var(--livio-agenda-subgroup-title,#6B7280)) 14%,#ffffff);
}
/* Horaire du groupe (option) : à côté du nom ou au-dessus */
.livio-agenda-group-text{display:flex;align-items:center;flex-wrap:wrap;min-width:0}
.livio-agenda-group--time-above .livio-agenda-group-text{flex-direction:column;align-items:flex-start;gap:1px}
.livio-agenda-group-time{
    font-size:12px;font-weight:700;white-space:nowrap;
    color:var(--livio-agenda-grouptime,var(--livio-agenda-datetime,#64748b));
}
.livio-agenda-group-time::before{content:"·";margin:0 7px;color:#c7ccd6;display:inline-block;text-decoration:none;font-weight:400;font-style:normal}
.livio-agenda-group-time--above::before,.livio-agenda-group-time--alone::before{content:none;margin:0}
/* Horaire de session à côté du titre (Timeline / Accordion / Cards) : frères
   dans une ligne flex, le soulignement du titre ne déborde pas sur l'horaire. */
.livio-agenda-title-row{display:flex;flex-wrap:wrap;align-items:baseline}
.livio-agenda-time--beside{font-size:13px;white-space:nowrap;color:var(--livio-agenda-datetime,#64748b)}
.livio-agenda-time--beside::before{content:"·";margin:0 7px;color:#c7ccd6;display:inline-block;text-decoration:none;font-weight:400;font-style:normal}
/* Typographie par élément */
.livio-typo-grouptitle-size .livio-agenda-group:not(.livio-agenda-group--sub) .livio-agenda-group-name{font-size:var(--ag-grouptitle-size)}
.livio-typo-grouptitle-weight .livio-agenda-group:not(.livio-agenda-group--sub) .livio-agenda-group-name{font-weight:var(--ag-grouptitle-weight)}
.livio-typo-grouptitle-italic .livio-agenda-group:not(.livio-agenda-group--sub) .livio-agenda-group-name{font-style:italic}
.livio-typo-grouptitle-underline .livio-agenda-group:not(.livio-agenda-group--sub) .livio-agenda-group-name{text-decoration:underline}
.livio-typo-subgrouptitle-size .livio-agenda-group--sub .livio-agenda-group-name{font-size:var(--ag-subgrouptitle-size)}
.livio-typo-subgrouptitle-weight .livio-agenda-group--sub .livio-agenda-group-name{font-weight:var(--ag-subgrouptitle-weight)}
.livio-typo-subgrouptitle-italic .livio-agenda-group--sub .livio-agenda-group-name{font-style:italic}
.livio-typo-subgrouptitle-underline .livio-agenda-group--sub .livio-agenda-group-name{text-decoration:underline}
.livio-typo-conftitle-size .livio-agenda-item-title,.livio-typo-conftitle-size .livio-agenda-accordion-title,.livio-typo-conftitle-size .livio-agenda-card-title,.livio-typo-conftitle-size .livio-agenda-compact-title{font-size:var(--ag-conftitle-size)}
.livio-typo-conftitle-weight .livio-agenda-item-title,.livio-typo-conftitle-weight .livio-agenda-accordion-title,.livio-typo-conftitle-weight .livio-agenda-card-title,.livio-typo-conftitle-weight .livio-agenda-compact-title{font-weight:var(--ag-conftitle-weight)}
.livio-typo-conftitle-italic .livio-agenda-item-title,.livio-typo-conftitle-italic .livio-agenda-accordion-title,.livio-typo-conftitle-italic .livio-agenda-card-title,.livio-typo-conftitle-italic .livio-agenda-compact-title{font-style:italic}
.livio-typo-conftitle-underline .livio-agenda-item-title,.livio-typo-conftitle-underline .livio-agenda-accordion-title,.livio-typo-conftitle-underline .livio-agenda-card-title,.livio-typo-conftitle-underline .livio-agenda-compact-title{text-decoration:underline}
.livio-typo-description-size .livio-agenda-item-description,.livio-typo-description-size .livio-agenda-compact-desc{font-size:var(--ag-description-size)}
.livio-typo-description-weight .livio-agenda-item-description,.livio-typo-description-weight .livio-agenda-compact-desc{font-weight:var(--ag-description-weight)}
.livio-typo-description-italic .livio-agenda-item-description,.livio-typo-description-italic .livio-agenda-compact-desc{font-style:italic}
.livio-typo-description-underline .livio-agenda-item-description,.livio-typo-description-underline .livio-agenda-compact-desc{text-decoration:underline}
.livio-typo-speakers-size .livio-agenda-item-people{font-size:var(--ag-speakers-size)}
.livio-typo-speakers-weight .livio-agenda-item-people{font-weight:var(--ag-speakers-weight)}
.livio-typo-speakers-italic .livio-agenda-item-people{font-style:italic}
.livio-typo-speakers-underline .livio-agenda-item-people{text-decoration:underline}
.livio-typo-time-size .livio-agenda-item-time,.livio-typo-time-size .livio-agenda-accordion-time,.livio-typo-time-size .livio-agenda-card-time,.livio-typo-time-size .livio-agenda-compact-time{font-size:var(--ag-time-size)}
.livio-typo-time-weight .livio-agenda-item-time,.livio-typo-time-weight .livio-agenda-accordion-time,.livio-typo-time-weight .livio-agenda-card-time,.livio-typo-time-weight .livio-agenda-compact-time{font-weight:var(--ag-time-weight)}
.livio-typo-time-italic .livio-agenda-item-time,.livio-typo-time-italic .livio-agenda-accordion-time,.livio-typo-time-italic .livio-agenda-card-time,.livio-typo-time-italic .livio-agenda-compact-time{font-style:italic}
.livio-typo-time-underline .livio-agenda-item-time,.livio-typo-time-underline .livio-agenda-accordion-time,.livio-typo-time-underline .livio-agenda-card-time,.livio-typo-time-underline .livio-agenda-compact-time{text-decoration:underline}
.livio-typo-grouptime-size .livio-agenda-group-time{font-size:var(--ag-grouptime-size)}
.livio-typo-grouptime-weight .livio-agenda-group-time{font-weight:var(--ag-grouptime-weight)}
.livio-typo-grouptime-italic .livio-agenda-group-time{font-style:italic}
.livio-typo-grouptime-underline .livio-agenda-group-time{text-decoration:underline}
.livio-typo-meta-size .livio-agenda-item-date,.livio-typo-meta-size .livio-agenda-accordion-date,.livio-typo-meta-size .livio-agenda-card-date,.livio-typo-meta-size .livio-agenda-compact-date,.livio-typo-meta-size .livio-agenda-item-location,.livio-typo-meta-size .livio-agenda-item-section{font-size:var(--ag-meta-size)}
.livio-typo-meta-weight .livio-agenda-item-date,.livio-typo-meta-weight .livio-agenda-accordion-date,.livio-typo-meta-weight .livio-agenda-card-date,.livio-typo-meta-weight .livio-agenda-compact-date,.livio-typo-meta-weight .livio-agenda-item-location,.livio-typo-meta-weight .livio-agenda-item-section{font-weight:var(--ag-meta-weight)}
.livio-typo-meta-italic .livio-agenda-item-date,.livio-typo-meta-italic .livio-agenda-accordion-date,.livio-typo-meta-italic .livio-agenda-card-date,.livio-typo-meta-italic .livio-agenda-compact-date,.livio-typo-meta-italic .livio-agenda-item-location,.livio-typo-meta-italic .livio-agenda-item-section{font-style:italic}
.livio-typo-meta-underline .livio-agenda-item-date,.livio-typo-meta-underline .livio-agenda-accordion-date,.livio-typo-meta-underline .livio-agenda-card-date,.livio-typo-meta-underline .livio-agenda-compact-date,.livio-typo-meta-underline .livio-agenda-item-location,.livio-typo-meta-underline .livio-agenda-item-section{text-decoration:underline}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 640px) {
    .livio-agenda-timeline {
        padding-left: 20px;
    }

    .livio-agenda-item-rail {
        left: -12px;
    }

    .livio-agenda-item-dot {
        left: -4px;
    }

    .livio-agenda-card,
    .livio-agenda-item-card {
        padding: 14px;
    }
}




/* =========================================================
   SPEAKERS - COMMON
========================================================= */

.livio-speaker-card,
.livio-speaker-row,
.livio-speaker-slide {
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    background: var(--livio-bg, #ffffff);
    transition: all 0.2s ease;
}

.livio-speaker-card:hover,
.livio-speaker-row:hover,
.livio-speaker-slide:hover {
    transform: translateY(-2px);
}

.livio-speaker-name {
    margin: 0 0 var(--sp-name-gap, 8px);
    font-size: var(--sp-name-size, 18px);
    line-height: 1.3;
    font-weight: var(--sp-name-weight, 700);
    font-style: var(--sp-name-style, normal);
    text-decoration: var(--sp-name-decoration, none);
    text-transform: var(--sp-name-transform, none);
    color: var(--sp-name-color, var(--livio-text, #1f2937));
}

.livio-speaker-role {
    font-size: var(--sp-role-size, 14px);
    line-height: 1.4;
    color: var(--sp-role-color, #64748b);
    font-weight: var(--sp-role-weight, 600);
    font-style: var(--sp-role-style, normal);
    text-decoration: var(--sp-role-decoration, none);
    text-transform: var(--sp-role-transform, none);
}

.livio-speaker-media {
    position: relative;
    margin-bottom: 14px;
}

.livio-speaker-avatar,
.livio-speaker-photo {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    overflow: hidden;
    background: #eef2ff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.livio-speaker-avatar {
    color: #6f62ef;
    font-size: 26px;
    font-weight: 700;
}

.livio-speaker-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.livio-speaker-linkedin {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 34px;
    height: 34px;
    border-radius: 5px;
    background: var(--sp-linkedin-bg, #0a66c2);
    color: var(--sp-linkedin-color, #ffffff) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 16px rgba(10, 102, 194, 0.22);
}

.livio-speaker-linkedin svg {
    width: 18px;
    height: 18px;
    display: block;
}

/* =========================================================
   SPEAKERS - GRID
========================================================= */

.livio-speakers-grid {
    display: grid;
    gap: var(--sp-gap, 20px);
    grid-template-columns: repeat(var(--livio-cols-desktop, 3), 1fr);
}

@media (max-width: 1024px) {
    .livio-speakers-grid {
        grid-template-columns: repeat(var(--livio-cols-tablet, 2), 1fr);
    }
}

@media (max-width: 640px) {
    .livio-speakers-grid {
        grid-template-columns: repeat(var(--livio-cols-mobile, 1), 1fr);
    }
}

.livio-speaker-card {
    padding: 20px;
    text-align: var(--sp-align, center);
}

.livio-speaker-card .livio-speaker-media {
    display: flex;
    justify-content: center;
}

/* =========================================================
   SPEAKERS - LIST
========================================================= */

.livio-speakers-list {
    display: block;
}

.livio-speaker-row {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 16px 18px;
    margin-bottom: 16px;
}

.livio-speaker-row .livio-speaker-media {
    margin-bottom: 0;
    min-width: 84px;
}

.livio-speaker-row-content {
    flex: 1;
    min-width: 0;
}

/* =========================================================
   SPEAKERS - CAROUSEL
========================================================= */

.livio-speakers-carousel {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    scrollbar-width: none;
    scroll-behavior: smooth;
}

.livio-speakers-carousel::-webkit-scrollbar {
    display: none;
}

.livio-speaker-slide {
    flex: 0 0 calc((100% - (var(--livio-cols-desktop, 3) - 1) * 16px) / var(--livio-cols-desktop, 3));
    padding: 20px;
    text-align: center;
    scroll-snap-align: start;
}

@media (max-width: 1024px) and (min-width: 641px) {
    .livio-speaker-slide {
        flex: 0 0 calc((100% - (var(--livio-cols-tablet, 2) - 1) * 16px) / var(--livio-cols-tablet, 2));
    }
}

@media (max-width: 640px) {
    .livio-speaker-slide {
        flex: 0 0 85%;
    }
}

.livio-speaker-slide .livio-speaker-media {
    display: flex;
    justify-content: center;
}

/* =========================================================
   SPEAKERS - RESPONSIVE
========================================================= */

@media (max-width: 640px) {
    .livio-speaker-row {
        flex-direction: column;
        align-items: flex-start;
    }
}




/* =========================================================
   PARTNERS - COMMON
========================================================= */

.livio-partner-card,
.livio-partner-card-full {
    background: var(--livio-bg, #ffffff);
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    transition: all 0.2s ease;
}

.livio-partner-card:hover,
.livio-partner-card-full:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(15, 23, 42, 0.08);
}

.livio-partner-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

.livio-partner-logo img {
    max-width: 100%;
    height: auto;
    display: block;
}

.livio-partner-name {
    margin: 0 0 8px;
    font-size: 18px;
    line-height: 1.3;
    font-weight: 700;
    color: var(--livio-text, #1f2937);
}

.livio-partner-type,
.livio-partner-pack,
.livio-partner-category,
.livio-partner-stand {
    font-size: 14px;
    line-height: 1.5;
    color: #64748b;
    margin-top: 6px;
}

.livio-partner-description {
    margin: 12px 0 0;
    font-size: 14px;
    line-height: 1.6;
    color: #334155;
}

.livio-partner-website,
.livio-partner-video {
    margin-top: 14px;
}

.livio-partner-website a,
.livio-partner-video a {
    display: inline-block;
    padding: 9px 14px;
    border-radius: 10px;
    background: #f8fafc;
    color: #1f2937;
    font-size: 14px;
    font-weight: 600;
    border: 1px solid #e5e7eb;
}

.livio-partner-website a:hover,
.livio-partner-video a:hover {
    background: #eef2ff;
    border-color: #c7d2fe;
}

/* =========================================================
   PARTNERS - GRID
========================================================= */

.livio-partners-grid-inner {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(var(--livio-cols-desktop, 4), 1fr);
}

@media (max-width: 1024px) {
    .livio-partners-grid-inner {
        grid-template-columns: repeat(var(--livio-cols-tablet, 3), 1fr);
    }
}

@media (max-width: 640px) {
    .livio-partners-grid-inner {
        grid-template-columns: repeat(var(--livio-cols-mobile, 2), 1fr);
    }
}

.livio-partner-card {
    padding: 22px 18px;
    text-align: center;
}

.livio-partner-card .livio-partner-logo {
    width: 100%;
    min-height: 80px;
    margin-bottom: 16px;
}

.livio-partner-card .livio-partner-logo img {
    max-height: 70px;
    object-fit: contain;
}

/* =========================================================
   PARTNERS - CARDS
========================================================= */

.livio-partners-cards-inner {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(var(--livio-cols-desktop, 3), 1fr);
}

@media (max-width: 1024px) {
    .livio-partners-cards-inner {
        grid-template-columns: repeat(var(--livio-cols-tablet, 2), 1fr);
    }
}

@media (max-width: 640px) {
    .livio-partners-cards-inner {
        grid-template-columns: repeat(var(--livio-cols-mobile, 1), 1fr);
    }
}

.livio-partner-card-full {
    overflow: hidden;
}

.livio-partner-cover {
    width: 100%;
    height: 180px;
    background: #f8fafc;
    overflow: hidden;
}

.livio-partner-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.livio-partner-content {
    padding: 20px;
}

.livio-partner-card-full .livio-partner-logo {
    width: 100%;
    min-height: 72px;
    margin-bottom: 16px;
}

.livio-partner-card-full .livio-partner-logo img {
    max-height: 64px;
    object-fit: contain;
}

/* =========================================================
   PARTNERS - LOGOS (inchangé)
========================================================= */

.livio-partners-logos-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    align-items: center;
    justify-content: flex-start;
}

.livio-partner-logo-item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 140px;
    min-height: 70px;
    padding: 14px 18px;
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 16px);
    background: var(--livio-bg, #ffffff);
}

.livio-partner-logo-item img {
    max-width: 100%;
    max-height: 52px;
    object-fit: contain;
    opacity: 0.9;
}

@media (max-width: 640px) {
    .livio-partners-logos-inner {
        gap: 16px;
    }

    .livio-partner-logo-item {
        width: calc(50% - 8px);
        min-width: 0;
    }

    .livio-partner-cover {
        height: 150px;
    }
}

/* =========================================================
   PARTNERS - CAROUSEL (dots sur toutes les tailles)
========================================================= */

.livio-partners-carousel-track {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 4px;
}

.livio-partners-carousel-track::-webkit-scrollbar {
    display: none;
}

/* Desktop : N slides par vue */
.livio-partner-slide {
    flex: 0 0 calc((100% - (var(--livio-cols-desktop, 3) - 1) * 16px) / var(--livio-cols-desktop, 3));
    border: 1px solid var(--livio-border, #e5e7eb);
    border-radius: var(--livio-radius, 18px);
    background: var(--livio-bg, #ffffff);
    color: var(--livio-text, #1f2937);
    padding: 20px;
    box-sizing: border-box;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

@media (max-width: 1024px) and (min-width: 641px) {
    .livio-partner-slide {
        flex: 0 0 calc((100% - (var(--livio-cols-tablet, 2) - 1) * 16px) / var(--livio-cols-tablet, 2));
    }
}

/* Mobile : 85% + aperçu suivant */
@media (max-width: 640px) {
    .livio-partner-slide {
        flex: 0 0 85%;
    }
}

.livio-partner-slide-logo {
    width: 80px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.livio-partner-slide-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.livio-partner-slide-name {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--livio-text, #1f2937);
}

.livio-partner-slide-stand,
.livio-partner-slide-pack,
.livio-partner-slide-category {
    font-size: 13px;
    color: #6b7280;
}

.livio-partner-slide-website {
    display: inline-block;
    margin-top: 6px;
    font-size: 13px;
    color: #6f62ef;
    text-decoration: none;
    font-weight: 600;
}

.livio-partner-slide-website:hover {
    text-decoration: underline;
}

/* =========================================================
   PARTNERS - SLIDER (dots desktop, swipe mobile)
========================================================= */

.livio-partners-slider-track {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 4px;
}

.livio-partners-slider-track::-webkit-scrollbar {
    display: none;
}

/* Slide pleine largeur (pour le slider) */
.livio-partner-slide-full {
    flex: 0 0 calc((100% - (var(--livio-cols-desktop, 2) - 1) * 16px) / var(--livio-cols-desktop, 2));
    flex-direction: column;
    padding: 0;
    overflow: hidden;
}

@media (max-width: 1024px) and (min-width: 641px) {
    .livio-partner-slide-full {
        flex: 0 0 calc((100% - (var(--livio-cols-tablet, 1) - 1) * 16px) / var(--livio-cols-tablet, 1));
    }
}

@media (max-width: 640px) {
    .livio-partner-slide-full {
        flex: 0 0 85%;
    }
}

.livio-partner-slide-cover {
    width: 100%;
    height: 200px;
    overflow: hidden;
    border-radius: var(--livio-radius, 18px) var(--livio-radius, 18px) 0 0;
}

.livio-partner-slide-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.livio-partner-slide-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.livio-partner-slide-desc {
    margin: 0;
    font-size: 14px;
    color: #6b7280;
    line-height: 1.5;
}

/* =========================================================
   LIVIO FORM — Section d'inscription (formulaire natif)
========================================================= */

.livio-form-section {
    width: 100%;
    box-sizing: border-box;
}

.livio-form-section *,
.livio-form-section *:before,
.livio-form-section *:after {
    box-sizing: border-box;
}

/* ── Titre de section ── */
.livio-form-section-title {
    text-align: center;
    margin-bottom: 32px;
}

.livio-form-section-title h2 {
    font-size: clamp(22px, 3vw, 36px);
    font-weight: 800;
    color: var(--livio-form-text, #1f2937);
    margin: 0 0 10px;
    line-height: 1.2;
}

.livio-form-section-line {
    width: 48px;
    height: 4px;
    background: #6f62ef;
    border-radius: 2px;
    margin: 0 auto;
}

/* ── Zone body (remplie par JS) ── */
.livio-form-body {
    width: 100%;
}

/* ── Spinner de chargement initial ── */
.livio-form-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 48px 20px;
    font-size: 14px;
    color: #6b7280;
}

.livio-form-spinner {
    display: inline-block;
    width: 36px;
    height: 36px;
    border: 3px solid #e5e7eb;
    border-top-color: #6f62ef;
    border-radius: 50%;
    animation: livioFormSpin 0.7s linear infinite;
}

@keyframes livioFormSpin {
    to { transform: rotate(360deg); }
}

/* ── Chooser ── */
.livio-form-chooser {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.livio-form-chooser-label {
    font-size: 15px;
    color: var(--livio-form-overlay, var(--livio-form-text, #1f2937));
    font-weight: 600;
    margin: 0;
    opacity: 0.7;
}

.livio-form-chooser-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
}

.livio-form-chooser-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 28px;
    background: var(--livio-form-bg, #ffffff);
    border: 2px solid #e5e7eb;
    border-radius: var(--livio-form-radius, 18px);
    color: var(--livio-form-text, #1f2937);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s, background 0.18s;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    min-width: 200px;
    text-align: left;
}

.livio-form-chooser-btn:hover,
.livio-form-chooser-btn:focus-visible {
    border-color: #6f62ef;
    background: #f5f3ff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(111,98,239,0.15);
    outline: none;
}

.livio-form-chooser-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background: linear-gradient(135deg, #6f62ef 0%, #8b7ff0 100%);
    color: #fff;
    border-radius: 10px;
    flex-shrink: 0;
}

.livio-form-chooser-btn-name { flex: 1; }

.livio-form-chooser-btn-arrow {
    color: #6f62ef;
    font-size: 18px;
    opacity: 0;
    transition: opacity 0.18s, transform 0.18s;
}

.livio-form-chooser-btn:hover .livio-form-chooser-btn-arrow {
    opacity: 1;
    transform: translateX(4px);
}

/* ── Zone formulaire (après sélection type) ── */
.livio-form-embed-wrap {
    width: 100%;
}

.livio-form-embed-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-bottom: 24px;
}

.livio-form-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: transparent;
    color: var(--livio-form-overlay, #6f62ef);
    border: 1.5px solid var(--livio-form-overlay, #ddd6fe);
    border-radius: 50px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.15s;
    opacity: 0.85;
}

.livio-form-back-btn:hover { opacity: 1; }

.livio-form-embed-type-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--livio-form-overlay, var(--livio-form-text, #1f2937));
}

/* ── Formulaire natif ── */
.livio-native-form-wrap {
    max-width: 620px;
    margin: 0 auto;
    background: var(--livio-form-bg, #ffffff);
    border-radius: var(--livio-form-radius, 18px);
    padding: 40px 48px;
    border: 1px solid #e5e7eb;
}

.livio-native-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ── Champs ── */
.livio-form-row {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Label par defaut (radio / checkbox). Les champs texte/select/textarea/tel
   utilisent la variante flottante facon MUI (regles plus bas). */
.livio-form-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--livio-form-text, #1f2937);
    letter-spacing: 0.01em;
    margin: 0;
}

.livio-form-required {
    color: #ef4444;
    font-weight: 700;
}

.livio-form-control {
    width: 100%;
    padding: 15px 14px;
    font-size: 16px;
    line-height: 1.4;
    min-height: 56px;
    color: var(--livio-form-text, #1f2937);
    background: var(--livio-form-bg, #ffffff);
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    transition: border-color 0.15s, box-shadow 0.15s;
    outline: none;
    font-family: inherit;
    box-sizing: border-box;
}

.livio-form-control:hover {
    border-color: #9aa3b2;
}

.livio-form-control:focus {
    border-color: #6f62ef;
    box-shadow: 0 0 0 1px #6f62ef;
}

/* Autofill : conserver le fond du champ + la couleur du texte */
.livio-form-control:-webkit-autofill,
.livio-form-control:-webkit-autofill:hover,
.livio-form-control:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--livio-form-text, #1f2937);
    -webkit-box-shadow: 0 0 0 1000px var(--livio-form-bg, #ffffff) inset;
    caret-color: var(--livio-form-text, #1f2937);
}

/* ── Label flottant facon MUI outlined ──
   Etat repos : centre verticalement dans le champ.
   Etat flottant (focus / rempli / champ "always") : remonte sur la bordure. */
.livio-form-control + .livio-form-label,
.livio-form-row--float-always > .livio-form-label {
    position: absolute;
    left: 11px;
    /* 28px = moitie de la hauteur min du champ (56px) : centre le label dans le
       champ independamment d'un eventuel hint en dessous (ex: email). */
    top: 28px;
    transform: translateY(-50%);
    transform-origin: left center;
    margin: 0;
    padding: 0 5px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    color: #6b7280;
    background: var(--livio-form-bg, #ffffff);
    pointer-events: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: calc(100% - 22px);
    transition: top 0.15s ease, transform 0.15s ease, color 0.15s ease;
}
.livio-form-control:focus + .livio-form-label,
.livio-form-control:not(:placeholder-shown) + .livio-form-label,
.livio-form-row--float-always > .livio-form-label {
    top: 0;
    transform: translateY(-50%) scale(0.82);
}
.livio-form-control:focus + .livio-form-label {
    color: #6f62ef;
}
/* Textarea : label en haut au repos (pas centre sur la zone haute) */
.livio-form-row--textarea .livio-form-control + .livio-form-label {
    top: 20px;
    transform: none;
}
.livio-form-row--textarea .livio-form-control:focus + .livio-form-label,
.livio-form-row--textarea .livio-form-control:not(:placeholder-shown) + .livio-form-label {
    top: 0;
    transform: translateY(-50%) scale(0.82);
}

.livio-form-control-error {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 3px rgba(239,68,68,0.1) !important;
}

select.livio-form-control { cursor: pointer; }
textarea.livio-form-control { resize: vertical; min-height: 80px; }

/* ── Radio buttons ── */
.livio-form-radios {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
}

.livio-form-radio-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--livio-form-text, #1f2937);
    cursor: pointer;
}

.livio-form-radio-label input[type="radio"] {
    accent-color: #6f62ef;
    width: 16px;
    height: 16px;
    cursor: pointer;
}

/* ── Checkbox ── */
.livio-form-checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: var(--livio-form-text, #1f2937);
    cursor: pointer;
}

.livio-form-checkbox-label input[type="checkbox"] {
    accent-color: #6f62ef;
    width: 16px;
    height: 16px;
    cursor: pointer;
    flex-shrink: 0;
}

/* ── Hints (validation email) ── */
.livio-form-field-hint {
    font-size: 12px;
    min-height: 16px;
    transition: color 0.15s;
}
/* Pas d'espace reserve tant qu'aucun message (erreur/validation) n'est affiche :
   display:none retire le hint du flux (sinon le gap:6px de .livio-form-row
   laisse un vide sous Email/Telephone a l'arrivee sur le formulaire). */
.livio-form-field-hint:empty {
    display: none;
}

.livio-form-field-hint-checking { color: #6b7280; }
.livio-form-field-hint-error    { color: #ef4444; }
.livio-form-field-hint-ok       { color: #10b981; }
.livio-form-field-hint-info     { color: #6b7280; }

/* ── Champ code ── */
.livio-form-code-row .livio-form-control {
    letter-spacing: 2px;
    text-transform: uppercase;
}

/* ── Alertes ── */
.livio-form-alert {
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
}

.livio-form-alert-error {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}

.livio-form-alert-warning {
    background: #fffbeb;
    color: #d97706;
    border: 1px solid #fde68a;
}

.livio-form-global-error { margin-top: 4px; }

/* ── Bouton de soumission ── */
.livio-form-submit-row {
    margin-top: 8px;
}

.livio-form-submit-btn {
    width: 100%;
    padding: 14px 28px;
    background: linear-gradient(135deg, #6f62ef 0%, #8b7ff0 100%);
    color: #fff;
    border: none;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: opacity 0.18s, transform 0.18s, box-shadow 0.18s;
    box-shadow: 0 4px 16px rgba(111,98,239,0.28);
    letter-spacing: 0.3px;
    font-family: inherit;
}

.livio-form-submit-btn:hover:not(:disabled) {
    opacity: 0.9;
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(111,98,239,0.35);
}

.livio-form-submit-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

/* ── Ecran de succès ── */
.livio-form-success {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 48px 32px;
    gap: 12px;
    background: var(--livio-form-bg, #ffffff);
    border-radius: var(--livio-form-radius, 18px);
    border: 1px solid #e5e7eb;
    max-width: 600px;
    margin: 0 auto;
}

.livio-form-success-icon { margin-bottom: 8px; }

.livio-form-success-title {
    font-size: 22px;
    font-weight: 800;
    color: var(--livio-form-text, #1f2937);
    margin: 0;
}

.livio-form-success-msg {
    font-size: 15px;
    color: #6b7280;
    margin: 0;
    line-height: 1.6;
}

.livio-form-success-note {
    font-size: 13px;
    color: #9ca3af;
    margin: 0;
    font-style: italic;
}

/* ── Section background image ── */
.livio-form-section.livio-form-has-bg-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 48px 24px;
    border-radius: var(--livio-form-radius, 18px);
}

/* ── Layout 2 colonnes ── */
/* Override single-col styles */
.livio-native-form-wrap.livio-native-form-2col {
    display: flex;
    gap: 24px;
    max-width: 1060px;
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    overflow: visible;
    min-height: unset;
}

/* Chaque colonne est sa propre carte.
   align-self: flex-start = la colonne image ne s'etire PAS a la hauteur du
   formulaire (sinon l'image serait rognee). position: sticky = l'image suit le
   scroll quand le formulaire est plus haut qu'elle. */
.livio-form-2col-image {
    flex: 1 1 0;
    min-width: 0;
    align-self: flex-start;
    position: sticky;
    /* 110px = marge au-dessus pour ne pas passer sous le menu fixe du site WP
       (header sticky du theme). 20px laissait l'image glisser sous le menu. */
    top: 110px;
    border-radius: var(--livio-form-radius, 18px);
    overflow: hidden;
    background: #1a1a2e;
    box-shadow: 0 4px 24px rgba(0,0,0,0.15);
}

/* Image TOUJOURS complete : largeur 100% de la colonne, hauteur auto (ratio
   naturel), jamais rognee. La colonne se dimensionne a l'image. */
.livio-form-2col-img {
    width: 100%;
    height: auto;
    display: block;
}

.livio-form-2col-form {
    flex: 1 1 0;
    min-width: 0;
    padding: 40px 44px;
    background: var(--livio-form-bg, #ffffff);
    border-radius: var(--livio-form-radius, 18px);
    border: 1px solid #e5e7eb;
    box-shadow: 0 4px 24px rgba(0,0,0,0.07);
}

/* Quand pas d'image en mode 2col : fallback 1col centré */
.livio-native-form-2col.livio-native-form-2col-noimg {
    display: block;
    max-width: 620px;
    background: var(--livio-form-bg, #ffffff);
    border: 1px solid #e5e7eb;
    border-radius: var(--livio-form-radius, 18px);
    padding: 0;
}

.livio-native-form-2col.livio-native-form-2col-noimg .livio-form-2col-form {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 40px 48px;
}

/* ── Responsive ── */
@media (max-width: 860px) {
    .livio-native-form-wrap.livio-native-form-2col {
        flex-direction: column;
        gap: 16px;
    }
    /* En colonne : image complete en haut, pas de sticky (inutile empile). */
    .livio-form-2col-image {
        position: static;
        align-self: stretch;
    }
    .livio-form-2col-form {
        padding: 28px 32px;
    }
}

@media (max-width: 640px) {
    .livio-form-chooser-btns {
        flex-direction: column;
        align-items: stretch;
    }
    .livio-form-chooser-btn {
        min-width: unset;
        width: 100%;
    }
    .livio-native-form-wrap {
        padding: 24px 20px;
    }
    .livio-form-2col-image {
        min-height: 180px;
        max-height: 200px;
    }
    .livio-form-2col-form {
        padding: 24px 20px;
    }
}

/* =========================================================
   ETAPE PROGRAMME (multi-step) — rendu aligne sur le
   formulaire React Livio (ProgrammePreviewView.tsx)
========================================================= */

/* ── Stepper ── */
.livio-form-stepper {
    display: flex;
    align-items: center;
    /* L'espacement avec le contenu est gere par le gap:24px du .livio-native-form */
    margin-bottom: 0;
}
.livio-step-item {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.livio-step-circle {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 700;
    flex-shrink: 0;
    box-sizing: border-box;
    transition: all 0.2s;
}
.livio-step-circle svg { display: block; }
.livio-step-label {
    font-size: 0.9rem;
    white-space: nowrap;
}
.livio-step-line {
    flex: 1;
    height: 2px;
    margin: 0 12px;
    border-radius: 1px;
    transition: all 0.2s;
}

/* ── Barre de navigation (Precedent + bouton principal) ── */
.livio-form-nav-row {
    display: flex;
    align-items: center;
    gap: 12px;
}
.livio-form-nav-row .livio-form-submit-btn {
    flex: 1;
    width: auto;
}
.livio-form-submit-btn-next {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.livio-form-submit-btn-next svg { display: block; }
.livio-form-prev-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    color: #6b7280;
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
    padding: 8px 4px;
    font-family: inherit;
    flex-shrink: 0;
    transition: color 0.15s;
}
.livio-form-prev-btn:hover { color: #1f2937; }
.livio-form-prev-btn svg { display: block; }

/* ── Conteneur etape ── */
/* L'etape 0 reprend le layout flex/gap des champs que .livio-native-form
   appliquait avant aux champs directs, desormais wrappes dans cette etape. */
.livio-form-step-0 {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ── Intro + alerte programme ── */
.livio-form-prog-intro {
    font-size: 0.875rem;
    color: rgba(0,0,0,0.6);
    margin: 0 0 16px;
}
.livio-form-prog-alert { margin-bottom: 16px; }

/* ── Preview programme ── */
.livio-prog-preview {
    background: #f5f7fa;
    border-radius: 16px;
    padding: 16px;
    max-height: 75vh;
    overflow-y: auto;
}
.livio-prog-preview::-webkit-scrollbar { width: 4px; }
.livio-prog-preview::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 2px; }
.livio-prog-col {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ── Groupe ── */
.livio-prog-grp-body {
    background: #fff;
    border-radius: 0 0 12px 12px;
    border: 1px solid rgba(0,0,0,0.06);
    border-top: none;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.livio-prog-grp-desc {
    font-size: 0.8rem;
    color: rgba(0,0,0,0.6);
    line-height: 1.6;
    padding: 0 4px 4px;
}
.livio-prog-grp-desc p { margin: 0; }
.livio-prog-rule-chip {
    height: 20px;
    display: inline-flex;
    align-items: center;
    padding: 0 8px;
    font-size: 0.62rem;
    font-weight: 700;
    background: rgba(255,255,255,0.28);
    color: #fff;
    border-radius: 6px;
    white-space: nowrap;
    flex-shrink: 0;
}
.livio-prog-head-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    font-size: 0.6rem;
    font-weight: 600;
    background: rgba(255,255,255,0.2);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 8px;
    line-height: 1.3;
}

/* ── Sous-groupe ── */
.livio-prog-subgrp-head {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
}
.livio-prog-subgrp-bar {
    width: 10px;
    height: 3px;
    border-radius: 2px;
    flex-shrink: 0;
    display: inline-block;
}
.livio-prog-subgrp-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.livio-prog-subgrp-rule {
    height: 18px;
    display: inline-flex;
    align-items: center;
    padding: 0 7px;
    font-size: 0.6rem;
    font-weight: 700;
    border-radius: 6px;
    white-space: nowrap;
    flex-shrink: 0;
}
.livio-prog-empty {
    font-size: 0.75rem;
    color: rgba(0,0,0,0.38);
    text-align: center;
    padding: 16px 0;
}

/* ── Card session ── */
.livio-prog-card { box-sizing: border-box; }
.livio-prog-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.07);
    transform: translateY(-1px);
}
.livio-prog-check {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    accent-color: #6f62ef;
    cursor: pointer;
    margin: 0;
}
.livio-prog-avatar svg { display: block; }
.livio-prog-card-desc p { margin: 0 0 6px; }
.livio-prog-card-desc p:last-child { margin-bottom: 0; }
.livio-prog-card-desc strong,
.livio-prog-card-desc b { font-weight: 700; color: rgba(0,0,0,0.87); }
.livio-prog-card-desc em,
.livio-prog-card-desc i { font-style: italic; }
.livio-prog-card-desc ul,
.livio-prog-card-desc ol { margin: 4px 0; padding-left: 18px; }
.livio-prog-card-desc a { color: #6f62ef; text-decoration: underline; }
.livio-prog-readmore {
    display: inline-block;
    margin-top: 6px;
    font-size: 0.65rem;
    font-weight: 600;
    color: #6f62ef;
    cursor: pointer;
}
.livio-prog-readmore:hover { text-decoration: underline; }
.livio-prog-exp-text {
    font-size: 0.75rem;
    line-height: 1.6;
    color: rgba(0,0,0,0.6);
    padding: 8px 0;
}
.livio-prog-exp-text p { margin: 0; }

/* ── Bloc RGPD (case a cocher + lien) ── */
.livio-form-rgpd-row {
    margin-top: 4px;
}
.livio-form-rgpd-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}
.livio-form-rgpd-checkbox {
    margin: 2px 0 0 0;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: #2563eb;
}
.livio-form-rgpd-text {
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--livio-text, #374151);
}
.livio-form-rgpd-link {
    color: #2563eb;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
}
.livio-form-rgpd-link:hover { text-decoration: underline; }
.livio-form-rgpd-error {
    color: #ef4444;
    font-size: 0.78rem;
    margin: 4px 0 0 28px;
}

/* ── Modale (RGPD / conditions) ── */
.livio-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    z-index: 100000;
}
.livio-modal {
    background: #fff;
    border-radius: 12px;
    max-width: 560px;
    width: 100%;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 16px 48px rgba(0,0,0,0.25);
    overflow: hidden;
}
.livio-modal-head {
    padding: 18px 22px;
    font-size: 1.05rem;
    font-weight: 600;
    color: #1f2937;
    border-bottom: 1px solid #e5e7eb;
}
.livio-modal-body {
    padding: 18px 22px;
    overflow-y: auto;
}
.livio-modal-subtitle {
    font-size: 0.9rem;
    font-weight: 600;
    color: #1f2937;
    margin: 0 0 8px 0;
}
.livio-modal-text {
    font-size: 0.875rem;
    line-height: 1.6;
    color: #6b7280;
    white-space: pre-line;
    margin: 0 0 22px 0;
}
.livio-modal-text:last-child { margin-bottom: 0; }
.livio-modal-html { white-space: normal; }
.livio-modal-html p { margin: 0 0 6px 0; }
.livio-modal-html p:last-child { margin-bottom: 0; }
.livio-modal-html a { color: #2563eb; text-decoration: underline; }
.livio-modal-html ul, .livio-modal-html ol { padding-left: 20px; margin: 4px 0; }
.livio-modal-foot {
    padding: 14px 22px;
    border-top: 1px solid #e5e7eb;
    display: flex;
    justify-content: flex-end;
}
.livio-modal-close-btn {
    background: #2563eb;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 8px 18px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
}
.livio-modal-close-btn:hover { background: #1d4ed8; }

/* ── Présentateurs / intervenants : libellé et photos (tous layouts, 2.0.38) ──
   Cf. LIVIO_Renderer_Agenda::people_html. Sélecteurs préfixés par le bloc pour
   résister aux styles de liste des thèmes WordPress. */
.livio-block .livio-people-label{
    font-size:.78em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
    margin:0 0 4px;opacity:.85;
}
.livio-block .livio-people-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.livio-block .livio-people-list li.livio-people-person{display:flex;align-items:center;gap:10px;margin:0;padding:0;list-style:none}
.livio-block .livio-people-list li.livio-people-person::before{content:none}
.livio-block .livio-people--label-above .livio-people-list{margin-top:2px}
.livio-block .livio-people-avatar{
    width:32px;height:32px;min-width:32px;border-radius:50%;object-fit:cover;flex-shrink:0;
    display:inline-flex;align-items:center;justify-content:center;margin:0;
}
.livio-block .livio-people-avatar--initials{
    font-size:12px;font-weight:700;line-height:1;
    color:var(--livio-agenda-icon,#6F62EF);
    background:#f1eefe;
    background:color-mix(in srgb,var(--livio-agenda-icon,#6F62EF) 12%,#ffffff);
}
/* Libellé devant une liste à photos : libellé à gauche, une personne par ligne à droite. */
.livio-block .livio-people--label-beside{display:flex;align-items:flex-start;gap:8px}
.livio-block .livio-people--label-beside > strong{padding-top:7px;white-space:nowrap}
.livio-block .livio-people--label-beside .livio-people-list{margin-top:0}


/* =========================================================
   SPEAKERS — FONCTION, SOCIÉTÉ, MODÈLES DE CARTE (2.0.40)
   Modèle Classique = rendu historique (règles ci-dessus).
========================================================= */

.livio-speaker-job {
    font-size: var(--sp-job-size, 14px);
    line-height: 1.35;
    font-weight: var(--sp-job-weight, 400);
    font-style: var(--sp-job-style, normal);
    text-decoration: var(--sp-job-decoration, none);
    text-transform: var(--sp-job-transform, none);
    color: var(--sp-job-color, #475569);
    margin: 0 0 var(--sp-job-gap, 2px);
}

.livio-speaker-company {
    font-size: var(--sp-company-size, 13px);
    line-height: 1.35;
    font-weight: var(--sp-company-weight, 400);
    font-style: var(--sp-company-style, normal);
    text-decoration: var(--sp-company-decoration, none);
    text-transform: var(--sp-company-transform, none);
    color: var(--sp-company-color, #64748b);
    margin: 0 0 6px;
}

/* LinkedIn sous le texte (au lieu du coin de la photo) */
.livio-speaker-linkedin.livio-speaker-linkedin--below {
    position: static;
    margin-top: 10px;
    width: 30px;
    height: 30px;
}
.livio-speaker-card .livio-speaker-linkedin--below { display: inline-flex; }

/* Cartes de même hauteur dans une rangée */
.livio-speakers-model-photo .livio-speakers-grid,
.livio-speakers-model-overlay .livio-speakers-grid { align-items: stretch; }

/* ── Modèles Carte photo / Superposée : cadre à ratio FIXE ── */
.livio-speaker-card--photo,
.livio-speaker-card--overlay {
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    text-align: var(--sp-align, center);
}

.livio-speaker-figure {
    position: relative;
    width: 100%;
    aspect-ratio: var(--sp-ratio, 3 / 4);
    max-height: var(--sp-photo-max-h, none);
    overflow: hidden;
    background: var(--sp-photo-bg, #f1f5f9);
    flex-shrink: 0;
}

.livio-block .livio-speaker-figure img.livio-speaker-figure-img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    margin: 0;
    object-fit: var(--sp-fit, cover);
    object-position: var(--sp-pos, 50% 0%);
}

.livio-speaker-figure-initials {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 42px;
    font-weight: 700;
    color: #6f62ef;
    background: var(--sp-photo-bg, #eef2ff);
}

.livio-speaker-figure .livio-speaker-linkedin {
    top: 10px;
    right: 10px;
    bottom: auto;
    z-index: 2;
}

/* Carte photo : bandeau coloré sous la photo, qui s'étire pour aligner les cartes */
.livio-speaker-band {
    flex: 1 1 auto;
    padding: 14px 16px 16px;
    background: var(--sp-band, #1f2937);
}
.livio-speaker-band .livio-speaker-name { color: var(--sp-name-color, #ffffff); margin-bottom: var(--sp-name-gap, 6px); }
.livio-speaker-band .livio-speaker-job { color: var(--sp-job-color, #e2e8f0); }
.livio-speaker-band .livio-speaker-company { color: var(--sp-company-color, #cbd5e1); }
.livio-speaker-band .livio-speaker-role { color: var(--sp-role-color, #94a3b8); }

/* Superposée : texte posé sur le bas de la photo, sur un dégradé */
.livio-speaker-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 40px 16px 16px;
    background: linear-gradient(to top, var(--sp-band, rgba(15, 23, 42, 0.92)) 0%, rgba(15, 23, 42, 0) 100%);
    z-index: 1;
}
.livio-speaker-overlay .livio-speaker-name { color: var(--sp-name-color, #ffffff); margin-bottom: var(--sp-name-gap, 4px); }
.livio-speaker-overlay .livio-speaker-job { color: var(--sp-job-color, #e2e8f0); }
.livio-speaker-overlay .livio-speaker-company { color: var(--sp-company-color, #cbd5e1); }
.livio-speaker-overlay .livio-speaker-role { color: var(--sp-role-color, #cbd5e1); }

/* ── Rangée incomplète centrée (« Alignement des cartes » = Centrées, défaut) ──
   Grille : flex + largeur d'une colonne, pour que 1 carte sur 3 colonnes (ou la
   dernière rangée) soit au milieu sans s'élargir. Carrousel : marges auto aux
   extrémités — centré quand tout tient, défilement intact sinon (un
   justify-content:center couperait les premières cartes). */
.livio-speakers-centered .livio-speakers-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.livio-speakers-centered .livio-speakers-grid > * {
    flex: 0 0 calc((100% - (var(--livio-cols-desktop, 3) - 1) * var(--sp-gap, 20px)) / var(--livio-cols-desktop, 3));
    max-width: calc((100% - (var(--livio-cols-desktop, 3) - 1) * var(--sp-gap, 20px)) / var(--livio-cols-desktop, 3));
    min-width: 0;
}
@media (max-width: 1024px) {
    .livio-speakers-centered .livio-speakers-grid > * {
        flex-basis: calc((100% - (var(--livio-cols-tablet, 2) - 1) * var(--sp-gap, 20px)) / var(--livio-cols-tablet, 2));
        max-width: calc((100% - (var(--livio-cols-tablet, 2) - 1) * var(--sp-gap, 20px)) / var(--livio-cols-tablet, 2));
    }
}
@media (max-width: 640px) {
    .livio-speakers-centered .livio-speakers-grid > * {
        flex-basis: calc((100% - (var(--livio-cols-mobile, 1) - 1) * var(--sp-gap, 20px)) / var(--livio-cols-mobile, 1));
        max-width: calc((100% - (var(--livio-cols-mobile, 1) - 1) * var(--sp-gap, 20px)) / var(--livio-cols-mobile, 1));
    }
}
.livio-speakers-centered .livio-speakers-carousel > :first-child { margin-left: auto; }
.livio-speakers-centered .livio-speakers-carousel > :last-child { margin-right: auto; }

/* ════════════════════════════════════════════════════════════════════════
   [livio_partners layout="directory"] — annuaire des partenaires (2.0.42)
   Réplique de l'iframe LIVIO (PublicExhibitorsPage). Tout est cloisonné sous
   .lvx-root / .lvx-modal : aucune règle ne fuit vers le thème ni les autres blocs.
   ════════════════════════════════════════════════════════════════════════ */
.lvx-root{-webkit-font-smoothing:antialiased;box-sizing:border-box;}
.lvx-root *,.lvx-root *::before,.lvx-root *::after,.lvx-modal *,.lvx-modal *::before,.lvx-modal *::after{box-sizing:border-box;}
.lvx-root .lvx-stage{position:relative;overflow:hidden;min-height:120px;}
.lvx-root .lvx-pub{padding:20px 0;}
.lvx-root .lvx-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-radius:14px;margin-bottom:18px;border:1px solid rgba(15,17,36,.06);box-shadow:0 1px 4px rgba(15,17,36,.05);}
.lvx-root .lvx-topbar.lvx-topbar-bare{background:transparent;border:0;box-shadow:none;padding:0;}
.lvx-root .lvx-title{font-size:1.15rem;font-weight:800;margin:0;letter-spacing:-.01em;line-height:1.25;}
.lvx-root .lvx-count{font-size:.78rem;color:#94a3b8;margin-top:2px;}
.lvx-root .lvx-fbtn{position:relative;display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #e7e6f0;border-radius:11px;padding:9px 13px;cursor:pointer;font:inherit;font-size:.8rem;font-weight:700;transition:box-shadow .16s,transform .16s;}
.lvx-root .lvx-fbtn:hover{transform:translateY(-1px);}
.lvx-root .lvx-fbtn.active{box-shadow:0 0 0 3px rgba(111,98,239,.14);}
.lvx-root .lvx-fbtn .lvx-badge{position:absolute;top:-5px;right:-5px;width:11px;height:11px;border-radius:50%;background:#ED6C2E;border:2px solid #fff;display:none;}
.lvx-root .lvx-fbtn.hasfilter .lvx-badge{display:block;}
.lvx-root .lvx-grid{display:grid;}
/* Grille en flex (2.0.43) : toutes les cartes ont la largeur d'une colonne,
   et une rangée incomplète se centre (ou reste à gauche avec .lvx-left). */
.lvx-root .lvx-grid.lvx-cols{display:flex;flex-wrap:wrap;justify-content:center;--lvx-c:var(--lvx-cols,4);}
.lvx-root .lvx-grid.lvx-cols.lvx-left{justify-content:flex-start;}
.lvx-root .lvx-grid.lvx-cols>.lvx-cardlink{flex:0 0 calc((100% - (var(--lvx-c) - 1) * var(--lvx-gap,14px)) / var(--lvx-c));min-width:0;}
@media(max-width:900px){.lvx-root .lvx-grid.lvx-cols{--lvx-c:var(--lvx-cols-md,2);}}
@media(max-width:640px){.lvx-root .lvx-grid.lvx-cols{--lvx-c:var(--lvx-cols-sm,1);}}
.lvx-root .lvx-chip{display:inline-flex;align-items:center;gap:5px;font-weight:800;border-radius:999px;padding:3px 9px;line-height:1.3;}
.lvx-root .lvx-catdot{display:inline-flex;align-items:center;gap:6px;font-weight:700;}
.lvx-root .lvx-cdot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.lvx-root .lvx-stand{display:inline-flex;align-items:center;gap:4px;background:rgba(237,108,46,.12);color:#ED6C2E;font-weight:800;border-radius:7px;padding:2px 8px;}
.lvx-root .lvx-cardlink{cursor:pointer;color:inherit;display:block;height:100%;outline:none;}
.lvx-root .lvx-cardlink:focus-visible>*{box-shadow:0 0 0 3px rgba(111,98,239,.45);}
.lvx-root .lvx-cardlink[hidden]{display:none;}
.lvx-root .lvx-logo-img{max-width:84%;max-height:80%;object-fit:contain;}
.lvx-root .lvx-faux-box{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;font-weight:800;font-size:.98rem;}
/* A — grille logos */
.lvx-root .lvx-A{overflow:hidden;height:100%;display:flex;flex-direction:column;position:relative;transition:transform .14s,box-shadow .14s;}
.lvx-root .lvx-A:hover{transform:translateY(-3px);box-shadow:0 14px 26px -12px rgba(74,56,201,.35);}
.lvx-root .lvx-A .lvx-lg{min-height:88px;flex:1;display:flex;align-items:center;justify-content:center;padding:14px;}
.lvx-root .lvx-A .lvx-ft{color:#fff;padding:9px 12px;text-align:center;flex-shrink:0;}
.lvx-root .lvx-A .lvx-nm{font-weight:800;line-height:1.15;}
.lvx-root .lvx-A .lvx-st{opacity:.85;margin-top:2px;min-height:1.15em;line-height:1.15;}
.lvx-root .lvx-A-cattr{position:absolute;top:10px;right:10px;z-index:2;}
.lvx-root .lvx-A-catft{background:rgba(255,255,255,.94);box-shadow:0 1px 3px rgba(0,0,0,.14);}
.lvx-root .lvx-A-catft-wrap{min-height:26px;display:flex;align-items:center;justify-content:center;margin-top:7px;}
/* B — carte riche */
.lvx-root .lvx-B{overflow:hidden;height:100%;display:flex;flex-direction:column;transition:transform .14s,box-shadow .14s;}
.lvx-root .lvx-B:hover{transform:translateY(-3px);box-shadow:0 16px 30px -14px rgba(74,56,201,.4);}
.lvx-root .lvx-B .lvx-lg{height:106px;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:16px;border-bottom:1px solid rgba(15,17,36,.06);}
.lvx-root .lvx-B .lvx-bd{padding:15px 16px;display:flex;flex-direction:column;gap:9px;flex:1;}
.lvx-root .lvx-B .lvx-nm{font-weight:800;}
.lvx-root .lvx-B .lvx-ds{line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.lvx-root .lvx-ds p{margin:0;}
.lvx-root .lvx-b-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;}
.lvx-root .lvx-b-arrow{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;flex-shrink:0;font-weight:800;}
/* C — lignes */
.lvx-root .lvx-C{padding:11px 15px;display:flex;align-items:center;gap:15px;overflow:hidden;transition:box-shadow .14s;}
.lvx-root .lvx-C:hover{box-shadow:0 10px 22px -14px rgba(74,56,201,.35);}
.lvx-root .lvx-C .lvx-lg{width:80px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.lvx-root .lvx-C .lvx-mid{flex:1;min-width:0;}
.lvx-root .lvx-C .lvx-nm{font-weight:800;}
.lvx-root .lvx-C .lvx-ds{line-height:1.4;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lvx-root .lvx-C .lvx-rt{display:flex;align-items:center;gap:9px;flex-shrink:0;}
.lvx-root .lvx-arrow{color:#94a3b8;font-weight:800;}
@media(max-width:640px){.lvx-root .lvx-C{flex-wrap:wrap;}.lvx-root .lvx-C .lvx-rt{width:100%;}}
/* D — couverture */
.lvx-root .lvx-D{overflow:hidden;height:100%;display:flex;flex-direction:column;transition:transform .14s,box-shadow .14s;}
.lvx-root .lvx-D:hover{transform:translateY(-4px);box-shadow:0 20px 36px -16px rgba(74,56,201,.45);}
.lvx-root .lvx-D .lvx-cov{position:relative;aspect-ratio:16/9;flex-shrink:0;}
.lvx-root .lvx-D .lvx-cov-media{position:absolute;inset:0;overflow:hidden;}
.lvx-root .lvx-D .lvx-blur{position:absolute;inset:0;}
.lvx-root .lvx-D .lvx-cov-blur{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(16px);transform:scale(1.18);}
.lvx-root .lvx-D .lvx-cov-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
.lvx-root .lvx-D .lvx-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,16,38,.03),rgba(12,16,38,.33));}
.lvx-root .lvx-D .lvx-lg{position:absolute;z-index:3;left:14px;bottom:-20px;width:54px;height:54px;border-radius:14px;background:#fff;box-shadow:0 6px 16px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;padding:7px;overflow:hidden;}
.lvx-root .lvx-D .lvx-catfloat{position:absolute;top:11px;right:11px;z-index:2;}
.lvx-root .lvx-D .lvx-bd{padding:28px 15px 15px;display:flex;flex-direction:column;gap:7px;flex:1;}
.lvx-root .lvx-D .lvx-nm{font-weight:800;}
/* E — logos seuls */
/* E — carte au format fixe (aspect-ratio en ligne), le logo remplit la carte */
.lvx-root .lvx-E{width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform .14s,box-shadow .14s;}
.lvx-root .lvx-E.shadow{box-shadow:0 10px 28px -14px rgba(15,17,36,.45);}
.lvx-root .lvx-E:hover{transform:translateY(-3px);box-shadow:0 16px 32px -14px rgba(15,17,36,.5);}
.lvx-root .lvx-E .lvx-elogo{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.lvx-root .lvx-E .lvx-elogo img{width:100%;height:100%;object-fit:contain;}
.lvx-root .lvx-E.gray .lvx-elogo img{filter:grayscale(1);opacity:.75;transition:filter .2s,opacity .2s;}
.lvx-root .lvx-E.gray:hover .lvx-elogo img{filter:none;opacity:1;}
/* titres de catégorie (tri par catégorie) — 5 modèles, encadré, animation (2.0.43) */
.lvx-root .lvx-group+.lvx-group{margin-top:34px;}
.lvx-root .lvx-group[hidden]{display:none;}
.lvx-root .lvx-gh{display:flex;align-items:center;gap:18px;margin:0 0 20px;padding:0;font-weight:800;line-height:1.25;letter-spacing:.04em;color:var(--gh-color);border:0;background:none;}
.lvx-root .lvx-gh.upper .lvx-gh-title{text-transform:uppercase;}
.lvx-root .lvx-gh-left{justify-content:flex-start;}
.lvx-root .lvx-gh-right{justify-content:flex-end;}
.lvx-root .lvx-gh-center{justify-content:center;}
.lvx-root .lvx-gh-center_line .lvx-gh-line{flex:1;height:var(--gh-lw,2px);background:var(--gh-line);border-radius:var(--gh-lw,2px);}
.lvx-root .lvx-gh-underline{flex-direction:column;align-items:flex-start;gap:10px;}
.lvx-root .lvx-gh-underline .lvx-gh-line{align-self:stretch;height:var(--gh-lw,2px);background:var(--gh-line);border-radius:var(--gh-lw,2px);}
.lvx-root .lvx-gh-title{display:inline-block;color:inherit;}
.lvx-root .lvx-gh-title.boxed{background:var(--gh-box,#fff);border:1px solid var(--gh-line);border-radius:12px;padding:.5em 2.4em;font-weight:600;letter-spacing:.06em;}
/* Animations d'entrée : l'état de départ n'est armé que si le script tourne
   (.lvx-js) ; sans JS, ou mouvement réduit, le titre est simplement affiché. */
.lvx-root.lvx-js .lvx-gh[data-anim]{opacity:0;transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
.lvx-root.lvx-js .lvx-gh[data-anim="left"]{transform:translateX(-60px);}
.lvx-root.lvx-js .lvx-gh[data-anim="right"]{transform:translateX(60px);}
.lvx-root.lvx-js .lvx-gh[data-anim].in{opacity:1;transform:none;}
.lvx-root.lvx-js .lvx-gh[data-anim="bounce"].in{animation:lvxghbounce .9s cubic-bezier(.28,.84,.42,1);}
@keyframes lvxghbounce{0%{opacity:0;transform:translateY(-34px)}55%{opacity:1;transform:translateY(8px)}75%{transform:translateY(-4px)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.lvx-root.lvx-js .lvx-gh[data-anim]{opacity:1;transform:none;transition:none;animation:none;}}
.lvx-root .lvx-state{padding:48px 20px;text-align:center;color:#64748b;}
.lvx-root .lvx-state[hidden]{display:none;}
/* filtre : 5 effets d'ouverture */
.lvx-root .lvx-backdrop{position:absolute;inset:0;z-index:8;background:rgba(15,17,36,0);transition:background .3s;pointer-events:none;}
.lvx-root .lvx-stage.filon[data-fx="drw"] .lvx-backdrop,.lvx-root .lvx-stage.filon[data-fx="spot"] .lvx-backdrop,.lvx-root .lvx-stage.filon[data-fx="sheet"] .lvx-backdrop{background:rgba(15,17,36,.30);pointer-events:auto;}
.lvx-root .lvx-ov{position:absolute;z-index:10;background:#fff;opacity:0;pointer-events:none;color:#1a1a2e;}
.lvx-root .lvx-ov[hidden]{display:none;}
.lvx-root .lvx-ov-pop{top:72px;right:16px;width:280px;max-width:calc(100% - 32px);border:1px solid #e7e6f0;border-radius:15px;box-shadow:0 20px 44px -14px rgba(74,56,201,.35);transform-origin:top right;transform:translateY(-8px) scale(.9);transition:transform .32s cubic-bezier(.34,1.5,.5,1),opacity .2s;}
.lvx-root .lvx-stage.filon .lvx-ov-pop{opacity:1;pointer-events:auto;transform:none;}
.lvx-root .lvx-ov-drw{top:0;right:0;bottom:0;width:300px;max-width:90%;opacity:1;border-left:1px solid #e7e6f0;box-shadow:-16px 0 40px -18px rgba(74,56,201,.35);transform:translateX(102%);transition:transform .4s cubic-bezier(.5,.05,.2,1);}
.lvx-root .lvx-stage.filon .lvx-ov-drw{transform:translateX(0);pointer-events:auto;}
.lvx-root .lvx-ov-spot{top:18px;left:50%;width:80%;max-width:520px;border:1px solid #e7e6f0;border-radius:17px;box-shadow:0 30px 60px -18px rgba(15,17,36,.5);transform:translateX(-50%) translateY(-16px) scale(.94);transition:transform .34s cubic-bezier(.34,1.4,.5,1),opacity .22s;}
.lvx-root .lvx-stage.filon .lvx-ov-spot{opacity:1;pointer-events:auto;transform:translateX(-50%);}
.lvx-root .lvx-ov-sheet{left:0;right:0;bottom:0;opacity:1;border-radius:20px 20px 0 0;box-shadow:0 -16px 40px -18px rgba(74,56,201,.35);transform:translateY(102%);transition:transform .42s cubic-bezier(.5,.05,.2,1);}
.lvx-root .lvx-stage.filon .lvx-ov-sheet{transform:translateY(0);pointer-events:auto;}
.lvx-root .lvx-ov-morph{top:12px;right:16px;width:52px;height:40px;opacity:1;border:1px solid #e7e6f0;border-radius:11px;overflow:hidden;transition:width .34s cubic-bezier(.5,.05,.2,1),height .38s cubic-bezier(.5,.05,.2,1),box-shadow .3s;}
.lvx-root .lvx-ov-morph .lvx-ovmount{opacity:0;transition:opacity .2s;}
.lvx-root .lvx-stage.filon .lvx-ov-morph{width:290px;max-width:calc(100% - 32px);height:300px;pointer-events:auto;box-shadow:0 22px 46px -14px rgba(74,56,201,.4);}
.lvx-root .lvx-stage.filon .lvx-ov-morph .lvx-ovmount{opacity:1;transition:opacity .3s .12s;}
.lvx-root .lvx-fpanel{padding:13px;}
.lvx-root .lvx-fsearch{display:flex;align-items:center;gap:9px;background:#f7f8fc;border:1px solid #e7e6f0;border-radius:11px;padding:8px 12px;margin-bottom:11px;}
.lvx-root .lvx-fsearch input{border:0;outline:0;flex:1;background:none;font:inherit;font-size:.85rem;padding:2px 0;box-shadow:none;min-width:0;}
.lvx-root .lvx-flist{display:flex;flex-direction:column;gap:2px;max-height:230px;overflow-y:auto;}
.lvx-root .lvx-fitem{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:10px;cursor:pointer;transition:background .13s;}
.lvx-root .lvx-fitem:hover,.lvx-root .lvx-fitem:focus-visible{background:#f7f8fc;outline:none;}
.lvx-root .lvx-fitem.sel{background:rgba(111,98,239,.08);}
.lvx-root .lvx-fitem .lvx-nm{flex:1;font-size:.86rem;font-weight:600;}
.lvx-root .lvx-fitem .lvx-cnt{font-size:.72rem;color:#94a3b8;font-weight:700;background:#f7f8fc;border-radius:999px;padding:2px 9px;}
.lvx-root .lvx-fitem .lvx-chk{width:18px;height:18px;border-radius:50%;border:1.5px solid #e7e6f0;flex-shrink:0;}
.lvx-root .lvx-fitem.sel .lvx-chk{background:#6F62EF;border-color:#6F62EF;box-shadow:inset 0 0 0 3px #fff;}
.lvx-root .lvx-drwhead{display:flex;align-items:center;justify-content:space-between;padding:14px 15px 4px;font-weight:800;}
.lvx-root .lvx-x{cursor:pointer;color:#94a3b8;background:none;border:0;font-size:1rem;padding:4px 6px;line-height:1;}
.lvx-root .lvx-grab{width:40px;height:4px;border-radius:999px;background:#e7e6f0;margin:9px auto 0;}
/* fiche en modale */
.lvx-modal-backdrop{position:fixed;inset:0;z-index:99998;background:rgba(15,17,36,.45);backdrop-filter:blur(2px);animation:lvxfade .2s ease;}
.lvx-modal-backdrop[hidden],.lvx-modal[hidden]{display:none;}
.lvx-modal{position:fixed;z-index:99999;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 28px);max-height:90vh;overflow-y:auto;border-radius:18px;box-shadow:0 30px 80px -24px rgba(15,17,36,.6);animation:lvxpop .26s cubic-bezier(.34,1.4,.5,1);text-align:left;}
.lvx-modal .lvx-modal-head{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(15,17,36,.06);}
.lvx-modal .lvx-back{background:none;border:0;cursor:pointer;font:inherit;font-weight:700;font-size:.85rem;color:inherit;padding:4px 0;}
.lvx-modal .lvx-x{cursor:pointer;color:#94a3b8;background:none;border:0;font-size:1rem;padding:4px 6px;}
.lvx-modal .lvx-state{padding:48px 20px;text-align:center;color:#64748b;}
.lvx-modal .lvx-cover{position:relative;width:100%;padding-top:56.25%;background:#0C1026;}
.lvx-modal .lvx-cover-media{position:absolute;inset:0;overflow:hidden;}
.lvx-modal .lvx-cover-blur{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(18px);transform:scale(1.15);}
.lvx-modal .lvx-cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
.lvx-modal .lvx-cgrad{position:absolute;inset:0;}
.lvx-modal .lvx-logofloat{position:absolute;z-index:3;left:18px;bottom:-26px;width:72px;height:72px;border-radius:18px;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;padding:9px;overflow:hidden;}
.lvx-modal .lvx-logo-img{max-width:100%;max-height:100%;object-fit:contain;}
.lvx-modal .lvx-faux-box{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;font-weight:800;}
.lvx-modal .lvx-fiche-inner{padding:36px 22px 28px;}
.lvx-modal .lvx-fiche-inner.no-cover{padding-top:22px;}
.lvx-modal .lvx-fiche-name{font-size:1.35rem;font-weight:800;margin:0 0 8px;letter-spacing:-.01em;line-height:1.25;}
.lvx-modal .lvx-fiche-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px;}
.lvx-modal .lvx-chip{display:inline-flex;align-items:center;gap:5px;font-weight:800;border-radius:999px;padding:3px 9px;}
.lvx-modal .lvx-cdot{display:inline-block;border-radius:50%;flex-shrink:0;}
.lvx-modal .lvx-stand{display:inline-flex;align-items:center;gap:4px;background:rgba(237,108,46,.12);color:#ED6C2E;font-weight:800;border-radius:7px;padding:2px 8px;}
.lvx-modal .lvx-sec{font-weight:800;font-size:1rem;margin:22px 0 0;}
.lvx-modal .lvx-card2{border:1px solid #ececf6;border-radius:12px;padding:14px 16px;margin-top:12px;line-height:1.6;}
.lvx-modal .lvx-card2-rows{padding:2px 16px;}
.lvx-modal .lvx-card2 p:first-child{margin-top:0;}
.lvx-modal .lvx-card2 p:last-child{margin-bottom:0;}
.lvx-modal .lvx-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #f1f5f9;text-decoration:none;color:inherit;}
.lvx-modal .lvx-row:last-child{border-bottom:0;}
.lvx-modal .lvx-row-label{display:block;font-size:.68rem;color:#94a3b8;}
.lvx-modal .lvx-row-value{display:block;font-size:.86rem;font-weight:700;word-break:break-word;}
.lvx-modal .lvx-ic{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.lvx-modal .lvx-ic-doc{width:34px;height:34px;background:#FDECEC;color:#E24B4A;}
.lvx-modal .lvx-doc{display:flex;align-items:center;gap:12px;border:1px solid #ececf6;border-radius:12px;padding:10px 13px;margin-top:9px;text-decoration:none;color:inherit;}
.lvx-modal .lvx-video{border-radius:12px;color:#fff;padding:14px;display:flex;align-items:center;gap:12px;margin-top:12px;text-decoration:none;}
.lvx-modal .lvx-video-ic{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
body.lvx-modal-open{overflow:hidden;}
@keyframes lvxfade{from{opacity:0}to{opacity:1}}
@keyframes lvxpop{from{opacity:0;transform:translate(-50%,-48%) scale(.965)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(prefers-reduced-motion:reduce){.lvx-root .lvx-ov,.lvx-root .lvx-backdrop,.lvx-root .lvx-A,.lvx-root .lvx-B,.lvx-root .lvx-C,.lvx-root .lvx-D,.lvx-root .lvx-E,.lvx-root .lvx-fbtn,.lvx-modal,.lvx-modal-backdrop{transition:none!important;animation:none!important;}}
