/* ==========================================================================
   News / Updates Hub (template-news.php) — reusable layout, scoped by .bm-hub:
   full-bleed gallery hero, three-up post-card grid, "follow along" band.
   Same hero recipe as the other pages: .hero > .hero-art is 60% wide, flush
   right/top/bottom; the dark fade lives on .hero:after.
   ========================================================================== */

.bm-hub{ --maxw:1440px; }
.bm-hub .screen-reader-text{
	position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden;
	clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ---- hero ---- */
.bm-hub-hero{
	position:relative; overflow:hidden; display:flex; align-items:center; min-height:525px;
	max-width:none; margin-left:0; margin-right:0; padding-top:0; padding-bottom:0;
	padding-left:max(var(--gutter), calc((100% - var(--maxw))/2));
	padding-right:max(var(--gutter), calc((100% - var(--maxw))/2));
}
.bm-hub-hero > div:first-child{ position:relative; z-index:1; width:100%; max-width:610px; padding-block:50px; }
.bm-hub-hero > .hero-art{
	position:absolute; top:0; right:0; bottom:0; z-index:0; width:60%;
	aspect-ratio:auto; max-width:none; border-radius:0; border:0; background:none;
}
.bm-hub-hero:after{
	content:""; position:absolute; inset:0;
	background:linear-gradient(90deg, #000 0%, #000 42%, rgba(13,26,31,.15) 65%, rgba(13,26,31,.45) 100%);
}
.bm-hub-hero h1 b{ color:var(--accent); font-weight:700; }
.bm-hub .eyebrow{ font-size:15px; }
.bm-hub-hero .eyebrow{ font-size:15.36px; }
@media (max-width:900px){
	.bm-hub-hero > div:first-child{ max-width:90%; }
	.bm-hub-hero > .hero-art{ width:100%; }
	.bm-hub-hero:after{ background:linear-gradient(180deg, rgba(13,26,31,.92), rgba(13,26,31,.6) 75%, rgba(13,26,31,.87)); }
}

/* ---- post grid ---- */
.bm-hub-grid{ padding-top:30px !important; padding-bottom:30px !important; }
/* Photo tiles — the same card as Event Solutions "Find Your Event": photo behind, dark fade, title + date at the bottom,
   the excerpt revealed on hover / focus while the photo zooms in. Touch screens keep the text visible. */
.bm-hub-cards{
	display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px;
}
.bm-hub-tile{
	position:relative; min-height:300px; overflow:hidden; display:flex; align-items:flex-end;
	background:var(--bg-panel); text-decoration:none; color:var(--ink); transition:transform .2s ease;
}
.bm-hub-tile:hover{ transform:translateY(-2px); }
.bm-hub-tile__photo{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .5s ease; }
.bm-hub-tile:hover .bm-hub-tile__photo, .bm-hub-tile:focus-visible .bm-hub-tile__photo{ transform:scale(1.12); }
.bm-hub-tile:after{
	content:""; position:absolute; inset:0; pointer-events:none;
	background:linear-gradient(0deg, rgba(13,26,31,.82) 0%, rgba(13,26,31,.5) 34%, rgba(13,26,31,.06) 62%, transparent 100%);
}
.bm-hub-tile__body{ position:relative; z-index:1; padding:20px; display:flex; flex-direction:column; min-width:0; text-shadow:0 1px 8px rgba(13,26,31,.65); }
.bm-hub-tile__title{
	font-family:'Oswald',sans-serif; font-weight:700; text-transform:uppercase;
	font-size:1.05rem; line-height:1.2; margin-bottom:6px;
}
.bm-hub-tile__date{
	font-family:'Oswald',sans-serif; font-weight:600; text-transform:uppercase;
	font-size:.72rem; letter-spacing:.04em; color:var(--accent); margin-bottom:8px;
}
.bm-hub-tile__desc{
	font-size:.82rem; color:var(--ink-muted); line-height:1.38;
	max-height:0; opacity:0; overflow:hidden; margin-bottom:0;
	transition:max-height .35s ease, opacity .25s ease, margin-bottom .35s ease;
}
.bm-hub-tile:hover .bm-hub-tile__desc, .bm-hub-tile:focus-visible .bm-hub-tile__desc{ max-height:12em; opacity:1; margin-bottom:10px; }
@media (hover:none){ .bm-hub-tile__desc{ max-height:none; opacity:1; margin-bottom:10px; } }
.bm-hub-tile__link{
	font-family:'Oswald',sans-serif; font-weight:600; text-transform:uppercase;
	font-size:.72rem; letter-spacing:.03em; color:var(--ink);
}
.bm-hub-tile:hover .bm-hub-tile__link{ color:var(--accent); }
.bm-hub-card__meta{
	display:flex; flex-wrap:wrap; gap:0 10px; align-items:center;
	margin:14px 0 6px; font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:.1em;
	text-transform:uppercase; color:var(--ink-muted);
}
.bm-hub-card__sep{ color:var(--ink-muted); }
.bm-hub-card__excerpt{ margin:0 0 14px; font-size:15px; line-height:1.45; color:var(--ink-muted); }
.bm-hub-card__more{
	align-self:flex-start; margin-top:auto;
	font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
	color:var(--ink); text-decoration:none; padding-bottom:5px; border-bottom:2px solid var(--accent);
}
.bm-hub-card__more:hover, .bm-hub-card__more:focus-visible{ color:var(--accent); }
.bm-hub-empty{ margin:0; color:var(--ink-muted); }
@media (max-width:1000px){ .bm-hub-cards{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:620px){ .bm-hub-cards{ grid-template-columns:minmax(0,1fr); } }

/* ---- follow along band ---- */
.bm-hub-follow{
	position:relative; overflow:hidden; display:flex; align-items:center; min-height:300px;
	padding:30px max(var(--gutter), calc((100% - var(--maxw))/2));
	background:#000;
}
.bm-hub-follow__copy{ position:relative; z-index:1; width:100%; max-width:610px; }
.bm-hub-follow__copy h2{ margin:0 0 14px; font-size:38.4px; line-height:1.1; font-weight:300; color:var(--ink); }
.bm-hub-follow__copy h2 b{ color:var(--accent); font-weight:700; }
.bm-hub-follow__copy p{ margin:0 0 22px; font-size:16px; max-width:480px; }
.bm-hub-follow__art{ position:absolute; top:0; right:0; bottom:0; width:60%; z-index:0; }
.bm-hub-follow__art img{ width:100%; height:100%; object-fit:cover; display:block; }
.bm-hub-follow:after{
	content:""; position:absolute; inset:0; z-index:0;
	background:linear-gradient(90deg, #000 0%, #000 42%, rgba(13,26,31,.15) 65%, rgba(13,26,31,.45) 100%);
}
@media (max-width:900px){
	.bm-hub-follow__copy{ max-width:90%; }
	.bm-hub-follow__art{ width:100%; }
	.bm-hub-follow:after{ background:linear-gradient(180deg, rgba(13,26,31,.92), rgba(13,26,31,.6) 75%, rgba(13,26,31,.87)); }
}

/* ---- featured article (first post, wide: photo left, copy right) ---- */
.bm-hub-feature{
	display:grid; grid-template-columns:minmax(0,55fr) minmax(0,45fr); gap:34px; align-items:center;
	margin-bottom:20px;
}
.bm-hub-feature__thumb{ display:block; aspect-ratio:16/9; overflow:hidden; background:var(--bg-panel); }
.bm-hub-feature__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.bm-hub-feature__copy{ display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.bm-hub-feature__title{ margin:0 0 8px; font-size:38.4px; line-height:1.1; font-weight:300; text-transform:none; }
.bm-hub-feature__title a{ color:var(--ink); text-decoration:none; }
.bm-hub-feature__title a:hover, .bm-hub-feature__title a:focus-visible{ color:var(--accent); }
.bm-hub-feature .bm-hub-card__meta{ margin:0 0 14px; }
.bm-hub-feature .bm-hub-card__excerpt{ font-size:16px; margin-bottom:18px; }
@media (max-width:900px){ .bm-hub-feature{ grid-template-columns:minmax(0,1fr); gap:18px; } .bm-hub-feature__title{ font-size:30px; } }


/* ==========================================================================
   Single story page (single.php): split hero (text left, photo right),
   two columns (story text | photos + optional stat card), More stories
   (shared tiles), closing band. The hero reuses .bm-hub-hero above.
   ========================================================================== */
.bm-story-hero{ min-height:420px; }
.bm-story-hero > div:first-child{ max-width:740px; }
.bm-story-crumbs{
	display:flex; flex-wrap:wrap; align-items:center; gap:0 8px; margin:0 0 26px;
	font-size:12px; line-height:1.4; color:var(--ink-muted);
}
.bm-story-crumbs a{ color:var(--ink); text-decoration:none; }
.bm-story-crumbs a:hover, .bm-story-crumbs a:focus-visible{ color:var(--accent); }
.bm-story-crumbs > *:not(:last-child):after{
	content:""; display:inline-block; width:5px; height:5px; margin-left:8px; vertical-align:1px;
	border-top:1.5px solid var(--ink-muted); border-right:1.5px solid var(--ink-muted); transform:rotate(45deg);
}
.bm-story-crumbs [aria-current]{ color:var(--ink-muted); }
.bm-story-hero h1{ font-weight:300; text-transform:none; }
.bm-story-hero__meta{
	display:flex; flex-wrap:wrap; gap:0 10px; margin:16px 0 0; font-family:'Oswald',sans-serif;
	font-size:14px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink);
}
.bm-story-hero__meta span{ color:var(--accent); }
.bm-story-hero__intro{ margin-top:18px; max-width:none; }
/* story photo too small for the hero: a text-only opener */
.bm-story-hero--text:after{ display:none; }
.bm-story-hero--text > div:first-child{ max-width:900px; }

/* two columns */
.bm-story{ padding-top:30px !important; padding-bottom:30px !important; }
.bm-story{
	display:grid; grid-template-columns:minmax(0,55fr) minmax(0,45fr); gap:50px; align-items:start;
}
.bm-story--single{ grid-template-columns:minmax(0,760px); justify-content:center; }
.bm-story__text{ font-size:17px; line-height:1.65; min-width:0; }
.bm-story__text > p{ margin:0 0 16px; font-size:17px !important; line-height:1.65; }
.bm-story__text > p:first-child{ color:var(--ink); }
.bm-story__text h2, .bm-story__text h3{
	margin:0 0 14px; font-size:30px !important; line-height:1.15; font-weight:300; color:var(--ink); text-transform:none;
}
.bm-story__text > h2:not(:first-child), .bm-story__text > h3:not(:first-child){ margin-top:32px; }
.bm-story__text h2:before{ content:""; display:block; width:40px; height:3px; background:var(--accent); margin-bottom:14px; }
.bm-story__text h3{ font-size:22px !important; }
.bm-story__text a{ color:var(--accent); text-decoration:underline; text-underline-offset:2px; }
.bm-story__text ul, .bm-story__text ol{ margin:0 0 16px; padding-left:1.2em; }
.bm-story__text li{ margin-bottom:.4em; }
.bm-story__text blockquote{ margin:24px 0; padding:0 0 0 18px; border-left:3px solid var(--accent); font-size:20px; line-height:1.4; color:var(--ink); }
.bm-story__media{ min-width:0; display:flex; flex-direction:column; gap:20px; }
.bm-story__media img{ display:block; width:100%; height:auto; margin:0; border-radius:0; }
.bm-story__media figure, .bm-story__media .wp-block-image, .bm-story__media > p{ margin:0; }
.bm-story__media .has-text-align-center, .bm-story__media figcaption{
	margin:-12px 0 0; font-size:13px !important; line-height:1.4; text-align:left; color:var(--ink-muted) !important;
}
.bm-story__media .wp-block-gallery{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.bm-story__media .wp-block-gallery figure{ margin:0; }
.bm-story__media .wp-block-gallery img{ height:100%; object-fit:cover; }
.bm-story__stat{
	display:flex; align-items:center; gap:24px; padding:22px 26px; background:var(--bg-panel); border:1px solid var(--rule);
}
.bm-story__stat-num{ font-family:'Oswald',sans-serif; font-weight:700; font-size:48px; line-height:1; color:var(--accent); white-space:nowrap; }
.bm-story__stat-label{
	padding-left:24px; border-left:1px solid var(--rule); font-family:'Oswald',sans-serif; font-weight:600;
	font-size:16px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink);
}
@media (max-width:900px){
	.bm-story{ grid-template-columns:minmax(0,1fr); gap:30px; }
	.bm-story--single{ grid-template-columns:minmax(0,1fr); }
	.bm-story-hero{ min-height:0; }
}

/* more stories */
.bm-story-more{ padding-top:30px !important; padding-bottom:30px !important; }
.bm-story-more__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:20px; }
.bm-story-more h2{ margin:0; font-size:38.4px; line-height:1.1; font-weight:300; color:var(--ink); }
.bm-story-more h2 b{ color:var(--accent); font-weight:700; }
.bm-story-more .eyebrow{ font-size:15px; }
.bm-story-more__all{
	flex:none; font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
	color:var(--ink); text-decoration:none; padding-bottom:5px; border-bottom:2px solid var(--accent);
}
.bm-story-more__all:hover, .bm-story-more__all:focus-visible{ color:var(--accent); }
@media (max-width:620px){ .bm-story-more__head{ flex-direction:column; align-items:flex-start; } }
.bm-hub-follow__copy .btn + .btn{ margin-left:12px; }
@media (max-width:480px){ .bm-hub-follow__copy .btn + .btn{ margin-left:0; margin-top:12px; } }
