/*
Theme Name: Hibernia Bar
Theme URI: https://hiberniabar.com/
Description: Custom theme for Hibernia Bar, an Irish pub & sports bar in Hell's Kitchen NYC. Heritage pub look in black, Irish green and gold.
Version: 1.0.1
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: hibernia
*/

:root {
	--hb-bg: #0E1210;
	--hb-surface: #141A16;
	--hb-deep: #090B0A;
	--hb-photo: #2A2A24;
	--hb-ink: #F2EADB;
	--hb-body: #D9D0BF;
	--hb-muted: #CFC6B4;
	--hb-muted-2: #A79F8E;
	--hb-green: #009A44;
	--hb-green-text: #33C26B;
	--hb-gold: #E3B23C;
	--hb-gold-hover: #F5D27A;
	--hb-orange: #FF8200;
	--hb-line: rgba(227, 178, 60, 0.4);
	--hb-line-strong: rgba(227, 178, 60, 0.5);
	--hb-line-soft: rgba(227, 178, 60, 0.25);
	--hb-rule: rgba(242, 234, 219, 0.12);
	--hb-display: 'Abril Fatface', Georgia, serif;
	--hb-sans: 'Lato', system-ui, -apple-system, sans-serif;
	--hb-max: 1180px;
	--hb-max-wide: 1280px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--hb-bg);
	color: var(--hb-ink);
	font-family: var(--hb-sans);
	font-size: 18px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--hb-gold); }
a:hover, a:focus-visible { color: var(--hb-gold-hover); }
:focus-visible { outline: 2px solid var(--hb-gold); outline-offset: 3px; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; z-index: 1000; top: 8px; left: 8px;
	background: var(--hb-gold); color: var(--hb-bg); padding: 12px 18px; font-weight: 900;
}

/* ---------- Shared type ---------- */
.hb-display, .hb-h1, .hb-h2, .hb-h3 {
	font-family: var(--hb-display);
	font-weight: 400;
	text-transform: uppercase;
	margin: 0;
}
.hb-h1 { font-size: 76px; line-height: 1.04; letter-spacing: 0.02em; }
.hb-h2 { font-size: 52px; line-height: 1.08; }
.hb-h2--compact { font-size: 40px; line-height: 1.1; }
.hb-h3 { font-size: 28px; }
.hb-eyebrow {
	margin: 0; font-size: 14px; font-weight: 900; letter-spacing: 0.3em;
	text-transform: uppercase; color: var(--hb-green);
}
.hb-rule { width: 96px; height: 2px; background: var(--hb-gold); border: 0; margin: 0; }
.hb-lede { margin: 0; font-size: 18px; line-height: 1.75; color: var(--hb-body); }
.hb-script { margin: 0; font-style: italic; font-size: 22px; color: var(--hb-gold); }

/* ---------- Buttons ---------- */
.hb-btn, .wp-block-button.hb-btn .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; padding: 0 30px; border-radius: 0;
	font-family: var(--hb-sans); font-weight: 900; font-size: 15px;
	letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
	transition: transform 180ms ease, background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.hb-btn--gold, .wp-block-button.hb-btn--gold .wp-block-button__link { background: var(--hb-gold); color: var(--hb-bg); border: 2px solid var(--hb-gold); }
.hb-btn--gold:hover, .hb-btn--gold:focus-visible,
.wp-block-button.hb-btn--gold .wp-block-button__link:hover { background: var(--hb-gold-hover); border-color: var(--hb-gold-hover); color: var(--hb-bg); }
.hb-btn--outline, .wp-block-button.hb-btn--outline .wp-block-button__link { border: 2px solid var(--hb-ink); color: var(--hb-ink); background: transparent; }
.hb-btn--outline:hover, .hb-btn--outline:focus-visible { border-color: var(--hb-gold); color: var(--hb-gold); }
.hb-btn--outline-gold, .wp-block-button.hb-btn--outline-gold .wp-block-button__link { border: 2px solid var(--hb-gold); color: var(--hb-gold); background: transparent; padding: 0 28px; }
.hb-btn--outline-gold:hover { color: var(--hb-bg); background: var(--hb-gold); }
.hb-btn--green, .wp-block-button.hb-btn--green .wp-block-button__link { background: var(--hb-green); color: var(--hb-bg); border: 2px solid var(--hb-green); }
.hb-btn--green:hover { background: #00B24F; color: var(--hb-bg); }
.hb-btn--dark { background: var(--hb-bg); color: var(--hb-gold); border: 2px solid var(--hb-bg); min-height: 46px; padding: 0 24px; }
.hb-btn--dark:hover { color: var(--hb-gold-hover); }
.hb-link-arrow {
	font-weight: 900; font-size: 15px; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--hb-gold); text-decoration: none; border-bottom: 2px solid var(--hb-gold); padding-bottom: 4px;
	align-self: flex-start;
}

/* ---------- Top bar ---------- */
.hb-topbar { background: var(--hb-green); color: var(--hb-bg); font-size: 14px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.hb-topbar__inner { max-width: var(--hb-max-wide); margin: 0 auto; padding: 10px 24px; display: flex; flex-wrap: wrap; gap: 8px 32px; justify-content: center; align-items: center; line-height: 1.2; }
.hb-topbar a { color: var(--hb-bg); text-decoration: none; }
.hb-topbar a:hover { text-decoration: underline; color: var(--hb-bg); }

/* ---------- Header ---------- */
.hb-header { background: var(--hb-bg); border-bottom: 1px solid rgba(227, 178, 60, 0.35); position: relative; z-index: 20; }
.hb-header__inner { max-width: var(--hb-max-wide); margin: 0 auto; padding: 20px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.hb-nav { flex: 1 1 280px; }
.hb-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 28px; align-items: center; }
.hb-nav--left ul { justify-content: flex-start; }
.hb-nav--right ul { justify-content: flex-end; }
.hb-nav a { color: var(--hb-ink); text-decoration: none; font-size: 14px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.hb-nav a:hover, .hb-nav .current-menu-item > a { color: var(--hb-gold); }
.hb-nav .hb-nav__cta > a, .hb-nav li:last-child > a.hb-nav__cta-link { background: var(--hb-gold); color: var(--hb-bg); padding: 12px 18px; display: inline-block; }
.hb-nav .hb-nav__cta > a:hover { background: var(--hb-gold-hover); color: var(--hb-bg); }
.hb-logo { flex: 0 0 auto; display: block; line-height: 0; }
.hb-logo img { display: block; height: 60px; width: auto; }
.hb-menu-toggle { display: none; }

/* ---------- Hero ---------- */
.hb-hero { position: relative; min-height: 720px; display: flex; align-items: flex-end; background: #1A201C; overflow: hidden; }
.hb-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hb-hero__shade { position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(14,18,16,0.15) 0%, rgba(14,18,16,0.75) 70%, rgba(14,18,16,0.95) 100%); }
.hb-hero__inner { position: relative; max-width: var(--hb-max-wide); width: 100%; margin: 0 auto; padding: 96px 24px 72px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; }
.hb-hero__h1 { max-width: 1000px; }
.hb-hero__sub { margin: 0; font-size: 20px; line-height: 1.6; max-width: 680px; color: #E2D9C8; }
.hb-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 8px; }
.hb-hero__facts { display: flex; flex-wrap: wrap; gap: 10px 28px; justify-content: center; margin: 18px 0 0; padding: 22px 0 0; border-top: 1px solid var(--hb-line); font-size: 15px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--hb-ink); list-style: none; }
.hb-hero__facts li + li::before { content: '|'; color: var(--hb-gold); margin-right: 28px; }

/* Stamp */
.hb-stamp { width: 120px; height: 120px; border: 2px solid var(--hb-gold); border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--hb-gold); outline: 1px solid var(--hb-line-strong); outline-offset: 5px; line-height: 1; }
.hb-stamp__top { font-size: 11px; font-weight: 900; letter-spacing: 0.3em; }
.hb-stamp__year { font-family: var(--hb-display); font-size: 34px; line-height: 1; margin: 2px 0; }
.hb-stamp__bottom { font-size: 9px; font-weight: 900; letter-spacing: 0.26em; }
.hb-stamp--footer { width: 108px; height: 108px; }
.hb-stamp--footer .hb-stamp__year { font-size: 20px; }
.hb-stamp--footer .hb-stamp__bottom { font-size: 10px; letter-spacing: 0.3em; margin-top: 4px; }

/* ---------- Sections ---------- */
.hb-section { padding: 112px 24px; background: var(--hb-bg); }
.hb-section--surface { background: var(--hb-surface); border-top: 1px solid var(--hb-line-soft); border-bottom: 1px solid var(--hb-line-soft); padding-top: 96px; padding-bottom: 96px; }
.hb-wrap { max-width: var(--hb-max); margin: 0 auto; }
.hb-wrap--wide { max-width: var(--hb-max-wide); margin: 0 auto; }
.hb-split { display: flex; flex-wrap: wrap; gap: 64px; align-items: center; }
.hb-split--top { align-items: flex-start; gap: 56px; }
.hb-split__col { flex: 1 1 440px; display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.hb-head-center { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.hb-frame { border: 1px solid var(--hb-line-strong); padding: 12px; }
.hb-frame img { display: block; width: 100%; object-fit: cover; }

/* Welcome */
.hb-welcome .hb-frame { flex: 1 1 440px; min-height: 540px; }
.hb-welcome .hb-frame img { height: 516px; object-position: center top; }

/* Highlight cards */
.hb-highlights .hb-wrap--wide { display: flex; flex-direction: column; gap: 48px; }
.hb-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.hb-card { display: flex; flex-direction: column; background: var(--hb-bg); border: 1px solid var(--hb-line); text-decoration: none; color: var(--hb-ink); transition: transform 180ms ease, border-color 180ms ease; }
.hb-card:hover, .hb-card:focus-visible { transform: translateY(-3px); border-color: var(--hb-gold); color: var(--hb-ink); }
.hb-card__img { display: block; width: 100%; height: 220px; object-fit: cover; }
.hb-card__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.hb-card__text { margin: 0; font-size: 16px; line-height: 1.6; color: var(--hb-muted); }
.hb-card__more { font-weight: 900; font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--hb-gold); }

/* Perfect pour */
.hb-pour .hb-frame { flex: 1 1 380px; }
.hb-pour .hb-frame img { height: 600px; object-position: center; }
.hb-pour .hb-split__col { flex: 1 1 500px; }
.hb-steps { margin: 8px 0 0; padding: 0; list-style: none; }
.hb-step { display: flex; gap: 20px; padding: 18px 0; border-top: 1px solid rgba(242,234,219,0.14); }
.hb-step:last-child { border-bottom: 1px solid rgba(242,234,219,0.14); }
.hb-step__num { font-family: var(--hb-display); font-size: 34px; line-height: 1; color: var(--hb-gold); min-width: 40px; }
.hb-step__body { display: flex; flex-direction: column; gap: 4px; }
.hb-step__title { line-height: 1.25; font-weight: 900; font-size: 18px; text-transform: uppercase; letter-spacing: 0.06em; }
.hb-step__text { font-size: 16px; line-height: 1.6; color: var(--hb-muted); }
.hb-btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 6px; }

/* Game day */
.hb-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.hb-chip { padding: 10px 16px; border: 1px solid var(--hb-green); color: var(--hb-green-text); font-weight: 900; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; transition: background-color 180ms ease, color 180ms ease; }
.hb-chip:hover { background: var(--hb-green); color: var(--hb-bg); }
.hb-chip--gold { border-color: var(--hb-gold); color: var(--hb-gold); }
.hb-chip--gold:hover { background: var(--hb-gold); color: var(--hb-bg); }
.hb-games { flex: 1 1 460px; background: var(--hb-surface); border: 1px solid var(--hb-line-strong); padding: 32px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hb-games__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--hb-line); }
.hb-games__title { line-height: 1.1; font-family: var(--hb-display); font-weight: 400; font-size: 30px; text-transform: uppercase; color: var(--hb-gold); margin: 0; }
.hb-games__label { font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--hb-muted-2); }
.hb-games__list { list-style: none; margin: 0; padding: 0; }
.hb-game { display: flex; justify-content: space-between; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--hb-rule); }
.hb-game__teams { display: flex; flex-direction: column; gap: 4px; }
.hb-game__match { font-weight: 900; font-size: 18px; line-height: 1.25; }
.hb-game__league { font-size: 14px; line-height: 1.25; color: var(--hb-muted-2); }
.hb-game__when { line-height: 1.25; font-weight: 700; font-size: 15px; color: var(--hb-gold); text-align: right; white-space: nowrap; }
.hb-games__empty { padding: 18px 0; color: var(--hb-muted); font-size: 16px; }
.hb-games .hb-btn { margin-top: 20px; }

/* Happy hour strip */
.hb-strip { background: var(--hb-orange); color: var(--hb-bg); padding: 28px 24px; }
.hb-strip__inner { max-width: var(--hb-max); margin: 0 auto; display: flex; flex-wrap: wrap; gap: 24px 48px; align-items: center; justify-content: space-between; }
.hb-strip__text { display: flex; flex-direction: column; gap: 8px; flex: 1 1 420px; }
.hb-strip__eyebrow { margin: 0; font-size: 12px; font-weight: 900; letter-spacing: 0.24em; text-transform: uppercase; }
.hb-strip__title { font-family: var(--hb-display); font-weight: 400; font-size: 30px; line-height: 1.1; text-transform: uppercase; margin: 0; }

/* Story */
.hb-story { padding-top: 80px; padding-bottom: 80px; }
.hb-story .hb-wrap { display: flex; flex-direction: column; gap: 36px; }
.hb-story .hb-lede { max-width: 680px; }
.hb-timeline { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
.hb-moment { border-top: 1px solid var(--hb-line-strong); padding-top: 22px; display: flex; flex-direction: column; gap: 10px; }
.hb-moment__big { font-family: var(--hb-display); font-size: 30px; color: var(--hb-gold); line-height: 1; }
.hb-moment__title { margin: 0; font-size: 20px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.06em; }
.hb-moment__text { margin: 0; font-size: 16px; line-height: 1.7; color: var(--hb-muted); }
.hb-moment a { font-weight: 900; font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; }

/* Reviews */
.hb-reviews .hb-wrap { display: flex; flex-direction: column; gap: 44px; }
.hb-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 377px)); justify-content: center; gap: 24px; }
.hb-quote { margin: 0; background: var(--hb-bg); border: 1px solid var(--hb-line); padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.hb-quote__mark { font-family: var(--hb-display); font-size: 64px; line-height: 0.6; color: var(--hb-gold); }
.hb-quote blockquote { margin: 0; font-size: 20px; line-height: 1.6; font-style: italic; }
.hb-quote figcaption { font-size: 13px; font-weight: 900; letter-spacing: 0.14em; text-transform: uppercase; color: var(--hb-muted-2); }

/* Visit */
.hb-visit { background: var(--hb-surface); border-top: 1px solid var(--hb-line-soft); padding: 96px 24px; }
.hb-visit .hb-split { align-items: stretch; gap: 56px; }
.hb-visit .hb-split__col { flex: 1 1 400px; }
.hb-address { font-style: normal; font-size: 19px; line-height: 1.7; }
.hb-address a { font-weight: 700; }
.hb-visit__note { margin: 0; font-size: 16px; line-height: 1.7; color: var(--hb-muted); }
.hb-hours { flex: 1 1 400px; background: var(--hb-bg); border: 1px solid var(--hb-line-strong); padding: 32px; display: flex; flex-direction: column; }
.hb-hours .hb-games__title { margin-bottom: 12px; }
.hb-hours__row { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--hb-rule); font-size: 18px; }
.hb-hours__row:last-child { border-bottom: 0; color: var(--hb-green-text); }
.hb-hours__row dt { font-weight: 700; }
.hb-hours__row dd { margin: 0; }
.hb-hours dl { margin: 0; }

/* ---------- Footer ---------- */
.hb-footer { background: var(--hb-deep); padding: 72px 24px 40px; border-top: 2px solid var(--hb-gold); }
.hb-footer__inner { max-width: var(--hb-max); margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 32px; text-align: center; }
.hb-footer__sign { margin: 0; font-style: italic; font-size: 20px; color: var(--hb-gold); }
.hb-footer nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 28px; }
.hb-footer nav a { color: var(--hb-ink); text-decoration: none; font-size: 14px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.hb-footer nav a:hover { color: var(--hb-gold); }
.hb-footer__nap { margin: 0; font-size: 15px; line-height: 1.7; color: var(--hb-muted-2); }
.hb-footer__social { display: flex; gap: 20px; justify-content: center; list-style: none; padding: 0; margin: 0; }
.hb-footer__social a { font-size: 13px; font-weight: 900; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; }
.hb-footer__legal { margin: 0; font-size: 13px; color: #8A8374; }

/* ---------- Inner pages (block content) ---------- */
.hb-page-hero { position: relative; background: var(--hb-surface); border-bottom: 1px solid var(--hb-line-soft); padding: 88px 24px 64px; text-align: center; }
.hb-page-hero .hb-h1 { font-size: 60px; max-width: 980px; margin: 0 auto; }
.hb-content { max-width: 860px; margin: 0 auto; padding: 72px 24px 96px; }
.hb-content--wide { max-width: var(--hb-max); }
.entry-content > * + * { margin-top: 1.25em; }
.entry-content h2 { font-family: var(--hb-display); font-weight: 400; text-transform: uppercase; font-size: 40px; line-height: 1.1; margin-top: 1.6em; }
.entry-content h3 { font-size: 22px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.04em; margin-top: 1.4em; }
.entry-content p, .entry-content li { color: var(--hb-body); line-height: 1.75; }
.entry-content a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.entry-content .wp-block-image img { border: 1px solid var(--hb-line); }
.entry-content details { border-top: 1px solid var(--hb-rule); padding: 18px 0; }
.entry-content details:last-of-type { border-bottom: 1px solid var(--hb-rule); }
.entry-content summary { cursor: pointer; font-weight: 900; font-size: 18px; }
.entry-content .wp-block-file, .entry-content .wp-block-embed { margin-top: 1.5em; }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: 12px; border-bottom: 1px solid var(--hb-rule); text-align: left; }
.entry-meta { color: var(--hb-muted-2); font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; margin-top: 16px; }

/* Block-friendly section classes (inner pages) */
.hb-band { padding: 72px 24px; }
.hb-band--surface { background: var(--hb-surface); border-top: 1px solid var(--hb-line-soft); border-bottom: 1px solid var(--hb-line-soft); }
.hb-band--orange { background: var(--hb-orange); color: var(--hb-bg); }
.hb-band--orange p, .hb-band--orange h2 { color: var(--hb-bg); }
.hb-panel { background: var(--hb-surface); border: 1px solid var(--hb-line-strong); padding: 32px; }
.hb-callout { border-left: 0; border-top: 2px solid var(--hb-gold); padding-top: 20px; }

/* Blog list */
.hb-posts { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
.hb-post-card { background: var(--hb-surface); border: 1px solid var(--hb-line); padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.hb-post-card h2 { font-family: var(--hb-display); font-weight: 400; font-size: 26px; line-height: 1.15; text-transform: uppercase; margin: 0; }
.hb-post-card h2 a { color: var(--hb-ink); text-decoration: none; }
.hb-post-card h2 a:hover { color: var(--hb-gold); }
.hb-post-card p { margin: 0; color: var(--hb-muted); font-size: 16px; }
.hb-pagination { margin-top: 48px; display: flex; gap: 12px; justify-content: center; }
.hb-pagination a, .hb-pagination span { padding: 10px 16px; border: 1px solid var(--hb-line); text-decoration: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.hb-h1 { font-size: 60px; }
}
@media (max-width: 900px) {
	.hb-quotes { grid-template-columns: 1fr; }
	.hb-header__inner { justify-content: center; }
	.hb-logo { order: -1; flex-basis: 100%; display: flex; justify-content: center; }
	.hb-logo img { height: 48px; }
	.hb-menu-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--hb-line-strong); background: transparent; color: var(--hb-ink); font: 900 14px/1 var(--hb-sans); letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; }
	.hb-nav { display: none; flex-basis: 100%; }
	.hb-header.is-open .hb-nav { display: block; }
	.hb-nav ul { flex-direction: column; align-items: center; gap: 18px; }
	.hb-nav--left ul, .hb-nav--right ul { justify-content: center; }
	.hb-hero { min-height: 620px; }
	.hb-section, .hb-visit { padding: 72px 20px; }
	.hb-section--surface { padding-top: 72px; padding-bottom: 72px; }
	.hb-story { padding-top: 64px; padding-bottom: 64px; }
	.hb-split { gap: 40px; }
	.hb-welcome .hb-frame { min-height: 0; }
	.hb-welcome .hb-frame img, .hb-pour .hb-frame img { height: 420px; }
	.hb-split__col, .hb-welcome .hb-frame, .hb-pour .hb-frame, .hb-games, .hb-hours { flex-basis: 100%; }
	.hb-cards, .hb-timeline, .hb-quotes, .hb-posts { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	body { font-size: 17px; }
	.hb-h1 { font-size: 44px; }
	.hb-h2, .hb-h2--compact { font-size: 34px; }
	.hb-page-hero .hb-h1 { font-size: 40px; }
	.entry-content h2 { font-size: 30px; }
	.hb-hero__sub { font-size: 18px; }
	.hb-hero__facts { font-size: 13px; }
	.hb-hero__facts li + li::before { display: none; }
	.hb-hero__facts { flex-direction: column; gap: 6px; }
	.hb-topbar__inner { gap: 4px 16px; font-size: 12px; }
	.hb-topbar__sep { display: none; }
	.hb-hours, .hb-quote { padding: 22px; }
	.hb-strip__title { font-size: 24px; }
	.hb-btn { width: 100%; }
	.hb-hero__ctas, .hb-btn-row { width: 100%; }
}

/* ---------- Mobile: swipe rows instead of long stacks ---------- */
@media (max-width: 900px) {
	.hb-cards, .hb-timeline, .hb-quotes {
		display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
		margin: 0 -20px; padding: 0 20px 14px; scroll-padding: 0 20px;
		scrollbar-width: thin; scrollbar-color: var(--hb-gold) transparent;
	}
	.hb-cards > *, .hb-timeline > *, .hb-quotes > * { flex: 0 0 82%; max-width: 360px; scroll-snap-align: start; }
	.hb-quotes { justify-content: flex-start; }
	.hb-quotes > * { flex: 0 0 88%; max-width: none; }
	.hb-cards::-webkit-scrollbar, .hb-timeline::-webkit-scrollbar, .hb-quotes::-webkit-scrollbar { height: 3px; }
	.hb-cards::-webkit-scrollbar-thumb, .hb-timeline::-webkit-scrollbar-thumb, .hb-quotes::-webkit-scrollbar-thumb { background: var(--hb-gold); }
	.hb-swipe-hint { display: block; margin: -4px 0 0; font-size: 12px; font-weight: 900; letter-spacing: 0.2em; text-transform: uppercase; color: var(--hb-muted-2); text-align: center; }
	.hb-card__img { height: 180px; }
	.hb-welcome .hb-frame img { height: 300px; }
	.hb-pour .hb-frame img { height: 320px; }
	.hb-highlights .hb-wrap--wide, .hb-reviews .hb-wrap, .hb-story .hb-wrap { gap: 28px; }
}
.hb-swipe-hint { display: none; }

/* Mobile: Perfect Pour without the two buttons; Game Day as swipeable rows */
@media (max-width: 900px) {
	.hb-pour .hb-btn-row { display: none; }
	.hb-gameday .hb-split { gap: 28px; }
	.hb-gameday .hb-split__col { gap: 16px; }
	.hb-chips { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity; margin: 0 -20px; padding: 0 20px 8px; scroll-padding: 0 20px; scrollbar-width: none; }
	.hb-chips::-webkit-scrollbar { display: none; }
	.hb-chip { flex: 0 0 auto; scroll-snap-align: start; min-height: 44px; display: inline-flex; align-items: center; }
	.hb-gameday .hb-games { padding: 22px 0 22px 22px; }
	.hb-gameday .hb-games__head { padding-right: 22px; }
	.hb-gameday .hb-games__list { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 16px 22px 10px 0; scroll-padding-left: 0; scrollbar-width: none; }
	.hb-gameday .hb-games__list::-webkit-scrollbar { display: none; }
	.hb-gameday .hb-game { flex: 0 0 72%; max-width: 280px; scroll-snap-align: start; flex-direction: column-reverse; justify-content: flex-end; gap: 10px; padding: 18px; background: var(--hb-bg); border: 1px solid var(--hb-line); border-top: 3px solid var(--hb-gold); }
	.hb-gameday .hb-game__when { text-align: left; white-space: normal; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
	.hb-gameday .hb-game__match { font-family: var(--hb-display); font-weight: 400; font-size: 22px; line-height: 1.15; text-transform: uppercase; }
	.hb-gameday .hb-games .hb-btn { margin: 14px 22px 0 0; width: auto; }
	.hb-gameday .hb-games__empty { padding-right: 22px; }
}

/* ---------- Sonic Boom: open-now badge, next game, sticky bar ---------- */
.hb-open { display: inline-flex; align-items: center; gap: 8px; }
.hb-open::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--hb-bg); }
.hb-open.is-closed::before { background: transparent; border: 2px solid var(--hb-bg); }
.hb-nextup { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 4px 12px; align-items: baseline; margin-top: 4px; padding: 10px 18px; border: 1px solid var(--hb-line); background: rgba(14,18,16,0.6); color: var(--hb-ink); text-decoration: none; transition: border-color 180ms ease; }
.hb-nextup:hover { border-color: var(--hb-gold); color: var(--hb-ink); }
.hb-nextup__label { font-size: 12px; font-weight: 900; letter-spacing: 0.2em; text-transform: uppercase; color: var(--hb-green-text); }
.hb-nextup__game { font-size: 16px; font-weight: 700; color: var(--hb-gold); }
.hb-sticky { display: none; }
@media (max-width: 900px) {
	.hb-sticky { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; gap: 1px; background: var(--hb-line); border-top: 1px solid var(--hb-line-strong); padding-bottom: env(safe-area-inset-bottom); }
	.hb-sticky__btn { flex: 1 1 50%; display: flex; align-items: center; justify-content: center; min-height: 54px; background: var(--hb-deep); color: var(--hb-ink); font-weight: 900; font-size: 14px; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; }
	.hb-sticky__btn--gold { background: var(--hb-gold); color: var(--hb-bg); }
	.hb-sticky__btn:hover, .hb-sticky__btn:focus-visible { color: var(--hb-gold); }
	.hb-sticky__btn--gold:hover, .hb-sticky__btn--gold:focus-visible { color: var(--hb-bg); background: var(--hb-gold-hover); }
	body { padding-bottom: calc(54px + env(safe-area-inset-bottom)); }
}

/* ---------- Motion (see assets/js/hibernia-motion.js) ---------- */
.js-motion .sonic-fade-on-scroll, .js-motion .sonic-stagger-children > * { opacity: 0; }
.js-motion .sonic-stamp { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.hb-card, .hb-btn, .hb-chip { transition: none; }
	.hb-card:hover { transform: none; }
}

/* ==========================================================================
   Landing pages built from blocks (page-landing.php): team & money pages
   ========================================================================== */
.hbp > * { margin-block-start: 0; margin-block-end: 0; }
/* Classic themes wrap group content in an inner container: let the group's own layout reach its children. */
.hbp .wp-block-group__inner-container { display: contents; }
.hbp .wp-block-columns { margin-bottom: 0; }
.hbp .wp-block-column > * { margin-top: 0; }
.hbp :where(.wp-block-group, .wp-block-columns) { margin-block-start: 0; }
.hbp .wp-block-heading { font-family: var(--hb-display); font-weight: 400; text-transform: uppercase; margin: 0; }
.hbp-h1 { font-size: 68px; line-height: 1.04; letter-spacing: 0.02em; max-width: 960px; }
.hbp-h2 { font-size: 52px; line-height: 1.08; }
.hbp-h2.has-rule::after { content: ''; display: block; width: 96px; height: 2px; background: var(--hb-gold); margin-top: 22px; }
.hbp p { margin: 0; }
.hbp .hb-eyebrow { color: var(--hb-green); }
.hbp-lede { font-size: 20px; line-height: 1.6; max-width: 700px; color: #E2D9C8; }
.hbp-text { font-size: 18px; line-height: 1.75; color: var(--hb-body); }
.hbp .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; }
.hbp .wp-block-button.hb-btn { padding: 0; min-height: 0; }
.hbp .wp-block-button.hb-btn .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 30px; border-radius: 0; font-family: var(--hb-sans); font-weight: 900; font-size: 15px; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; }
.hbp .wp-block-button.hb-btn--outline .wp-block-button__link { border: 2px solid var(--hb-ink); color: var(--hb-ink); background: transparent; }
.hbp .wp-block-button.hb-btn--outline .wp-block-button__link:hover { border-color: var(--hb-gold); color: var(--hb-gold); }
.hbp .wp-block-button.hb-btn--dark .wp-block-button__link { background: var(--hb-bg); color: var(--hb-gold); min-height: 46px; padding: 0 24px; }
.hbp-link-arrow a { font-weight: 900; font-size: 15px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--hb-gold); text-decoration: none; border-bottom: 2px solid var(--hb-gold); padding-bottom: 4px; }

/* Hero */
.hbp-hero { position: relative; min-height: 560px; display: flex; align-items: flex-end; background: #1A201C; overflow: hidden; }
.hbp-hero .hbp-hero__img { position: absolute; inset: 0; margin: 0; z-index: 0; }
.hbp-hero .hbp-hero__img img { width: 100%; height: 100%; object-fit: cover; border: 0; }
.hbp-hero::after { z-index: 0; content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(14,18,16,0.25) 0%, rgba(14,18,16,0.8) 70%, rgba(14,18,16,0.96) 100%); pointer-events: none; }
.hbp-hero__inner { position: relative; z-index: 1; max-width: var(--hb-max); width: 100%; margin: 0 auto; padding: 80px 24px 64px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; }
.hbp-hero__inner > *, .hbp-hero__inner > .wp-block-group__inner-container > * { margin: 0 !important; }
.hbp-hero .wp-block-buttons { justify-content: center; margin-top: 6px !important; }
.hbp-crumbs { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--hb-muted-2); }
.hbp-crumbs a { color: var(--hb-muted-2); text-decoration: none; }
.hbp-crumbs a:hover { color: var(--hb-gold); }
.hbp-crumbs strong { color: var(--hb-gold); font-weight: 700; }

/* Sections */
.hbp-section { padding: 104px 24px; background: var(--hb-bg); }
.hbp-section--surface { background: var(--hb-surface); border-top: 1px solid var(--hb-line-soft); border-bottom: 1px solid var(--hb-line-soft); padding-top: 96px; padding-bottom: 96px; }
.hbp-wrap { max-width: var(--hb-max); margin: 0 auto; }
.hbp-center { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.hbp-center .hbp-h2.has-rule::after { margin-left: auto; margin-right: auto; }
.hbp-stack { display: flex; flex-direction: column; gap: 22px; }
.hbp-stack > *, .hbp-stack > .wp-block-group__inner-container > * { margin: 0 !important; }

/* Two-column split */
.hbp .wp-block-columns.hbp-split { max-width: var(--hb-max); margin: 0 auto; gap: 64px; align-items: center; }
.hbp .wp-block-columns.hbp-split--top { align-items: flex-start; gap: 56px; }
.hbp-frame { border: 1px solid var(--hb-line-strong); padding: 12px; margin: 0; }
.hbp-frame img { display: block; width: 100%; height: 460px; object-fit: cover; }

/* Feature tiles */
.hbp .wp-block-columns.hbp-features { margin: 44px auto 0; max-width: var(--hb-max); gap: 24px; }
.hbp-feature { background: var(--hb-bg); border: 1px solid var(--hb-line); border-top: 3px solid var(--hb-gold); padding: 28px; display: flex; flex-direction: column; gap: 10px; height: 100%; }
.hbp-feature > *, .hbp-feature > .wp-block-group__inner-container > * { margin: 0 !important; }
.hbp-feature .wp-block-heading { line-height: 1.3; }
.hbp-feature__num { font-family: var(--hb-display); font-size: 30px; line-height: 1; color: var(--hb-gold); }
.hbp-feature .wp-block-heading { font-family: var(--hb-sans); font-size: 20px; font-weight: 900; letter-spacing: 0.06em; }
.hbp-feature p:not(.hbp-feature__num) { font-size: 16px; line-height: 1.7; color: var(--hb-muted); }

/* Photo carousel (core Gallery block) */
.hbp-gallery { padding: 96px 0 88px; background: var(--hb-bg); }
.hbp-gallery__head { max-width: var(--hb-max); margin: 0 auto; padding: 0 24px; display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: flex-end; justify-content: space-between; }
.hbp-gallery__head > .wp-block-group { display: flex; flex-direction: column; gap: 14px; }
.hbp-gallery__head > .wp-block-group > *, .hbp-gallery__head .wp-block-group__inner-container > * { margin: 0 !important; }
.hbp-arrows { display: flex; gap: 10px; }
.hbp-arrow { width: 52px; height: 52px; background: transparent; border: 2px solid var(--hb-gold); color: var(--hb-gold); font-size: 22px; cursor: pointer; }
.hbp-arrow--next { background: var(--hb-gold); color: var(--hb-bg); }
.hbp-arrow:hover { background: var(--hb-gold-hover); border-color: var(--hb-gold-hover); color: var(--hb-bg); }
.hbp .wp-block-gallery.hbp-carousel { display: flex !important; flex-wrap: nowrap !important; gap: 16px !important; overflow-x: auto; scroll-snap-type: x mandatory; margin: 36px 0 0 !important; padding: 0 max(24px, calc((100% - 1132px) / 2)) 16px; scroll-padding: 0 max(24px, calc((100% - 1132px) / 2)); scrollbar-width: thin; scrollbar-color: var(--hb-gold) transparent; }
.hbp .wp-block-gallery.hbp-carousel > figure.wp-block-image { flex: 0 0 auto !important; width: auto !important; margin: 0 !important; scroll-snap-align: start; display: flex; flex-direction: column; }
.hbp .wp-block-gallery.hbp-carousel > figure.wp-block-image img { height: 360px !important; width: auto !important; max-width: none; object-fit: cover; border: 1px solid var(--hb-line); flex: none; }
.hbp .wp-block-gallery.hbp-carousel figcaption { position: static !important; background: none !important; padding: 10px 2px 0 !important; text-align: left !important; font-size: 13px !important; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; color: var(--hb-gold) !important; max-height: none !important; overflow: visible !important; }

/* Schedule panel (shortcode) */
.hbp .hb-games--inline { padding: 32px; }
.hbp .hb-games--inline .hb-games__title { font-size: 30px; }
.hb-games__label { white-space: nowrap; }
.hbp-text + .hbp-text { margin-top: 0; }

/* Orange strip as blocks */
.hbp-strip { background: var(--hb-orange); color: var(--hb-bg); padding: 28px 24px; }
.hbp-strip .wp-block-columns { max-width: var(--hb-max); margin: 0 auto; align-items: center; gap: 24px 48px; }
.hbp-strip .hbp-strip__eyebrow { font-size: 12px; font-weight: 900; letter-spacing: 0.24em; text-transform: uppercase; margin-bottom: 8px; }
.hbp-strip .wp-block-heading { font-size: 30px; line-height: 1.1; color: var(--hb-bg); }
.hbp-strip .wp-block-buttons { justify-content: flex-end; }

/* FAQ */
.hbp-faq .hbp-wrap { max-width: 860px; }
.hbp-faq .wp-block-details { border-top: 1px solid rgba(242,234,219,0.14); padding: 20px 0; margin: 0; }
.hbp-faq .wp-block-details summary { line-height: 1.4; cursor: pointer; font-weight: 900; font-size: 19px; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.hbp-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.hbp-faq .wp-block-details summary::after { content: '+'; color: var(--hb-gold); }
.hbp-faq .wp-block-details[open] summary::after { content: '–'; }
.hbp-faq .wp-block-details p { margin: 12px 0 0; font-size: 17px; line-height: 1.75; color: var(--hb-body); }
.hbp-faq__list { margin-top: 32px !important; }

/* More sports chips */
.hbp-more { background: var(--hb-surface); border-top: 1px solid var(--hb-line-soft); padding: 72px 24px; }
.hbp-more .wp-block-columns { max-width: var(--hb-max); margin: 0 auto; align-items: center; gap: 20px 40px; }
.hbp-more .wp-block-heading { font-size: 34px; line-height: 1.1; }
.hbp-chips { justify-content: flex-end; gap: 10px !important; }
.hbp-chips .wp-block-button .wp-block-button__link { padding: 10px 16px; border: 1px solid var(--hb-green); background: transparent; color: var(--hb-green-text); border-radius: 0; font-weight: 900; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; }
.hbp-chips .wp-block-button .wp-block-button__link:hover { background: var(--hb-green); color: var(--hb-bg); }
.hbp-chips .wp-block-button.is-gold .wp-block-button__link { border-color: var(--hb-gold); color: var(--hb-gold); }

@media (max-width: 900px) {
	.hbp-h1 { font-size: 44px; }
	.hbp-h2 { font-size: 34px; }
	.hbp-hero { min-height: 480px; }
	.hbp-section, .hbp-section--surface { padding: 72px 20px; }
	.hbp-gallery { padding: 72px 0 64px; }
	.hbp .wp-block-columns.hbp-split { gap: 36px; }
	.hbp-frame img { height: 300px; }
	.hbp .wp-block-gallery.hbp-carousel > figure.wp-block-image img { height: 260px !important; }
	.hbp-arrows { display: none; }
	.hbp .wp-block-columns.hbp-features { display: flex; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; margin: 32px -20px 0; padding: 0 20px 12px; gap: 14px; }
	.hbp .wp-block-columns.hbp-features > .wp-block-column { flex: 0 0 82% !important; scroll-snap-align: start; }
	.hbp-strip .wp-block-buttons, .hbp-chips { justify-content: flex-start; }
	.hbp-chips { flex-wrap: nowrap !important; overflow-x: auto; }
	.hbp-chips .wp-block-button { flex: 0 0 auto; }
	.hbp .hb-games--inline { padding: 22px; }
}

/* Content pages (old copy migrated as blocks): title band + prose column */
.hbp-pagehero { position: relative; background: var(--hb-surface); border-bottom: 1px solid var(--hb-line-soft); padding: 88px 24px 64px; text-align: center; overflow: hidden; }
.hbp-pagehero .wp-block-group__inner-container, .hbp-pagehero { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.hbp-pagehero .wp-block-group__inner-container { display: contents; }
.hbp-pagehero > *, .hbp-pagehero .wp-block-group__inner-container > * { margin: 0 !important; }
.hbp-pagehero .hbp-h1 { font-size: 60px; }
.hbp-prose { max-width: 860px; margin: 0 auto; padding: 72px 24px 96px; }
.hbp-prose .wp-block-group__inner-container > * + *, .hbp-prose > * + * { margin-top: 1.25em; }
.hbp-prose h2 { font-family: var(--hb-display); font-weight: 400; text-transform: uppercase; font-size: 40px; line-height: 1.1; margin-top: 1.6em !important; }
.hbp-prose h3 { font-family: var(--hb-sans) !important; font-size: 22px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.04em; margin-top: 1.4em !important; }
.hbp-prose h4 { font-family: var(--hb-sans) !important; font-size: 18px; font-weight: 900; }
.hbp-prose p, .hbp-prose li { color: var(--hb-body); line-height: 1.75; }
.hbp-prose a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.hbp-prose .wp-block-image img { border: 1px solid var(--hb-line); }
.hbp-prose .wp-block-quote { border-left: 3px solid var(--hb-gold); margin-left: 0; padding-left: 20px; font-style: italic; }
.hbp-prose table { width: 100%; border-collapse: collapse; }
.hbp-prose th, .hbp-prose td { padding: 12px; border-bottom: 1px solid var(--hb-rule); text-align: left; color: var(--hb-body); }
.hbp-prose details { border-top: 1px solid var(--hb-rule); padding: 18px 0; }
.hbp-prose summary { cursor: pointer; font-weight: 900; font-size: 18px; }
.hbp-prose .wp-block-file { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.hbp-prose .wp-block-file object { width: 100%; height: 900px; border: 1px solid var(--hb-line); background: #fff; }
.hbp-prose .wp-block-file__button { background: var(--hb-gold); color: var(--hb-bg); border-radius: 0; padding: 12px 22px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.12em; text-decoration: none; }
@media (max-width: 900px) {
	.hbp-pagehero { padding: 64px 20px 48px; }
	.hbp-pagehero .hbp-h1 { font-size: 40px; }
	.hbp-prose { padding: 48px 20px 72px; }
	.hbp-prose h2 { font-size: 30px; }
	.hbp-prose .wp-block-file object { height: 560px; }
}

/* QA fixes */
.hbp-prose .hb-games .hb-games__title, .hbp-prose .hb-games h2 { margin-top: 0 !important; font-size: 30px; }
.hbp-prose .hb-games { margin-top: 1.5em; }
.hbp-prose .hb-games > p:empty { display: none; }
.hbp-prose .wp-block-table { overflow-x: auto; }
.hbp-prose .wp-block-table table, .hbp-prose .wp-block-table th, .hbp-prose .wp-block-table td { border: 0; }
.hbp-prose .wp-block-table th, .hbp-prose .wp-block-table td { border-bottom: 1px solid var(--hb-rule); min-width: 140px; }
.hbp-prose .wp-block-table th { color: var(--hb-gold); text-transform: uppercase; font-size: 13px; letter-spacing: 0.1em; }
.hbp-hero .hb-eyebrow { color: var(--hb-green-text); text-shadow: 0 1px 10px rgba(0,0,0,0.9); }
.hbp-prose .wp-block-details summary, .hbp-faq .wp-block-details summary { list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.hbp-prose .wp-block-details summary::-webkit-details-marker { display: none; }
.hbp-prose .wp-block-details summary::after { content: '+'; color: var(--hb-gold); font-size: 22px; line-height: 1; }
.hbp-prose .wp-block-details[open] summary::after { content: '–'; }
.hbp-prose .wp-block-details > p { margin-top: 12px; }
.hbp-menu-pages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.hbp-menu-pages .wp-block-image { margin: 0 !important; }
.hbp-menu-pages img { width: 100%; height: auto; background: #fff; }
@media (max-width: 900px) {
	.hbp-chips { flex-wrap: wrap !important; overflow: visible; }
	.hbp-menu-pages { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.hb-games--inline .hb-game { flex-direction: column; gap: 6px; }
	.hb-games--inline .hb-game__when { text-align: left; white-space: normal; }
}

/* Content pages: photo header + editorial prose polish */
.hbp-hero--page { min-height: 460px; }
.hbp-hero--page .hbp-hero__inner { padding: 72px 24px 56px; }
.hbp-hero--page .hbp-h1 { font-size: 60px; }
.hbp-prose > .wp-block-group__inner-container > p:first-child,
.hbp-prose > p:first-child { font-size: 21px; line-height: 1.7; color: var(--hb-ink); }
.hbp-prose h2::after { content: ''; display: block; width: 72px; height: 2px; background: var(--hb-gold); margin-top: 16px; }
.hbp-prose .wp-block-image { margin: 2em 0 !important; }
.hbp-prose .wp-block-image img { display: block; width: 100%; height: auto; max-height: 560px; object-fit: cover; border: 1px solid var(--hb-line-strong); padding: 10px; background: var(--hb-bg); }
.hbp-prose .wp-block-image figcaption { margin-top: 10px; font-size: 13px; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; color: var(--hb-gold); text-align: left; }
.hbp-prose ul.wp-block-list, .hbp-prose ol.wp-block-list { padding-left: 1.2em; }
.hbp-prose ul.wp-block-list li::marker { color: var(--hb-gold); }
.hbp-prose strong { color: var(--hb-ink); }
.hbp-prose .wp-block-separator { border: 0; height: 1px; background: var(--hb-line); margin: 2.5em 0 !important; }

/* Story layout (Becky Lynch) */
.hbp-letter { max-width: 760px; margin: 0 auto; padding: 88px 24px 40px; }
.hbp-letter .wp-block-group__inner-container > * + *, .hbp-letter > * + * { margin-top: 1.3em; }
.hbp-letter p { font-size: 19px; line-height: 1.85; color: var(--hb-body); }
.hbp-letter > .wp-block-group__inner-container > p:first-of-type::first-letter { font-family: var(--hb-display); float: left; font-size: 84px; line-height: 0.8; margin: 8px 12px 0 0; color: var(--hb-gold); }
.hbp-letter h2 { font-family: var(--hb-display); font-weight: 400; text-transform: uppercase; font-size: 38px; line-height: 1.1; margin-top: 1.8em !important; }
.hbp-letter h2::after { content: ''; display: block; width: 72px; height: 2px; background: var(--hb-gold); margin-top: 16px; }
.hbp-letter .wp-block-image img { width: 100%; height: auto; border: 1px solid var(--hb-line-strong); padding: 10px; }
.hbp-pullquote { margin: 2.2em 0 !important; padding: 28px 0; border-top: 1px solid var(--hb-line-strong); border-bottom: 1px solid var(--hb-line-strong); text-align: center; }
.hbp-pullquote p { font-family: var(--hb-display); font-size: 40px !important; line-height: 1.15 !important; text-transform: uppercase; color: var(--hb-gold) !important; }
.hbp-signoff p { font-style: italic; color: var(--hb-gold) !important; margin: 0 !important; }
.hbp-thanks { background: var(--hb-surface); border-top: 1px solid var(--hb-line-soft); border-bottom: 1px solid var(--hb-line-soft); padding: 64px 24px; text-align: center; }
.hbp-thanks .wp-block-group__inner-container { display: flex; flex-direction: column; gap: 14px; align-items: center; max-width: 860px; margin: 0 auto; }
.hbp-thanks .wp-block-heading { font-family: var(--hb-display); font-weight: 400; text-transform: uppercase; font-size: 34px; line-height: 1.15; }
.hbp-thanks p { color: var(--hb-body); font-size: 18px; margin: 0; }
@media (max-width: 900px) {
	.hbp-hero--page { min-height: 400px; }
	.hbp-hero--page .hbp-h1 { font-size: 40px; }
	.hbp-letter { padding: 56px 20px 24px; }
	.hbp-letter p { font-size: 17px; }
	.hbp-pullquote p { font-size: 28px !important; }
	.hbp-thanks .wp-block-heading { font-size: 26px; }
}

/* Blog posts: same header + prose as pages */
.hb-post-hero .hbp-h1 { font-size: 52px; max-width: 980px; }
.hb-post-hero .entry-meta { margin: 0; color: var(--hb-muted-2); }
.hb-post-hero:not(.hbp-hero) .hbp-hero__inner { padding: 0; }
.hb-single { padding-top: 64px; }
.hb-single > p:first-child { font-size: 21px; line-height: 1.7; color: var(--hb-ink); }
.hb-single > * + * { margin-top: 1.25em; }
.hb-single .hb-callout { margin-top: 3em; padding: 24px; border: 1px solid var(--hb-line); border-top: 3px solid var(--hb-gold); background: var(--hb-surface); }
@media (max-width: 900px) { .hb-post-hero .hbp-h1 { font-size: 34px; } }

/* QA round 2 */
.hbp-h1 { font-family: var(--hb-display); font-weight: 400; text-transform: uppercase; margin: 0; }
.hbp-pullquote .hbp-pullquote__tag { font-family: var(--hb-sans) !important; font-size: 14px !important; letter-spacing: 0.2em; color: var(--hb-green-text) !important; margin-top: 10px !important; }
.hbp-letter > .wp-block-group__inner-container > p:first-of-type { font-size: 21px; color: var(--hb-ink); }
.hbp-thanks .wp-block-heading { font-size: 28px; text-transform: none; line-height: 1.25; }
.hbp-thanks > .wp-block-group__inner-container > p:last-child { font-family: var(--hb-display); color: var(--hb-gold); font-size: 22px; }
.hbp-videos { width: 100%; }
.hbp-videos .wp-block-group__inner-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.hbp-videos iframe { width: 100%; aspect-ratio: 16 / 9; border: 1px solid var(--hb-line-strong) !important; }
.hbp-prose h3 { color: var(--hb-gold); }
.hbp-prose h3::after { content: ''; display: block; width: 40px; height: 2px; background: var(--hb-gold); margin-top: 10px; opacity: 0.6; }

/* "Keep reading" related links (block content) */
.hbp-related { max-width: 860px; margin: 0 auto; padding: 0 24px 72px; }
.hb-single .hbp-related { padding: 0; margin-top: 3em; }
.hbp-related .wp-block-group__inner-container > * + * { margin-top: 14px; }
.hbp-related .wp-block-heading { font-family: var(--hb-display); font-weight: 400; text-transform: uppercase; font-size: 28px; margin: 0; }
.hbp-related ul.wp-block-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.hbp-related li { margin: 0; }
.hbp-related li a { display: block; height: 100%; padding: 16px 18px; border: 1px solid var(--hb-line); border-left: 3px solid var(--hb-gold); background: var(--hb-surface); color: var(--hb-ink); text-decoration: none; font-weight: 700; line-height: 1.4; transition: border-color 180ms ease, transform 180ms ease; }
.hbp-related li a:hover { border-color: var(--hb-gold); color: var(--hb-gold); transform: translateY(-2px); }

/* Guinness page photo row: align with the 860px article column */
.hbp-guinness-gallery { padding-top: 24px; }
.hbp-guinness-gallery .hbp-gallery__head { max-width: 860px; }
.hbp .hbp-guinness-gallery .wp-block-gallery.hbp-carousel { padding: 0 max(24px, calc((100% - 812px) / 2)) 16px; scroll-padding: 0 max(24px, calc((100% - 812px) / 2)); }
.hbp .hbp-guinness-gallery .wp-block-gallery.hbp-carousel > figure.wp-block-image img { height: 360px !important; width: auto !important; max-width: none !important; flex: none !important; }
@media (max-width: 900px) {
	.hbp .hbp-guinness-gallery .wp-block-gallery.hbp-carousel { padding: 0 20px 12px; scroll-padding: 0 20px; }
	.hbp .hbp-guinness-gallery .wp-block-gallery.hbp-carousel > figure.wp-block-image img { height: 240px !important; }
}
.hbp-guinness-gallery { padding-top: 0; }
.hbp .hbp-guinness-gallery .wp-block-gallery.hbp-carousel img.wp-image-112 { object-fit: contain; background: #000; }

/* Video embeds in articles: full width, 16:9, same gold frame as photos */
.hbp-prose .wp-block-embed { margin: 2em 0 !important; border: 1px solid var(--hb-line-strong); padding: 10px; background: var(--hb-bg); }
.hbp-prose .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; background: #000; }
.hbp-prose .wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; }
