/* ==========================================================================
   « Journées foncières » — univers dédié, charte AFOR (vert / orange / or)
   Les liens sont écrits `.ev a.classe` : le thème impose `a:visited { color: inherit }`
   et une règle à une seule classe perdrait face à lui.
   ========================================================================== */

.ev {
    --g950: #04190f;
    --g900: #06281b;
    --g800: #0a3a27;
    --g700: #0f5a3c;
    --g600: #0f7a49;
    --emerald: #18a967;
    --orange: #f7941d;
    --orange-deep: #b45309;
    --on-orange: #1c1204;
    --gold: #ffd27a;
    --cream: #fff8ee;
    --paper: #ffffff;
    --ink: #13231b;
    --muted: #55675d;
    --line: #eadfcc;
    --radius: 18px;
    --shadow: 0 14px 40px rgba(6, 40, 27, .10);

    background: var(--cream);
    color: var(--ink);
    padding-bottom: 0;
    overflow-x: clip;
}

.ev h1, .ev h2, .ev h3 { font-family: 'Sora', 'Century Gothic', sans-serif; letter-spacing: -.01em; }
.ev p { text-align: inherit !important; }          /* le thème justifie tous les <p> */
.ev .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ev :focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }

/* ---------- apparition au défilement ---------- */
.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.js .reveal.is-in { opacity: 1; transform: none; }

/* ============================ BOUTONS ============================ */
.ev a.ev-btn, .ev .ev-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 30px;
    border-radius: 999px;
    border: 2px solid transparent;
    font-family: 'Sora', 'Century Gothic', sans-serif;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: .02em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.ev a.ev-btn-primary { background: var(--orange); color: var(--on-orange); box-shadow: 0 10px 26px rgba(247, 148, 29, .38); }
.ev a.ev-btn-primary:hover { background: #ffa73d; color: var(--on-orange); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(247, 148, 29, .5); }
.ev a.ev-btn-ghost { border-color: rgba(255, 255, 255, .55); color: #fff; background: rgba(255, 255, 255, .06); }
.ev a.ev-btn-ghost:hover { background: rgba(255, 255, 255, .16); color: #fff; transform: translateY(-2px); }
.ev a.ev-btn-sm { padding: 10px 22px; font-size: 13px; }
.ev a.ev-link { color: var(--gold); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.ev a.ev-link:hover { color: #fff; }
.ev a.ev-link-dark { color: var(--g600); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.ev a.ev-link-dark:hover { color: var(--g800); }

/* ============================== HERO ============================== */
.ev-hero {
    position: relative;
    isolation: isolate;
    color: #fff;
    background:
        radial-gradient(1100px 620px at 88% 18%, rgba(24, 169, 103, .42), transparent 62%),
        radial-gradient(760px 480px at 0% 100%, rgba(247, 148, 29, .20), transparent 62%),
        linear-gradient(160deg, var(--g950), var(--g800) 55%, var(--g700));
    padding: 30px 0 104px;
}
.ev-hero-bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.ev-hero-bg::before {                       /* motif géométrique inspiré des étoffes */
    content: "";
    position: absolute; inset: 0;
    opacity: .9;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23ffd27a' stroke-opacity='.11' stroke-width='1.4'%3E%3Cpath d='M28 4 52 28 28 52 4 28z'/%3E%3Cpath d='M28 16 40 28 28 40 16 28z'/%3E%3C/g%3E%3Cg fill='%23f7941d' fill-opacity='.09'%3E%3Cpath d='M0 0h12L0 12zM56 0H44l12 12zM0 56h12L0 44zM56 56H44l12-12z'/%3E%3C/g%3E%3C/svg%3E");
    -webkit-mask-image: linear-gradient(100deg, transparent 5%, #000 55%, #000);
            mask-image: linear-gradient(100deg, transparent 5%, #000 55%, #000);
}
.ev-hero-bg::after {                        /* bannière optionnelle posée par l'admin */
    content: "";
    position: absolute; inset: 0;
    background: var(--ev-banner, none) center / cover no-repeat;
    opacity: .22;
    mix-blend-mode: luminosity;
}
.ev-hero::after {                           /* courbe de transition vers le contenu */
    content: "";
    position: absolute; left: 0; right: 0; bottom: -1px; height: 56px;
    background: var(--cream);
    clip-path: ellipse(75% 100% at 50% 100%);
    z-index: 0;
}
.ev-hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px; align-items: center; }

.ev a.ev-back { display: block; width: fit-content; margin-bottom: 18px; color: rgba(255, 255, 255, .82); font-size: 14px; }
.ev a.ev-back:hover { color: #fff; }
.ev-eyebrow {
    display: inline-flex; align-items: center; gap: 10px;
    margin: 0 0 14px;
    padding: 7px 16px;
    border: 1px solid rgba(255, 210, 122, .45);
    border-radius: 999px;
    background: rgba(255, 210, 122, .08);
    color: var(--gold);
    font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
}
.ev-eyebrow-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 0 rgba(247, 148, 29, .7); animation: evPulse 2.2s infinite; }
.ev-title { margin: 0 0 20px; color: #fff; font-size: clamp(34px, 5.4vw, 66px); line-height: 1.04; font-weight: 800; }
.ev-title span { display: block; background: linear-gradient(90deg, var(--gold), var(--orange)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--gold); }

.ev-theme::before, .ev-theme::after { content: none !important; }
.ev-theme {
    box-shadow: none;
    background: transparent;
    position: relative;
    margin: 0 0 22px; padding: 4px 0 4px 20px;
    max-width: 640px;
    border: 0; border-left: 4px solid var(--orange);
    color: rgba(255, 255, 255, .92);
    font-size: clamp(15px, 1.5vw, 17.5px); font-style: italic; line-height: 1.6;
}
.ev-theme-label { display: block; margin-bottom: 4px; color: var(--gold); font-size: 12px; font-style: normal; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

.ev-facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 26px; padding: 0; list-style: none; }
.ev-facts li {
    padding: 10px 18px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .09);
    backdrop-filter: blur(6px);
    font-weight: 600; font-size: 15px;
}
.ev-facts i { margin-right: 8px; color: var(--orange); }

/* ---------- compte à rebours ---------- */
.ev-countdown { margin-bottom: 28px; }
.ev-cd-upcoming, .ev-cd-live, .ev-cd-over { display: none; }
.ev-countdown[data-state="upcoming"] .ev-cd-upcoming,
.ev-countdown[data-state="live"] .ev-cd-live,
.ev-countdown[data-state="over"] .ev-cd-over { display: block; }
.ev-cd-label { margin: 0 0 10px; color: var(--gold); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ev-cd-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 92px)); gap: 12px; }
.ev-cd-grid > div {
    padding: 14px 6px 10px;
    border-radius: 16px;
    text-align: center;
    background: linear-gradient(180deg, rgba(255, 255, 255, .17), rgba(255, 255, 255, .06));
    border: 1px solid rgba(255, 255, 255, .26);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 10px 24px rgba(0, 0, 0, .22);
}
.ev-cd-grid strong { display: block; font-family: 'Sora', sans-serif; font-size: clamp(28px, 3.6vw, 42px); line-height: 1; font-weight: 800; font-variant-numeric: tabular-nums; }
.ev-cd-grid small { display: block; margin-top: 6px; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .8); }
.ev-live-pill { display: inline-flex; align-items: center; gap: 10px; padding: 8px 18px; border-radius: 999px; background: #c81e1e; color: #fff; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-size: 13px; }
.ev-live-pill span { width: 9px; height: 9px; border-radius: 50%; background: #fff; animation: evPulseWhite 1.4s infinite; }
.ev-cd-live p, .ev-cd-over p { margin: 12px 0 0; font-size: 17px; line-height: 1.55; }

.ev-cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }

/* ---------- médaillon ---------- */
.ev-hero-art { position: relative; display: grid; place-items: center; aspect-ratio: 1; max-width: 480px; margin-inline: auto; width: 100%; }
.ev-emblem { position: relative; width: 82%; height: auto; border-radius: 50%; filter: drop-shadow(0 34px 60px rgba(0, 0, 0, .5)); animation: evFloat 7s ease-in-out infinite; }
.ev-ring { position: absolute; inset: 2%; border-radius: 50%; border: 2px dashed rgba(255, 210, 122, .5); animation: evSpin 70s linear infinite; }
.ev-ring-2 { inset: 9%; border: 1px solid rgba(255, 255, 255, .16); animation-direction: reverse; animation-duration: 110s; }
.ev-badge {
    position: absolute; right: 0; top: 4%;
    display: grid; place-items: center;
    width: 112px; height: 112px;
    border-radius: 50%;
    background: var(--orange); color: var(--on-orange);
    text-align: center; line-height: 1.05;
    box-shadow: 0 16px 34px rgba(0, 0, 0, .35), 0 0 0 6px rgba(255, 248, 238, .95);
    transform: rotate(8deg);
}
.ev-badge strong { display: block; font-family: 'Sora', sans-serif; font-size: 30px; font-weight: 800; }
.ev-badge span { display: block; margin-top: -14px; font-size: 11px; font-weight: 800; letter-spacing: .08em; }

/* ========================= CHIFFRES CLÉS ========================= */
.ev-stats-wrap { position: relative; z-index: 2; margin-top: -58px; }
.ev-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.ev-stats li {
    position: relative;
    padding: 22px 20px 20px;
    border-radius: var(--radius);
    background: var(--paper);
    box-shadow: var(--shadow);
    text-align: center;
    overflow: hidden;
}
.ev-stats li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: linear-gradient(90deg, var(--emerald), var(--orange)); }
.ev-stats strong { display: block; font-family: 'Sora', sans-serif; font-size: clamp(32px, 4vw, 46px); line-height: 1.1; font-weight: 800; color: var(--g600); font-variant-numeric: tabular-nums; }
.ev-stats span { display: block; margin-top: 4px; color: var(--muted); font-size: 15px; font-weight: 600; }

/* =========================== NAVIGATION =========================== */
.ev-nav { position: sticky; top: 0; z-index: 30; margin-top: 34px; background: rgba(255, 255, 255, .94); backdrop-filter: blur(10px); border-bottom: 3px solid var(--orange); box-shadow: 0 6px 18px rgba(6, 40, 27, .08); }
.ev-stats-wrap + .ev-nav { margin-top: 34px; }
.ev-hero + .ev-nav { margin-top: 0; }
.ev-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.ev-nav ul { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.ev-nav ul::-webkit-scrollbar { display: none; }
.ev-nav li { flex: 0 0 auto; }
.ev .ev-nav a:not(.ev-btn) {
    display: block; padding: 18px 16px;
    color: var(--ink); font-weight: 700; font-size: 14px; letter-spacing: .05em; text-transform: uppercase;
    border-bottom: 3px solid transparent; margin-bottom: -3px;
}
.ev .ev-nav a:not(.ev-btn):hover { color: var(--g600); }
.ev .ev-nav a.is-active:not(.ev-btn) { color: var(--g600); border-bottom-color: var(--emerald); }
.ev .ev-nav a.ev-btn { flex: 0 0 auto; }

/* ============================= CONTENU ============================= */
.ev-content { padding: 56px 0 30px; }
.ev-section-head { margin-bottom: 30px; }
.ev-section-eyebrow { display: block; margin-bottom: 6px; color: var(--orange-deep); font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ev-section-head h2 { margin: 0; color: var(--g700); font-size: clamp(28px, 4vw, 44px); font-weight: 800; line-height: 1.1; }
.ev-section-head h2::after { content: ""; display: block; width: 72px; height: 5px; margin-top: 14px; border-radius: 4px; background: linear-gradient(90deg, var(--orange), var(--emerald)); }

.ev-card { margin-bottom: 34px; padding: clamp(22px, 4vw, 44px); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); border-top: 6px solid var(--emerald); }
.ev-richtext { line-height: 1.8; font-size: 17px; }
.ev-richtext p { text-align: left !important; }
.ev-richtext img, .ev-richtext iframe { max-width: 100%; height: auto; border-radius: 10px; }
.ev-richtext table { width: 100%; border-collapse: collapse; }
.ev-richtext th, .ev-richtext td { padding: 10px 12px; border: 1px solid #e3e3e3; }
.ev-richtext th { background: var(--cream); }
.ev .ev-richtext a { color: var(--g600); text-decoration: underline; }

.ev-empty { display: grid; justify-items: center; gap: 10px; margin: 0 0 30px; padding: 46px 20px; border: 2px dashed var(--line); border-radius: var(--radius); background: rgba(255, 255, 255, .6); color: var(--muted); text-align: center; }
.ev-empty i { font-size: 30px; color: var(--orange); }
.ev-empty p { margin: 0; font-size: 17px; }
.ev-notice { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; padding: 14px 18px; border-radius: 14px; background: #fff3d9; border: 1px solid #f1d49b; color: #5b3a06; font-weight: 600; }
.ev-notice i { color: var(--orange-deep); }

/* ---------- programme ---------- */
.ev-daytabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 30px; }
.ev-daytab {
    display: block; height: auto; min-height: 78px; line-height: 1.3; overflow: visible; text-align: left;
    padding: 16px 20px;
    border: 2px solid var(--line); border-radius: 16px;
    background: var(--paper); color: var(--ink);
    cursor: pointer; transition: border-color .2s, box-shadow .2s, transform .2s;
}
.ev-daytab small, .ev-daytab strong, .ev-daytab em { display: block; }
.ev-daytab small { color: var(--orange-deep); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; font-size: 12px; }
.ev-daytab strong { font-family: 'Sora', sans-serif; font-size: 18px; text-transform: capitalize; }
.ev-daytab em { color: var(--muted); font-style: normal; font-size: 14px; }
.ev-daytab:hover { border-color: var(--emerald); transform: translateY(-2px); }
.ev-daytab.is-active { border-color: var(--g600); background: linear-gradient(160deg, var(--g800), var(--g600)); color: #fff; box-shadow: 0 12px 28px rgba(15, 122, 73, .35); }
.ev-daytab.is-active small { color: var(--gold); }
.ev-daytab.is-active em { color: rgba(255, 255, 255, .85); }

.ev-timeline { list-style: none; margin: 0; padding: 0; }
.ev-slot { position: relative; display: grid; grid-template-columns: 124px 28px minmax(0, 1fr); column-gap: 14px; padding-bottom: 22px; }
.ev-slot::before { content: ""; position: absolute; left: 137px; top: 22px; bottom: -4px; width: 2px; background: var(--line); }
.ev-slot:last-child::before { display: none; }
.ev-slot::after { content: ""; position: absolute; left: 130px; top: 12px; width: 16px; height: 16px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 5px var(--cream); }
.ev-slot-time { grid-column: 1; padding-top: 8px; text-align: right; font-family: 'Sora', sans-serif; font-weight: 700; font-size: 15px; color: var(--g700); white-space: nowrap; }
.ev-session { grid-column: 3; padding: 20px 22px; border-radius: 16px; background: var(--paper); border: 1px solid var(--line); border-left: 5px solid var(--c); box-shadow: 0 8px 22px rgba(6, 40, 27, .06); }
.ev-slot.is-break .ev-session { background: transparent; box-shadow: none; border-style: dashed; border-left-style: solid; padding-block: 12px; }
.ev-session-top { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 8px; }
.ev-tag { display: inline-block; padding: 4px 12px; border-radius: 999px; color: #fff; font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ev-tag-soft { background: #e5f4ec; color: var(--g700); }
.ev-room { color: var(--muted); font-size: 14px; font-weight: 600; }
.ev-room i { margin-right: 4px; color: var(--orange-deep); }
.ev-session h3 { margin: 0 0 6px; color: var(--ink); font-size: 19px; font-weight: 700; line-height: 1.35; }
.ev-session p { margin: 0 0 10px; color: var(--muted); line-height: 1.6; }
.ev-session-speakers { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 10px 0 0; padding: 12px 0 0; list-style: none; border-top: 1px solid var(--line); }
.ev-session-speakers li { display: flex; align-items: center; gap: 10px; }
.ev-session-speakers img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; }
.ev-session-speakers strong { display: block; font-size: 14.5px; line-height: 1.2; }
.ev-session-speakers small { display: block; color: var(--muted); font-size: 12.5px; }
.ev-avatar { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, var(--g600), var(--emerald)); color: #fff; font-family: 'Sora', sans-serif; font-weight: 800; font-size: 14px; flex: 0 0 auto; }
.ev-avatar-lg { width: 100%; height: 100%; border-radius: 0; font-size: 44px; }

/* ---------- intervenants ---------- */
.ev-speakers { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 22px; }
.ev-speaker { display: flex; flex-direction: column; align-items: center; padding: 0 20px 22px; border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); text-align: center; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.ev-speaker:hover { transform: translateY(-6px); box-shadow: 0 22px 46px rgba(6, 40, 27, .16); }
.ev-speaker-photo { width: calc(100% + 40px); aspect-ratio: 1 / 1; margin: 0 -20px 16px; background: linear-gradient(135deg, var(--g700), var(--emerald)); overflow: hidden; }
.ev-speaker-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ev-speaker:hover .ev-speaker-photo img { transform: scale(1.05); }
.ev-speaker h3 { margin: 0 0 4px; color: var(--ink); font-size: 18px; font-weight: 700; }
.ev-speaker-role { margin: 0; color: var(--g600); font-weight: 700; font-size: 14.5px; }
.ev-speaker-org { margin: 2px 0 0; color: var(--muted); font-size: 14px; }
.ev-country { margin-top: 10px; padding: 3px 12px; border-radius: 999px; background: #e5f4ec; color: var(--g700); font-size: 12.5px; font-weight: 700; }
.ev-speaker details { width: 100%; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); text-align: left; }
.ev-speaker summary { cursor: pointer; color: var(--orange-deep); font-weight: 700; font-size: 14px; }
.ev-speaker details p { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }

/* ---------- exposants ---------- */
.ev-ex-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 24px; }
.ev-search { position: relative; flex: 1 1 280px; max-width: 420px; }
.ev-search i { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.ev-search input { width: 100%; height: 48px; padding: 0 16px 0 44px; border: 2px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font-size: 15px; }
.ev-search input:focus { border-color: var(--emerald); outline: none; }
.ev-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ev-chip { padding: 8px 16px; border: 2px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font-weight: 700; font-size: 13.5px; cursor: pointer; }
.ev-chip:hover { border-color: var(--emerald); }
.ev-chip.is-active { background: var(--g600); border-color: var(--g600); color: #fff; }
.ev-exhibitors { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
.ev-exhibitor { display: flex; flex-direction: column; gap: 10px; padding: 22px; border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.ev-exhibitor[hidden] { display: none; }
.ev-ex-logo { display: grid; place-items: center; height: 110px; padding: 10px; border-radius: 12px; background: #f7f3ea; overflow: hidden; }
.ev-ex-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ev-ex-logo .ev-avatar-lg { font-size: 30px; }
.ev-exhibitor h3 { margin: 4px 0 0; font-size: 18px; font-weight: 700; color: var(--ink); }
.ev-ex-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.ev-stand { color: var(--orange-deep); font-weight: 800; font-size: 13.5px; }
.ev-exhibitor p { margin: 0; color: var(--muted); font-size: 14.5px; line-height: 1.55; }
.ev .ev-exhibitor a.ev-ex-link { margin-top: auto; color: var(--g600); font-weight: 700; font-size: 14px; }
.ev .ev-exhibitor a.ev-ex-link:hover { color: var(--g800); text-decoration: underline; }
.ev-ex-none { padding: 30px; text-align: center; color: var(--muted); font-size: 16px; }

/* ---------- infos pratiques ---------- */
.ev-info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; margin-bottom: 26px; }
.ev-info-card { padding: 26px 24px; border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.ev-info-card h3 { margin: 12px 0 8px; font-size: 18px; font-weight: 800; color: var(--g700); }
.ev-info-card p { margin: 0 0 10px; color: var(--ink); line-height: 1.6; }
.ev-info-card ul { margin: 0 0 6px; padding: 0; list-style: none; }
.ev-info-card li { margin-bottom: 6px; }
.ev .ev-info-card li a { color: var(--ink); font-weight: 700; }
.ev .ev-info-card li a:hover { color: var(--g600); }
.ev-info-card-cta { background: linear-gradient(160deg, var(--g800), var(--g600)); }
.ev-info-card-cta h3, .ev-info-card-cta p { color: #fff; }
.ev-info-icon { display: inline-grid; place-items: center; width: 50px; height: 50px; border-radius: 14px; background: #e5f4ec; color: var(--g600); font-size: 20px; }
.ev-info-card-cta .ev-info-icon { background: rgba(255, 255, 255, .16); color: var(--gold); }
.ev-map { margin-bottom: 26px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); aspect-ratio: 16 / 7; min-height: 260px; background: #e9eee9; }
.ev-map iframe { width: 100%; height: 100%; border: 0; }

/* ---------- galeries, vidéos, documents ---------- */
.ev-block { margin-top: 44px; }
.ev-block-title { margin: 0 0 18px; padding-left: 14px; border-left: 5px solid var(--orange); color: var(--g700); font-size: clamp(21px, 2.6vw, 28px); font-weight: 800; }
.ev-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.ev .ev-gallery-item { position: relative; display: block; overflow: hidden; border-radius: 14px; background: #dfe8e2; aspect-ratio: 4 / 3; color: #fff; }
.ev-gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ev-gallery-item:hover img { transform: scale(1.07); }
.ev-gallery-item span { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 14px 12px; font-size: 14px; background: linear-gradient(0deg, rgba(0, 0, 0, .75), transparent); }
.ev-videos { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.ev-video { margin: 0; }
.ev-video-frame { position: relative; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #000; box-shadow: var(--shadow); }
.ev-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ev-video figcaption { margin-top: 8px; font-weight: 700; }
.ev-docs { margin: 0; padding: 0; list-style: none; }
.ev-docs li { margin-bottom: 10px; }
.ev .ev-docs a { display: inline-block; padding: 13px 20px; border-radius: 12px; background: var(--paper); border: 1px solid var(--line); color: var(--ink); font-weight: 700; }
.ev .ev-docs a:hover { border-color: var(--emerald); color: var(--g600); }
.ev-docs i { margin-right: 10px; color: #c0392b; }

.ev-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .93); }
.ev-lightbox[hidden] { display: none; }
.ev-lightbox figure { margin: 0; max-width: 90vw; text-align: center; }
.ev-lightbox img { max-width: 90vw; max-height: 82vh; border-radius: 8px; }
.ev-lightbox figcaption { margin-top: 10px; color: #fff; min-height: 1.2em; }
.ev-lightbox button { position: absolute; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .16); color: #fff; font-size: 22px; line-height: 48px; cursor: pointer; }
.ev-lightbox button:hover { background: var(--orange); color: var(--on-orange); }
.ev-lb-close { top: 18px; right: 22px; font-size: 30px; }
.ev-lb-prev { left: 18px; top: 50%; transform: translateY(-50%); }
.ev-lb-next { right: 18px; top: 50%; transform: translateY(-50%); }

/* ---------- précédent / suivant ---------- */
.ev-pager { display: flex; justify-content: space-between; gap: 14px; margin-top: 40px; }
.ev .ev-pager-link { display: block; padding: 14px 22px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); color: var(--ink); }
.ev-pager-link small { display: block; color: var(--orange-deep); text-transform: uppercase; letter-spacing: .1em; font-size: 11px; font-weight: 800; }
.ev-pager-link span { font-weight: 700; }
.ev .ev-pager-link:hover { border-color: var(--emerald); color: var(--g600); }
.ev-pager-next { margin-left: auto; text-align: right; }

/* ---------- partenaires ---------- */
.ev-partners { padding: 46px 0 40px; background: var(--paper); border-top: 1px solid var(--line); }
.ev .ev-partners-title { margin: 0 0 22px; text-align: center !important; color: var(--muted); font-size: 13px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.ev-partners-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 22px 40px; margin: 0; padding: 0; list-style: none; }
.ev-partners-row img { height: 64px; width: auto; max-width: 260px; object-fit: contain; transition: transform .25s; }
.ev-partners-row a:hover img { transform: scale(1.06); }

/* ---------- partage ---------- */
.ev-share { padding: 44px 0 70px; background: linear-gradient(160deg, var(--g900), var(--g700)); color: #fff; text-align: center; }
.ev .ev-share p { margin: 0 0 18px; font-family: 'Sora', sans-serif; font-size: clamp(18px, 2.4vw, 24px); font-weight: 700; text-align: center !important; }
.ev-share-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.ev .ev-share-btn, .ev button.ev-share-btn { display: inline-flex; align-items: center; gap: 9px; padding: 12px 22px; border: 2px solid rgba(255, 255, 255, .35); border-radius: 999px; background: rgba(255, 255, 255, .08); color: #fff; font-weight: 700; font-size: 14.5px; cursor: pointer; transition: background .2s, transform .2s; }
.ev .ev-share-btn:hover { background: rgba(255, 255, 255, .2); color: #fff; transform: translateY(-2px); }
.ev .ev-share-wa { background: #25d366; border-color: #25d366; color: #06281b; }
.ev .ev-share-wa:hover { background: #3be07b; color: #06281b; }

/* ---------- barre d'inscription mobile ---------- */
.ev-mobile-cta { display: none; }

/* ============================ ANIMATIONS ============================ */
@keyframes evPulse { 70% { box-shadow: 0 0 0 10px rgba(247, 148, 29, 0); } 100% { box-shadow: 0 0 0 0 rgba(247, 148, 29, 0); } }
@keyframes evPulseWhite { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@keyframes evFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes evSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .ev *, .ev *::before, .ev *::after { animation: none !important; transition: none !important; }
    .js .reveal { opacity: 1; transform: none; }
}

/* ============================== RESPONSIVE ============================== */
@media (max-width: 991px) {
    .ev-hero { padding-bottom: 100px; }
    .ev-hero-grid { grid-template-columns: 1fr; gap: 26px; }
    .ev-hero-art { order: -1; max-width: 270px; }
    .ev-badge { width: 92px; height: 92px; }
    .ev-badge strong { font-size: 24px; }
    .ev-hero-copy { text-align: left; }
}
@media (max-width: 767px) {
    .ev-hero { padding-top: 22px; }
    .ev-cd-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
    .ev-cd-grid > div { padding: 10px 2px 8px; }
    .ev-cd-grid small { font-size: 10px; letter-spacing: .04em; }
    .ev-facts li { font-size: 14px; padding: 9px 14px; }
    .ev a.ev-btn { padding: 13px 24px; }
    .ev-nav-inner > a.ev-btn { display: none; }                 /* la barre du bas prend le relais */
    .ev .ev-nav a:not(.ev-btn) { padding: 16px 12px; font-size: 13px; }
    .ev-content { padding-top: 40px; }
    .ev-slot { grid-template-columns: 24px minmax(0, 1fr); column-gap: 12px; }
    .ev-slot::before { left: 11px; top: 20px; }
    .ev-slot::after { left: 4px; top: 10px; }
    .ev-slot-time { grid-column: 2; grid-row: 1; text-align: left; padding: 0 0 6px; }
    .ev-session { grid-column: 2; grid-row: 2; padding: 16px; }
    .ev-pager { flex-direction: column; }
    .ev-pager-next { margin-left: 0; text-align: left; }
    .ev-mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: block; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: rgba(6, 40, 27, .96); box-shadow: 0 -8px 24px rgba(0, 0, 0, .25); }
    .ev .ev-mobile-cta a.ev-btn { display: flex; justify-content: center; width: 100%; }
    .ev-share { padding-bottom: 96px; }
}

/* ============================ LANGUE FR | EN ============================ */
.ev-topbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.ev-hero .ev-topbar { margin-bottom: 22px; }
.ev .ev-topbar a.ev-back { margin-bottom: 0; }
.ev-lang { display: inline-flex; flex: 0 0 auto; border: 1px solid rgba(255, 255, 255, .38); border-radius: 999px; overflow: hidden; background: rgba(255, 255, 255, .08); }
.ev .ev-lang a { display: block; margin: 0; padding: 6px 14px; border: 0; font-size: 13px; font-weight: 800; letter-spacing: .06em; color: #fff; text-transform: uppercase; }
.ev .ev-lang a:hover { background: rgba(255, 255, 255, .18); color: #fff; }
.ev .ev-lang a.is-active { background: var(--orange); color: var(--on-orange); }
.ev-nav-tools { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.ev .ev-nav .ev-lang { border-color: var(--line); background: #fff; }
.ev .ev-nav .ev-lang a { padding: 6px 12px; margin: 0; border: 0; color: var(--ink); font-size: 12.5px; letter-spacing: .06em; }
.ev .ev-nav .ev-lang a:hover { background: #f1ede2; color: var(--ink); }
.ev .ev-nav .ev-lang a.is-active { background: var(--g600); color: #fff; }
@media (max-width: 767px) {
    .ev .ev-nav .ev-lang a { padding: 5px 10px; }
}

/* ======================= AJUSTEMENTS TABLETTE / PETIT TÉLÉPHONE ======================= */
@media (max-width: 991px) {
    .ev-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }      /* 2 × 2 plutôt que 3 + 1 orphelin */
    .ev .ev-nav .ev-lang { display: none; }                               /* le sélecteur reste dans l'en-tête */
}
@media (max-width: 767px) {
    .ev-nav-tools { display: none; }                                      /* la barre du bas prend le relais */
    .ev-stats { gap: 12px; }
    .ev-stats li { padding: 16px 10px 14px; }
    .ev-stats strong { font-size: 30px; }
    .ev-stats span { font-size: 13.5px; }
}
@media (max-width: 380px) {
    .ev .ev-mobile-cta a.ev-btn { font-size: 13px; padding: 12px 14px; }
    .ev-title { font-size: 31px; }
    .ev-cd-grid strong { font-size: 24px; }
}

/* ===================== IMAGES : en-tête de rubrique, séance, plan ===================== */
.no-reveal .reveal, .no-reveal .js .reveal { opacity: 1 !important; transform: none !important; }
.ev-cover { margin: 0 0 30px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); background: #dfe8e2; }
.ev-cover img { display: block; width: 100%; max-height: 420px; object-fit: cover; }
.ev-session-img { display: block; width: 100%; max-height: 240px; margin: -4px 0 14px; border-radius: 12px; object-fit: cover; }
.ev-slot.is-break .ev-session-img { display: none; }
.ev-gallery.is-plan { grid-template-columns: 1fr; gap: 20px; }
.ev .ev-gallery.is-plan .ev-gallery-item { aspect-ratio: auto; padding: 10px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); cursor: zoom-in; }
.ev-gallery.is-plan .ev-gallery-item img { height: auto; max-height: 80vh; object-fit: contain; border-radius: 8px; }
.ev-gallery.is-plan .ev-gallery-item:hover img { transform: none; }
.ev-gallery.is-plan .ev-gallery-item span { position: static; padding: 10px 6px 4px; background: none; color: var(--ink); font-weight: 600; text-align: center; }

/* ============ TÉLÉPHONE : le menu de l'événement devient une pile de gros boutons orange ============ */
.ev-nav .ev-nav-register { display: none; }
@media (max-width: 767px) {
    .ev .ev-nav {
        position: static;
        margin-top: 22px !important;
        padding: 6px 0 14px;
        background: transparent;
        border: 0;
        box-shadow: none;
        backdrop-filter: none;
    }
    .ev .ev-nav-inner { display: block; }
    .ev .ev-nav ul { display: flex; flex-direction: column; gap: 12px; width: 100%; overflow: visible; white-space: normal; }
    .ev .ev-nav li { width: 100%; }
    .ev-nav li { flex: 0 0 auto; }
    .ev .ev-nav .ev-nav-register { display: block; }
    .ev .ev-nav a:not(.ev-btn) {
        display: block;
        margin: 0;
        padding: 16px 14px;
        border: 0;
        border-radius: 12px;
        background: #e8730c;            /* orange AFOR un peu plus profond : le blanc y reste lisible (3:1 en grand gras) */
        color: #fff;
        text-align: center;
        font-family: 'Sora', 'Century Gothic', sans-serif;
        font-size: 19px;
        font-weight: 800;
        letter-spacing: .02em;
        line-height: 1.2;
        text-transform: uppercase;
        box-shadow: 0 6px 14px rgba(232, 115, 12, .28);
    }
    .ev .ev-nav a:not(.ev-btn):hover,
    .ev .ev-nav a:not(.ev-btn):active { background: #d96408; color: #fff; }
    /* page en cours : orange foncé + repère, pour savoir où l'on est */
    .ev .ev-nav a.is-active:not(.ev-btn) { background: #a84d08; color: #fff; border: 0; box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .55); }
    /* « Je m'inscris » est dans la pile : on retire les doublons */
    .ev-mobile-cta { display: none !important; }
    .ev .ev-cta-row a.ev-btn-primary { display: none; }
    .ev-share { padding-bottom: 50px; }
}
@media (max-width: 380px) {
    .ev .ev-nav a:not(.ev-btn) { font-size: 17px; padding: 14px 10px; }
}

/* ===================== MISE EN FORME DES DESCRIPTIONS ===================== */
.ev-session-desc { margin: 0 0 12px; color: var(--muted); line-height: 1.65; font-size: 15.5px; }
.ev-session-desc p { margin: 0 0 .6em; text-align: left !important; }
.ev-session-desc p:last-child { margin-bottom: 0; }
.ev-session-desc ol, .ev-session-desc ul { margin: 0 0 .6em; padding-left: 1.4em; }
.ev-session-desc li { margin-bottom: .35em; padding-left: .2em; }
.ev-session-desc strong { color: var(--ink); }
.ev-session-desc a { color: var(--g600); text-decoration: underline; }
/* textes simples saisis avec des retours à la ligne */
.ev-speaker details p, .ev-exhibitor p { white-space: pre-line; }

/* ============ Arrivée directe sur le contenu de la rubrique (ancre #rubrique) ============ */
html { scroll-behavior: auto; }
#rubrique { scroll-margin-top: 88px; }          /* la barre collante des rubriques fait ~62 px */
/* Sur téléphone le thème fixe un bandeau de 114 px en haut (ticker 40 + logo 74) : on s'arrête dessous. */
@media (max-width: 767px) { #rubrique { scroll-margin-top: 132px; } }

/* Le thème met « overflow: hidden » sur <body>, ce qui empêche la barre des rubriques de rester collée.
   « clip » coupe toujours ce qui dépasse sur les côtés, mais ne bloque pas le comportement « sticky ». */
html.ev-page body { overflow-x: clip !important; overflow-y: visible !important; }

/* Une rubrique encore vide reste assez haute pour que l'arrivée sur son titre se fasse en haut d'écran. */
.ev-content { min-height: 70vh; }

@media (max-width: 767px) {
    .ev-partners-row { gap: 16px 22px; }
    .ev-partners-row img { height: 46px; max-width: 42vw; }
}

/* ---------- logos partenaires : noir et blanc au repos, couleur au survol ---------- */
.ev-partners-row li { display: flex; align-items: center; }
.ev-partners-row img { filter: grayscale(1); opacity: .8; transition: filter .25s ease, opacity .25s ease, transform .25s ease; }
.ev-partners-row li:hover img, .ev-partners-row a:focus-visible img { filter: none; opacity: 1; transform: scale(1.06); }
@media (hover: none) { .ev-partners-row img { filter: none; opacity: 1; } }   /* écrans tactiles : pas de survol, donc couleur */

/* ---------- biographie d'un intervenant : hauteur limitée, on fait défiler le texte ---------- */
.ev-speaker details[open] p {
    max-height: 150px;
    overflow-y: auto;
    padding-right: 8px;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--g600) var(--line);
}
.ev-speaker details[open] p::-webkit-scrollbar { width: 6px; }
.ev-speaker details[open] p::-webkit-scrollbar-track { background: var(--line); border-radius: 6px; }
.ev-speaker details[open] p::-webkit-scrollbar-thumb { background: var(--g600); border-radius: 6px; }

/* ---------- logo d'un exposant : toujours entier, centré, sur fond blanc ---------- */
.ev-ex-logo { display: flex; align-items: center; justify-content: center; height: 130px; padding: 12px; background: #fff; border: 1px solid var(--line); overflow: hidden; }
.ev .ev-ex-logo img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; object-position: center; }

/* ---------- plan du site : PDF lu dans la page ---------- */
.ev-pdf { display: block; width: 100%; height: 80vh; min-height: 480px; margin: 0 0 18px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
@media (max-width: 767px) { .ev-pdf { display: none; } }   /* les navigateurs mobiles n'affichent pas les PDF dans la page : bouton de téléchargement */

/* ---------- exposant : présentation complète, zone de hauteur limitée qui défile ---------- */
.ev-ex-desc { max-height: 150px; overflow-y: auto; padding-right: 8px; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--g600) var(--line); }
.ev-ex-desc::-webkit-scrollbar { width: 6px; }
.ev-ex-desc::-webkit-scrollbar-track { background: var(--line); border-radius: 6px; }
.ev-ex-desc::-webkit-scrollbar-thumb { background: var(--g600); border-radius: 6px; }
.ev-ex-desc:focus-visible { outline: 2px solid var(--g600); outline-offset: 2px; border-radius: 6px; }
.ev-ex-logo .ev-avatar-lg { width: 84px; height: 84px; border-radius: 50%; font-size: 30px; }   /* exposant sans logo : pastille d'initiales */

/* ---------- lien « Nos innovations » (site externe) ---------- */
.ev .ev-nav .ev-nav-innov a:not(.ev-btn) { color: var(--orange-deep); }
.ev .ev-nav .ev-nav-innov a:not(.ev-btn):hover { color: var(--g600); }
.ev .ev-nav .ev-nav-innov i { margin-left: 4px; font-size: .7em; }
@media (max-width: 767px) { .ev .ev-nav .ev-nav-innov a:not(.ev-btn) { color: #fff; } }
@media (min-width: 768px) and (max-width: 1239px) { .ev .ev-nav a:not(.ev-btn) { padding-left: 9px; padding-right: 9px; font-size: 13px; letter-spacing: 0; } }
