/* ==========================================================================
   Bristol Vanguard theme styles
   Colours, fonts and spacing come from theme.json presets (--wp--preset--*).
   ========================================================================== */

:root {
	/* M8 palette. Legacy names are kept so blocks saved with v1.0 keep working:
	   "parchment" is now white text, "raised" is the navy card. */
	--vg-blue: var(--wp--preset--color--blue, #1873C8);
	--vg-navy: var(--wp--preset--color--navy, #0B3D6E);
	--vg-midnight: var(--wp--preset--color--midnight, #0B1118);
	--vg-gold: var(--wp--preset--color--gold, #E3B341);
	--vg-gold-hover: #EDC35F;
	--vg-parchment: #FFFFFF;
	--vg-parchment-deep: #3F7FC0;
	--vg-raised: #0B3D6E;
	--vg-ink: #FFFFFF;
	--vg-dark-ink: #1B2430;
	--vg-border: #4F8FD0;
	--vg-red: var(--wp--preset--color--bristol-red, #9E2B25);
	--vg-danger-on-dark: #FFB4AB;
	--vg-on-dark-muted: #C9DAEE;
	--vg-heading-ink: #FFFFFF;
	/* Context colours. On the blue page only white text passes (4.86:1), so gold
	   text and softer greys switch on only inside navy and midnight panels. */
	--vg-gold-ink: #FFFFFF;
	--vg-muted: #FFFFFF;
	--vg-link: #FFFFFF;
	--vg-link-hover: #FFFFFF;
	--vg-display: var(--wp--preset--font-family--display);
	--vg-heading: var(--wp--preset--font-family--heading);
	--vg-radius: 4px;
	--vg-radius-lg: 6px;
	--vg-section-pad: clamp(3rem, 6vw, 4.5rem);
}

/* Navy and midnight panels: gold text (5.66:1 on navy), soft blue-grey supporting text */
.has-navy-background-color,
.has-midnight-background-color,
.has-parchment-deep-background-color,
.has-raised-background-color,
.is-style-vg-card,
.is-style-vg-tile,
.is-style-vg-dates,
.vg-schedule,
.wp-block-details,
.wp-block-quote.is-style-vg-pull,
.wp-block-columns.is-style-vg-stats,
.vg-hof,
.vg-next,
.vg-pack-nav a,
.vg-em-row,
.vg-em-venue,
.vg-em-ticket,
.vg-em-calendar,
.woocommerce ul.products li.product,
.woocommerce div.product form.cart,
.wp-block-cover.vg-hero {
	--vg-gold-ink: var(--vg-gold);
	--vg-muted: var(--vg-on-dark-muted);
	--vg-link: var(--vg-gold);
	--vg-link-hover: #FFFFFF;
}
/* Blue and event-colour surfaces go back to white-only text */
.has-blue-background-color,
.vg-thursday,
.vg-site-header,
.vg-site-footer,
[class*="has-event-"][class*="-background-color"] {
	--vg-gold-ink: #FFFFFF;
	--vg-muted: #FFFFFF;
	--vg-link: #FFFFFF;
	--vg-link-hover: #FFFFFF;
}
/* Paper panels (basket, checkout, account): dark text on white */
.vg-paper,
.has-parchment-background-color,
.wc-block-cart,
.wc-block-checkout,
.woocommerce-account .woocommerce,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
	--vg-gold-ink: #8A6410;
	--vg-muted: #4A5868;
	--vg-link: #1464B0;
	--vg-link-hover: #0B3D6E;
	--vg-heading-ink: #0B3D6E;
	--vg-ink: #1B2430;
	--vg-raised: #F3F7FC;
	--vg-border: #D5E2F0;
	--vg-parchment-deep: #D5E2F0;
	--vg-navy-text: #0B3D6E;
}

/* Colours from v1.0 that are no longer in the palette, mapped so saved blocks still look right */
.has-parchment-background-color, .vg-paper { color: var(--vg-dark-ink); }
.has-parchment-background-color :is(h1, h2, h3, h4, h5, h6), .vg-paper :is(h1, h2, h3, h4, h5, h6) { color: var(--vg-heading-ink); }
.has-parchment-deep-background-color, .has-raised-background-color { background-color: var(--vg-navy) !important; color: #FFFFFF; }
.has-gold-ink-color, .has-muted-color { color: var(--vg-gold-ink) !important; }
.has-border-color { color: var(--vg-border) !important; }

/* ---------- Page scaffolding ---------- */

.wp-site-blocks > * + * { margin-block-start: 0; }
.vg-main { padding-top: 0; padding-bottom: 0; }
.wp-block-post-content > .alignfull + .alignfull,
.vg-main > .alignfull + .alignfull,
.vg-main > .alignfull + .wp-block-post-content { margin-block-start: 0; }
.wp-block-post-content > .alignfull:first-child { margin-block-start: 0; }
.wp-block-post-content > .alignfull:last-child { margin-block-end: 0; }
.vg-section { padding-top: var(--vg-section-pad); padding-bottom: var(--vg-section-pad); }
.vg-section--tight { padding-top: 2rem; padding-bottom: 2rem; }

:focus-visible { outline: 3px solid var(--vg-gold); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* ---------- Dark surfaces: blue, navy, midnight and event colours ---------- */

body { background: var(--vg-blue); color: #FFFFFF; }

.has-blue-background-color,
.has-navy-background-color,
.has-midnight-background-color,
.has-event-crimson-background-color,
.has-event-verdigris-background-color,
.has-event-amethyst-background-color,
.has-event-ember-background-color,
.has-event-frost-background-color,
.wp-block-cover.vg-hero { color: #FFFFFF; }

.has-text-color :is(h1, h2, h3, h4, h5, h6),
.has-blue-background-color :is(h1, h2, h3, h4, h5, h6),
.has-navy-background-color :is(h1, h2, h3, h4, h5, h6),
.has-midnight-background-color :is(h1, h2, h3, h4, h5, h6),
[class*="has-event-"][class*="-background-color"] :is(h1, h2, h3, h4, h5, h6),
.wp-block-cover.vg-hero :is(h1, h2, h3, h4, h5, h6) { color: inherit; }

:is(.has-navy-background-color, .has-midnight-background-color) .vg-muted,
:is(.has-navy-background-color, .has-midnight-background-color) .is-style-vg-lead { color: var(--vg-on-dark-muted); }

/* Form fields are always white with dark text, whatever they sit on */
input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="number"], input[type="password"], input[type="url"], textarea, select {
	background-color: #FFFFFF;
	color: var(--vg-dark-ink);
	border: 1px solid #D5E2F0;
	border-radius: var(--vg-radius);
}

/* Basket, checkout and account pages sit on a white paper panel */
.woocommerce-cart .wp-block-post-content, .woocommerce-checkout .wp-block-post-content, .woocommerce-account .wp-block-post-content {
	background: #FFFFFF;
	color: var(--vg-dark-ink);
	border-radius: var(--vg-radius-lg);
	padding: clamp(1.25rem, 3vw, 2.5rem) !important;
	margin-block: 2rem 4rem;
	--vg-gold-ink: #8A6410;
	--vg-muted: #4A5868;
	--vg-link: #1464B0;
	--vg-link-hover: #0B3D6E;
	--vg-heading-ink: #0B3D6E;
	--vg-ink: #1B2430;
	--vg-raised: #F3F7FC;
	--vg-border: #D5E2F0;
}

/* ---------- Typography helpers (block styles) ---------- */

.is-style-vg-eyebrow {
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 600;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--vg-gold-ink);
	margin-bottom: 0;
}
.wp-block-post-terms.is-style-vg-eyebrow a { color: inherit; text-decoration: none; }

.is-style-vg-lead { font-size: 1.25rem; line-height: 1.6; color: var(--vg-muted); }
.is-style-vg-battle {
	font-family: var(--vg-display);
	font-weight: 600;
	font-size: clamp(1.25rem, 2.2vw, 1.625rem);
	line-height: 1.35;
}

h1.wp-block-heading, h2.wp-block-heading, .wp-block-post-title { text-wrap: balance; }

.is-style-vg-rule::after {
	content: "";
	display: block;
	width: 48px;
	height: 3px;
	background: var(--vg-gold);
	margin-top: 0.75rem;
}
.has-text-align-center.is-style-vg-rule::after { margin-left: auto; margin-right: auto; }

.is-style-vg-display {
	font-family: var(--vg-display) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: 700;
}

.vg-muted { color: var(--vg-muted); }

/* ---------- Buttons ---------- */

/* Outline buttons are white on every dark or blue surface (a gold outline on blue fails 3:1) */
.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-vg-outline-light > .wp-block-button__link {
	background: transparent;
	color: var(--vg-heading-ink);
	border-color: var(--vg-heading-ink);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-vg-outline-light > .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.14); color: var(--vg-heading-ink); }

/* White button: the main action on blue (header, hero, Thursday card) */
.wp-block-button.is-style-vg-light > .wp-block-button__link {
	background: #FFFFFF;
	color: var(--vg-navy);
	border-color: #FFFFFF;
}
.wp-block-button.is-style-vg-light > .wp-block-button__link:hover { background: #E6F0FA; border-color: #E6F0FA; color: var(--vg-navy); }

.wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }

/* ---------- Header ---------- */

.vg-site-header {
	background-color: var(--vg-blue) !important;
	color: #FFFFFF;
	border-bottom: 3px solid var(--vg-gold);
	padding-top: 0.875rem;
	padding-bottom: 0.875rem;
	position: relative;
	z-index: 20;
}
.vg-site-header__inner { gap: 1.5rem; }
.vg-brand { gap: 0.75rem; }
.vg-site-header .wp-block-site-title a { color: var(--vg-parchment); text-decoration: none; }
.vg-site-header .wp-block-site-title a:hover { color: #FFFFFF; text-decoration: underline; }
.vg-site-header .wp-block-navigation a { text-decoration: none; }
.vg-site-header.vg-site-header .wp-block-navigation a.wp-block-navigation-item__content { color: var(--vg-parchment); padding: 0.5rem 0; border-bottom: 2px solid transparent; }
.vg-site-header.vg-site-header .wp-block-navigation a.wp-block-navigation-item__content:hover,
.vg-site-header.vg-site-header .current-menu-item > a.wp-block-navigation-item__content { color: #FFFFFF; border-bottom-color: var(--vg-gold); }
.vg-site-header.vg-site-header .wp-block-site-title a { color: var(--vg-parchment); }
.vg-site-header.vg-site-header .wp-block-site-title a:hover { color: #FFFFFF; text-decoration: underline; }
.vg-site-header .wp-block-navigation { flex: 1 1 auto; }
.vg-site-header .wp-block-navigation__container { gap: 1.75rem; flex-wrap: nowrap; }
@media (max-width: 1100px) { .vg-site-header .wp-block-navigation__container { gap: 1.1rem; } }

/* WooCommerce adds its own basket and account icons to the header automatically */
.vg-site-header .wc-block-mini-cart__button,
.vg-site-header .wp-block-woocommerce-customer-account a {
	color: var(--vg-parchment);
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: var(--vg-radius);
	padding: 0 0.6rem;
}
.vg-site-header .wc-block-mini-cart__icon, .vg-site-header .wp-block-woocommerce-customer-account svg { fill: currentColor; color: var(--vg-parchment); }
.vg-site-header .wp-block-woocommerce-customer-account img { border-radius: 999px; width: 26px; height: 26px; }
.vg-site-header .wc-block-mini-cart__badge { background: var(--vg-gold) !important; color: var(--vg-midnight) !important; }

/* Keep the footer at the bottom on short pages */
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main, .wp-site-blocks > .vg-main { flex: 1 0 auto; }
.wp-site-blocks > footer { margin-top: auto; }
.vg-site-header .wp-block-navigation__responsive-container-open,
.vg-site-header .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: var(--vg-radius);
	align-items: center;
	justify-content: center;
}
@media (max-width: 599px) {
	.vg-site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
}
.vg-site-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; background-color: var(--vg-blue) !important; color: #FFFFFF !important; }
.vg-brand .wp-block-site-logo img { width: 64px; height: auto; }
.vg-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; }
.vg-header-actions { gap: 0.75rem; }
.vg-header-actions .wp-block-button__link { min-height: 44px; padding: 0.6rem 1.1rem; }
@media (max-width: 781px) {
	.vg-header-actions .wp-block-buttons { display: none; }
	.vg-site-header .wp-block-site-title { font-size: 1.0625rem; }
	.vg-brand .wp-block-site-logo img { width: 44px !important; }
}

/* ---------- Footer ---------- */

.vg-site-footer {
	background-color: var(--vg-blue) !important;
	color: #FFFFFF;
	border-top: 3px solid var(--vg-gold);
	padding-top: 3.5rem;
	padding-bottom: 2rem;
	font-size: 0.9375rem;
}
.vg-site-footer .wp-block-site-title a { color: var(--vg-parchment); text-decoration: none; font-size: 1.5rem; }
.vg-footer-tagline { color: #FFFFFF; }
.vg-site-footer .vg-footer-links a { color: var(--vg-parchment); text-decoration: none; line-height: 2; }
.vg-site-footer .vg-footer-links a:hover { color: #FFFFFF; text-decoration: underline; }
.vg-footer-legal { border-top: 1px solid rgba(255, 255, 255, 0.35); padding-top: 1.25rem; margin-top: 2.5rem; font-size: 0.8125rem; color: #FFFFFF; }

/* ---------- Page band (title bar) ---------- */

.vg-page-band { padding-top: clamp(2.5rem, 5vw, 4rem); padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.vg-page-band > * { max-width: 1216px; }
.vg-page-band .wp-block-post-title,
.vg-page-band h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); color: var(--vg-parchment); margin: 0; }
.vg-page-band .is-style-vg-lead { color: var(--vg-on-dark-muted); max-width: 42rem; }

/* ---------- Homepage hero (cover) ---------- */

.wp-block-cover.vg-hero { padding-top: clamp(4rem, 8vw, 7rem); padding-bottom: clamp(4rem, 8vw, 7rem); }
.wp-block-cover.vg-hero h1 { font-size: clamp(2.5rem, 5.5vw, 4rem); color: var(--vg-parchment); }
.wp-block-cover.vg-hero .is-style-vg-lead { color: #FFFFFF; font-size: 1.25rem; }
/* M8: neutral dark scrim over the photo, never a blue tint (also fixes heroes saved with the v1.0 navy overlay) */
.wp-block-cover.vg-hero > .wp-block-cover__background { background-color: var(--vg-midnight) !important; opacity: 0.6 !important; }
/* The first eyebrow in the hero becomes the gold tag */
.wp-block-cover.vg-hero .wp-block-column:first-child > .is-style-vg-eyebrow:first-child {
	display: inline-block;
	background: var(--vg-gold);
	color: var(--vg-midnight);
	padding: 0.375rem 0.75rem;
	border-radius: 3px;
}

.vg-thursday {
	background: var(--vg-blue);
	border-top: 4px solid var(--vg-gold);
	border-radius: var(--vg-radius-lg);
	padding: 1.75rem;
	color: #FFFFFF;
}
.vg-thursday h3 { font-family: var(--vg-display); text-transform: none; letter-spacing: 0; font-size: 1.75rem; color: var(--vg-parchment); margin: 0.25rem 0 0.5rem; }
.vg-thursday p { margin: 0.35rem 0; font-size: 0.9375rem; color: #FFFFFF; }
.vg-thursday strong { font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; color: #FFFFFF; font-size: 0.8125rem; margin-right: 0.5rem; }
.vg-thursday .vg-muted { color: #FFFFFF; font-size: 0.875rem; }

/* ---------- Event hero (group in event colour) ---------- */

.vg-event-hero {
	border-bottom: 4px solid var(--vg-gold);
	padding-top: clamp(2.5rem, 6vw, 4.5rem);
	padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
}
.vg-event-hero h1 { font-size: clamp(2.5rem, 7vw, 5rem); color: var(--vg-parchment); margin: 0; }
.vg-event-hero .vg-event-hero__meta { font-size: 1rem; color: var(--vg-parchment); }
.vg-event-hero .wp-block-image img { border-radius: var(--vg-radius); }
.vg-badges { gap: 0.5rem; }
.vg-badge,
.vg-badges p {
	display: inline-block;
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 500;
	font-size: 0.75rem;
	padding: 0.25rem 0.6rem;
	border-radius: 2px;
	margin: 0;
	background: var(--vg-midnight);
	color: var(--vg-gold);
	line-height: 1.5;
}
.vg-badges p + p { background: #FFFFFF; color: var(--vg-navy); }

/* ---------- Cards and tiles ---------- */

.is-style-vg-card {
	background: var(--vg-raised);
	border: 1px solid var(--vg-border);
	border-radius: var(--vg-radius-lg);
	padding: clamp(1.25rem, 2.5vw, 2rem);
	color: var(--vg-ink);
}
.is-style-vg-card.is-featured,
.is-style-vg-card.vg-featured { border: 2px solid var(--vg-gold); }
.is-style-vg-card > * { margin-block: 0; }
.is-style-vg-card > * + * { margin-block-start: 0.75rem; }
.is-style-vg-card h3 { margin-block-start: 0.5rem; }
.is-style-vg-card :is(.has-navy-background-color, .has-midnight-background-color) { color: var(--vg-parchment); }

.is-style-vg-tile {
	background: var(--vg-raised);
	border: 1px solid var(--vg-border);
	border-radius: var(--vg-radius-lg);
	padding: 1rem 1.25rem;
	color: var(--vg-ink);
}
.is-style-vg-tile > * { margin: 0; }
.is-style-vg-tile > * + * { margin-top: 0.25rem; }
.is-style-vg-tile .vg-tile__label,
.is-style-vg-tile p:first-child {
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--vg-gold-ink);
}
.is-style-vg-tile .vg-tile__value {
	font-family: var(--vg-heading);
	font-weight: 600;
	font-size: 1.5rem;
	line-height: 1.15;
	color: var(--vg-heading-ink);
}
.is-style-vg-tile .vg-tile__note { font-size: 0.8125rem; color: var(--vg-muted); }

/* Pillar cards on the homepage */
.vg-pillar svg, .vg-icon svg { color: var(--vg-gold-ink); }
.vg-pillar .wp-block-image img { width: 40px; height: 40px; }

/* ---------- Event cards (Events Manager lists and pattern cards) ---------- */

.vg-event-card { padding: 0; overflow: hidden; }
.vg-event-card .wp-block-image,
.vg-event-card figure { margin: 0; }
.vg-event-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.vg-event-card__body { padding: 1.25rem 1.5rem 1.5rem; }
.vg-event-card h3 { font-family: var(--vg-display); text-transform: none; letter-spacing: 0; font-size: 1.625rem; }

/* ---------- Key dates strip ---------- */

.is-style-vg-dates {
	background: var(--vg-midnight);
	color: #FFFFFF;
	border-radius: var(--vg-radius-lg);
	border-top: 4px solid var(--vg-accent, var(--vg-gold));
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 0 !important;
	padding: 0;
}
.is-style-vg-dates > * {
	padding: 1.25rem 1.5rem;
	border-right: 1px solid rgba(227, 179, 65, 0.35);
	margin: 0 !important;
}
.is-style-vg-dates > *:last-child { border-right: 0; }
.is-style-vg-dates p { margin: 0; }
.is-style-vg-dates p:first-child {
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.75rem;
	color: var(--vg-gold);
}
.is-style-vg-dates .vg-date__value { font-family: var(--vg-heading); font-weight: 600; font-size: 1.75rem; line-height: 1.2; color: var(--vg-parchment); }
.is-style-vg-dates .vg-date__note, .is-style-vg-dates .vg-countdown { font-size: 0.875rem; color: var(--vg-on-dark-muted); }
.is-style-vg-dates .is-past .vg-date__value { color: var(--vg-danger-on-dark); }
@media (max-width: 600px) {
	.is-style-vg-dates > * { border-right: 0; border-bottom: 1px solid rgba(227, 179, 65, 0.35); }
}

/* ---------- Dashed notice strip ---------- */

.is-style-vg-strip {
	border: 1px dashed var(--vg-gold);
	border-radius: var(--vg-radius);
	padding: 1rem 1.5rem;
	gap: 1rem;
}
.is-style-vg-strip p { margin: 0; }

/* ---------- Schedule ---------- */

.vg-schedule { background: var(--vg-raised); border: 1px solid var(--vg-border); border-radius: var(--vg-radius-lg); padding: 0.5rem 1.75rem; }
.vg-schedule > * { margin: 0 !important; }
.vg-schedule__row {
	display: grid !important;
	grid-template-columns: 7rem minmax(0, 1fr);
	gap: 1.5rem !important;
	padding: 0.875rem 0;
	border-bottom: 1px solid var(--vg-border);
}
.vg-schedule__row:last-child { border-bottom: 0; }
.vg-schedule__row > * { margin: 0 !important; }
.vg-schedule__time { font-family: var(--vg-heading); font-weight: 600; letter-spacing: 0.04em; font-size: 1.0625rem; color: var(--vg-gold-ink); }
.vg-schedule__what { font-size: 0.875rem; color: var(--vg-muted); line-height: 1.5; }
.vg-schedule__what strong { display: block; font-family: var(--vg-heading); font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; color: var(--vg-heading-ink); font-size: 1.0625rem; }
@media (max-width: 600px) { .vg-schedule__row { grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem !important; } .vg-schedule { padding: 0.25rem 1rem; } }

/* ---------- Accordions (details) ---------- */

.wp-block-details { background: var(--vg-raised); color: var(--vg-ink); padding: 0; }
.wp-block-details + .wp-block-details { margin-top: 0.5rem; }
.wp-block-details summary {
	list-style: none;
	cursor: pointer;
	padding: 1rem 1.25rem;
	font-family: var(--vg-heading);
	font-weight: 500;
	font-size: 1.0625rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--vg-heading-ink);
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; color: var(--vg-gold-ink); font-size: 1.375rem; line-height: 1; }
.wp-block-details[open] summary::after { content: "\2013"; }
.wp-block-details > :not(summary) { padding-left: 1.25rem; padding-right: 1.25rem; }
.wp-block-details > :last-child { padding-bottom: 1.25rem; }

/* ---------- Event pack section menu (built by theme.js) ---------- */

.vg-pack-nav {
	position: sticky;
	top: 0;
	z-index: 15;
	background: var(--vg-blue);
	border-bottom: 3px solid var(--vg-gold);
	margin-block: 0 !important;
}
.admin-bar .vg-pack-nav { top: 32px; }
.vg-pack-nav ul {
	list-style: none;
	display: flex;
	gap: 0.5rem;
	overflow-x: auto;
	margin: 0 auto;
	padding: 0.75rem clamp(1rem, 4vw, 2rem);
	max-width: 1216px;
	scrollbar-width: thin;
}
.vg-pack-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 0 1rem;
	border: 1px solid var(--vg-border);
	border-radius: 999px;
	background: var(--vg-raised);
	white-space: nowrap;
	text-decoration: none;
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.8125rem;
	color: var(--vg-muted);
}
.vg-pack-nav a.is-active, .vg-pack-nav a:hover { background: var(--vg-gold); border-color: var(--vg-gold); color: var(--vg-midnight); }
.bv-event-pack .wp-block-post-content h2 { scroll-margin-top: 80px; }

/* ---------- Prizes ---------- */

.vg-prize { text-align: center; }
.vg-prize .wp-block-image { margin: 0 auto 0.5rem; max-width: 120px; }
.vg-prize .wp-block-image img { border-radius: var(--vg-radius); }
.vg-prize p { font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 500; color: var(--vg-heading-ink); margin: 0; }

/* ---------- Images ---------- */

.is-style-vg-framed img { border: 2px solid var(--vg-gold); border-radius: var(--vg-radius-lg); }
.wp-block-image figcaption,
.wp-element-caption { display: flex; gap: 0.5rem; text-align: left; }
.wp-block-image figcaption::before,
.wp-element-caption::before { content: ""; width: 18px; height: 2px; background: var(--vg-gold); margin-top: 0.6em; flex-shrink: 0; }
.has-text-align-center .wp-element-caption,
.aligncenter .wp-element-caption { justify-content: center; }
.wp-block-image img { border-radius: var(--vg-radius-lg); }
.vg-prose .wp-block-image.alignright { margin-left: 2rem; max-width: 42%; }
.vg-prose .wp-block-image.alignleft { margin-right: 2rem; max-width: 42%; }
@media (max-width: 600px) {
	.vg-prose .wp-block-image.alignright,
	.vg-prose .wp-block-image.alignleft { float: none; margin-left: 0; margin-right: 0; max-width: 100%; }
}

/* ---------- Article ---------- */

.vg-article { padding-top: clamp(2.5rem, 6vw, 4.5rem); }
.vg-article__header { text-align: center; }
.vg-article__header .wp-block-post-title { font-size: clamp(2.25rem, 6vw, 4.5rem); }
.vg-article__standfirst { font-size: 1.3125rem; line-height: 1.6; color: var(--vg-muted); }
.vg-article__standfirst .wp-block-post-excerpt__more-text { display: none; }
.vg-article__byline { gap: 1rem; color: var(--vg-muted); font-size: 0.9375rem; }
.vg-article__byline .wp-block-post-author { align-items: center; }
.vg-article__byline .wp-block-post-author__name { font-weight: 600; color: var(--vg-heading-ink); }
.vg-article__hero { margin-top: 2.5rem; }
.vg-article__hero img { width: 100%; max-height: 640px; object-fit: cover; border-radius: 2px; }
.vg-prose > p,
.vg-prose > ul,
.vg-prose > ol { font-size: 1.125rem; line-height: 1.8; }
.vg-prose .has-drop-cap:not(:focus)::first-letter { font-family: var(--vg-display); color: var(--vg-heading-ink); font-weight: 700; font-size: 4.75em; line-height: 0.85; margin: 0.08em 0.12em 0 0; }
.vg-article__footer { padding-top: 2rem; padding-bottom: var(--vg-section-pad); }
.vg-author-box { display: flex; gap: 1rem; align-items: center; }
.vg-tags a {
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.75rem;
	padding: 0.3rem 0.6rem;
	border: 1px solid var(--vg-border);
	border-radius: 2px;
	text-decoration: none;
	color: var(--vg-muted);
}
.vg-tags .wp-block-post-terms__separator { display: none; }
.vg-tags { display: flex; gap: 0.5rem; flex-wrap: wrap; }

/* Timeline year (group style) */
.is-style-vg-year { position: relative; }
.is-style-vg-year > .vg-year__label,
.is-style-vg-year > p:first-child {
	font-family: var(--vg-display);
	font-weight: 700;
	font-size: 1.75rem;
	line-height: 1;
	color: var(--vg-gold-ink);
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.5rem;
}
.is-style-vg-year > p:first-child::after { content: ""; flex-grow: 1; height: 2px; background: var(--vg-gold); }
@media (min-width: 1180px) {
	.is-style-vg-year > p:first-child {
		position: absolute;
		left: -11.5rem;
		top: 0.1rem;
		width: 9rem;
		justify-content: flex-end;
		text-align: right;
		padding-right: 1.25rem;
		border-right: 2px solid var(--vg-gold);
		margin: 0;
	}
	.is-style-vg-year > p:first-child::after { display: none; }
}
.is-style-vg-year::after { content: ""; display: block; clear: both; }

/* Pull quote */
.wp-block-quote.is-style-vg-pull {
	background: var(--vg-raised);
	border: 1px solid var(--vg-border);
	border-top: 3px solid var(--vg-gold);
	border-left-width: 1px;
	border-radius: var(--vg-radius-lg);
	color: var(--vg-ink);
	padding: 2rem 2.5rem;
	margin-block: 2.5rem;
}
.wp-block-quote.is-style-vg-pull p { font-family: var(--vg-display); font-weight: 600; font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.3; color: var(--vg-heading-ink); }
.wp-block-quote.is-style-vg-pull cite {
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-style: normal;
	font-size: 0.8125rem;
	color: var(--vg-gold-ink);
}

/* Stat strip (columns style) */
.wp-block-columns.is-style-vg-stats {
	background: var(--vg-midnight);
	border-top: 3px solid var(--vg-gold);
	border-bottom: 3px solid var(--vg-gold);
	padding: 2rem clamp(1rem, 4vw, 2rem);
	gap: 0;
	text-align: center;
	color: var(--vg-parchment);
}
.wp-block-columns.is-style-vg-stats > .wp-block-column { border-right: 1px solid rgba(227, 179, 65, 0.35); padding: 0 1rem; }
.wp-block-columns.is-style-vg-stats > .wp-block-column:last-child { border-right: 0; }
.wp-block-columns.is-style-vg-stats p { margin: 0; }
.wp-block-columns.is-style-vg-stats p:first-child { font-family: var(--vg-display); font-weight: 700; font-size: clamp(2rem, 4vw, 2.75rem); color: var(--vg-gold); line-height: 1.1; }
.wp-block-columns.is-style-vg-stats p:last-child { font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.8125rem; color: #FFFFFF; }
@media (max-width: 781px) {
	.wp-block-columns.is-style-vg-stats { display: grid; grid-template-columns: 1fr 1fr; }
	.wp-block-columns.is-style-vg-stats > .wp-block-column { border-right: 0; padding: 1rem 0.5rem; border-bottom: 1px solid rgba(227, 179, 65, 0.35); }
}

/* Numbered steps list */
.wp-block-list.is-style-vg-steps { list-style: none; counter-reset: vgstep; padding-left: 0; }
.wp-block-list.is-style-vg-steps > li { counter-increment: vgstep; position: relative; padding-left: 3.25rem; margin-bottom: 1.25rem; }
.wp-block-list.is-style-vg-steps > li::before {
	content: counter(vgstep, upper-roman);
	position: absolute;
	left: 0;
	top: -0.2rem;
	font-family: var(--vg-display);
	font-weight: 700;
	font-size: 1.625rem;
	color: var(--vg-gold-ink);
}
.wp-block-list.is-style-vg-steps > li strong { display: block; font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; color: var(--vg-heading-ink); }

/* ---------- Post cards (news) ---------- */

.vg-post-card { padding: 0 !important; overflow: hidden; height: 100%; }
.vg-post-card .wp-block-post-featured-image { margin: 0; }
.vg-post-card .wp-block-post-featured-image img { border-radius: 0; }
.vg-post-card__body { padding: 1.25rem 1.5rem 1.5rem; }
.vg-post-card__body > * { margin: 0 0 0.5rem; }
.vg-post-card__title { font-family: var(--vg-heading); font-size: 1.25rem; }
.vg-post-card__title a { color: var(--vg-heading-ink); text-decoration: none; }
.vg-post-card__title a:hover { color: var(--vg-heading-ink); text-decoration: underline; }
.vg-post-card .wp-block-post-date { color: var(--vg-gold-ink); }
.vg-post-card .wp-block-post-excerpt { font-size: 0.9375rem; color: var(--vg-muted); }
.wp-block-query-pagination { margin-top: 2.5rem; font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.06em; }

/* ---------- Search ---------- */

.vg-search .wp-block-search__input { min-height: 48px; border: 1px solid #D5E2F0; border-radius: var(--vg-radius); background: #FFFFFF; color: var(--vg-dark-ink); padding: 0 1rem; }
.vg-search .wp-block-search__button { margin-left: 0.5rem; }

/* ---------- Hall of fame (vanguard/hall-of-fame block) ---------- */

.vg-hof { color: #FFFFFF; }
.vg-hof__tabs { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.vg-hof__tab {
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.8125rem;
	padding: 0.6rem 1rem;
	min-height: 40px;
	border: 1px solid var(--vg-gold);
	border-radius: 999px;
	background: transparent;
	color: var(--vg-parchment);
	cursor: pointer;
}
.vg-hof__tab[aria-selected="true"] { background: var(--vg-gold); color: var(--vg-midnight); }
.vg-hof__panel[hidden] { display: none; }
.vg-hof__grid { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 2rem; align-items: start; }
@media (max-width: 900px) { .vg-hof__grid { grid-template-columns: 1fr; } }
.vg-hof__champion {
	border: 2px solid var(--vg-gold);
	border-radius: var(--vg-radius);
	background: var(--vg-navy);
	padding: 2rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	text-align: center;
}
.vg-hof__photo { width: 160px; height: 160px; border-radius: 999px; object-fit: cover; border: 2px solid var(--vg-gold); background: var(--vg-navy); }
.vg-hof__badge { font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.75rem; padding: 0.25rem 0.6rem; border-radius: 2px; background: var(--vg-gold); color: var(--vg-midnight); }
.vg-hof__name { font-family: var(--vg-display); font-weight: 700; font-size: 1.75rem; line-height: 1.15; color: var(--vg-parchment); margin: 0; }
.vg-hof__sub { font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.08em; color: var(--vg-gold); font-size: 0.875rem; }
.vg-hof__army { color: var(--vg-on-dark-muted); font-size: 0.9375rem; }
.vg-hof__table-wrap { overflow-x: auto; border: 1px solid rgba(227, 179, 65, 0.45); border-radius: var(--vg-radius); background: var(--vg-navy); }
.vg-hof__table { width: 100%; border-collapse: collapse; }
.vg-hof__table th {
	text-align: left;
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--vg-gold);
	padding: 0.875rem 1.25rem;
	border-bottom: 1px solid var(--vg-gold);
}
.vg-hof__table td { padding: 0.875rem 1.25rem; border-bottom: 1px solid rgba(227, 179, 65, 0.25); color: var(--vg-on-dark-muted); font-size: 0.9375rem; vertical-align: middle; }
.vg-hof__table tr:last-child td { border-bottom: 0; }
.vg-hof__table .vg-hof__year { font-family: var(--vg-display); font-weight: 700; font-size: 1.375rem; color: var(--vg-gold); white-space: nowrap; }
.vg-hof__table .vg-hof__winner { font-family: var(--vg-display); font-weight: 600; font-size: 1.125rem; color: var(--vg-parchment); }
.vg-hof__table .is-not-held .vg-hof__winner { color: var(--vg-on-dark-muted); font-style: italic; }
.vg-hof__achievements { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin-top: 2rem; }
.vg-hof__achievement { border: 1px solid rgba(227, 179, 65, 0.45); border-radius: var(--vg-radius); padding: 1.25rem; }
.vg-hof__achievement strong { display: block; font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.06em; color: var(--vg-parchment); }
.vg-hof__achievement span { color: var(--vg-on-dark-muted); font-size: 0.875rem; }
.vg-hof__empty { color: var(--vg-on-dark-muted); }

/* ---------- Next event (vanguard/next-event block) ---------- */

.vg-next {
	background: var(--vg-navy);
	border: 2px solid var(--vg-gold);
	border-radius: var(--vg-radius-lg);
	padding: 1.75rem 2rem;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 2rem;
	align-items: center;
	color: var(--vg-parchment);
}
.vg-next__date { display: flex; flex-direction: column; align-items: center; padding-right: 1.5rem; border-right: 1px solid rgba(227, 179, 65, 0.35); text-align: center; }
.vg-next__eyebrow { font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.75rem; color: var(--vg-gold); }
.vg-next__day { font-family: var(--vg-display); font-weight: 700; font-size: 2.25rem; line-height: 1.1; }
.vg-next__month { font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.08em; color: var(--vg-gold); font-size: 0.875rem; }
.vg-next__title { font-family: var(--vg-heading); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; font-size: 1.375rem; margin: 0 0 0.25rem; color: var(--vg-parchment); }
.vg-next__meta { color: var(--vg-on-dark-muted); font-size: 0.9375rem; margin: 0; }
.vg-next__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.vg-next__actions a { text-decoration: none; }
.vg-next--empty { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 781px) {
	.vg-next { grid-template-columns: 1fr; padding: 1.25rem; gap: 1rem; }
	.vg-next__date { flex-direction: row; gap: 0.75rem; border-right: 0; padding-right: 0; justify-content: flex-start; }
	.vg-next__actions a { flex: 1 1 100%; }
}
.vg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 1.5rem;
	border-radius: var(--vg-radius);
	border: 2px solid var(--vg-gold);
	background: var(--vg-gold);
	color: var(--vg-midnight) !important;
	font-family: var(--vg-heading);
	font-weight: 600;
	font-size: 0.9375rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none !important;
	box-sizing: border-box;
}
.vg-btn:hover { background: var(--vg-gold-hover); border-color: var(--vg-gold-hover); }
.vg-btn--ghost { background: transparent; border-color: #FFFFFF; color: #FFFFFF !important; }
.vg-btn--ghost:hover { background: rgba(255, 255, 255, 0.14); border-color: #FFFFFF; }
.vg-btn--outline { background: transparent; border-color: var(--vg-heading-ink); color: var(--vg-heading-ink) !important; }
.vg-btn--outline:hover { background: rgba(255, 255, 255, 0.14); border-color: var(--vg-heading-ink); }

/* Hall of fame block on the blue page gets its own midnight panel */
.vg-hof { background: var(--vg-midnight); padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--vg-radius); }
:is(.has-navy-background-color, .has-midnight-background-color) .vg-hof { background: none; padding: 0; }
.vg-hof { border-radius: var(--vg-radius-lg); }

/* ---------- Homepage upcoming events (Events Manager output) ---------- */

/* Always two equal columns, so a single upcoming event stays card-sized instead of stretching full width.
   Whatever wrappers Events Manager adds, the element that directly holds the cards becomes the grid. */
.vg-home-events,
.vg-home-events :has(> .vg-home-event) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.vg-home-events > :not(.vg-home-event) { grid-column: 1 / -1; }
.vg-home-events :has(> .vg-home-event) > :not(.vg-home-event) { grid-column: 1 / -1; }
@media (max-width: 781px) {
	.vg-home-events,
	.vg-home-events :has(> .vg-home-event) { grid-template-columns: minmax(0, 1fr); }
}
.vg-home-event { padding: 0 !important; overflow: hidden; display: flex; flex-direction: column; }
.vg-home-event:first-child { border: 2px solid var(--vg-gold); }
.vg-home-event__art { display: block; aspect-ratio: 16 / 9; background: var(--vg-midnight); }
.vg-home-event__art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vg-home-event h3 a { color: var(--vg-heading-ink); text-decoration: none; }
.vg-home-event h3 a:hover { color: var(--vg-heading-ink); text-decoration: underline; }
.vg-home-event__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; margin-top: 0.5rem; }
.vg-event-card__body > * { margin: 0 0 0.6rem; }

/* ---------- Membership band and call to action ---------- */

.vg-price { font-family: var(--vg-display); font-weight: 700; font-size: 2.25rem; color: var(--vg-gold); margin: 0 0 0.75rem; }
.vg-membership .wp-block-image img { max-width: 160px; }
.vg-cta { border: 2px solid var(--vg-gold) !important; text-align: center; padding: clamp(2rem, 5vw, 3.5rem) !important; }
.vg-cta .wp-block-buttons { justify-content: center; }
.vg-cta h2 { color: #FFFFFF; }
.vg-cta { border-radius: var(--vg-radius-lg); }

/* Newcomers band and membership band: gold rule on top, as in M8 */
.vg-newcomers, .vg-membership { border-top: 3px solid var(--vg-gold); }
.vg-newcomers .wp-block-image img { border-radius: var(--vg-radius-lg); }

/* Headings inside Events Manager lists when a custom header format isn't used */
.vg-em-list > h2, .vg-em-list .em-events-list-grouped > h2 {
	font-family: var(--vg-display); text-transform: none; letter-spacing: 0; font-size: 1.75rem; color: var(--vg-heading-ink);
	border-bottom: 1px solid rgba(255, 255, 255, 0.35); padding-bottom: 0.5rem; margin: 2.5rem 0 1rem;
}

/* Event pack body sections breathe */
.vg-pack-body > * + h2 { margin-top: clamp(3rem, 6vw, 4.5rem); }
.vg-overview-hero .wp-block-image img { max-width: 320px; margin-inline: auto; display: block; }
.vg-next-wrap { margin-block: 0; }

/* ==========================================================================
   Lists: proper indents and bullets inside cards, accordions and event pages
   ========================================================================== */

.wp-block-post-content :is(ul, ol):not([class*="is-style-"]):not(.wp-block-navigation__container):not(.products):not(.tabs):not(.event-categories) {
	padding-left: 1.5em;
	margin-left: 0;
}
.wp-block-post-content :is(ul, ol):not([class*="is-style-"]) > li { padding-left: 0.25em; }
.wp-block-post-content :is(ul, ol):not([class*="is-style-"]) > li + li { margin-top: 0.4em; }
.wp-block-post-content :is(ul, ol):not([class*="is-style-"]) > li::marker { color: var(--vg-gold-ink); }
.wp-block-post-content ul:not([class*="is-style-"]) > li { list-style-type: disc; }
.wp-block-post-content ul:not([class*="is-style-"]) ul > li { list-style-type: circle; }
.wp-block-post-content :is(ul, ol) :is(ul, ol) { margin-top: 0.4em; padding-left: 1.5em; }
/* Accordions pad their contents 1.25rem; lists need their bullet room on top of that */
.wp-block-details > :is(ul, ol) { padding-left: calc(1.25rem + 1.5em) !important; padding-right: 1.25rem; margin-top: 0; }
.wp-block-details > p { margin-top: 0; }
.wp-block-details > :is(ul, ol):last-child { padding-bottom: 1.25rem; margin-bottom: 0; }
.is-style-vg-card > :is(ul, ol) { margin-block: 0.75rem 0; }

/* Tick and cross lists (Styles panel on the List block) */
.wp-block-list.is-style-vg-checks, .wp-block-list.is-style-vg-crosses { list-style: none; padding-left: 0; margin-left: 0; }
.is-style-vg-checks > li, .is-style-vg-crosses > li { position: relative; padding-left: 2.25rem; }
.is-style-vg-checks > li + li, .is-style-vg-crosses > li + li { margin-top: 0.75rem; }
.is-style-vg-checks > li::before, .is-style-vg-crosses > li::before {
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
}
.is-style-vg-checks > li::before { content: "\2713"; background: var(--vg-gold); color: var(--vg-midnight); }
.is-style-vg-crosses > li::before { content: "\2715"; border: 2px solid #FFFFFF; color: #FFFFFF; box-sizing: border-box; }

/* ==========================================================================
   Tables (e.g. "The Essentials" in event packs)
   ========================================================================== */

.wp-block-table { overflow-x: auto; margin-block: 1.5rem; }
.wp-block-post-content table:not(.vg-hof__table) {
	width: 100%;
	border-collapse: collapse;
	background: var(--vg-navy);
	color: #FFFFFF;
	border-radius: var(--vg-radius-lg);
	overflow: hidden;
	font-size: 1rem;
}
.wp-block-post-content table:not(.vg-hof__table) :is(th, td) {
	border: 1px solid var(--vg-border);
	padding: 0.75rem 1rem;
	text-align: left;
	vertical-align: top;
}
.wp-block-post-content table:not(.vg-hof__table) th,
.wp-block-post-content table:not(.vg-hof__table) tr > td:first-child:nth-last-child(2) {
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--vg-gold);
	background: var(--vg-midnight);
	width: 30%;
}
.wp-block-post-content table:not(.vg-hof__table) thead th { width: auto; }
.wp-block-post-content table a { color: var(--vg-gold); }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: #0A3460; }
.wp-block-table.is-style-stripes { border-bottom: 0; }
.wp-block-table figcaption { color: #FFFFFF; }

/* ==========================================================================
   Policies and info pages
   ========================================================================== */

.vg-policy-meta { font-size: 0.875rem; margin-top: 1rem; }
.vg-policy-meta a { color: #FFFFFF; }
.vg-policies { counter-reset: vgpolicy; }
.vg-policy-summary { margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.vg-policy-summary .is-style-vg-tile .vg-tile__value { font-size: 1.375rem; }
.vg-policy { counter-increment: vgpolicy; }
.vg-policy + .vg-policy { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.vg-policy > h2::before {
	content: counter(vgpolicy, decimal-leading-zero);
	display: inline-block;
	margin-right: 0.75rem;
	padding: 0.15rem 0.5rem;
	background: var(--vg-gold);
	color: var(--vg-midnight);
	border-radius: 3px;
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	vertical-align: 0.35em;
}
.vg-policy > .is-style-vg-card { margin-top: 1.25rem; }
.vg-policy .is-style-vg-card > * + * { margin-block-start: 1rem; }
.vg-policy .wp-block-columns { margin-top: 1.25rem; gap: 1.25rem; }
.vg-policy .wp-block-columns .is-style-vg-card { height: 100%; box-sizing: border-box; background: var(--vg-midnight); }

/* Important callout (Styles panel on the Group block) */
.is-style-vg-callout {
	background: var(--vg-midnight);
	color: #FFFFFF;
	border-top: 4px solid var(--vg-gold);
	border-radius: var(--vg-radius-lg);
	padding: 1.25rem 1.5rem;
	--vg-gold-ink: var(--vg-gold);
	--vg-link: var(--vg-gold);
}
.is-style-vg-callout > * { margin: 0; }
.is-style-vg-callout > * + * { margin-top: 0.4rem; }
.is-style-vg-callout .vg-callout__label,
.is-style-vg-callout > p:first-child:not(:only-child) {
	font-family: var(--vg-heading);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--vg-gold);
}
.is-style-vg-callout > p:last-child { font-size: 1.0625rem; font-weight: 500; }
@media (max-width: 781px) { .vg-dodont { flex-direction: column; } }
