/*
 * Page publique d'un evenement (resources/views/vitrines/event-detail.blade.php).
 *
 * Ces regles etaient ecrites en ligne dans la vue: 45 Ko renvoyes a chaque
 * affichage, jamais mis en cache. En fichier, le navigateur ne les telecharge
 * qu'une fois.
 */

    .iti__flag { background-image: url("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.18/img/flags.png"); }
    @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
        .iti__flag { background-image: url("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.18/img/flags@2x.png"); }
    }
    /* intl-tel-input full width */
    .iti { width: 100%; display: block; }
    .iti input { width: 100%; }

    /* ═══ EVENT DETAIL PAGE ═══ */

    /* Hero banner */
    .ed-hero {
        position: relative;
        height: 420px;
        overflow: hidden;
        background: #0a0a14;
    }
    .ed-hero__img {
        position: absolute; inset: 0;
        width: 100%; height: 100%;
        object-fit: cover;
        opacity: 0.5;
    }
    .ed-hero__overlay {
        position: absolute; inset: 0;
        background: linear-gradient(to top, rgba(10,10,20,0.95) 0%, rgba(10,10,20,0.5) 40%, rgba(10,10,20,0.3) 100%);
    }
    .ed-hero__content {
        position: absolute; bottom: 0; left: 0; right: 0;
        max-width: 1200px; margin: 0 auto;
        padding: 0 24px 40px;
        z-index: 2;
    }
    .ed-hero__breadcrumb {
        display: flex; gap: 8px; list-style: none; padding: 0; margin: 0 0 20px;
        font-size: 0.78rem;
    }
    .ed-hero__breadcrumb a { color: rgba(255,255,255,0.5); text-decoration: none; }
    .ed-hero__breadcrumb a:hover { color: #fff; }
    .ed-hero__breadcrumb span { color: rgba(255,255,255,0.25); }
    .ed-hero__breadcrumb li:last-child { color: rgba(255,255,255,0.7); }

    .ed-hero__title {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 2.5rem; font-weight: 700; color: #fff;
        margin: 0 0 16px; line-height: 1.2; max-width: 700px;
    }
    .ed-hero__meta {
        display: flex; flex-wrap: wrap; gap: 24px;
    }
    .ed-hero__meta-item {
        display: flex; align-items: center; gap: 10px;
        font-family: 'Inter', sans-serif;
        font-size: 0.88rem; color: rgba(255,255,255,0.75);
    }
    .ed-hero__meta-icon {
        width: 36px; height: 36px;
        display: flex; align-items: center; justify-content: center;
        background: rgba(255,255,255,0.1);
        border-radius: 8px; color: #ec167f; font-size: 0.8rem;
    }

    /* Two-column layout */
    .ed-layout {
        max-width: 1200px; margin: 0 auto;
        padding: 40px 24px 80px;
        display: grid;
        grid-template-columns: 1fr 380px;
        gap: 40px;
        align-items: start;
    }

    /* Left column: event info */
    .ed-main {}

    /* ═══ INFO PILLS ═══ */
    .ed-pills {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 28px;
    }
    .ed-pill {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 10px 16px;
        background: #f4f4f7;
        border: 1px solid #e8e8ee;
        border-radius: 10px;
        font-family: 'Inter', sans-serif;
        font-size: 0.85rem;
        font-weight: 600;
        color: #1a1a2e;
    }
    .ed-pill__icon {
        color: #ec167f;
        font-size: 18px;
    }

    /* About + Contact */
    .ed-about {
        margin-bottom: 36px;
    }
    .ed-about__text {
        font-size: 0.92rem;
        color: #6b6b7b;
        line-height: 1.75;
        margin-bottom: 16px;
    }
    .ed-about__text p { margin: 0; }
    .ed-about__text.is-clamped {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .ed-about__text.is-clamped.is-expanded {
        -webkit-line-clamp: unset;
    }
    .ed-about__toggle {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        background: none;
        border: none;
        padding: 0;
        margin-bottom: 16px;
        font-family: 'Inter', sans-serif;
        font-size: 0.82rem;
        font-weight: 600;
        color: #ec167f;
        cursor: pointer;
    }
    .ed-about__toggle:hover { text-decoration: underline; }
    .ed-about__toggle .mi {
        transition: transform 0.2s;
    }
    .ed-about__toggle.is-expanded .mi {
        transform: rotate(180deg);
    }
    .ed-contact-line {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }
    .ed-contact-chip {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 8px 16px;
        background: #f4f4f7;
        border: 1px solid #e8e8ee;
        border-radius: 100px;
        font-family: 'Inter', sans-serif;
        font-size: 0.82rem;
        font-weight: 600;
        color: #4a4a5a;
        text-decoration: none;
        transition: all 0.2s;
    }
    .ed-contact-chip i {
        color: #ec167f;
        font-size: 0.75rem;
    }
    .ed-contact-chip:hover {
        background: #ec167f;
        color: #fff;
        border-color: #ec167f;
        text-decoration: none;
    }
    .ed-contact-chip:hover i { color: #fff; }

    /* Tickets section in main */
    .ed-tickets { margin-bottom: 40px; }
    .ed-section-title {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 1.15rem; font-weight: 700; color: #1a1a2e;
        margin: 0 0 20px;
        display: flex; align-items: center; gap: 10px;
    }
    .ed-section-title i {
        color: #ec167f; font-size: 0.9rem;
    }
    .ed-ticket-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 12px;
    }
    /* ═══ TICKET CARD ═══ */
    .ed-ticket-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 14px;
    }
    .ed-tkt {
        position: relative;
        background: #fff;
        border: 2px solid #e8e8ee;
        border-radius: 14px;
        cursor: pointer;
        transition: all 0.25s;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }
    .ed-tkt:hover {
        border-color: #d1d1db;
        box-shadow: 0 4px 16px rgba(0,0,0,0.06);
    }
    .ed-tkt--selected, .ed-tkt--selected:hover {
        border-color: #ec167f;
        box-shadow: 0 4px 20px rgba(236,22,127,0.12);
    }
    /* Top: price banner */
    .ed-tkt__header {
        padding: 20px 20px 16px;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
    }
    .ed-tkt__pricing {
        min-width: 0;
    }
    .ed-tkt__type {
        font-family: 'Inter', sans-serif;
        font-size: 0.65rem; font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: #8e8e9e;
        margin-bottom: 6px;
    }
    .ed-tkt--selected .ed-tkt__type { color: #ec167f; }
    .ed-tkt__price-row {
        display: flex;
        align-items: baseline;
        gap: 4px;
    }
    .ed-tkt__price {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 1.75rem; font-weight: 700; color: #1a1a2e;
        line-height: 1;
    }
    .ed-tkt--selected .ed-tkt__price { color: #ec167f; }
    .ed-tkt__currency {
        font-family: 'Inter', sans-serif;
        font-size: 0.72rem; font-weight: 600; color: #8e8e9e;
    }
    /* Check circle */
    .ed-tkt__check {
        width: 24px; height: 24px;
        display: flex; align-items: center; justify-content: center;
        border-radius: 50%;
        border: 2px solid #e8e8ee;
        background: #fff;
        color: transparent;
        font-size: 0.55rem;
        transition: all 0.2s;
        flex-shrink: 0;
        margin-top: 2px;
    }
    .ed-tkt--selected .ed-tkt__check {
        background: #ec167f;
        border-color: #ec167f;
        color: #fff;
    }
    /* Dashed separator */
    .ed-tkt__separator {
        border: none;
        border-top: 2px dashed #e8e8ee;
        margin: 0 20px;
    }
    .ed-tkt--selected .ed-tkt__separator { border-color: rgba(236,22,127,0.15); }
    /* Bottom: description */
    .ed-tkt__body {
        padding: 14px 20px 18px;
        flex: 1;
    }
    .ed-tkt__desc {
        font-family: 'Inter', sans-serif;
        font-size: 0.82rem; color: #6b6b7b; line-height: 1.55;
        margin: 0;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .ed-tkt__desc.is-expanded {
        -webkit-line-clamp: unset;
    }
    .ed-tkt__more {
        display: inline;
        background: none; border: none; padding: 0;
        font-family: 'Inter', sans-serif;
        font-size: 0.75rem; font-weight: 600;
        color: #ec167f; cursor: pointer;
        margin-top: 4px;
    }
    .ed-tkt__more:hover { text-decoration: underline; }
    /* Stock badge */
    .ed-tkt__stock { margin-top: 10px; }
    .ed-tkt__badge {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        font-family: 'Inter', sans-serif;
        font-size: 0.72rem;
        font-weight: 600;
        padding: 4px 10px;
        border-radius: 100px;
    }
    .ed-tkt__badge .mi { font-size: 14px; }
    .ed-tkt__badge--available {
        background: #e8f5ee;
        color: #0d7a3e;
    }
    .ed-tkt__badge--low {
        background: #fff3e0;
        color: #b45309;
    }
    .ed-tkt__badge--soldout {
        background: #fde8e8;
        color: #b91c1c;
    }
    /* Prochaine bascule de prix.

       L'encadre etait ambre, la couleur des avertissements de la plateforme: il
       se lisait comme une alerte posee sur la carte plutot que comme une
       information du billet. Il reprend la teinte de la marque, celle du prix et
       de la carte selectionnee. */
    .ed-tkt__switch {
        margin-bottom: 12px;
        padding: 10px 12px;
        background: #fdf2f8;
        border: 1px solid #fbcfe8;
        border-radius: 10px;
    }
    .ed-tkt__switch-title {
        display: flex; align-items: center; gap: 4px;
        font-size: 0.62rem; font-weight: 700; color: #be185d;
        text-transform: uppercase; letter-spacing: 0.06em;
    }
    .ed-tkt__switch-title .mi { font-size: 13px; }
    .ed-tkt__switch-row {
        display: flex; align-items: center; gap: 9px;
        margin-top: 7px;
    }
    .ed-tkt__switch-bar {
        flex: 1; height: 6px; border-radius: 99px;
        background: #fbcfe8; overflow: hidden;
    }
    .ed-tkt__switch-fill {
        height: 100%; border-radius: 99px;
        background: #ec167f;
    }
    .ed-tkt__switch-count {
        font-size: 0.74rem; font-weight: 700; color: #9d174d;
        white-space: nowrap;
    }
    .ed-tkt__switch-count .mi { font-size: 14px; vertical-align: -2px; }
    .ed-tkt__switch-next {
        font-size: 0.72rem; color: #a3527a; margin-top: 5px;
    }
    .ed-tkt__switch-next strong { color: #9d174d; }
    /* Sold out card */
    .ed-tkt--soldout {
        opacity: 0.5;
        pointer-events: none;
    }

    /* Chronogram / Schedule */
    .ed-timeline { margin-bottom: 40px; }
    .ed-timeline__date {
        font-size: 0.82rem; font-weight: 700; color: #ec167f;
        margin-bottom: 12px;
        display: flex; align-items: center; gap: 8px;
    }
    .ed-timeline__item {
        display: flex; gap: 16px;
        padding: 16px 0;
        border-bottom: 1px solid #f4f4f7;
    }
    .ed-timeline__item:last-child { border-bottom: none; }
    .ed-timeline__time {
        font-family: 'Inter', sans-serif;
        font-size: 0.82rem; font-weight: 700; color: #1a1a2e;
        white-space: nowrap; min-width: 100px;
    }
    .ed-timeline__label {
        font-size: 0.9rem; font-weight: 600; color: #1a1a2e;
    }
    .ed-timeline__desc {
        font-size: 0.82rem; color: #8e8e9e; margin-top: 4px;
    }

    /* Sponsors */
    .ed-sponsors { margin-bottom: 40px; }
    .ed-sponsors__grid {
        display: flex; flex-wrap: wrap; gap: 12px;
    }
    .ed-sponsor-item {
        padding: 16px 24px;
        background: #f4f4f7; border: 1px solid #e8e8ee;
        border-radius: 8px;
    }
    .ed-sponsor-item img {
        max-width: 100px; max-height: 50px; object-fit: contain;
    }

    /* Organizers */
    .ed-organizers { margin-bottom: 40px; }
    .ed-org-card {
        display: flex; align-items: center; gap: 16px;
        padding: 16px 20px;
        background: #f4f4f7; border: 1px solid #e8e8ee;
        border-radius: 10px; margin-bottom: 10px;
    }
    .ed-org-card__avatar {
        width: 44px; height: 44px;
        display: flex; align-items: center; justify-content: center;
        background: #fff; border-radius: 50%;
        color: #ec167f; font-size: 1rem;
        border: 1px solid #e8e8ee;
    }
    .ed-org-card__info {
        min-width: 0;
        flex: 1;
    }
    .ed-org-card__name {
        font-size: 0.92rem; font-weight: 700; color: #1a1a2e;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .ed-org-card__detail {
        font-size: 0.78rem; color: #8e8e9e;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* ═══ HERO CTA ═══ */
    .ed-hero__cta {
        display: flex;
        align-items: center;
        gap: 16px;
        margin-top: 20px;
    }
    .ed-hero__cta-price {
        font-family: 'Inter', sans-serif;
        font-size: 0.88rem;
        font-weight: 600;
        color: rgba(255,255,255,0.6);
    }
    .ed-hero__cta-btn {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 12px 24px;
        background: #ec167f;
        color: #fff;
        border-radius: 10px;
        font-family: 'Inter', sans-serif;
        font-size: 0.88rem;
        font-weight: 700;
        text-decoration: none;
        transition: background 0.2s;
    }
    .ed-hero__cta-btn:hover { background: #c9116a; color: #fff; text-decoration: none; }

    /* Pills hidden on desktop (hero meta is enough) */
    .ed-pills { display: none; }

    /* ═══ FOOTER SECTION (Map + Share combined) ═══ */
    .ed-footer-section {
        display: flex;
        gap: 16px;
        align-items: stretch;
        margin-bottom: 36px;
    }
    .ed-footer-section .ed-map { flex: 1; margin-bottom: 0; }
    .ed-footer-section .ed-map__preview { height: 100%; min-height: 80px; }

    /* Inline share */
    .ed-share-inline {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 12px;
        padding: 20px;
        background: #f4f4f7;
        border: 1px solid #e8e8ee;
        border-radius: 12px;
        flex-shrink: 0;
    }
    .ed-share-inline__label {
        font-family: 'Inter', sans-serif;
        font-size: 0.68rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: #8e8e9e;
    }
    .ed-share-inline__buttons {
        display: flex;
        gap: 6px;
    }
    .ed-share-ibtn {
        width: 36px; height: 36px;
        display: flex; align-items: center; justify-content: center;
        border-radius: 8px;
        color: #fff;
        font-size: 0.85rem;
        text-decoration: none;
        border: none; cursor: pointer;
        transition: opacity 0.2s, transform 0.2s;
    }
    .ed-share-ibtn:hover { opacity: 0.85; transform: translateY(-2px); color: #fff; text-decoration: none; }
    .ed-share-ibtn.copied { background: #0d7a3e !important; }

    /* ═══ SPEAKERS ═══ */
    .ed-speakers { margin-bottom: 36px; }
    .ed-speakers__grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 12px;
    }
    .ed-speaker {
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 14px 16px;
        background: #f4f4f7;
        border: 1px solid #e8e8ee;
        border-radius: 10px;
        text-decoration: none;
        transition: all 0.2s;
    }
    .ed-speaker:hover {
        border-color: #ec167f;
        box-shadow: 0 4px 12px rgba(0,0,0,0.06);
        text-decoration: none;
    }
    .ed-speaker__photo {
        width: 48px; height: 48px;
        border-radius: 50%;
        overflow: hidden;
        flex-shrink: 0;
        background: #e8e8ee;
    }
    .ed-speaker__photo img {
        width: 100%; height: 100%;
        object-fit: cover;
    }
    .ed-speaker__name {
        font-family: 'Inter', sans-serif;
        font-size: 0.88rem; font-weight: 700;
        color: #1a1a2e;
    }
    .ed-speaker__role {
        font-size: 0.75rem; color: #8e8e9e;
        margin-top: 2px;
    }

    /* ═══ MAP ═══ */
    .ed-map { margin-bottom: 36px; }
    .ed-map__card {
        display: block;
        border: 1px solid #e8e8ee;
        border-radius: 12px;
        overflow: hidden;
        text-decoration: none;
        transition: all 0.2s;
    }
    .ed-map__card:hover {
        border-color: #d1d1db;
        box-shadow: 0 4px 16px rgba(0,0,0,0.06);
        text-decoration: none;
    }
    .ed-map__preview {
        height: 160px;
        background: #f4f4f7;
        position: relative;
        overflow: hidden;
    }
    .ed-map__preview img {
        width: 100%; height: 100%;
        object-fit: cover;
    }
    .ed-map__preview-fallback {
        position: absolute; inset: 0;
        display: flex; align-items: center; justify-content: center;
        background: linear-gradient(135deg, #f4f4f7 0%, #e8e8ee 100%);
    }
    .ed-map__preview--fallback img { display: none; }
    .ed-map__preview--fallback .ed-map__preview-fallback { display: flex; }
    .ed-map__info {
        padding: 16px 18px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }
    .ed-map__place {
        display: flex;
        align-items: center;
        font-family: 'Inter', sans-serif;
        font-size: 0.88rem; font-weight: 600;
        color: #1a1a2e;
    }
    .ed-map__action {
        display: flex;
        align-items: center;
        gap: 4px;
        font-family: 'Inter', sans-serif;
        font-size: 0.78rem; font-weight: 600;
        color: #ec167f;
        white-space: nowrap;
        flex-shrink: 0;
    }

    /* ═══ FAQ ═══ */
    /* ═══ PRODUCTS ═══ */
    .ed-product-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
    .ed-product-card {
        background: #fff;
        border: 1px solid #e8e8ee;
        border-radius: 12px;
        overflow: hidden;
        transition: box-shadow 0.3s, transform 0.3s;
    }
    .ed-product-card:hover {
        box-shadow: 0 8px 24px rgba(0,0,0,0.08);
        transform: translateY(-2px);
    }
    .ed-product-card__img {
        aspect-ratio: 4/3;
        overflow: hidden;
    }
    .ed-product-card__img img {
        width: 100%; height: 100%;
        object-fit: cover;
    }
    .ed-product-card__img--placeholder {
        display: flex; align-items: center; justify-content: center;
        background: #f4f4f7;
    }
    .ed-product-card__body {
        padding: 16px;
    }
    .ed-product-card__name {
        font-family: 'Inter', sans-serif;
        font-size: 0.92rem; font-weight: 700;
        color: #1a1a2e;
        margin: 0 0 4px;
    }
    .ed-product-card__desc {
        font-size: 0.78rem; color: #8e8e9e;
        margin: 0 0 12px; line-height: 1.5;
    }
    .ed-product-card__footer {
        display: flex; align-items: center; justify-content: space-between;
        gap: 8px;
    }
    .ed-product-card__price {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 1rem; font-weight: 700;
        color: #ec167f;
    }
    .ed-product-card__stock {
        font-size: 0.72rem; font-weight: 600;
        color: #0d7a3e;
        display: flex; align-items: center; gap: 3px;
    }
    .ed-product-card__stock--out { color: #b91c1c; }
    .ed-product-card__cat {
        display: inline-block;
        margin-top: 10px;
        padding: 3px 8px;
        background: #f4f4f7;
        border-radius: 4px;
        font-size: 0.68rem; font-weight: 600;
        color: #8e8e9e;
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }

    /* Add to cart button on tickets + products */
    .ed-add-cart {
        display: flex; align-items: center; justify-content: center; gap: 6px;
        width: 100%; padding: 10px;
        margin-top: 12px;
        background: #ec167f; color: #fff;
        border: none; border-radius: 8px;
        font-family: 'Inter', sans-serif;
        font-size: 0.82rem; font-weight: 600;
        cursor: pointer; transition: background 0.2s;
    }
    .ed-add-cart:hover { background: #c9116a; }
    .ed-add-cart:disabled { background: #b0b0be; cursor: not-allowed; }
    .ed-add-cart--added {
        background: #0d7a3e;
    }

    /* ═══ CART DRAWER ═══ */
    .ed-cart-backdrop {
        position: fixed; inset: 0;
        background: rgba(10,10,20,0.5);
        z-index: 9998;
        display: none;
    }
    .ed-cart-backdrop.active { display: block; }
    .ed-cart {
        position: fixed; top: 0; right: -420px; bottom: 0;
        width: 400px; max-width: 90vw;
        background: #fff;
        z-index: 9999;
        display: flex; flex-direction: column;
        box-shadow: -8px 0 32px rgba(0,0,0,0.12);
        transition: right 0.3s cubic-bezier(0.25,0.46,0.45,0.94);
    }
    .ed-cart.active { right: 0; }

    .ed-cart__header {
        display: flex; align-items: center; justify-content: space-between;
        padding: 20px 24px;
        border-bottom: 1px solid #f4f4f7;
        flex-shrink: 0;
    }
    .ed-cart__title {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 1.05rem; font-weight: 700; color: #1a1a2e;
        margin: 0;
        display: flex; align-items: center; gap: 8px;
    }
    .ed-cart__count-badge {
        display: inline-flex; align-items: center; justify-content: center;
        min-width: 22px; height: 22px;
        background: #ec167f; color: #fff;
        border-radius: 12px;
        font-family: 'Inter', sans-serif;
        font-size: 0.7rem; font-weight: 700;
        padding: 0 6px;
    }
    .ed-cart__close {
        width: 36px; height: 36px;
        display: flex; align-items: center; justify-content: center;
        background: #f4f4f7; border: none; border-radius: 8px;
        color: #6b6b7b; cursor: pointer;
    }
    .ed-cart__close:hover { background: #e8e8ee; }

    .ed-cart__body {
        flex: 1; overflow-y: auto; padding: 16px 24px;
    }
    .ed-cart__empty {
        text-align: center; padding: 48px 16px; color: #b0b0be;
    }
    .ed-cart__empty .mi { font-size: 32px; display: block; margin-bottom: 12px; }

    .ed-cart-item {
        display: flex; gap: 12px; padding: 14px 0;
        border-bottom: 1px solid #f8f8fa;
    }
    .ed-cart-item:last-child { border-bottom: none; }
    .ed-cart-item__delivery {
        display: flex; align-items: center; gap: 4px;
        font-size: 0.7rem; color: #6b7280; margin-top: 2px;
    }
    .ed-cart-item__delivery .mi { font-size: 13px; }
    .ed-cart__notice {
        display: flex; gap: 8px; align-items: flex-start;
        margin: 12px 16px; padding: 10px 12px;
        background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px;
        font-size: 0.78rem; line-height: 1.5; color: #92400e;
    }
    .ed-cart__notice .mi { font-size: 16px; flex-shrink: 0; }
    .ed-cart-item__thumb {
        width: 40px; height: 40px; border-radius: 8px;
        object-fit: cover; flex-shrink: 0; display: block;
    }
    .ed-cart-item__icon {
        width: 40px; height: 40px;
        display: flex; align-items: center; justify-content: center;
        background: #f4f4f7; border-radius: 8px;
        flex-shrink: 0;
    }
    .ed-cart-item__icon--ticket { color: #ec167f; }
    .ed-cart-item__icon--product { color: #f59e0b; }
    .ed-cart-item__info { flex: 1; min-width: 0; }
    .ed-cart-item__name {
        font-size: 0.88rem; font-weight: 600; color: #1a1a2e;
        margin: 0 0 2px;
    }
    .ed-cart-item__type {
        font-size: 0.7rem; color: #8e8e9e; text-transform: uppercase;
        letter-spacing: 0.04em; font-weight: 600;
    }
    .ed-cart-item__right {
        display: flex; flex-direction: column; align-items: flex-end;
        gap: 6px; flex-shrink: 0;
    }
    .ed-cart-item__price {
        font-family: 'Inter', sans-serif;
        font-size: 0.88rem; font-weight: 700; color: #1a1a2e;
    }
    .ed-cart-item__qty {
        display: flex; align-items: center; gap: 0;
        border: 1px solid #e8e8ee; border-radius: 6px; overflow: hidden;
    }
    .ed-cart-item__qty-btn {
        width: 28px; height: 28px;
        display: flex; align-items: center; justify-content: center;
        background: #fafafc; border: none; color: #6b6b7b;
        cursor: pointer; font-size: 0.8rem;
    }
    .ed-cart-item__qty-btn:hover { background: #f4f4f7; color: #ec167f; }
    .ed-cart-item__qty-val {
        width: 30px; text-align: center;
        font-size: 0.82rem; font-weight: 700; color: #1a1a2e;
        border-left: 1px solid #e8e8ee; border-right: 1px solid #e8e8ee;
        line-height: 28px;
    }
    .ed-cart-item__remove {
        background: none; border: none;
        color: #b91c1c; cursor: pointer;
        font-size: 0.72rem; font-weight: 600;
        padding: 0; margin-top: 2px;
    }
    .ed-cart-item__remove:hover { text-decoration: underline; }

    .ed-cart__footer {
        padding: 20px 24px;
        border-top: 1px solid #f4f4f7;
        flex-shrink: 0;
    }
    .ed-cart__total-row {
        display: flex; justify-content: space-between; align-items: center;
        margin-bottom: 16px;
    }
    .ed-cart__total-label {
        font-size: 0.88rem; font-weight: 600; color: #6b6b7b;
    }
    .ed-cart__total-value {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 1.15rem; font-weight: 700; color: #ec167f;
    }
    .ed-cart__checkout-btn {
        display: flex; align-items: center; justify-content: center; gap: 8px;
        width: 100%; padding: 14px;
        background: #ec167f; color: #fff;
        border: none; border-radius: 10px;
        font-family: 'Inter', sans-serif;
        font-size: 0.95rem; font-weight: 600;
        cursor: pointer; transition: background 0.2s;
    }
    .ed-cart__checkout-btn:hover { background: #c9116a; }
    .ed-cart__checkout-btn:disabled { background: #b0b0be; cursor: not-allowed; }

    /* Checkout form inside drawer */
    .ed-cart__form { display: none; }
    .ed-cart__form.active { display: block; }
    .ed-cart__form-field {
        margin-bottom: 12px;
    }
    .ed-cart__form-label {
        display: block; font-size: 0.75rem; font-weight: 600;
        color: #6b6b7b; text-transform: uppercase;
        letter-spacing: 0.04em; margin-bottom: 4px;
    }
    .ed-cart__form-input {
        width: 100%; padding: 10px 12px;
        border: 1px solid #e8e8ee; border-radius: 8px;
        font-family: 'Inter', sans-serif;
        font-size: 0.88rem; color: #1a1a2e;
        background: #fafafc; outline: none;
    }
    .ed-cart__form-input:focus { border-color: #ec167f; }
    .ed-cart__back-btn {
        display: flex; align-items: center; gap: 4px;
        background: none; border: none;
        color: #8e8e9e; font-size: 0.82rem; font-weight: 600;
        cursor: pointer; padding: 0; margin-bottom: 16px;
    }
    .ed-cart__back-btn:hover { color: #1a1a2e; }

    /* Cart toggle floating button */
    .ed-cart-toggle {
        position: fixed; bottom: 24px; right: 24px;
        width: 56px; height: 56px;
        display: none; align-items: center; justify-content: center;
        background: #ec167f; color: #fff;
        border: none; border-radius: 50%;
        box-shadow: 0 4px 16px rgba(236,22,127,0.35);
        cursor: pointer;
        /* Above the cookie banner (9998). At 9990 the banner sat on top of this
           button and swallowed every click, so the cart could not be opened. */
        z-index: 10000;
        transition: transform 0.2s, bottom 0.2s;
    }
    .ed-cart-toggle:hover { transform: scale(1.08); }
    .ed-cart-toggle.has-items { display: flex; }
    /* Lift clear of the cookie banner so the two never overlap visually. */
    .ed-cart-toggle.above-cookie { bottom: 104px; }
    @media (max-width: 991px) {
        .ed-cart-toggle { display: none !important; }
    }
    .ed-cart-toggle__badge {
        position: absolute; top: -4px; right: -4px;
        min-width: 20px; height: 20px;
        background: #1a1a2e; color: #fff;
        border-radius: 10px;
        font-size: 0.68rem; font-weight: 700;
        display: flex; align-items: center; justify-content: center;
        padding: 0 5px;
    }

    @media (max-width: 991px) {
        .ed-cart-toggle { bottom: 90px; }
    }

    @media (max-width: 480px) {
        .ed-product-grid { grid-template-columns: 1fr; }
    }

    .ed-faq { margin-bottom: 36px; }
    .ed-faq__list {
        border: 1px solid #e8e8ee;
        border-radius: 12px;
        overflow: hidden;
    }
    .ed-faq__item {
        border-bottom: 1px solid #e8e8ee;
    }
    .ed-faq__item:last-child { border-bottom: none; }
    .ed-faq__q {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        width: 100%;
        padding: 18px 20px;
        background: #fff;
        border: none;
        cursor: pointer;
        font-family: 'Inter', sans-serif;
        font-size: 0.9rem;
        font-weight: 600;
        color: #1a1a2e;
        text-align: left;
        transition: background 0.15s;
    }
    .ed-faq__q:hover { background: #fafafc; }
    .ed-faq__arrow {
        color: #8e8e9e;
        transition: transform 0.25s;
        flex-shrink: 0;
    }
    .ed-faq__item.is-open .ed-faq__arrow {
        transform: rotate(180deg);
        color: #ec167f;
    }
    .ed-faq__a {
        display: none;
        padding: 0 20px 18px;
        background: #fff;
    }
    .ed-faq__item.is-open .ed-faq__a { display: block; }
    .ed-faq__a p {
        font-family: 'Inter', sans-serif;
        font-size: 0.85rem;
        color: #6b6b7b;
        line-height: 1.7;
        margin: 0;
    }
    .ed-faq__a a { color: #ec167f; font-weight: 600; }

    /* Quantity stepper */
    .ed-qty {
        display: flex;
        align-items: center;
        border: 1px solid #d1d1db;
        border-radius: 8px;
        overflow: hidden;
        background: #fff;
    }
    .ed-qty__btn {
        width: 42px; height: 42px;
        display: flex; align-items: center; justify-content: center;
        background: #f4f4f7; border: none;
        color: #1a1a2e; font-size: 0.7rem;
        cursor: pointer; transition: all 0.15s;
        flex-shrink: 0;
    }
    .ed-qty__btn:hover {
        background: #ec167f; color: #fff;
    }
    .ed-qty__btn:active {
        transform: scale(0.92);
    }
    .ed-qty__input {
        flex: 1;
        text-align: center;
        border: none; outline: none;
        font-family: 'Inter', sans-serif;
        font-size: 1rem; font-weight: 700;
        color: #1a1a2e;
        background: transparent;
        -moz-appearance: textfield;
        width: 100%;
        padding: 10px 0;
    }
    .ed-qty__input::-webkit-outer-spin-button,
    .ed-qty__input::-webkit-inner-spin-button {
        -webkit-appearance: none; margin: 0;
    }

    /* ═══ RIGHT SIDEBAR — sticky purchase ═══ */
    .ed-sidebar {
        position: sticky;
        top: 100px;
    }
    .ed-purchase {
        background: #fff;
        border: 1px solid #e8e8ee;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    }
    .ed-purchase__header {
        background: #0a0a14;
        padding: 24px;
        text-align: center;
    }
    .ed-purchase__header-title {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 1.1rem; font-weight: 700; color: #fff;
        margin: 0 0 4px;
    }
    .ed-purchase__header-sub {
        font-size: 0.78rem; color: rgba(255,255,255,0.45);
    }
    .ed-purchase__body {
        padding: 24px;
    }
    .ed-purchase__field {
        margin-bottom: 14px;
    }
    .ed-purchase__label {
        display: block;
        font-size: 0.75rem; font-weight: 600; color: #4a4a5a;
        margin-bottom: 6px;
    }
    /* Une note sous un champ: ce que l'acheteur doit savoir avant de saisir,
       pas apres le refus du paiement. */
    .ed-purchase__aide {
        font-size: 0.72rem; color: #6b6b7b; line-height: 1.45;
        margin-top: 6px;
    }
    .ed-purchase__input,
    .ed-purchase__select {
        width: 100%;
        padding: 11px 14px;
        border: 1px solid #d1d1db;
        border-radius: 8px;
        font-family: 'Inter', sans-serif;
        font-size: 0.88rem; color: #1a1a2e;
        background: #fff; outline: none;
        transition: border-color 0.2s;
        -webkit-appearance: none; appearance: none;
    }
    .ed-purchase__input:focus,
    .ed-purchase__select:focus {
        border-color: #ec167f;
        box-shadow: 0 0 0 3px rgba(236,22,127,0.08);
    }
    .ed-purchase__select {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6b7b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 12px center;
        padding-right: 32px;
    }
    .ed-purchase__row {
        display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
    }
    .ed-purchase__total {
        display: flex; justify-content: space-between; align-items: center;
        padding: 14px 16px; margin: 16px 0;
        background: #f4f4f7; border-radius: 8px;
    }
    .ed-purchase__total-label {
        font-size: 0.8rem; font-weight: 600; color: #6b6b7b;
        text-transform: uppercase; letter-spacing: 0.04em;
    }
    .ed-purchase__total-value {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 1.2rem; font-weight: 700; color: #1a1a2e;
    }
    .ed-purchase__btn {
        display: flex; align-items: center; justify-content: center; gap: 8px;
        width: 100%; padding: 14px;
        background: #ec167f; color: #fff; border: none; border-radius: 10px;
        font-family: 'Inter', sans-serif;
        font-size: 0.92rem; font-weight: 700;
        cursor: pointer; transition: background 0.2s;
    }
    .ed-purchase__btn:hover { background: #c9116a; }
    .ed-purchase__secure {
        display: flex; align-items: center; justify-content: center; gap: 6px;
        margin-top: 12px;
        font-size: 0.7rem; color: #b0b0be;
    }
    .ed-purchase__secure i { color: #0d7a3e; }

    /* ═══ MOBILE BOTTOM BAR ═══ */
    .ed-mobile-bar {
        display: none;
        position: fixed; bottom: 0; left: 0; right: 0;
        background: #fff;
        border-top: 1px solid #e8e8ee;
        padding: 10px 16px;
        padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
        z-index: 998;
        box-shadow: 0 -4px 16px rgba(0,0,0,0.08);
    }
    .ed-mobile-bar__inner {
        display: flex; align-items: center; justify-content: space-between; gap: 12px;
    }
    .ed-mobile-bar__info {
        font-size: 0.68rem; color: #8e8e9e; font-weight: 500;
    }
    .ed-mobile-bar__price {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 0.95rem; font-weight: 700; color: #1a1a2e;
    }
    .ed-mobile-bar__btn {
        display: flex; align-items: center; gap: 6px;
        padding: 11px 18px;
        background: #ec167f; color: #fff; border: none; border-radius: 10px;
        font-family: 'Inter', sans-serif;
        font-size: 0.82rem; font-weight: 700;
        cursor: pointer; white-space: nowrap; flex-shrink: 0;
    }

    /* ═══ BOTTOM SHEET ═══ */
    .ed-sheet__backdrop {
        display: none;
        position: fixed; inset: 0;
        background: rgba(0,0,0,0.5);
        z-index: 9998;
        opacity: 0;
        transition: opacity 0.3s;
    }
    .ed-sheet__backdrop.is-open { display: block; opacity: 1; }

    .ed-sheet {
        display: none;
        position: fixed;
        bottom: 0; left: 0; right: 0;
        background: #fff;
        border-radius: 20px 20px 0 0;
        z-index: 9999;
        max-height: 92vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        transform: translateY(100%);
        transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
    }
    .ed-sheet.is-open {
        display: block;
        transform: translateY(0);
    }
    .ed-sheet__header {
        position: sticky; top: 0;
        background: #fff;
        padding: 16px 20px 12px;
        display: flex; align-items: center; justify-content: space-between;
        border-bottom: 1px solid #f4f4f7;
        z-index: 1;
    }
    .ed-sheet__handle {
        position: absolute;
        top: 8px; left: 50%;
        transform: translateX(-50%);
        width: 36px; height: 4px;
        background: #d1d1db;
        border-radius: 2px;
    }
    .ed-sheet__title {
        font-family: 'DM Serif Display', Georgia, serif;
        font-size: 1.05rem; font-weight: 700; color: #1a1a2e;
    }
    .ed-sheet__close {
        background: #f4f4f7; border: none; border-radius: 50%;
        width: 32px; height: 32px;
        display: flex; align-items: center; justify-content: center;
        font-size: 1.2rem; color: #6b6b7b;
        cursor: pointer;
    }
    .ed-sheet__body {
        padding: 20px;
    }
    .ed-sheet__field {
        margin-bottom: 14px;
    }
    .ed-sheet__field label {
        display: block;
        font-family: 'Inter', sans-serif;
        font-size: 0.72rem; font-weight: 600; color: #4a4a5a;
        margin-bottom: 6px;
    }
    .ed-sheet__field input,
    .ed-sheet__field select {
        width: 100%;
        padding: 13px 14px;
        border: 1px solid #d1d1db;
        border-radius: 10px;
        font-family: 'Inter', sans-serif;
        font-size: 0.9rem; color: #1a1a2e;
        background: #fff; outline: none;
        -webkit-appearance: none; appearance: none;
        transition: border-color 0.2s;
    }
    .ed-sheet__field input:focus,
    .ed-sheet__field select:focus {
        border-color: #ec167f;
        box-shadow: 0 0 0 3px rgba(236,22,127,0.08);
    }
    .ed-sheet__field select {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6b7b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 14px center;
        padding-right: 36px;
    }
    .ed-sheet__row {
        display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
    }
    .ed-sheet__submit {
        display: flex; align-items: center; justify-content: center;
        width: 100%; padding: 16px;
        background: #ec167f; color: #fff; border: none; border-radius: 12px;
        font-family: 'Inter', sans-serif;
        font-size: 0.95rem; font-weight: 700;
        cursor: pointer; margin-top: 8px;
    }

    /* ═══ EVENT FINISHED BANNER ═══ */
    .ed-finished {
        background: linear-gradient(135deg, #1a1a2e 0%, #2d2d3f 100%);
        border-radius: 14px;
        padding: 24px 28px;
        display: flex;
        align-items: center;
        gap: 16px;
        margin-bottom: 32px;
        position: relative;
        overflow: hidden;
    }
    .ed-finished::before {
        content: '';
        position: absolute; inset: 0;
        background: radial-gradient(circle at 0% 50%, rgba(236,22,127,0.08) 0%, transparent 60%);
        pointer-events: none;
    }
    .ed-finished__icon {
        width: 48px; height: 48px;
        border-radius: 50%;
        background: rgba(255,255,255,0.08);
        display: flex; align-items: center; justify-content: center;
        flex-shrink: 0;
    }
    .ed-finished__icon .mi {
        font-size: 22px;
        color: #f59e0b;
    }
    .ed-finished__text {
        flex: 1;
    }
    .ed-finished__title {
        font-family: 'Inter', sans-serif;
        font-size: 0.92rem; font-weight: 700;
        color: #fff; margin: 0 0 2px;
    }
    .ed-finished__sub {
        font-family: 'Inter', sans-serif;
        font-size: 0.82rem;
        color: rgba(255,255,255,0.45); margin: 0;
    }
    .ed-finished__date {
        font-family: 'Inter', sans-serif;
        font-size: 0.78rem; font-weight: 600;
        color: rgba(255,255,255,0.35);
        text-align: right;
        flex-shrink: 0;
    }
    .ed-finished__date-val {
        color: rgba(255,255,255,0.6);
        font-size: 0.85rem;
    }

    /* Hero overlay for finished events */
    .ed-hero--finished .ed-hero__overlay {
        background: linear-gradient(to top, rgba(10,10,20,0.97) 0%, rgba(10,10,20,0.7) 40%, rgba(10,10,20,0.5) 100%);
    }
    .ed-hero__finished-tag {
        display: inline-flex; align-items: center; gap: 6px;
        background: rgba(245,158,11,0.15);
        border: 1px solid rgba(245,158,11,0.25);
        color: #f59e0b;
        padding: 6px 14px;
        border-radius: 20px;
        font-family: 'Inter', sans-serif;
        font-size: 0.72rem; font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        margin-bottom: 14px;
    }

    @media (max-width: 768px) {
        .ed-finished { flex-direction: column; text-align: center; gap: 12px; padding: 20px; }
        .ed-finished__date { text-align: center; }
    }

    /* ═══ TABLET (992-1199px) — sidebar still visible but narrower ═══ */
    @media (max-width: 1199px) {
        .ed-layout {
            grid-template-columns: 1fr 340px;
            padding: 36px 24px 80px;
            gap: 32px;
        }
    }

    /* ═══ TABLET SMALL (768-991px) — sidebar hidden, bottom bar ═══ */
    @media (max-width: 991px) {
        .ed-layout {
            grid-template-columns: 1fr;
            max-width: 720px;
            padding: 32px 24px 80px;
            gap: 32px;
        }
        .ed-sidebar { display: none; }
        .ed-mobile-bar { display: block; }
        .ed-hero { height: 320px; }
        .ed-hero__title { font-size: 1.85rem; }
        .ed-hero__content { padding: 0 24px 32px; }
        .ed-ticket-grid { grid-template-columns: 1fr 1fr; }
    }

    /* ═══ MOBILE (max 768px) ═══ */
    @media (max-width: 768px) {
        .ed-hero { height: 260px; }
        .ed-hero__title { font-size: 1.5rem; margin-bottom: 14px; }
        .ed-hero__content { padding: 0 20px 24px; }
        .ed-hero__breadcrumb { font-size: 0.72rem; margin-bottom: 14px; }
        .ed-hero__meta { display: none; }

        .ed-layout { max-width: 100%; padding: 20px 16px 72px; gap: 24px; }
        /* Pills visible on mobile */
        .ed-pills { display: flex; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 6px; margin-bottom: 20px; }
        .ed-pills::-webkit-scrollbar { display: none; }
        .ed-pill { flex-shrink: 0; padding: 8px 14px; font-size: 0.8rem; border-radius: 8px; }

        /* Hero CTA hidden on mobile (bottom bar handles it) */
        .ed-hero__cta { display: none; }

        /* About — clamp on mobile */
        .ed-about { margin-bottom: 24px; }
        .ed-about__text { -webkit-line-clamp: 3; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
        .ed-about__text.is-expanded { -webkit-line-clamp: unset; }
        .ed-contact-chip { font-size: 0.78rem; padding: 7px 14px; }
        .ed-contact-line { flex-direction: column; }

        /* Organizer fix */
        .ed-org-card { flex-direction: row; align-items: center; gap: 12px; padding: 12px 14px; overflow: hidden; }
        .ed-org-card__avatar { width: 36px; height: 36px; flex-shrink: 0; }
        .ed-org-card__info { min-width: 0; }
        .ed-org-card__name { font-size: 0.85rem; }
        .ed-org-card__detail { font-size: 0.72rem; }

        /* Footer section stacked */
        .ed-footer-section { flex-direction: column; gap: 12px; }
        .ed-share-inline { flex-direction: row; justify-content: space-between; padding: 16px; }

        .ed-section-title { font-size: 1rem; margin-bottom: 14px; }

        /* Share mobile */
        .ed-share-box { padding: 18px; }
        .ed-share-box__buttons { gap: 6px; }
        .ed-share-btn { padding: 9px 14px; font-size: 0.78rem; flex: 1; justify-content: center; min-width: calc(50% - 6px); }

        /* Hide bottom sheet on mobile — cart handles checkout */
        .ed-sheet, .ed-sheet__backdrop { display: none !important; }

        /* Tickets */
        .ed-tickets { margin-bottom: 24px; }
        .ed-ticket-grid { grid-template-columns: 1fr; gap: 10px; }
        .ed-tkt { border-radius: 12px; }
        .ed-tkt__header { padding: 16px 16px 12px; }
        .ed-tkt__price { font-size: 1.4rem; }
        .ed-tkt__body { padding: 10px 16px 14px; }
        .ed-tkt__desc { font-size: 0.78rem; -webkit-line-clamp: 2; }
        .ed-tkt__separator { margin: 0 16px; }
        .ed-tkt__check { width: 22px; height: 22px; }

        /* Timeline */
        .ed-timeline { margin-bottom: 24px; }
        .ed-timeline__item { flex-direction: column; gap: 4px; padding: 12px 0; }
        .ed-timeline__time { min-width: unset; font-size: 0.78rem; color: #ec167f; }

        /* Speakers */
        .ed-speakers { margin-bottom: 24px; }
        .ed-speakers__grid { grid-template-columns: 1fr; gap: 8px; }
        .ed-speaker { padding: 12px 14px; gap: 12px; }
        .ed-speaker__photo { width: 42px; height: 42px; }
        .ed-speaker__name { font-size: 0.85rem; }

        /* Sponsors scroll */
        .ed-sponsors { margin-bottom: 24px; }
        .ed-sponsors__grid { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
        .ed-sponsors__grid::-webkit-scrollbar { display: none; }
        .ed-sponsor-item { flex-shrink: 0; }

        /* Map */
        .ed-map { margin-bottom: 24px; }
        .ed-map__preview { height: 120px; }
        .ed-map__info { padding: 14px 16px; flex-direction: column; align-items: flex-start; gap: 8px; }
        .ed-map__place { font-size: 0.82rem; }

        /* Share */
        .ed-share-box { padding: 18px; }
        .ed-share-box__buttons { gap: 6px; }
        .ed-share-btn { padding: 9px 14px; font-size: 0.78rem; flex: 1; justify-content: center; min-width: calc(50% - 6px); }

        /* Bottom sheet */
        .ed-sheet__row { grid-template-columns: 1fr 1fr; }
        .ed-qty__btn { width: 44px; height: 44px; }
    }

    /* ═══ SMALL PHONES (480px) ═══ */
    @media (max-width: 480px) {
        .ed-hero { height: 220px; }
        .ed-hero__title { font-size: 1.25rem; }
        .ed-hero__content { padding: 0 16px 20px; }
        .ed-hero__meta { display: none; }
        .ed-layout { padding: 16px 16px 110px; }
        .ed-contact-line { flex-direction: column; }
        .ed-contact-chip { justify-content: center; }
    }

    /* ═══ VERY SMALL (380px) ═══ */
    @media (max-width: 380px) {
        .ed-hero { height: 190px; }
        .ed-hero__title { font-size: 1.1rem; }
        .ed-hero__meta { display: none; }
        .ed-layout { padding: 14px 14px 14px; }
        .ed-tkt__price { font-size: 1.1rem; }
        .ed-sheet__row { grid-template-columns: 1fr; }
    }

/* Consentement aux conditions, juste avant le paiement.
   Une clause « non remboursable » découverte après coup se conteste : elle
   doit être lisible au moment où l'acheteur engage son argent. */
.ed-consent {
    display: flex; align-items: flex-start; gap: 9px;
    margin: 0 0 14px; cursor: pointer;
    font-size: 0.76rem; line-height: 1.5; color: #6b6b7b;
}
.ed-consent__box {
    flex-shrink: 0; width: 16px; height: 16px; margin-top: 1px;
    accent-color: #ec167f; cursor: pointer;
}
.ed-consent__text a { color: #ec167f; text-decoration: underline; text-underline-offset: 2px; }
.ed-consent__text strong { color: #4a4a5a; font-weight: 600; }
/* Signalé lorsque l'acheteur tente de payer sans avoir coché. */
.ed-consent.is-missing { color: #b91c1c; }
.ed-consent.is-missing .ed-consent__box { outline: 2px solid #b91c1c; outline-offset: 2px; }
