/* ================================================================
   Eventbrite Events for Elementor v2 — Front-end Styles
   ================================================================ */

/* ── Shared utilities ─────────────────────────────────────────── */
.eee-icon { display:inline-block; vertical-align:middle; flex-shrink:0; }
.eee-icon--lg { width:20px; height:20px; }

.eee-badge {
    display:inline-block; padding:3px 10px; border-radius:20px;
    font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase;
}
.eee-badge--live   { background:#28a745; color:#fff; }
.eee-badge--online { background:#007bff; color:#fff; }
.eee-badge--neutral{ background:#6c757d; color:#fff; }

.eee-tag {
    display:inline-block; padding:2px 10px; border-radius:20px;
    font-size:12px; font-weight:600; background:#f0f0f0; color:#555;
    margin:0 4px 4px 0;
}
.eee-tag--format  { background:#e8f4fd; color:#0d6efd; }
.eee-tag--session { background:#fff3cd; color:#856404; }

.eee-btn {
    display:inline-block; padding:10px 24px; background:#f05537; color:#fff;
    font-size:14px; font-weight:600; border-radius:4px; text-decoration:none;
    transition:background .2s, transform .1s; white-space:nowrap; cursor:pointer;
}
.eee-btn:hover  { background:#d44228; color:#fff; }
.eee-btn:active { transform:scale(.97); }
.eee-btn--sm    { padding:6px 14px; font-size:12px; }
.eee-btn--lg    { padding:14px 36px; font-size:16px; }

.eee-no-events {
    text-align:center; color:#6c757d; font-style:italic; padding:24px 0;
}
.eee-error {
    background:#fff3cd; border:1px solid #ffc107; border-radius:4px;
    padding:12px 16px; font-size:13px; color:#856404;
}
.eee-placeholder {
    display:flex; align-items:center; gap:8px;
    background:#f8f9fa; border:2px dashed #dee2e6; border-radius:6px;
    padding:16px 20px; color:#6c757d; font-size:14px;
}
.eee-placeholder--error { background:#fff5f5; border-color:#f5c2c7; color:#842029; }

.eee-section__heading {
    font-size:22px; font-weight:700; margin:0 0 20px; padding-bottom:10px;
    border-bottom:2px solid #f05537;
}

/* ================================================================
   Event Header Widget
   ================================================================ */
.eee-header {
    position:relative; display:flex; align-items:flex-end;
    min-height:460px; background-size:cover; background-position:center;
    background-color:#1a1a2e; border-radius:4px; overflow:hidden;
}
.eee-header__overlay {
    position:absolute; inset:0; background:#000; opacity:.55; pointer-events:none;
}
.eee-header__content {
    position:relative; z-index:1; padding:40px; width:100%;
}
.eee-header__category {
    display:inline-block; background:rgba(255,255,255,.2); color:#fff;
    font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase;
    padding:3px 10px; border-radius:3px; margin-bottom:10px;
}
.eee-header__title {
    color:#fff; font-size:clamp(22px, 4vw, 42px); font-weight:800;
    line-height:1.2; margin:8px 0 16px;
}
.eee-header__meta {
    display:flex; flex-wrap:wrap; gap:16px; color:rgba(255,255,255,.85);
    font-size:14px;
}
.eee-header__meta-item {
    display:flex; align-items:center; gap:6px;
}
.eee-header__meta-item .eee-icon { color:#f05537; }

/* ================================================================
   Event Title Widget
   ================================================================ */
.eee-event-title { margin:0; }
.eee-event-title a { text-decoration:none; color:inherit; }

/* ================================================================
   Event Details Widget
   ================================================================ */
.eee-details {}
.eee-details__tags { margin-bottom:14px; }
.eee-details__body {
    line-height:1.7; color:#343a40;
    font-size:15px; margin-bottom:24px;
}
.eee-details__body h1,.eee-details__body h2,.eee-details__body h3 { margin-top:1.2em; }
.eee-details__body ul,.eee-details__body ol { padding-left:1.4em; }
.eee-details__organizer {
    display:flex; align-items:center; gap:14px;
    padding:16px; background:#f8f9fa; border-radius:6px;
    border-left:4px solid #f05537; margin-top:16px;
}
.eee-organizer__logo { width:50px; height:50px; object-fit:contain; border-radius:4px; }
.eee-organizer__label { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:#6c757d; }
.eee-organizer__name  { font-size:15px; font-weight:600; color:#212529; text-decoration:none; }
a.eee-organizer__name:hover { color:#f05537; }

/* ================================================================
   Date & Time Widget
   ================================================================ */
.eee-date {}
.eee-date-card {
    background:#f8f9fa; border-radius:8px; padding:20px;
    display:flex; flex-direction:column; gap:14px;
}
.eee-date--inline .eee-date-card { flex-direction:row; flex-wrap:wrap; gap:24px; }
.eee-date-card__row { display:flex; align-items:flex-start; gap:12px; }
.eee-date-card__icon { color:#f05537; margin-top:2px; }
.eee-date-card__text { display:flex; flex-direction:column; gap:2px; }
.eee-date-card__label { font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:#6c757d; }
.eee-date-card__value { font-size:16px; font-weight:700; color:#212529; }
.eee-date-card__time  { font-size:14px; color:#495057; }
.eee-date-card__row--end .eee-date-card__icon { color:#6c757d; }
.eee-date-card__timezone {
    display:flex; align-items:center; gap:6px;
    font-size:12px; color:#6c757d; padding-top:8px;
    border-top:1px solid #dee2e6; margin-top:4px;
}

/* Countdown */
.eee-countdown {
    display:flex; align-items:center; justify-content:center;
    gap:8px; margin-top:20px; padding:16px;
    background:#1a1a2e; border-radius:8px;
}
.eee-countdown__unit { display:flex; flex-direction:column; align-items:center; min-width:52px; }
.eee-countdown__num  { font-size:28px; font-weight:800; color:#f05537; line-height:1; }
.eee-countdown__label{ font-size:10px; text-transform:uppercase; letter-spacing:.6px; color:rgba(255,255,255,.6); margin-top:2px; }
.eee-countdown__sep  { font-size:24px; font-weight:700; color:rgba(255,255,255,.4); align-self:flex-start; padding-top:4px; }

/* ================================================================
   Location Widget
   ================================================================ */
.eee-location {}
.eee-location__map { margin-bottom:16px; border-radius:8px; overflow:hidden; }
.eee-location__map iframe { width:100%; border:0; display:block; }
.eee-location__card {
    display:flex; align-items:flex-start; gap:14px;
    background:#f8f9fa; border-radius:8px; padding:20px;
}
.eee-location__card--online { background:#e8f4fd; }
.eee-location__icon { color:#f05537; flex-shrink:0; margin-top:2px; }
.eee-location__venue { display:block; font-size:16px; font-weight:700; color:#212529; margin-bottom:6px; }
.eee-location__address {
    font-style:normal; font-size:14px; color:#495057; line-height:1.6;
    white-space:pre-line; margin:0 0 10px;
}
.eee-location__directions-link {
    font-size:13px; font-weight:600; color:#f05537; text-decoration:none;
}
.eee-location__directions-link:hover { text-decoration:underline; }

/* ================================================================
   Gallery Widget
   ================================================================ */
.eee-gallery {}
.eee-gallery__grid {
    display:grid; gap:8px;
    grid-template-columns: repeat(3, 1fr);
}
.eee-gallery--cols-1 { grid-template-columns:1fr; }
.eee-gallery--cols-2 { grid-template-columns:repeat(2, 1fr); }
.eee-gallery--cols-3 { grid-template-columns:repeat(3, 1fr); }
.eee-gallery--cols-4 { grid-template-columns:repeat(4, 1fr); }

.eee-gallery__item {}
.eee-gallery__link { display:block; }
.eee-gallery__thumb {
    position:relative; width:100%; padding-bottom:66%;
    background-size:cover; background-position:center;
    background-color:#e9ecef; border-radius:6px; overflow:hidden;
    transition:transform .2s, box-shadow .2s;
}
.eee-gallery__thumb:hover { transform:scale(1.02); box-shadow:0 4px 16px rgba(0,0,0,.2); }
.eee-gallery__zoom {
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    background:rgba(0,0,0,0); transition:background .2s; color:#fff; opacity:0;
}
.eee-gallery__thumb:hover .eee-gallery__zoom { background:rgba(0,0,0,.35); opacity:1; }

/* Lightbox */
.eee-lightbox {
    position:fixed; inset:0; z-index:99999;
    background:rgba(0,0,0,.92); display:flex;
    align-items:center; justify-content:center;
}
.eee-lightbox__img { max-width:90vw; max-height:90vh; border-radius:4px; }
.eee-lightbox__close {
    position:absolute; top:20px; right:24px;
    background:none; border:none; color:#fff;
    font-size:36px; line-height:1; cursor:pointer; padding:4px;
}
.eee-lightbox__close:hover { color:#f05537; }

/* ================================================================
   Lineup / Speakers Widget
   ================================================================ */
.eee-lineup {}
.eee-lineup__grid {
    display:grid; gap:20px;
    grid-template-columns:repeat(3,1fr);
}
.eee-lineup--cols-2 { grid-template-columns:repeat(2,1fr); }
.eee-lineup--cols-3 { grid-template-columns:repeat(3,1fr); }
.eee-lineup--cols-4 { grid-template-columns:repeat(4,1fr); }
.eee-lineup--cols-5 { grid-template-columns:repeat(5,1fr); }

.eee-speaker-card {
    background:#fff; border-radius:8px; padding:20px;
    box-shadow:0 2px 8px rgba(0,0,0,.08); text-align:center;
    display:flex; flex-direction:column; align-items:center; gap:12px;
    transition:transform .2s, box-shadow .2s;
}
.eee-speaker-card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.12); }

/* List layout */
.eee-lineup--list .eee-lineup__grid  { grid-template-columns:1fr; }
.eee-lineup--list .eee-speaker-card  { flex-direction:row; text-align:left; }
.eee-lineup--list .eee-speaker__body { flex:1; }

.eee-speaker__avatar-wrap {}
.eee-speaker__avatar {
    width:90px; height:90px; border-radius:50%; object-fit:cover;
    border:3px solid #f0f0f0;
}
.eee-speaker__avatar--placeholder {
    display:flex; align-items:center; justify-content:center;
    background:#e9ecef; color:#adb5bd;
}
.eee-speaker__name     { font-size:15px; font-weight:700; margin:0 0 4px; }
.eee-speaker__headline { font-size:13px; font-weight:600; color:#f05537; margin:0 0 4px; }
.eee-speaker__company  { font-size:12px; color:#6c757d; margin:0 0 6px; }
.eee-speaker__bio      { font-size:13px; color:#495057; line-height:1.5; margin:0; }

/* ================================================================
   Agenda Widget
   ================================================================ */
.eee-agenda {}

/* Timeline layout */
.eee-agenda-timeline { position:relative; }
.eee-agenda-timeline__item {
    display:flex; gap:16px; margin-bottom:8px;
}
.eee-agenda-timeline__marker {
    display:flex; flex-direction:column; align-items:center;
    flex-shrink:0; width:16px;
}
.eee-agenda-timeline__dot {
    width:14px; height:14px; border-radius:50%; background:#f05537;
    flex-shrink:0; margin-top:4px;
}
.eee-agenda-timeline__line {
    width:2px; flex:1; background:#f05537; opacity:.2; margin:4px 0;
}
.eee-agenda-timeline__item:last-child .eee-agenda-timeline__line { display:none; }

/* Session card (shared) */
.eee-agenda__session {
    background:#fff; border-radius:8px; padding:16px 18px;
    box-shadow:0 1px 6px rgba(0,0,0,.07); margin-bottom:0; flex:1;
    margin-bottom:8px;
}
.eee-agenda__meta  { display:flex; align-items:center; gap:10px; margin-bottom:6px; flex-wrap:wrap; }
.eee-agenda__time  { font-size:13px; font-weight:700; color:#f05537; }
.eee-agenda__name  { font-size:15px; font-weight:700; margin:0 0 6px; color:#212529; }
.eee-agenda__desc  { font-size:13px; color:#495057; line-height:1.5; margin:6px 0 0; }

/* Table layout */
.eee-agenda-table-wrap { overflow-x:auto; }
.eee-agenda-table {
    width:100%; border-collapse:collapse; font-size:14px;
}
.eee-agenda-table th {
    background:#f8f9fa; padding:10px 14px; text-align:left;
    font-weight:700; border-bottom:2px solid #dee2e6; white-space:nowrap;
}
.eee-agenda-table td {
    padding:10px 14px; border-bottom:1px solid #f0f0f0; vertical-align:top;
}
.eee-agenda-table tr:hover td { background:#fafafa; }

/* Cards layout */
.eee-agenda-cards { display:flex; flex-direction:column; gap:12px; }
.eee-agenda__session--card {
    display:flex; gap:16px; align-items:flex-start;
}
.eee-agenda__time-block {
    display:flex; flex-direction:column; align-items:center; gap:2px;
    min-width:68px; text-align:center; flex-shrink:0;
    background:#fff7f5; border-radius:6px; padding:10px 8px;
}
.eee-agenda__time-sep { color:#adb5bd; font-size:11px; }
.eee-agenda__card-body { flex:1; }

/* ================================================================
   Tickets Widget
   ================================================================ */
.eee-tickets {}
.eee-tickets__grid { display:flex; flex-direction:column; gap:12px; margin-bottom:20px; }
.eee-tickets--cards .eee-tickets__grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px; }

.eee-ticket-card {
    background:#fff; border:1px solid #e9ecef; border-radius:8px;
    padding:18px 20px; transition:box-shadow .2s;
}
.eee-ticket-card:hover { box-shadow:0 4px 14px rgba(0,0,0,.1); }
.eee-ticket--sold-out  { opacity:.6; }

.eee-ticket__header    { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:8px; }
.eee-ticket__name      { font-size:15px; font-weight:700; color:#212529; margin:0; flex:1; }
.eee-ticket__price     { font-size:18px; font-weight:800; color:#f05537; white-space:nowrap; }
.eee-ticket__price--free { color:#28a745; }
.eee-ticket__desc      { font-size:13px; color:#6c757d; line-height:1.5; margin:0 0 10px; }

.eee-ticket__status {
    display:inline-flex; align-items:center; gap:4px;
    font-size:12px; font-weight:600; padding:3px 8px; border-radius:20px;
}
.eee-ticket__status--available { background:#d4edda; color:#155724; }
.eee-ticket__status--sold_out  { background:#f8d7da; color:#721c24; }
.eee-ticket__status--unavailable { background:#e2e3e5; color:#383d41; }

/* Ticket card footer — status badge + per-ticket buy button side by side */
.eee-ticket__footer {
    display:flex; align-items:center; justify-content:space-between;
    gap:10px; margin-top:12px; flex-wrap:wrap;
}
.eee-ticket__buy-btn { flex-shrink:0; }
.eee-tickets__cta { text-align:center; margin-top:16px; }

/* ================================================================
   Event List Widget — Grid & List layouts
   ================================================================ */

/* ── Wrapper ──────────────────────────────────────────────────── */
.eee-events-wrap {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
    align-items:stretch;
}
.eee-cols-1 { grid-template-columns:1fr; }
.eee-cols-2 { grid-template-columns:repeat(2,1fr); }
.eee-cols-3 { grid-template-columns:repeat(3,1fr); }
.eee-cols-4 { grid-template-columns:repeat(4,1fr); }

/* ── List overrides ───────────────────────────────────────────── */
.eee-layout-list.eee-events-wrap {
    grid-template-columns: 1fr;
    gap: 16px;
}

/* ── Base card ────────────────────────────────────────────────── */
.eee-event-card {
    background:#fff;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 1px 4px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.07);
    display:flex;
    flex-direction:column;
    transition:box-shadow .25s ease, transform .25s ease;
    position:relative;
}
.eee-event-card:hover {
    box-shadow:0 4px 10px rgba(0,0,0,.08), 0 12px 32px rgba(0,0,0,.12);
    transform:translateY(-3px);
}

/* ── Grid: image on top ───────────────────────────────────────── */
.eee-layout-grid .eee-card__thumb-link { display:block; order:0; }
.eee-layout-grid .eee-card__body       { order:1; flex:1; }
.eee-layout-grid .eee-card__thumb {
    width:100%;
    height:210px;
    background-size:cover;
    background-position:center;
    background-color:#e9ecef;
    position:relative;
}

/* ── List: body left, image right ────────────────────────────── */
.eee-layout-list .eee-event-card {
    flex-direction:row;
    align-items:stretch;
    min-height:160px;
}
.eee-layout-list .eee-card__body {
    order:1;
    flex:1;
    min-width:0; /* prevent overflow */
}
.eee-layout-list .eee-card__thumb-link {
    order:2;
    display:block;
    flex-shrink:0;
    width:240px;
}
.eee-layout-list .eee-card__thumb {
    width:240px;
    height:100%;
    min-height:160px;
    background-size:cover;
    background-position:center;
    background-color:#e9ecef;
    position:relative;
    border-radius:0 10px 10px 0;
}

/* ── Badge on thumb ───────────────────────────────────────────── */
.eee-card__thumb .eee-badge {
    position:absolute;
    top:10px;
    left:10px;
}

/* ── Card body ────────────────────────────────────────────────── */
.eee-card__body {
    padding:22px;
    display:flex;
    flex-direction:column;
    flex:1;
    gap:0;
}

/* ── Meta row (date + location) ───────────────────────────────── */
.eee-card__meta {
    display:flex;
    flex-direction:column;
    gap:5px;
    margin-bottom:10px;
}
.eee-card__date,
.eee-card__location {
    display:flex;
    align-items:center;
    gap:5px;
    font-size:12px;
    font-weight:600;
    color:#6c757d;
    letter-spacing:.2px;
}
.eee-card__date .eee-icon,
.eee-card__location .eee-icon {
    color:#f05537;
    width:13px;
    height:13px;
    flex-shrink:0;
}

/* ── Title ────────────────────────────────────────────────────── */
.eee-card__title {
    font-size:16px;
    font-weight:700;
    line-height:1.3;
    margin:0 0 8px;
    color:#1a1a2e;
}
.eee-card__title a { color:inherit; text-decoration:none; }
.eee-card__title a:hover { color:#f05537; }

/* ── Excerpt ──────────────────────────────────────────────────── */
.eee-card__excerpt {
    font-size:13px;
    color:#6c757d;
    line-height:1.65;
    margin:0 0 16px;
    flex:1;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

/* ── Footer (price + button) ──────────────────────────────────── */
.eee-card__footer {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:auto;
    padding-top:14px;
    border-top:1px solid #f0f2f5;
}
.eee-card__price {
    font-size:14px;
    font-weight:700;
    color:#1a1a2e;
}
.eee-card__price--free { color:#28a745; }

/* ================================================================
   Responsive
   ================================================================ */
@media (max-width:1024px) {
    .eee-lineup--cols-4,.eee-lineup--cols-5 { grid-template-columns:repeat(3,1fr); }
    .eee-gallery--cols-4 { grid-template-columns:repeat(3,1fr); }
    .eee-cols-4 { grid-template-columns:repeat(2,1fr); }
    .eee-cols-3 { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:768px) {
    .eee-events-wrap,
    .eee-cols-1,.eee-cols-2,.eee-cols-3,.eee-cols-4 { grid-template-columns:1fr; }
    .eee-layout-list .eee-event-card { flex-direction:column; }
    .eee-layout-list .eee-card__thumb { width:100%; height:180px; }
    .eee-lineup__grid { grid-template-columns:repeat(2,1fr) !important; }
    .eee-gallery__grid { grid-template-columns:repeat(2,1fr) !important; }
    .eee-date--inline .eee-date-card { flex-direction:column; }
    .eee-agenda__session--card { flex-direction:column; }
    .eee-header__content { padding:24px; }
    .eee-tickets--cards .eee-tickets__grid { grid-template-columns:1fr; }
    /* Responsive table */
    .eee-agenda-table thead { display:none; }
    .eee-agenda-table td { display:block; }
    .eee-agenda-table td::before { content:attr(data-label); font-weight:700; display:block; font-size:11px; color:#6c757d; margin-bottom:2px; }
}

@media (max-width:480px) {
    .eee-lineup__grid { grid-template-columns:1fr !important; }
    .eee-gallery__grid { grid-template-columns:1fr !important; }
    .eee-lineup--list .eee-speaker-card { flex-direction:column; align-items:center; text-align:center; }
}
