/* Base */
.hw-be-wrapper { width: 100%; box-sizing: border-box; }
.hw-be-wrapper * { box-sizing: border-box; }

/* Filtering Bar */
.hw-be-filter-container { margin-bottom: 60px; transition: margin 0.3s ease; } 
.hw-be-filter-bar { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; border-bottom: 1px solid #e0e0e0; padding-bottom: 15px; margin-bottom: 30px; }
.hw-be-filter-label { font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: #000; margin-right: 10px; }
.hw-be-input-group { position: relative; flex: 1.5; min-width: 250px; }
.hw-be-input-icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #94a3b8; width: 18px; height: 18px; pointer-events: none; z-index: 2; }
.hw-be-search { width: 100%; padding: 12px 16px 12px 48px !important; text-indent: 0 !important; box-sizing: border-box !important; border: 1px solid transparent; border-radius: 4px; color: #1e293b; background: #f8fafc; transition: all 0.2s ease; outline: none; position: relative; z-index: 1; }
.hw-be-search:focus { background: #fff; border-color: #0078BF; box-shadow: 0 0 0 1px #0078BF; }
.hw-be-select-group { position: relative; min-width: 180px; flex: 1; }
.hw-be-select { width: 100%; appearance: none; padding: 12px 40px 12px 16px !important; text-indent: 0 !important; box-sizing: border-box !important; border: 1px solid transparent; border-radius: 4px; color: #1e293b; background: #f8fafc; transition: all 0.2s ease; outline: none; cursor: pointer; }
.hw-be-select:focus { background: #fff; border-color: #0078BF; box-shadow: 0 0 0 1px #0078BF; }
.hw-be-select-arrow { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; color: #64748b; width: 16px; height: 16px; }
.hw-be-active-filters-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-top: 16px; } 
.hw-be-chips-container { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.hw-be-chip-filter { display: inline-flex; align-items: center; gap: 8px; background: #f1f5f9; border: 1px solid #e2e8f0; padding: 6px 14px; border-radius: 20px; font-weight: 500; color: #334155; animation: hw-fade-in 0.2s ease; }
.hw-be-chip-close { cursor: pointer; color: #94a3b8; display: flex; align-items: center; justify-content: center; transition: color 0.2s; }
.hw-be-chip-close:hover { color: #ef4444; }
.hw-be-chip-label { color: #0078BF; font-weight: 600; margin-right: 4px; }
.hw-be-clear-btn { background: transparent; border: none; color: #64748b; font-weight: 600; cursor: pointer; text-decoration: underline; padding: 6px 10px; transition: color 0.2s; }
.hw-be-clear-btn:hover { color: #0f172a; }

@keyframes hw-fade-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* Loader & Pagination */
.hw-be-spinner-wrap { display: flex; justify-content: center; align-items: center; padding: 80px 0; grid-column: 1 / -1; width: 100%;}
.hw-be-spinner { width: 40px; height: 40px; border: 3px solid #e2e8f0; border-top: 3px solid #0078BF; border-radius: 50%; animation: hw-spin 1s linear infinite; }
@keyframes hw-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.hw-be-pagination-wrap { display: flex; justify-content: center; gap: 8px; margin-top: 60px; flex-wrap: wrap; }
.hw-be-page-btn { background: #ffffff; border: 1px solid #e2e8f0; color: #475569; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 4px; font-weight: 500; cursor: pointer; transition: all 0.2s ease; outline: none; }
.hw-be-page-btn:hover:not(:disabled) { border-color: #cbd5e1; color: #0f172a; background: #f8fafc; }
.hw-be-page-btn.hw-active { background: #0078BF; color: #ffffff; border-color: #0078BF; pointer-events: none;}
.hw-be-page-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.hw-be-no-results { grid-column: 1 / -1; text-align: center; padding: 60px 20px; color: #64748b; background: #f8fafc; border-radius: 12px; border: 1px dashed #cbd5e1; }

/* Grid & Cards */
.hw-be-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 40px; transition: opacity 0.3s; }
.hw-be-grid.hw-loading { opacity: 0.5; pointer-events: none; }
.hw-be-card { display: flex; flex-direction: column; background: #fff; text-decoration: none !important; border-bottom: 2px solid transparent; transition: all 0.3s ease; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #e2e8f0; height: 100%;}
.hw-be-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,0.1); }
.hw-be-card-img-wrap { width: 100%; aspect-ratio: 16/9; position: relative; border-radius: 8px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; overflow: hidden; }
.hw-be-card-img-wrap img { width: 100%; height: 100%; object-fit: cover; }

/* Event Specifics */
.hw-type-talk { border-bottom-color: #0078BF; }
.hw-type-talk .hw-type-overlay { background: #0078BF; color: #fff; }
.hw-type-invitation { border-bottom-color: #fbbc05; }
.hw-type-invitation .hw-type-overlay { background: #fbbc05; color: #000; }
.hw-type-invitation .hw-be-title-text { background-image: linear-gradient(#fbbc05, #fbbc05); }

.hw-type-overlay { position: absolute; top: 0; left: 0; padding: 5px 12px; font-weight: 800; letter-spacing: 1px; border-bottom-right-radius: 8px; z-index:2;}
.hw-event-date-badge { position: absolute; bottom: 0; left: 0; background: #fff; padding: 10px 15px; border-top-right-radius: 8px; text-align: center; z-index:2;}
.hw-event-date-badge .day { font-weight: 800; color: #0078BF; display: block; font-size: 18px; }
.hw-event-date-badge .month { text-transform: uppercase; font-weight: 600; color: #333; font-size: 11px; }

.hw-be-card-content { padding: 25px; display: flex; flex-direction: column; flex-grow: 1; }
.hw-be-chip { text-transform: uppercase; letter-spacing: 1px; font-weight: 700; color: #0078BF; margin-bottom: 10px; display: inline-block; font-size: 11px; }
.hw-be-title { margin: 0 0 15px 0 !important; color: #000 !important; font-weight: 300 !important; }
.hw-be-title-text { text-decoration: none; background-image: linear-gradient(#0078BF, #0078BF); background-position: left bottom; background-repeat: no-repeat; background-size: 0% 2px; transition: background-size 0.4s ease-out; display: inline; padding-bottom: 2px;}
.hw-be-card:hover .hw-be-title-text { background-size: 100% 2px; }
.hw-be-meta { margin-top: auto; color: #999; font-weight: 600; display: flex; justify-content: space-between; border-top: 1px solid #f1f5f9; padding-top: 15px; font-size: 12px;}
.hw-be-excerpt { color: #666 !important; margin: 0 0 15px 0 !important; flex-grow: 1; }

/* Sliders */
.hw-be-slider { --s-vis: var(--s-vis-desk, 3); --s-gap: var(--s-gap-desk, 30px); --s-arr: var(--s-arr-desk, 28px); }
.hw-be-track { display: flex; gap: var(--s-gap); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; padding: 10px 5px 20px 5px; cursor: grab; margin: 0 -5px; }
.hw-be-track.dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; }
.hw-be-track::-webkit-scrollbar { display: none; }
.hw-be-slide-item { flex: 0 0 calc((100% / var(--s-vis)) - calc(var(--s-gap) * (var(--s-vis) - 1) / var(--s-vis))); scroll-snap-align: start; min-width: 0; user-select: none; }
.hw-be-nav-container { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding: 0; }
.hw-be-buttons { display: flex; gap: 24px; align-items: center; }
.hw-be-numbers { display: flex; align-items: center; color: #cbd5e1; font-weight: 500; font-size: 1.5rem; }
.hw-be-current { color: #0078BF; font-weight: 700; margin-right: 2px; }
.hw-be-total { margin-left: 2px; }
.hw-be-btn { background: transparent !important; border: none !important; padding: 0 !important; cursor: pointer; color: #000000 !important; transition: color 0.2s; outline: none; }
.hw-be-btn svg { width: var(--s-arr) !important; height: var(--s-arr) !important; transition: all 0.2s ease;}
.hw-be-btn:hover { color: #333333 !important; }
.hw-be-btn.hw-disabled { color: #cbd5e1 !important; cursor: default; }

@media (max-width: 992px) { 
    .hw-be-slider { --s-vis: var(--s-vis-tab, 2); --s-gap: var(--s-gap-tab, 30px); --s-arr: var(--s-arr-tab, 28px); } 
    .hw-be-filter-bar { flex-direction: column; align-items: stretch; }
    .hw-be-filter-label { display: none; }
}
@media (max-width: 768px) { 
    .hw-be-slider { --s-vis: var(--s-vis-mob, 1); --s-gap: var(--s-gap-mob, 20px); --s-arr: var(--s-arr-mob, 24px); } 
}

/* SINGLE PAGE SHARED CSS */
.hw-be-single-wrapper { position: relative; background: #ffffff; text-align: left; }
.hw-be-single-wrapper *, .hw-be-single-wrapper *::before, .hw-be-single-wrapper *::after { box-sizing: border-box; }

.hw-be-hero { position: relative; background-color: #000; padding: 120px 30px; display: flex; align-items: center; min-height: 60vh; }
.hw-be-hero-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.hw-be-hero::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(90deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.3) 100%); z-index: 2; }
.hw-be-hero-content { position: relative; z-index: 3; max-width: 1280px; margin: 0 auto; width: 100%; }

.hw-be-hero-title { background: transparent !important; font-weight: 300 !important; max-width: 900px !important; color: #ffffff !important; margin: 0 !important; border: none !important;}
.hw-be-eyebrow { background: transparent !important; text-transform: uppercase !important; letter-spacing: 2px !important; font-weight: 700 !important; margin: 0 0 20px 0 !important; color: #ffffff !important; opacity: 0.9; border-bottom: 1px solid rgba(255,255,255,0.3); padding-bottom: 10px; display: inline-block; }

.hw-be-container { max-width: 1280px; margin: 0 auto; padding: 40px 30px; }
.hw-be-section { margin-bottom: 0px; padding-top: 0; }

.hw-be-meta-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 30px; padding: 40px; margin: 0 0 80px 0; background: #f4f5f7; border: none; border-radius: 16px; }
.hw-be-meta-item { display: flex; flex-direction: column; justify-content: center; }
.hw-be-meta-label { display: block; text-transform: uppercase; letter-spacing: 1.5px; color: #64748b; margin: 0 0 8px 0; font-weight: 600; }
.hw-be-meta-value { display: block; font-weight: 600; color: #0f172a; }

.hw-talk-theme .hw-be-meta-grid { background: #eef7ff !important; box-shadow: 0 4px 20px rgba(0, 120, 191, 0.05); border-left: 4px solid #0078BF; }
.hw-invitation-theme .hw-be-meta-grid { background: #fffdf5 !important; box-shadow: 0 4px 20px rgba(251, 188, 5, 0.05); border-left: 4px solid #fbbc05; }

.hw-register-btn { display: inline-block; background: #0078BF; color: #ffffff !important; padding: 14px 28px; border-radius: 30px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; text-decoration: none !important; transition: background 0.3s; width: max-content; }
.hw-register-btn:hover { background: #005f99; color: #ffffff !important; }

.hw-be-main-content { max-width: 960px; color: #4a4a4a; font-weight: 400;}
.hw-be-main-content p { margin-bottom: 1.5rem; }
.hw-be-main-content h2 { color: #0f172a; margin: 2.5rem 0 1.5rem; font-weight: 700; }
.hw-be-main-content img { max-width: 100%; height: auto; border-radius: 12px; margin: 2rem 0; box-shadow: 0 10px 30px rgba(0,0,0,0.05);}

.hw-blog-subtitle { font-weight: 300; color: #64748b; margin-bottom: 3rem; text-align: left; }

@media (max-width: 768px) {
    .hw-be-hero { padding: 100px 20px; }
    .hw-be-container { padding: 20px 20px 0 20px; }
    .hw-be-meta-grid { padding: 30px 20px; gap: 20px; margin: 0 0 40px 0;}
}
@media (min-width: 1281px) {
    .hw-be-container { padding-left: 0; padding-right: 0; }
}