@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=DM+Sans:wght@300;400;500;600&display=swap');

:root {
    --red-primary:      #dc0abb;
    --red-primary-dark: #a8008d;
    --red-primary-light:#f9e5f7;
    --red-bg:           #ffffff;
    --red-surface:      #faf8fc;
    --red-surface2:     #f3eef8;
    --red-border:       #e8dff0;
    --red-text:         #1a1226;
    --red-muted:        #7a6b8a;
    --red-light:        #a898b8;
    --red-green:        #1a9e62;
    --red-r:            16px;
    --red-rs:           10px;
    --red-fd:           'Playfair Display', Georgia, serif;
    --red-fb:           'DM Sans', sans-serif;
    --red-tr:           all 0.26s cubic-bezier(0.4,0,0.2,1);
}

.red-evento {
    font-family: var(--red-fb);
    background: var(--red-bg);
    border-radius: var(--red-r);
    overflow: hidden;
    box-shadow: 0 0 0 1px var(--red-border), 0 8px 32px rgba(100,60,140,.09), 0 2px 6px rgba(100,60,140,.05);
    max-width: 860px;
    margin: 0 auto 2.5rem;
    color: var(--red-text);
    animation: redIn .48s cubic-bezier(.22,1,.36,1) both;
}
@keyframes redIn { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }

/* ---- HERO ---- */
.red-evento__hero {
    position: relative;
    min-height: 400px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.red-evento__hero::before {
    content:'';
    position:absolute;top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg,var(--red-primary),var(--red-primary-dark));
    z-index:10;
}
.red-evento__hero-bg {
    position:absolute;inset:0;
    background-size:cover;background-position:center;
    transform:scale(1.04);transition:transform 7s ease;
}
.red-evento:hover .red-evento__hero-bg { transform:scale(1); }
.red-evento__hero-overlay {
    position:absolute;inset:0;
    background:linear-gradient(to bottom,rgba(255,255,255,.04) 0%,rgba(18,6,30,.84) 100%);
}
.red-evento__hero.no-image {
    min-height:190px;
    background:linear-gradient(135deg,#fdf5ff 0%,#f5e8ff 55%,#fce8fa 100%);
    border-bottom:1px solid var(--red-border);
}
.red-evento__hero-pattern {
    position:absolute;inset:0;
    background:
        radial-gradient(ellipse at 15% 60%,rgba(220,10,187,.10) 0%,transparent 55%),
        radial-gradient(ellipse at 85% 20%,rgba(220,10,187,.06) 0%,transparent 45%),
        repeating-linear-gradient(45deg,transparent,transparent 22px,rgba(220,10,187,.04) 22px,rgba(220,10,187,.04) 23px);
}
.red-evento__hero-content {
    position:relative;z-index:2;
    padding:1.6rem 2.2rem 1.7rem;width:100%;
}

/* ---- Título ---- */
.red-evento__titulo {
    font-family:var(--red-fd) !important;
    font-size:clamp(1.45rem,4vw,2.15rem) !important;
    font-weight:900 !important;
    line-height:1.15 !important;
    letter-spacing:-.02em !important;
    margin:.45rem 0 0 !important;
}
.has-image .red-evento__titulo { color:#fff !important; text-shadow:0 2px 18px rgba(0,0,0,.5); }
.no-image  .red-evento__titulo { color:var(--red-text) !important; }

/* ---- Badges ---- */
.red-evento__badges { display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.5rem; }
.red-badge {
    font-family:var(--red-fb);
    font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
    padding:.24rem .7rem;border-radius:100px;border:1px solid transparent;
    display:inline-flex;align-items:center;
}
.has-image  .red-badge--tipo { background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(6px); }
.no-image   .red-badge--tipo { background:var(--red-primary-light);border-color:rgba(220,10,187,.22);color:var(--red-primary-dark); }
.red-badge--gratis            { background:#e8f7f0;border-color:rgba(26,158,98,.25);color:#0f7a47; }
.has-image .red-badge--gratis { background:rgba(26,158,98,.80);border-color:transparent;color:#fff; }

/* ---- Body ---- */
.red-evento__body { padding:1.6rem 2.2rem 2rem;background:var(--red-bg); }

/* ---- Meta strip ---- */
.red-evento__meta-strip {
    display:flex;flex-wrap:wrap;
    background:var(--red-surface);border:1px solid var(--red-border);
    border-radius:var(--red-rs);overflow:hidden;margin-bottom:1.7rem;
}
.red-meta-item {
    flex:1;min-width:148px;
    display:flex;align-items:center;gap:.75rem;
    padding:.95rem 1.15rem;position:relative;transition:var(--red-tr);
}
.red-meta-item:hover { background:var(--red-surface2); }
.red-meta-item:not(:last-child)::after {
    content:'';position:absolute;right:0;top:18%;bottom:18%;
    width:1px;background:var(--red-border);
}
.red-meta-icon {
    width:34px;height:34px;flex-shrink:0;
    background:var(--red-primary-light);border:1px solid rgba(220,10,187,.18);
    border-radius:8px;display:flex;align-items:center;justify-content:center;
    color:var(--red-primary);
}
.red-meta-icon svg { width:14px;height:14px; }
.red-meta-text { display:flex;flex-direction:column;gap:.08rem;min-width:0; }
.red-meta-label {
    font-size:.60rem;font-weight:600;letter-spacing:.10em;
    text-transform:uppercase;color:var(--red-primary);
}
.red-meta-value {
    font-size:.86rem;font-weight:500;color:var(--red-text);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.red-meta-value--price {
    font-family:var(--red-fd);font-size:.97rem;font-weight:700;color:var(--red-primary-dark);
}
.red-meta-value--gratis {
    font-weight:600;color:var(--red-green);
}

/* ---- Descripción ---- */
.red-evento__section-label {
    font-size:.60rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    color:var(--red-primary);margin-bottom:.75rem;
    display:flex;align-items:center;gap:.5rem;
}
.red-evento__section-label::after { content:'';flex:1;height:1px;background:var(--red-border); }
.red-evento__content {
    color:var(--red-muted);font-size:.93rem;line-height:1.75;font-weight:400;
}
.red-evento__content p { margin:0 0 .8rem; }
.red-evento__content p:last-child { margin-bottom:0; }

/* ---- CTA Vivetix ---- */
.red-evento__cta { margin-top:1.6rem; }
.red-btn-vivetix {
    display:inline-flex;align-items:center;gap:.55rem;
    background:var(--red-primary);color:#fff !important;
    font-family:var(--red-fb);font-size:.85rem;font-weight:600;
    padding:.7rem 1.4rem;border-radius:100px;
    text-decoration:none !important;
    transition:var(--red-tr);
    box-shadow:0 4px 16px rgba(220,10,187,.28);
}
.red-btn-vivetix:hover {
    background:var(--red-primary-dark);
    box-shadow:0 6px 22px rgba(220,10,187,.38);
    transform:translateY(-1px);
}
.red-btn-vivetix svg { width:16px;height:16px;flex-shrink:0; }

/* ---- Footer ---- */
.red-evento__footer {
    margin-top:1.6rem;padding-top:.85rem;
    border-top:1px solid var(--red-border);
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.red-evento__ref { font-size:.68rem;color:var(--red-light);font-weight:500;letter-spacing:.05em; }
.red-evento__edit-link {
    font-size:.70rem;font-weight:600;color:var(--red-primary) !important;
    text-decoration:none !important;opacity:.72;transition:var(--red-tr);
}
.red-evento__edit-link:hover { opacity:1; }

/* ---- Responsive ---- */
@media (max-width:660px) {
    .red-evento__hero-content,.red-evento__body { padding-left:1.2rem;padding-right:1.2rem; }
    .red-evento__meta-strip { flex-direction:column; }
    .red-meta-item:not(:last-child)::after { top:auto;bottom:0;left:4%;right:4%;width:auto;height:1px; }
    .red-meta-value { white-space:normal; }
    .red-evento__titulo { font-size:1.4rem !important; }
}

/* ---- Divi compat ---- */
.et_pb_section .red-evento,
.et_pb_row    .red-evento,
.et_pb_module .red-evento { max-width:100%; }


/* Inscripción */
.red-evento__inscripcion { margin: 24px 0; }
.red-inscripcion-badge { display:flex; align-items:center; gap:8px; font-weight:600; margin-bottom:10px; }
.red-inscripcion-badge svg { width:20px; height:20px; flex-shrink:0; }
.red-inscripcion-badge--ok    { color: #1a7a4a; }
.red-inscripcion-badge--espera{ color: #b07d00; }
.red-inscripcion-aviso { color:#666; margin-bottom:10px; font-size:.95em; }
.red-btn-inscribir, .red-btn-cancelar {
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 22px; border:none; border-radius:6px; cursor:pointer;
    font-size:.95rem; font-weight:600; transition:opacity .2s;
}
.red-btn-inscribir            { background:#1a7a4a; color:#fff; }
.red-btn-inscribir--espera    { background:#b07d00; color:#fff; }
.red-btn-inscribir svg, .red-btn-cancelar svg { width:18px; height:18px; }
.red-btn-cancelar             { background:transparent; color:#c0392b; border:1px solid #c0392b; margin-top:6px; }
.red-inscripcion-msg { margin-top:10px; padding:10px 14px; border-radius:6px; font-size:.9rem; }
.red-msg--confirmado, .red-msg--ok { background:#eafaf1; color:#1a7a4a; }
.red-msg--espera               { background:#fef9e7; color:#b07d00; }
.red-msg--error                { background:#fdecea; color:#c0392b; }