/* Bridge News Events 1.8.4 */
.bne-page, .bne-list, .bne-cal, .bne-single-meta, .bne-related {
  --bne-ink: #33373d;
  --bne-muted: #5c6570;
  --bne-line: #e6eaf0;
  --bne-navy: #03318e;
  --bne-blue: #1a5fd0;
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color: var(--bne-ink);
  box-sizing: border-box;
}
.bne-page *, .bne-list *, .bne-cal *, .bne-related * { box-sizing: border-box; }

/* Layout: sidebar left, calendar right; sidebar on top under 768px */
.bne-page { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 24px; align-items: start; width: 100%; }
.bne-main { min-width: 0; }
.bne-sidebar { display: flex; flex-direction: column; gap: 30px; }
.bne-side-section { display: flex; flex-direction: column; gap: 8px; margin: 0; }
@media (max-width: 767px) {
  .bne-page { grid-template-columns: 1fr; gap: 30px; }
}

/* Buttons */
.bne-btn, .bne-sidebar button { display: block; width: 100%; text-align: center; border: 1px solid var(--bne-line); background: #fff; color: var(--bne-ink) !important; text-decoration: none !important; border-radius: 6px; padding: 9px 12px; font-size: 14px; font-weight: 600; cursor: pointer; line-height: 1.3; }
.bne-btn:hover { border-color: var(--bne-navy); }
.bne-btn.is-on, .bne-sidebar button.is-on { background: var(--bne-navy); color: #fff !important; border-color: var(--bne-navy); }
.bne-submit { display: block; width: 100%; text-align: center; background: #fff !important; color: #1a5fd0 !important; font-weight: 800; font-size: 22px; line-height: 1.2; padding: 16px 12px !important; border: 4px solid #1a5fd0 !important; border-radius: 10px; text-decoration: none !important; }
.bne-submit:hover { background: #f2f6fd !important; }
.bne-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--bne-muted); margin-top: 4px; }
.bne-filters input, .bne-filters select { display: block; width: 100%; border: 1px solid var(--bne-line); border-radius: 6px; padding: 8px; font-size: 14px; background: #fff; }

/* Brand + nav */
.bne-brand { text-align: center; padding: 8px 0; }
.bne-brand img { height: 56px; width: auto; margin: 0 auto; display: inline-block; }
.bne-view-title { text-align: center; font-size: 20px; margin: 8px 0 20px; }
.bne-cal-nav { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: #fff; }
.bne-cal-nav strong { font-size: 20px; font-weight: 700; }
.bne-cal-nav a { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; border: 1px solid var(--bne-line); color: var(--bne-navy); text-decoration: none; }

/* Month grid */
.bne-cal { background: #fff; border: 1px solid var(--bne-line); border-radius: 12px; overflow: hidden; box-shadow: 0 10px 30px rgba(3, 49, 142, 0.06); width: 100%; }
.bne-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.bne-dow { background: var(--bne-navy); color: #fff; text-align: center; font-size: 11px; font-weight: 700; letter-spacing: 0.06em; padding: 10px 0; }
.bne-day { min-width: 0; min-height: 142px; border-right: 1px solid var(--bne-line); border-bottom: 1px solid var(--bne-line); padding: 3px; background: #fff; display: flex; flex-direction: column; }
.bne-day.is-empty { background: #fafbfc; }
.bne-day.is-past { background: #fcfcfd; }
.bne-day.is-past .bne-num { color: #c0c6d0; }
.bne-day.is-today { background: #f3f8fb; }
.bne-day.is-today .bne-num { background: var(--bne-navy); color: #fff; border-radius: 999px; padding: 2px 7px; align-self: flex-start; }
.bne-num { font-size: 12px; font-weight: 700; color: #98a2b3; padding: 2px 3px; }
.bne-day ul { list-style: none; margin: 4px 0 0; padding: 0; }
.bne-day li { margin: 0 0 3px; }
.bne-bar { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background: var(--bne-navy); color: #fff !important; text-decoration: none !important; border-radius: 4px; padding: 3px 6px; font-size: 11px; line-height: 1.35; }
.bne-more-day { display: block; margin-top: 2px; color: var(--bne-navy); font-size: 11px; font-weight: 700; text-decoration: none; }
.bne-cat-music { background: #03318e; }
.bne-cat-eats, [class*="bne-cat-"][class*="-eats"] { background: #1f6feb; }
.bne-cat-wellness { background: #3d7ea6; }
.bne-cat-sports, [class*="bne-cat-"][class*="-sports"] { background: #2456b5; }
.bne-cat-military { background: #5c6f8a; }
.bne-cat-creatives, [class*="bne-cat-"][class*="-creatives"] { background: #6a5acd; }
.bne-cat-community { background: #0b6e4f; }

/* Business card inside a day cell: absolutely positioned so it never changes the row height */
.bne-day { position: relative; }
.bne-day.has-biz { overflow: hidden; }
.bne-dir-cell { position: absolute; top: 22px; right: 3px; bottom: 3px; left: 3px; display: flex; margin: 0; overflow: hidden; }
.bne-dir-cell.is-compact { top: 46px; }
.bne-dir-card { width: 100%; height: 100%; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 2px; border: 1px solid var(--bne-blue); border-radius: 6px; padding: 3px; text-align: center; background: #fff; font-size: 10px; line-height: 1.2; overflow: hidden; }
.bne-dir-logo { width: 32px !important; height: 32px !important; max-width: 32px; object-fit: contain; flex: 0 0 auto; margin: 0 !important; }
.bne-dir-name { font-size: 11px !important; line-height: 1.2 !important; margin: 0 !important; font-weight: 700; color: var(--bne-ink); width: 100%; flex: 0 0 auto; max-height: 2.4em; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; hyphens: auto; }
.bne-dir-card p { margin: 0 !important; font-size: 10px; line-height: 1.2; flex: 0 0 auto; width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.bne-dir-card p a { color: var(--bne-navy); text-decoration: none; }
.bne-dir-actions { display: flex; align-items: center; justify-content: center; gap: 4px; width: 100%; flex: 0 0 auto; }
.bne-dir-web { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border: 1px solid var(--bne-line); border-radius: 4px; color: var(--bne-navy) !important; flex: 0 0 auto; }
.bne-dir-profile { display: inline-block; background: var(--bne-navy); color: #fff !important; text-decoration: none !important; border-radius: 4px; padding: 2px 6px; font-size: 10px; font-weight: 700; line-height: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: calc(100% - 22px); }
.bne-dir-cell.is-compact .bne-dir-logo, .bne-dir-cell.is-compact .bne-dir-phone { display: none; }

/* Popup */
.bne-pop { position: absolute !important; z-index: 2147483000 !important; pointer-events: auto; width: 250px; background: #fff; border: 1px solid #e6eaf0; border-radius: 12px; box-shadow: 0 12px 28px rgba(3, 49, 142, 0.16); overflow: hidden; color: #33373d; cursor: pointer; font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif; }
.bne-pop[hidden] { display: none; }
.bne-pop img { width: 100%; height: 110px; object-fit: cover; display: block; }
.bne-pop time, .bne-pop-venue { display: block; padding: 0 12px; }
.bne-pop-title { display: block; padding: 10px 12px 0; font-size: 15px; font-weight: 700; color: #33373d; }
.bne-pop time { color: #03318e; font-size: 12px; font-weight: 700; margin-top: 4px; }
.bne-pop-venue { color: #5c6570; font-size: 13px; padding-bottom: 8px; }
.bne-pop-cat { display: inline-block; margin: 0 12px 12px; background: #e8eef8; color: #03318e; text-decoration: none; border-radius: 4px; padding: 3px 7px; font-size: 11px; font-weight: 700; text-transform: uppercase; }

/* Week / Day / List */
.bne-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.bne-week section { background: #fff; border: 1px solid var(--bne-line); border-radius: 8px; padding: 8px; min-width: 0; }
.bne-week h3 { font-size: 13px; margin: 0 0 8px; }
.bne-week .bne-bar { margin-bottom: 4px; white-space: normal; }
@media (max-width: 767px) { .bne-week { grid-template-columns: 1fr; } }
.bne-dayview { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-top: 12px; }
.bne-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; width: 100%; }
.bne-card { background: #fff; border: 1px solid var(--bne-line); border-radius: 12px; overflow: hidden; box-shadow: 0 8px 22px rgba(30, 61, 89, 0.06); }
.bne-thumb { width: 100%; height: 170px; object-fit: cover; display: block; }
.bne-card-body { padding: 14px 14px 16px; }
.bne-card time { display: block; color: #03318e; font-size: 12px; font-weight: 700; margin: 0 0 6px; }
.bne-card h3 { font-size: 18px; line-height: 1.3; margin: 0 0 6px; }
.bne-card h3 a { color: inherit; text-decoration: none; }
.bne-venue { margin: 0 0 8px; color: var(--bne-muted); font-size: 13px; }
.bne-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.bne-pills a { display: inline-block; margin: 0; background: #e8eef8; color: #03318e; text-decoration: none; border-radius: 4px; padding: 3px 7px; font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.bne-empty { color: var(--bne-muted); }
.bne-more { display: inline-block; margin-top: 8px; background: #03318e; color: #fff !important; text-decoration: none; border: 0; border-radius: 4px; padding: 8px 12px; font-size: 12px; font-weight: 800; letter-spacing: 0.04em; cursor: pointer; }

/* Archive */
.bne-archive { max-width: 1300px; margin: 30px auto; padding: 0 16px; }
.bne-archive h1 { color: #03318e; font-size: 36px; margin: 0 0 16px; }
.bne-archive h2 { margin: 0 0 12px; font-size: 22px; }
.bne-upcoming { margin: 0 0 30px; }
.bne-back a { color: var(--bne-navy); font-weight: 700; text-decoration: none; }

/* Single */
.bne-single { max-width: 1100px; margin: 48px auto 32px; padding: 0 16px; }
.bne-single h1 { font-size: 36px; line-height: 1.2; margin: 0 0 20px; color: #03318e; }
.bne-single img.bne-hero { width: 100%; height: auto; max-height: 460px; object-fit: cover; border-radius: 12px; display: block; margin: 0 0 24px; }
.bne-single-meta { background: #fff; border: 1px solid #e6eaf0; border-left: 4px solid #03318e; border-radius: 10px; padding: 16px 18px; margin: 0 0 24px; }
.bne-single-content { margin: 0 0 24px; }
.bne-actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 28px; }
.bne-related { margin: 30px 0; }
.bne-related h2 { font-size: 24px; color: #03318e; margin: 0 0 16px; }
.bne-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 767px) { .bne-related-grid { grid-template-columns: 1fr; } }

@media (max-width: 700px) {
  .bne-day { min-height: 88px; }
  .bne-bar { font-size: 10px; }
  .bne-dir-logo, .bne-dir-phone, .bne-dir-web { display: none !important; }
  .bne-dir-name { font-size: 9px !important; }
  .bne-dir-profile { font-size: 8px; padding: 1px 3px; max-width: 100%; }
}

/* 1.8.4: no sideways page scroll on calendar pages (theme/Elementor rows with negative margins) */
html.bne-noscroll-x, body.bne-calendar-page { overflow-x: clip; }
.bne-page, .bne-main, .bne-cal, .bne-archive { max-width: 100%; }
.bne-archive { max-width: 1400px; }
