/* * DEVVU.IO Event Plugin CSS
 * Scoped precisely to .devvu-wrap to prevent Kadence Theme conflicts.
 * Brand Red: #ed1d27 | Main Dark: #212a37 | Sec Dark: #0f172a 
 */

 :root { 
    --d-bg-primary: #212a37; 
    --d-bg-secondary: #0f172a;
    --d-acc: #ed1d27; 
    --d-acc-alt: #E7E9EA;
    --d-txt-main: #e7f6ff; 
    --d-txt-mut: #a0aec0; 
    --d-rad: 8px; 
    --d-border: rgba(255, 255, 255, 0.08);
    --d-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.devvu-wrap { 
    max-width: 1200px; 
    margin: 0 auto; 
    font-family: 'Inter', sans-serif; 
    color: var(--d-txt-main); 
    line-height: 1.6;
}

/* Base Headings & Helpers */
.devvu-wrap h1, .devvu-wrap h2, .devvu-wrap h3 { color: #ffffff; }
.devvu-wrap a { color: var(--d-acc-alt); text-decoration: none; transition: 0.2s ease-in-out; }
.devvu-wrap a:hover { color: var(--d-acc); }

.devvu-mb-lg { margin-bottom: 40px; }
.devvu-mt-15 { margin-top: 15px; }

/* Archive Headers & Month Grouping */
.devvu-archive-header { 
    margin-bottom: 40px; 
    border-bottom: 1px solid var(--d-border); 
    padding-bottom: 20px; 
}
.devvu-archive-header h1 { font-size: 2.5rem; margin: 0; }
.devvu-empty-state { color: var(--d-txt-mut); font-style: italic; text-align: center; padding: 40px; }

.devvu-month-group { margin-bottom: 60px; }
.devvu-month-title { 
    font-size: 1.5rem; 
    text-transform: uppercase; 
    letter-spacing: 2px; 
    border-left: 4px solid var(--d-acc); 
    padding-left: 15px; 
    margin-bottom: 30px; 
    display: flex;
    align-items: center;
    gap: 10px;
}
.devvu-month-title span { opacity: 0.3; font-weight: 400; }

/* Grid Layouts */
.devvu-events-list { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); 
    gap: 25px; 
}
.devvu-single-column { grid-template-columns: 1fr; }
.devvu-split { display: grid; grid-template-columns: 2fr 1fr; gap: 40px; }

@media(max-width: 800px) { 
    .devvu-split { grid-template-columns: 1fr; }
}

/* Event Cards (Archive) */
.devvu-event-card { 
    background: var(--d-bg-primary); 
    border: 1px solid var(--d-border); 
    border-radius: var(--d-rad); 
    overflow: hidden; 
    display: flex; 
    flex-direction: column; 
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); 
    position: relative;
}

.devvu-event-card:hover { 
    transform: translateY(-8px); 
    box-shadow: var(--d-shadow); 
    border-color: rgba(237, 29, 39, 0.5); /* Brand red slight border */
}

.devvu-card-link { display: flex; flex-direction: column; flex-grow: 1; color: inherit; }
.devvu-card-link:hover { color: inherit; }

.devvu-card-thumb { 
    height: 200px; 
    background-size: cover; 
    background-position: center; 
    position: relative; 
    background-color: var(--d-bg-secondary); 
}
.devvu-card-thumb::after { 
    content: ''; 
    position: absolute; 
    inset: 0; 
    background: linear-gradient(to bottom, transparent 50%, var(--d-bg-secondary)); 
}

/* Glassmorphism Date Badge */
.devvu-card-date { 
    position: absolute; 
    top: 15px; 
    left: 15px; 
    background: rgba(15, 23, 42, 0.75); 
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #fff; 
    padding: 8px 12px; 
    border-radius: var(--d-rad); 
    text-align: center; 
    border: 1px solid var(--d-border); 
    z-index: 5;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.d-day { display: block; font-size: 22px; font-weight: 800; line-height: 1; }
.d-month { display: block; font-size: 10px; text-transform: uppercase; color: var(--d-acc-alt); font-weight: 700; margin-top: 2px; }

.devvu-card-info { padding: 20px; flex-grow: 1; display: flex; flex-direction: column; }
.d-sub { color: var(--d-acc); font-size: 11px; font-weight: 700; text-transform: uppercase; margin-bottom: 5px; display: block; letter-spacing: 0.5px; }
.d-title { margin: 0 0 15px 0; font-size: 20px; line-height: 1.3; font-weight: 700; color: #fff; }
.d-meta { display: flex; flex-wrap: wrap; gap: 15px; font-size: 13px; color: var(--d-txt-mut); margin-top: auto; }
.d-meta i { color: var(--d-acc); margin-right: 5px; }

/* Buttons */
.devvu-card-action { padding: 15px 20px 20px; position: relative; z-index: 10; }
.devvu-btn-ticket { 
    display: block; 
    background: var(--d-acc); 
    color: #ffffff !important; 
    padding: 12px; 
    border-radius: var(--d-rad); 
    font-weight: 700; 
    text-align: center; 
    transition: 0.2s; 
    font-size: 14px; 
    border: none; 
    cursor: pointer;
}
.devvu-btn-ticket:hover { background: #d8453e; transform: scale(1.02); }
.devvu-btn-secondary { background: rgba(255,255,255,0.05); color: #fff !important; border: 1px solid #444; }
.devvu-btn-secondary:hover { background: rgba(255,255,255,0.1); border-color: #666; }

/* Tag Cloud / Pills */
.devvu-tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; }
.devvu-pill { 
    font-size: 11px; font-weight: 600; text-transform: uppercase; padding: 6px 12px; 
    border-radius: 4px; letter-spacing: 0.5px; display: inline-flex; 
    align-items: center; justify-content: center; transition: all 0.2s; white-space: nowrap;
}
.devvu-pill.cat { background: var(--d-acc); color: #fff; }
.devvu-pill.cat:hover { background: #d8453e; transform: translateY(-1px); box-shadow: 0 4px 10px rgba(237,29,39,0.2); }
.devvu-pill.tag { background: var(--d-bg-secondary); color: var(--d-txt-mut); border: 1px solid var(--d-border); cursor: default; }

/* Nav / Map Buttons */
.devvu-nav-row { display: flex; gap: 10px; margin-bottom: 20px; width: 100%; }
.devvu-btn-nav { 
    flex: 1; justify-content: center; padding: 10px 5px; border-radius: 50px; 
    font-weight: 600; font-size: 13px; color: #fff !important; display: inline-flex; 
    align-items: center; gap: 6px; transition: 0.2s; white-space: nowrap; box-sizing: border-box;
}
.devvu-btn-nav:hover { transform: translateY(-1px); filter: brightness(1.1); }
.devvu-btn-nav.waze { background: #33ccff; }
.devvu-btn-nav.google { background: #4285F4; }
.devvu-btn-nav.apple { background: #222; border: 1px solid #444; }

/* Single View Layout Blocks */
.devvu-card { background: var(--d-bg-primary); border: 1px solid var(--d-border); border-radius: var(--d-rad); margin-bottom: 25px; }
.devvu-card-padded { padding: 30px; }
.devvu-border-accent { border-color: rgba(237, 29, 39, 0.4); }

/* Hero Banner */
.devvu-hero { 
    width: 100%; height: 500px; background-size: cover; background-position: center; 
    border-radius: var(--d-rad); margin-bottom: 30px; position: relative; overflow: hidden; 
}
.devvu-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 40%, var(--d-bg-secondary)); }

.devvu-countdown-hero { 
    position: absolute; bottom: 30px; right: 30px; display: flex; gap: 20px; z-index: 10; 
    background: rgba(15, 23, 42, 0.8); padding: 15px 25px; border-radius: 12px; 
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid var(--d-border); 
}
.cnt-unit { display: flex; flex-direction: column; align-items: center; min-width: 60px; }
.cnt-val { font-size: 28px; font-weight: 800; color: #fff; line-height: 1; }
.cnt-lbl { font-size: 10px; text-transform: uppercase; color: var(--d-acc-alt); font-weight: 700; margin-top: 5px; letter-spacing: 1px; }

@media(max-width:800px) { 
    .devvu-hero { height: 350px; }
    .devvu-countdown-hero { bottom: 20px; right: 20px; left: 20px; justify-content: center; }
}

/* Single Typography & Data Rows */
.devvu-page-title-lg { font-size: 3rem; margin: 0 0 15px 0; line-height: 1.1; }
.devvu-page-title { font-size: 2.5rem; margin-bottom: 10px; }

.devvu-meta-row { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; font-size: 16px; color: var(--d-txt-mut); }
.devvu-meta-row i { color: var(--d-acc); }
.devvu-sep { opacity: 0.3; }
.devvu-sub-highlight { color: var(--d-acc-alt); font-weight: 700; text-transform: uppercase; }

.devvu-section-title { font-size: 1.1rem; color: #fff; margin: 0 0 15px 0; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--d-border); padding-bottom: 10px; }
.devvu-section-title i { color: var(--d-acc); font-size: 14px; }

.devvu-table-row { display: flex; justify-content: space-between; padding: 12px 15px; border-bottom: 1px solid var(--d-border); font-size: 14px; }
.devvu-table-row:last-child { border-bottom: none; }
.devvu-time-label { font-family: monospace; color: var(--d-acc-alt); font-weight: 600; }
.devvu-activity-val { color: #fff; }

.devvu-col-wrap { flex-direction: column; align-items: flex-start; gap: 8px; }
.devvu-flex-between { display: flex; justify-content: space-between; width: 100%; }
.devvu-sm-text { font-size: 13px; color: var(--d-txt-main); }
.devvu-highlight { color: var(--d-acc-alt); font-weight: 700; }
.devvu-btn-reg { font-size: 11px; color: var(--d-acc); text-transform: uppercase; font-weight: 700; }

/* Links & Sidebar specifics */
.devvu-link-white { color: #fff; border-bottom: 1px dashed rgba(255,255,255,0.3); }
.devvu-link-white:hover { color: var(--d-acc); border-bottom-color: var(--d-acc); }

.devvu-loc-header { margin-bottom: 10px; }
.devvu-loc-address { font-size: 13px; color: var(--d-txt-mut); }
.devvu-org-legal { font-size: 12px; color: var(--d-txt-mut); margin-top: -5px; margin-bottom: 15px; }

.devvu-contact-info { font-size: 14px; display: flex; flex-direction: column; gap: 10px; font-style: normal; margin-bottom: 15px; }
.devvu-contact-info a { color: #fff; }
.devvu-contact-info a:hover { color: var(--d-acc); }
.devvu-contact-info i { width: 20px; color: var(--d-acc); text-align: center; }

.devvu-social-links { display: flex; gap: 15px; margin-top: 15px; }
.devvu-social-links a { color: #fff; font-size: 18px; opacity: 0.7; }
.devvu-social-links a:hover { opacity: 1; color: var(--d-acc); transform: scale(1.1); }

.devvu-featured-image { width: 100%; border-radius: var(--d-rad); margin-bottom: 20px; }
.devvu-divider { border: 0; border-top: 1px solid var(--d-border); margin: 20px 0; }
.devvu-map-container { border-radius: var(--d-rad); border: 1px solid var(--d-border); margin-bottom: 15px; z-index: 1; }

.devvu-address-badge { color: var(--d-acc-alt); font-weight: 700; text-transform: uppercase; font-size: 14px; margin-bottom: 30px; }
.devvu-rules-box { font-size: 15px; color: var(--d-txt-mut); line-height: 1.6; padding: 20px; }