/*
Theme Name: Destination Niagara
Theme URI: https://destination-niagara.local
Author: Destination Niagara
Author URI: https://destination-niagara.local
Description: Block theme foundation for Destination Niagara.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 8.0
Version: 0.2.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: destination-niagara
Tags: block-patterns, full-site-editing, custom-colors, custom-logo, custom-menu
*/

/* Foundation only: styles are primarily configured in theme.json. */

/* ── Mobile: tighten horizontal padding on constrained layouts ─────────── */
@media (max-width: 600px) {
	.has-global-padding {
		padding-right: 1rem !important;
		padding-left: 1rem !important;
	}

	.has-global-padding > .alignfull {
		margin-right: -1rem !important;
		margin-left: -1rem !important;
	}

	/* Prevent horizontal overflow on mobile */
	body,
	.wp-site-blocks {
		overflow-x: hidden;
	}

	/* Reduce top padding on page main content area */
	body.page main.wp-block-group {
		padding-top: 34px !important;
	}

	body.page-template-newsletter-archive main.wp-block-group,
	body.home main.wp-block-group {
		padding-top: 0 !important;
	}

	/* Remove padding from content groups without a background — the parent provides it */
	.wp-block-post-content .wp-block-group:not(.has-background):not(.website-icon):not(.benefit-icon):not(.card-half) {
		padding-left: 0 !important;
		padding-right: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		margin-bottom: 0 !important;
	}

	/* Restore padding for the heading container inside card-half */
	.wp-block-post-content .card-half .wp-block-group.has-global-padding:not(.has-background):not(.website-icon):not(.benefit-icon):not(.card-half) {
		padding-top: 1rem !important;
		padding-bottom: 1rem !important;
	}

	/* Ensure icon circles keep correct dimensions on mobile */
	.wp-block-post-content .website-icon,
	.wp-block-post-content .benefit-icon {
		padding: 0 !important;
		width: 48px !important;
		height: 48px !important;
		min-width: 48px !important;
		min-height: 48px !important;
		max-width: 48px !important;
		max-height: 48px !important;
		margin: 0 !important;
		gap: 0 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		--wp--style--root--padding-right: 0px !important;
		--wp--style--root--padding-left: 0px !important;
	}

	.wp-block-post-content .website-icon .is-style-material-icon,
	.wp-block-post-content .benefit-icon .is-style-material-icon {
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Benefit cards: left-align all content on mobile */
	.equal-height-cards .wp-block-group.has-background.is-layout-constrained {
		text-align: left !important;
	}

	.equal-height-cards .wp-block-group.has-background.is-layout-constrained > * {
		text-align: left !important;
		margin-left: 0 !important;
		margin-right: auto !important;
		margin-inline: 0 auto !important;
	}

	.equal-height-cards .wp-block-group.has-background .website-icon {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
	}

	.equal-height-cards .wp-block-group.has-background .website-icon > * {
		margin: 0 auto !important;
		margin-inline: auto !important;
		text-align: center !important;
	}

	.equal-height-cards .wp-block-group.has-background .has-text-align-center {
		text-align: left !important;
	}

	/* Tighten block-level spacing on mobile */
	.wp-block-columns {
		margin-top: 0 !important;
	}

	/* Reduce large top margins on content blocks with backgrounds */
	.wp-block-post-content .wp-block-group.has-background:not(.website-icon):not(.benefit-icon):not(.benefit-card):not(.dn-fill-height) {
		margin-top: 1.5rem !important;
		padding-top: 40px !important;
		padding-bottom: 40px !important;
	}

	/* Strip excessive column padding inside background groups on mobile */
	.wp-block-post-content .wp-block-group.has-background .wp-block-column {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* Strip column padding globally inside post-content on mobile */
	.wp-block-post-content .wp-block-columns > .wp-block-column {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* Stack columns inside background groups on mobile */
	.wp-block-post-content .wp-block-group.has-background .wp-block-columns {
		flex-direction: column !important;
	}

	.wp-block-post-content .wp-block-group.has-background .wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	/* Remove icon circle borders on mobile */
	.wp-block-post-content .wp-block-group.has-border-color {
		border: none !important;
		padding: 0 !important;
		border-radius: 0 !important;
	}
}

/**
 * Global Button system (design-system.md §5).
 * register_block_style(): primary, secondary, ghost — functions.php
 *
 * Root cause of “all buttons look the same”: theme + block presets add .has-* utility classes
 * and inline styles (often !important in global-styles.css), which override normal cascade.
 * These rules use !important and .wp-block-cover scoping so variants + interactions win.
 */
:root {
	--ds-btn-radius: 9999px; /* full pill / capsule */
	--ds-btn-font-family: var(--wp--preset--font-family--manrope, "Manrope", "Segoe UI", sans-serif);
	--ds-btn-font-weight: 600;
	--ds-btn-padding-y: 12px;
	--ds-btn-padding-x: 28px;
	--ds-btn-primary-bg: #0f3663;
	--ds-btn-primary-bg-hover: #fed488;
	--ds-btn-primary-bg-active: #f0c878;
	--ds-btn-primary-text: #ffffff;
	--ds-btn-primary-text-hover: #785a1a;
	--ds-btn-secondary-bg: #fed488;
	/* Lighter soft gold on hover (same family as secondary-container; design-system §5) */
	--ds-btn-secondary-bg-hover: #ffdea5;
	/* Pressed: slightly deeper gold than default, still on-brand */
	--ds-btn-secondary-bg-active: #f0c878;
	--ds-btn-secondary-text: #785a1a;
	/* Ghost: Stitch code.html hero pills — bg-white/10, border-white/20, hover:bg-white/20 */
	--ds-btn-ghost-text: #ffffff;
	--ds-btn-ghost-bg: rgba(255, 255, 255, 0.1);
	--ds-btn-ghost-border: rgba(255, 255, 255, 0.2);
	--ds-btn-ghost-bg-hover: rgba(255, 255, 255, 0.2);
	--ds-btn-ghost-border-hover: rgba(255, 255, 255, 0.35);
	--ds-btn-ghost-bg-active: rgba(255, 255, 255, 0.16);
	--ds-btn-ghost-border-active: rgba(255, 255, 255, 0.28);

	/* Utility background colors (semi-transparent — not supported in theme.json palette) */
	--wp--custom--color--gold-background: rgba(255, 214, 138, 0.36);
	--wp--custom--color--pink-background: rgba(115, 0, 21, 0.28);
	--wp--custom--color--lighter-blue-background: rgba(44, 78, 125, 0.28);
}

@font-face {
	font-family: "Material Symbols Outlined";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("./assets/fonts/material-symbols/material-symbols-outlined.woff2") format("woff2");
}

.site-logo {
	transition: transform 0.3s ease;
	cursor: pointer;
  }
  
  .site-logo:hover {
	transform: scale(1.02);
  }

.material-symbols-outlined {
	font-family: "Material Symbols Outlined";
	font-weight: normal;
	font-style: normal;
	display: inline-block;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-feature-settings: "liga";
	-webkit-font-smoothing: antialiased;
}

/* ----- Primary (default: not secondary, not ghost) ----- */
body .wp-site-blocks .wp-block-button:not(.is-style-secondary):not(.is-style-ghost) .wp-block-button__link,
body .wp-site-blocks .wp-block-button:not(.is-style-secondary):not(.is-style-ghost) .wp-block-button__link.wp-element-button,
body .wp-site-blocks .wp-block-cover .wp-block-button:not(.is-style-secondary):not(.is-style-ghost) .wp-block-button__link,
body .wp-site-blocks .wp-block-cover .wp-block-button:not(.is-style-secondary):not(.is-style-ghost) .wp-block-button__link.wp-element-button {
	box-sizing: border-box !important;
	display: inline-block;
	font-family: var(--ds-btn-font-family) !important;
	font-weight: var(--ds-btn-font-weight) !important;
	font-size: var(--wp--preset--font-size--body-sm, 0.875rem) !important;
	line-height: 1.25 !important;
	border-radius: var(--ds-btn-radius);
	padding: var(--ds-btn-padding-y) var(--ds-btn-padding-x);
	text-align: center !important;
	text-decoration: none !important;
	border: none !important;
	box-shadow: none !important;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease !important;
	background-color: var(--ds-btn-primary-bg) !important;
	color: var(--ds-btn-primary-text) !important;
}

body .wp-site-blocks .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link:hover,
body .wp-site-blocks .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link.wp-element-button:hover,
body .wp-site-blocks .wp-block-cover .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link:hover,
body .wp-site-blocks .wp-block-cover .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link.wp-element-button:hover {
	background-color: var(--ds-btn-primary-bg-hover) !important;
	color: var(--ds-btn-primary-text-hover, #785a1a) !important;
	transform: translateY(-1px);
}

body .wp-site-blocks .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link:focus-visible,
body .wp-site-blocks .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link.wp-element-button:focus-visible,
body .wp-site-blocks .wp-block-cover .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link:focus-visible,
body .wp-site-blocks .wp-block-cover .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link.wp-element-button:focus-visible {
	outline: 2px solid var(--ds-btn-primary-bg-hover) !important;
	outline-offset: 2px !important;
}

body .wp-site-blocks .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link:active,
body .wp-site-blocks .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link.wp-element-button:active,
body .wp-site-blocks .wp-block-cover .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link:active,
body .wp-site-blocks .wp-block-cover .wp-block-button:not(.is-style-secondary):not(.is-style-ghost):not(.is-style-primary-b) .wp-block-button__link.wp-element-button:active {
	background-color: var(--ds-btn-primary-bg-active) !important;
	color: var(--ds-btn-primary-text-hover, #785a1a) !important;
	transform: translateY(0);
}

/* ----- Secondary ----- */
body .wp-site-blocks .wp-block-button.is-style-secondary .wp-block-button__link,
body .wp-site-blocks .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button {
	box-sizing: border-box !important;
	display: inline-block;
	font-family: var(--ds-btn-font-family) !important;
	font-weight: var(--ds-btn-font-weight) !important;
	font-size: var(--wp--preset--font-size--body-sm, 0.875rem) !important;
	line-height: 1.25 !important;
	border-radius: var(--ds-btn-radius);
	padding: var(--ds-btn-padding-y) var(--ds-btn-padding-x);
	text-align: center !important;
	text-decoration: none !important;
	border: none !important;
	box-shadow: none !important;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease !important;
	background-color: var(--ds-btn-secondary-bg) !important;
	color: var(--ds-btn-secondary-text) !important;
}

/* Match base selector specificity (body .wp-site-blocks …) or hover loses to default bg !important */
body .wp-site-blocks .wp-block-button.is-style-secondary .wp-block-button__link:hover,
body .wp-site-blocks .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:hover,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link:hover,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:hover,
body .editor-styles-wrapper .wp-block-button.is-style-secondary .wp-block-button__link:hover,
body .editor-styles-wrapper .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:hover,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link:hover,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:hover {
	background-color: var(--ds-btn-secondary-bg-hover) !important;
	color: var(--ds-btn-secondary-text) !important;
	transform: translateY(-1px);
}

body .wp-site-blocks .wp-block-button.is-style-secondary .wp-block-button__link:focus-visible,
body .wp-site-blocks .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:focus-visible,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link:focus-visible,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:focus-visible,
body .editor-styles-wrapper .wp-block-button.is-style-secondary .wp-block-button__link:focus-visible,
body .editor-styles-wrapper .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:focus-visible,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link:focus-visible,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:focus-visible {
	outline: 2px solid var(--ds-btn-primary-bg) !important;
	outline-offset: 2px !important;
}

body .wp-site-blocks .wp-block-button.is-style-secondary .wp-block-button__link:active,
body .wp-site-blocks .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:active,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link:active,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:active,
body .editor-styles-wrapper .wp-block-button.is-style-secondary .wp-block-button__link:active,
body .editor-styles-wrapper .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:active,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link:active,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:active {
	background-color: var(--ds-btn-secondary-bg-active) !important;
	color: var(--ds-btn-secondary-text) !important;
	transform: translateY(0);
}

/* ----- Ghost (frosted white pill — tuned for hero / cover imagery) ----- */
body .wp-site-blocks .wp-block-button.is-style-ghost .wp-block-button__link,
body .wp-site-blocks .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button {
	box-sizing: border-box !important;
	display: inline-block;
	font-family: var(--ds-btn-font-family) !important;
	font-weight: var(--ds-btn-font-weight) !important;
	font-size: var(--wp--preset--font-size--body-sm, 0.875rem) !important;
	line-height: 1.25 !important;
	border-radius: var(--ds-btn-radius);
	padding: var(--ds-btn-padding-y) var(--ds-btn-padding-x);
	text-align: center !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease,
		backdrop-filter 0.2s ease, -webkit-backdrop-filter 0.2s ease !important;
	background-color: var(--ds-btn-ghost-bg) !important;
	background-image: none !important;
	backdrop-filter: blur(8px) !important;
	-webkit-backdrop-filter: blur(8px) !important;
	color: var(--ds-btn-ghost-text) !important;
	border: 1px solid var(--ds-btn-ghost-border) !important;
}

/* Match base selector specificity (body .wp-site-blocks …) or hover loses to base bg/border !important */
body .wp-site-blocks .wp-block-button.is-style-ghost .wp-block-button__link:hover,
body .wp-site-blocks .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:hover,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link:hover,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:hover,
body .editor-styles-wrapper .wp-block-button.is-style-ghost .wp-block-button__link:hover,
body .editor-styles-wrapper .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:hover,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link:hover,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:hover {
	background-color: var(--ds-btn-ghost-bg-hover) !important;
	color: var(--ds-btn-ghost-text) !important;
	border-color: var(--ds-btn-ghost-border-hover) !important;
	backdrop-filter: blur(8px) !important;
	-webkit-backdrop-filter: blur(8px) !important;
	transform: translateY(-1px);
}

body .wp-site-blocks .wp-block-button.is-style-ghost .wp-block-button__link:focus-visible,
body .wp-site-blocks .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:focus-visible,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link:focus-visible,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:focus-visible,
body .editor-styles-wrapper .wp-block-button.is-style-ghost .wp-block-button__link:focus-visible,
body .editor-styles-wrapper .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:focus-visible,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link:focus-visible,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.85) !important;
	outline-offset: 2px !important;
}

body .wp-site-blocks .wp-block-button.is-style-ghost .wp-block-button__link:active,
body .wp-site-blocks .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:active,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link:active,
body .wp-site-blocks .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:active,
body .editor-styles-wrapper .wp-block-button.is-style-ghost .wp-block-button__link:active,
body .editor-styles-wrapper .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:active,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link:active,
body .editor-styles-wrapper .wp-block-cover .wp-block-button.is-style-ghost .wp-block-button__link.wp-element-button:active {
	background-color: var(--ds-btn-ghost-bg-active) !important;
	color: var(--ds-btn-ghost-text) !important;
	border-color: var(--ds-btn-ghost-border-active) !important;
	backdrop-filter: blur(8px) !important;
	-webkit-backdrop-filter: blur(8px) !important;
	transform: translateY(0);
}

/*
 * Front page hero: dynamic featured image background with layered content.
 * The section still breaks out of constrained <main> for full-bleed cinematic media.
 */
main.wp-block-group > .wp-block-group.alignfull.hero-section {
	position: relative;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
	background: var(--wp--preset--gradient--primary-water);
	overflow: hidden;
}

.hero-section,
.wp-block-group.hero-section {
	position: relative;
	overflow: hidden;
}

.hero-section .hero-section__media,
.hero-section .wp-block-post-featured-image.hero-section__media,
.hero-section .wp-block-post-featured-image {
	position: absolute;
	inset: 0;
	z-index: 1;
	margin: 0;
}

.hero-section .hero-section__media img,
.hero-section .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.hero-section .hero-section__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.25) 60%, rgba(0, 0, 0, 0.1) 100%);
	z-index: 2;
	padding: 0;
}

.hero-section .hero-section__content {
	width: 100%;
}

/*
 * Front page: cap align-wide sections at theme wideSize (currently 1680px — global --wp--style--global--wide-size).
 * Core `is-layout-constrained` + `.alignwide` rules can fail to constrain (editor saves, specificity,
 * or nested `layout.default` groups). Direct children of <main> are either `.alignfull` (cover) or
 * `.alignwide` section shells — enforce max-width + centering from --wp--style--global--wide-size.
 * `body.home` = front page only (WP body class; not used on the separate posts index).
 */
body.home main.wp-block-group.is-layout-constrained > *:not(.alignfull) {
	max-width: var(--wp--style--global--wide-size);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	box-sizing: border-box;
}

/*
 * Full-bleed section shells (alignfull) are excluded above. Cap inner .alignwide bands
 * (heading row + query loop, newsletter shell) at wideSize — they are not direct children of <main>.
 */
body.home main.wp-block-group.is-layout-constrained > .alignfull > .alignwide {
	max-width: var(--wp--style--global--wide-size);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	box-sizing: border-box;
}

/*
 * Homepage (mobile only): Explore → Stories tighter handoff.
 * Desktop/tablet spacing comes from templates/front-page.html (spacing-16 / spacing-20 / spacing-8).
 * Below 600px — same breakpoint as Explore Niagara grid + horizontal padding — reduce stacked gaps only.
 */
@media (max-width: 600px) {
	/*
	 * Explore hero→heading: was padding-top 0 (fought theme Group padding but felt squished).
	 * Restore modest top air + ease .section-header-title negative margin / heading rhythm (Explore only).
	 */
	body.home .explore-niagara-section.wp-block-group {
		padding-top: var(--wp--preset--spacing--5) !important;
		padding-bottom: var(--wp--preset--spacing--4) !important;
	}

	body.home .explore-niagara-section > .wp-block-heading.section-header-title {
		margin-top: 0 !important;
		margin-block-start: 0 !important;
		margin-bottom: var(--wp--preset--spacing--6) !important;
		line-height: 1.12 !important;
	}

	body.home .explore-niagara-section > p.section-header-label {
		margin-bottom: var(--wp--preset--spacing--2) !important;
	}

	body.home .explore-niagara-section .category-explorer-query.wp-block-query {
		margin-block: 0 !important;
	}

	body.home .explore-niagara-section ul.category-explorer-grid {
		margin-block-end: 0 !important;
	}

	body.home .stories-guides-section.wp-block-group {
		margin-top: var(--wp--preset--spacing--4) !important;
		padding-top: var(--wp--preset--spacing--4) !important;
		padding-bottom: var(--wp--preset--spacing--4) !important;
	}

	body.home .stories-guides-section > .wp-block-group.alignwide > .wp-block-group:first-child {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	body.home .stories-guides-section .section-header-title {
		margin-bottom: var(--wp--preset--spacing--2) !important;
	}

	/* Stories → Partners: tighten handoff (template uses padding-bottom 8 + post-template margin 8 + partners margin 20 + padding-top 10). */
	body.home .stories-guides-section .editorial-picks-query .wp-block-post-template.is-layout-grid {
		margin-block-end: var(--wp--preset--spacing--4) !important;
	}

	body.home .partners-section.wp-block-group {
		margin-top: var(--wp--preset--spacing--4) !important;
		padding-top: var(--wp--preset--spacing--4) !important;
	}
}

/*
 * Stories & Guides (homepage, mobile only): stack header row, pull “View All Stories” up to the title,
 * single editorial card. Breakpoint matches site header / WP-friendly 781px — unchanged at 782px+.
 */
@media (max-width: 781px) {
	body.home .stories-guides-section .stories-guides-header {
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		row-gap: var(--wp--preset--spacing--2);
		column-gap: 0;
	}

	body.home .stories-guides-section .stories-guides-header > .wp-block-group:first-child {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		width: 100%;
	}

	body.home .stories-guides-section .stories-guides-header .section-header-label {
		margin-bottom: var(--wp--preset--spacing--1) !important;
	}

	body.home .stories-guides-section .stories-guides-header .section-header-title {
		margin-bottom: var(--wp--preset--spacing--1) !important;
	}

	body.home .stories-guides-section p.stories-guides-link {
		margin-top: 0 !important;
		margin-block-start: 0 !important;
		margin-bottom: 0 !important;
	}

	body.home .stories-guides-section .editorial-picks-query .wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr !important;
		margin-top: var(--wp--preset--spacing--5) !important;
	}

	body.home .stories-guides-section .editorial-picks-query .wp-block-post-template > li:nth-child(n + 2),
	body.home .stories-guides-section .editorial-picks-query .wp-block-post-template > .wp-block-post:nth-child(n + 2) {
		display: none !important;
	}
}

/*
 * Our Partners (homepage, mobile only): less air between intro copy and grid, tighter card rhythm.
 * Sources of extra space: section blockGap (8) + post-template inline margin-top/bottom (12) + blockGap 2.4rem on grid.
 * 782px+ unchanged.
 */
@media (max-width: 781px) {
	body.home .partners-section.wp-block-group {
		gap: var(--wp--preset--spacing--5) !important;
		--wp--style--block-gap: var(--wp--preset--spacing--5) !important;
	}

	body.home .partners-section .partners-section__grid.wp-block-post-template,
	body.home .partners-section ul.partners-section__grid {
		margin-top: var(--wp--preset--spacing--4) !important;
		margin-block-start: var(--wp--preset--spacing--4) !important;
	}

	body.home .partners-section .partners-section__grid.is-layout-grid {
		gap: var(--wp--preset--spacing--4) !important;
		row-gap: var(--wp--preset--spacing--4) !important;
		column-gap: var(--wp--preset--spacing--4) !important;
	}
}

/* Hero / editorial text shadow utilities (use with hero-home-heading / hero-home-tagline in front-page). */
.hero-text-shadow,
.is-style-hero-text-shadow {
	text-shadow: 0 4px 24px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3) !important;
}

h1.is-style-hero-text-shadow,
h2.is-style-hero-text-shadow,
h3.is-style-hero-text-shadow,
.wp-block-post-title.is-style-hero-text-shadow {
	font-size: 7rem !important;
	font-weight: 900 !important;
	line-height: 1 !important;
	color: #fff !important;
}

.hero-text-shadow-light,
.is-style-hero-text-shadow-light {
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4) !important;
}

.hero-subtext {
	max-width: 580px;
}

@media (max-width: 600px) {
	.hero-subtext {
		padding-left: 0 !important;
	}

	.hero-section .wp-block-cover__inner-container .wp-block-group.is-horizontal.is-content-justification-left:not(.has-background):not(.website-icon):not(.benefit-icon):not(.card-half) {
		padding-bottom: 1rem !important;
	}
}

body.home .hero-subtext {
	margin-left: auto;
	margin-right: auto;
}

/* Front page hero tagline: spacing via CSS (whitespace in markup stays normalized). */
.hero-tagline {
	word-spacing: 0.35em;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

/* Card background: Image block + overlay (Resolution control in editor; replaces Cover for cards). */
.card-bg-wrapper {
	position: relative;
	display: block;
	overflow: hidden !important;
	border-radius: var(--wp--custom--radius--xl, 1.5rem);
}

.card-bg-wrapper:not(.curated-pick-card):not(.category-card) {
	min-height: 250px;
	border-radius: var(--wp--custom--radius--xl, 1.5rem);
	overflow: hidden !important;
	transition: box-shadow 0.4s ease;
}

/*
 * Category explorer (Query Loop): fixed-height card; heading is position:absolute; inset:0
 * (flex bottom-left). Stretched-link requires <a> position:static so a::after (absolute) uses
 * the heading as containing block (full card), not the inline text box.
 *
 * overflow: hidden !important — global .wp-block-group { overflow: visible !important } later in
 * this file would otherwise break corner clipping. .wp-block-group.category-card beats (0,1,0).
 * isolation + translateZ(0) help contain transformed/z-index children inside the rounded rect.
 */
.wp-block-group.category-card {
	position: relative;
	overflow: hidden !important;
	isolation: isolate;
	transform: translateZ(0);
	-webkit-transform: translateZ(0);
	height: 280px;
	border-radius: 16px;
	cursor: pointer;
}

/* Featured image fills the card like a background */
.category-card .card-bg-image,
.category-card .wp-block-post-featured-image.card-bg-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	z-index: 0;
}

.category-card .card-bg-image img,
.category-card .wp-block-post-featured-image.card-bg-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
	will-change: transform;
}

/* Dark gradient overlay (empty Group); must beat .wp-block-group.card-bg-overlay.is-layout-* */
.category-card .card-bg-overlay,
.category-card .wp-block-group.card-bg-overlay.is-layout-flex,
.category-card .wp-block-group.card-bg-overlay.is-layout-flow,
.category-card .wp-block-group.card-bg-overlay.is-layout-constrained {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	border-radius: 0;
	flex-direction: unset;
	justify-content: unset;
	align-items: unset;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 60%);
	z-index: 1;
	pointer-events: none;
	color: inherit;
}

.category-card .card-bg-overlay .wp-block-group__inner-container {
	display: block;
	min-height: 0;
	padding: 0;
	flex: unset;
	justify-content: unset;
}

/* Title bottom-left over gradient (absolute layer; full-card box for stretched-link) */
.category-card .category-card__label,
.category-card .wp-block-post-title.category-card__label {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	margin: 0 !important;
	padding: 1rem;
	z-index: 2;
	font-family: var(--wp--preset--font-family--epilogue, "Epilogue", sans-serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: #ffffff;
	line-height: 1.2;
	pointer-events: none;
}

/* static = ::after positions vs. positioned heading (full card), not the text box */
.category-card .category-card__label a,
.category-card .wp-block-post-title.category-card__label a {
	position: static;
	color: #ffffff;
	text-decoration: none;
	pointer-events: auto;
}

.category-card .category-card__label a:focus-visible,
.category-card .wp-block-post-title.category-card__label a:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.9);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Stretched link: title <a>::after covers the full card (above image, overlay, label text) */
.category-card .category-card__label a::after,
.category-card .wp-block-post-title.category-card__label a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
}

/* Hover — subtle zoom on the image */
.category-card:hover .card-bg-image img,
.category-card:hover .wp-block-post-featured-image.card-bg-image img {
	transform: scale(1.08);
	transition: transform 0.4s ease;
}

/*
 * Category explorer: Query Loop grid.
 * Core default layout + blockGap injects margin-block-start on > * + * (wp_get_layout_style).
 * With display:grid in one row, that becomes extra top margin on items 2–5 — first card looks higher.
 * We remove blockGap from the block markup and reset <li> margins so grid `gap` is the only spacing.
 */
.wp-block-post-template.category-explorer-grid,
.alignwide.category-explorer-grid,
.category-explorer-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1rem;
	list-style: none;
	padding: 0;
	margin: 0;
	width: 100%;
	box-sizing: border-box;
	align-items: start;
}

.wp-block-post-template.category-explorer-grid > li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.wp-block-post-template.category-explorer-grid > li > .category-card {
	margin: 0;
}

@media (max-width: 1024px) {
	.wp-block-post-template.category-explorer-grid,
	.category-explorer-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Explore Niagara: keep 2 columns on narrow phones (was 1 col — too tall / too many rows). */
@media (max-width: 600px) {
	/*
	 * Section uses spacing-10 (3.5rem) inline — too wide on phones; tighten only this wrapper.
	 * !important beats block inline padding for horizontal sides only; bottom padding unchanged.
	 */
	.explore-niagara-section {
		padding-left: 0.75rem !important;
		padding-right: 0.75rem !important;
	}

	.wp-block-post-template.category-explorer-grid,
	.category-explorer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}

	.wp-block-post-template.category-explorer-grid > li > .category-card {
		height: 200px;
	}

	.wp-block-post-template.category-explorer-grid .category-card .category-card__label,
	.wp-block-post-template.category-explorer-grid .category-card .wp-block-post-title.category-card__label {
		padding: 0.65rem;
		font-size: 0.875rem;
	}
}

.card-bg-wrapper.curated-pick-card {
	aspect-ratio: 16 / 9;
	min-height: 0;
}

/* Prevent Columns flex from vertically centering the card in the column. */
.wp-block-columns .wp-block-column > .card-bg-wrapper {
	align-self: stretch;
	width: 100%;
}

.card-bg-image,
.card-bg-image.wp-block-image,
.wp-block-post-featured-image.card-bg-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	object-fit: cover;
	z-index: 0;
	pointer-events: none;
}

.card-bg-image img,
.wp-block-post-featured-image.card-bg-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
	transform: scale(1);
}

@media (hover: hover) and (pointer: fine) {
	.card-bg-wrapper:not(.curated-pick-card):not(.category-card):hover {
		box-shadow: 0 8px 32px rgba(25, 28, 29, 0.06);
	}

	.card-bg-wrapper:not(.curated-pick-card):not(.category-card):hover .card-bg-image img,
	.card-bg-wrapper:not(.curated-pick-card):not(.category-card):hover .wp-block-post-featured-image.card-bg-image img {
		transform: scale(1.08);
	}
}

/*
 * Overlay fills the card (absolute inset). Flex end pins labels to the bottom.
 * Does not rely on in-flow flex growth, so core Group / inner-container layouts can't vertically center the label.
 */
.card-bg-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: stretch;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	min-height: 100%;
	padding: var(--wp--preset--spacing--50, 1.5rem);
	background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
	color: var(--wp--preset--color--on-primary);
	pointer-events: none;
}

.card-bg-overlay a {
	pointer-events: auto;
	color: var(--wp--preset--color--on-primary);
}

.card-bg-overlay .wp-block-heading,
.card-bg-overlay p {
	color: inherit;
}

/* Core wraps Group inner blocks in this; keep content bottom-aligned inside the overlay. */
.card-bg-overlay .wp-block-group__inner-container {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	width: 100%;
	min-height: 0;
	flex: 1 1 auto;
}

/* WordPress layout classes: keep overlay full-bleed and bottom-justified. */
.wp-block-group.card-bg-overlay.is-layout-flex,
.wp-block-group.card-bg-overlay.is-layout-flow,
.wp-block-group.card-bg-overlay.is-layout-constrained {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: stretch;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
}

.wp-block-group.card-bg-wrapper.is-layout-flex {
	display: block;
}

html,
body,
.wp-site-blocks,
.wp-block-template-part,
.wp-block-group {
	overflow: visible !important;
	overflow-x: visible !important;
	overflow-y: visible !important;
}

/* Header template part wrapper must not clip sticky children (core / editor can set overflow). */
.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > .wp-block-template-part {
	overflow: visible !important;
	overflow-x: visible !important;
	overflow-y: visible !important;
}

/*
 * Sticky fix: alignfull + template-part wrappers often get transform from core for breakout layout.
 * Any non-none transform/filter/perspective on an ancestor creates a containing block and sticky stops working
 * even though DevTools still shows position: sticky.
 * display: contents removes the wrapper box so .site-header-bar participates in .wp-site-blocks flow.
 */
.wp-site-blocks > header.wp-block-template-part {
	display: contents !important;
	transform: none !important;
	filter: none !important;
	perspective: none !important;
	will-change: auto !important;
	contain: none !important;
}

/**
 * Site header: full-bleed bar, glass surface + blur (design-system tokens),
 * three-zone row — logo | centered nav | CTA.
 */
.site-header-bar,
.site-header-bar.is-position-sticky {
	--nav-text: #475569;
	--nav-text-hover: #e51c38;
	--nav-text-current: #004b98;

	position: sticky !important;
	top: 0 !important;
	z-index: 100000 !important;
	width: 100%;
	background-color: var(--wp--preset--color--surface-container-lowest) !important;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	transition: background-color 0.3s ease, backdrop-filter 0.3s ease, -webkit-backdrop-filter 0.3s ease, box-shadow 0.3s ease;
	box-shadow: 0 1px 0 rgba(25, 28, 29, 0.06);
}

.site-header-bar.scrolled,
.site-header-bar.is-position-sticky.scrolled {
	background-color: rgba(255, 255, 255, 0.72) !important;
	backdrop-filter: blur(16px) saturate(180%);
	-webkit-backdrop-filter: blur(16px) saturate(180%);
	box-shadow: 0 1px 0 rgba(25, 28, 29, 0.08);
}

/* When WP admin bar is present, keep site header below admin bar dropdowns (z-index) and clear bar height (sticky top). */
.admin-bar .site-header-bar,
.admin-bar .site-header-bar.is-position-sticky {
	z-index: 99 !important;
	top: 32px !important;
}

@media screen and (max-width: 782px) {
	.admin-bar .site-header-bar,
	.admin-bar .site-header-bar.is-position-sticky {
		top: 46px !important;
	}
}

/* Reset global core/group padding inside the header strip only. */
.site-header-bar .wp-block-group {
	max-width: none;
	padding-top: 0;
	padding-bottom: 0;
	padding-left: 0;
	padding-right: 0;
	background: transparent;
}

.site-header-bar__row {
	padding-left: var(--wp--preset--spacing--4);
	padding-right: var(--wp--preset--spacing--4);
	min-height: 0;
}

/*
 * Site header — mobile only: logo left, hamburger right, same row; hide header CTA.
 * Desktop / tablet (782px+): unchanged three-zone row (logo | nav | CTA).
 */
@media (max-width: 781px) {
	.site-header-bar .site-header-bar__row.is-layout-flex,
	.site-header-bar .site-header-bar__row {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		justify-content: space-between !important;
		align-items: center !important;
		column-gap: var(--wp--preset--spacing--4, 1rem);
		row-gap: 0 !important;
		padding-left: var(--wp--preset--spacing--5, 1.25rem);
		padding-right: var(--wp--preset--spacing--5, 1.25rem);
	}

	.site-header-bar .site-header-bar__row > .wp-block-image {
		flex: 0 1 auto;
		margin: 0 !important;
		width: auto;
		max-width: min(52vw, 11rem);
	}

	.site-header-bar .site-header-bar__row > .wp-block-image img {
		display: block;
		margin: 0;
		max-height: 40px;
		width: auto;
		height: auto;
		object-fit: contain;
	}

	.site-header-bar .site-header-bar__row > .wp-block-navigation {
		flex: 0 0 auto;
		display: flex !important;
		justify-content: flex-end !important;
		align-items: center;
		width: auto;
		max-width: none;
		margin-left: auto;
	}

	.site-header-bar .site-header-bar__row > .wp-block-navigation .wp-block-navigation__responsive-container-open {
		margin-left: 0;
		margin-right: 0;
	}

	/* Plan Your Trip — header instance only */
	.site-header-bar .site-header-bar__actions {
		display: none !important;
	}
}

/* Inner row only: no pill/overlay on the flex row; outer .site-header-bar background comes from the editor. */
.site-header-bar > .wp-block-group,
.site-header-bar .site-header-bar__row {
	background-color: transparent !important;
	background-image: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

/**
 * Header logo: .site-logo on brand column.
 */
.site-logo {
	flex-shrink: 0;
	line-height: 0;
}

.site-logo .wp-block-image {
	margin: 0;
}

.site-logo .wp-block-image a {
	display: inline-block;
	line-height: 0;
}

.site-logo .wp-block-image img {
	display: block;
	width: auto;
	height: auto;
	max-height: 36px;
	object-fit: contain;
}

@media (min-width: 782px) {
	.site-logo .wp-block-image img {
		max-height: 48px;
	}
}

/* Header navigation: tokenized default, hover, and current states. */
.site-header-bar .wp-block-navigation-item__content {
	color: var(--nav-text) !important;
	font-family: var(--wp--preset--font-family--manrope);
	text-transform: uppercase;
	transition: color 0.2s ease;
	text-decoration: none !important;
}

.site-header-bar .wp-block-navigation-item__content:hover {
	color: var(--nav-text-hover) !important;
	text-decoration: underline !important;
	text-underline-offset: 6px;
	text-decoration-thickness: 2px;
	text-decoration-color: var(--nav-text-hover, #e51c38);
}

.site-header-bar .wp-block-navigation-item__content:focus-visible {
	color: var(--nav-text-hover) !important;
	outline: 2px solid var(--nav-text-hover);
	outline-offset: 2px;
	border-radius: 2px;
}

.site-header-bar .current-menu-item > .wp-block-navigation-item__content,
.site-header-bar .current_page_item > .wp-block-navigation-item__content,
.site-header-bar .current-menu-ancestor > .wp-block-navigation-item__content,
.site-header-bar .wp-block-navigation-item--current > .wp-block-navigation-item__content,
.site-header-bar [aria-current="page"] > .wp-block-navigation-item__content,
.site-header-bar .wp-block-navigation .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--nav-text-current) !important;
	text-decoration: underline !important;
	text-underline-offset: 6px;
	text-decoration-thickness: 2px;
	text-decoration-color: var(--nav-text-current, #004b98);
}

/* Overlay / mobile submenu: keep nav typographic treatment */
.site-header-bar .wp-block-navigation__responsive-container .wp-block-navigation-item .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/*
 * Site header — mobile only, overlay open: larger type + tap-friendly rhythm.
 * Desktop (782px+) and closed menu: unchanged (rule above + inline nav).
 */
@media (max-width: 781px) {
	.site-header-bar
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__responsive-container-content {
		padding-top: var(--wp--preset--spacing--6, 1.75rem);
		padding-bottom: var(--wp--preset--spacing--8, 2.75rem);
		padding-left: var(--wp--preset--spacing--5, 1.25rem);
		padding-right: var(--wp--preset--spacing--5, 1.25rem);
	}

	/* Top-level links (submenu overridden below) */
	.site-header-bar
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-item
		.wp-block-navigation-item__content,
	.site-header-bar
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-pages-list__item__link {
		font-size: 1.375rem !important;
		line-height: 1.35 !important;
		padding-top: 0.65rem !important;
		padding-bottom: 0.65rem !important;
		min-height: 44px;
		display: inline-flex !important;
		align-items: center;
	}

	/* Submenus: slightly smaller, still readable */
	.site-header-bar
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__submenu-container
		.wp-block-navigation-item__content,
	.site-header-bar
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation__submenu-container
		.wp-block-pages-list__item__link {
		font-size: 1.25rem !important;
		line-height: 1.35 !important;
		padding-top: 0.5rem !important;
		padding-bottom: 0.5rem !important;
		min-height: 40px;
		display: inline-flex !important;
		align-items: center;
	}

	.site-header-bar
		.wp-block-navigation__responsive-container.is-menu-open
		.wp-block-navigation-item:not(:last-child) {
		margin-bottom: 0.125rem;
	}

	/* Collapse submenus by default in mobile overlay — tap parent to expand */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > ul.wp-block-navigation__submenu-container {
		display: none !important;
		height: 0 !important;
		overflow: hidden !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > button[aria-expanded="true"] ~ ul.wp-block-navigation__submenu-container {
		display: flex !important;
		flex-direction: column !important;
		height: auto !important;
		overflow: visible !important;
	}

	/* Make the submenu toggle arrow visible and tappable in mobile overlay */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: center;
		justify-content: center;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
		flex: 0 1 auto;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > ul.wp-block-navigation__submenu-container {
		flex-basis: 100%;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		margin-left: 0.25rem;
		background: none;
		border: none;
		cursor: pointer;
		opacity: 0.7;
		transition: transform 0.2s ease, opacity 0.2s ease;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon:hover,
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon:focus {
		opacity: 1;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon svg {
		width: 16px;
		height: 16px;
		stroke: currentColor;
	}

	/* Rotate arrow when submenu is open */
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon[aria-expanded="true"] {
		transform: rotate(180deg);
	}
}

/* ----- Single post template (templates/single.html) ----- */

/* Single-post Cover: responsive horizontal inset for hero copy (badges, title, byline) below wide width. */
.single .wp-block-cover > .wp-block-cover__inner-container {
	box-sizing: border-box;
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin-inline: auto;
	padding-inline: clamp(1.5rem, 5vw, 3rem);
}

/* Post hero: flex column so inner container can span full cover width (wide band centers via margin auto).
   Vertical centering is handled by WordPress's is-position-* class on the Cover block. */
.single-article-hero.wp-block-cover {
	min-height: 80vh !important;
}

/* Make sure the hero Cover block doesn't clip the overlapping sheet */
.single-article-hero,
.single-article-hero .wp-block-cover {
	overflow: visible;
}

/* Constrain hero copy to theme wide width (matches inner Group align wide). Cover image stays full-bleed. */
.single-article-hero .wp-block-cover__inner-container {
	max-width: var(--wp--style--global--wide-size) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
}

/* Shrink-to-fit up to wide width; sits on the LEFT edge of the inner container (the wide column). */
.single-article-hero .wp-block-cover__inner-container > .wp-block-group.alignwide {
	width: auto !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: auto !important;
	padding-left: 0 !important; /* skip root/global padding here so stack aligns to wide column left edge */
	box-sizing: border-box;
	text-align: left;
	align-self: flex-start;
}

/* Core block layout: flow children often get margin-inline auto (centers narrower blocks). Pin hero stack left. */
.single-article-hero .is-layout-flow > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Gradient overlay instead of flat dim */
.single-article-hero .wp-block-cover__background {
	background: linear-gradient(to bottom, transparent 0%, transparent 30%, rgba(15, 54, 99, 0.4) 60%, rgba(15, 54, 99, 0.85) 100%) !important;
	background-color: transparent !important;
	opacity: 1 !important;
}

/* Hero title (core Post Title → .wp-block-post-title h1) */
.single-article-hero .wp-block-post-title {
	max-width: 720px; /* line-length cap; no theme.json layout token for 720px */
	margin-left: 0;
	margin-right: 0;
	font-family: "Epilogue", sans-serif !important;
	font-weight: 900 !important;
	font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
	line-height: 1.05 !important;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.4) !important;
}

/* Category badge pills */
.single-article-hero .single-hero-badge .wp-block-post-terms a {
	background: #e51c38 !important;
	color: #fff !important;
	padding: 0.25rem 0.75rem !important;
	border-radius: 9999px !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
	text-decoration: none !important;
}

.post-hero-content {
	margin-top: 0;
}

.single-article-hero .post-hero-content {
	padding-left: 0 !important;
	margin-left: 0 !important;
	width: 100% !important;
	max-width: none !important;
}

.post-hero-content .wp-block-post-author,
.post-hero-content .wp-block-post-date {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.875rem;
}

.single-article-hero .single-hero-badge {
	display: inline-block;
	width: fit-content;
	max-width: 100%;
	background: transparent !important;
	padding: 0 !important;
	border-radius: 0;
}

.single-article-hero .single-hero-byline {
	display: flex;
	align-items: center;
}

.single-article-hero .wp-block-post-author {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.single-article-hero .wp-block-post-author__avatar img {
	display: block;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
}

.single-article-hero .wp-block-post-date {
	margin: 0;
	padding: 0;
	align-self: center;
}

.single-article-hero .single-hero-byline .wp-block-post-date::before {
	content: "|";
	margin-right: 0.625rem;
	margin-left: 0.625rem;
	opacity: 0.7;
	color: inherit;
}

.single-article-hero .wp-block-post-author .wp-block-post-author__byline {
	display: none;
}

/* Single post hero: mobile adjustments */
@media (max-width: 600px) {
	/* Reduce horizontal padding on the hero */
	.single .wp-block-cover > .wp-block-cover__inner-container {
		padding-inline: 1rem;
	}

	/* Byline: avatar left, name + date stacked to the right */
	.single-article-hero .single-hero-byline {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.625rem;
	}

	.single-article-hero .wp-block-post-author {
		display: contents !important;
	}

	.single-article-hero .wp-block-post-author__avatar {
		grid-row: 1 / 3;
	}

	.single-article-hero .wp-block-post-author__avatar img {
		width: 56px;
		height: 56px;
	}

	/* Use CSS grid on the byline so avatar spans both rows */
	.single-article-hero .single-hero-byline {
		display: grid !important;
		grid-template-columns: 56px 1fr;
		grid-template-rows: auto auto;
		column-gap: 0.625rem;
		row-gap: 0;
		align-items: end;
	}

	.single-article-hero .single-hero-byline .wp-block-post-author__avatar {
		grid-column: 1;
		grid-row: 1 / 3;
		align-self: center;
	}

	.single-article-hero .single-hero-byline .wp-block-post-author__content {
		grid-column: 2;
		grid-row: 1;
		align-self: end;
	}

	.single-article-hero .single-hero-byline .wp-block-post-date {
		grid-column: 2;
		grid-row: 2;
		align-self: start;
		margin-top: 0.125rem;
	}

	/* Remove the pipe separator */
	.single-article-hero .single-hero-byline .wp-block-post-date::before {
		display: none;
	}
}

/* ── Reusable page hero (static cover with centred content) ────────────── */
.is-style-page-hero.wp-block-cover {
	min-height: 70vh !important;
	display: flex;
	align-items: center;
}

.is-style-page-hero .wp-block-cover__background {
	background: linear-gradient(
		to right,
		rgba(15, 54, 99, 0.88) 0%,
		rgba(15, 54, 99, 0.55) 50%,
		rgba(15, 54, 99, 0.25) 100%
	) !important;
	background-color: transparent !important;
	opacity: 1 !important;
}

.is-style-page-hero .wp-block-cover__inner-container {
	max-width: var(--wp--style--global--wide-size) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
}

/* Pin content left within the wide container */
.is-style-page-hero .wp-block-cover__inner-container > .wp-block-group {
	text-align: left;
}

.is-style-page-hero .is-layout-flow > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Badge / label pill */
.is-style-page-hero-badge {
	display: inline-block;
	background: var(--wp--preset--color--secondary-container) !important;
	color: #fff !important;
	padding: 0.25rem 0.875rem;
	border-radius: 9999px;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 0.75rem;
}

/* Heading */
.is-style-page-hero-title {
	font-family: "Epilogue", sans-serif !important;
	font-weight: 900 !important;
	font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
	line-height: 1.05 !important;
	color: #fff !important;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.4) !important;
	margin-top: 0;
	margin-bottom: 1rem;
}

.is-style-hero-title-centered {
	font-family: "Epilogue", sans-serif !important;
	font-weight: 900 !important;
	font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
	line-height: 1.05 !important;
	color: #fff !important;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.4) !important;
	text-align: center !important;
	max-width: 800px;
	margin: 0 auto 1rem;
}

/* Subtitle / description */
.is-style-page-hero-subtitle {
	font-size: clamp(1rem, 1.5vw, 1.125rem);
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.85);
	max-width: 480px;
	margin-top: 0;
}

/* ── Press releases section ────────────────────────────────────────────── */

/* Featured card (left column) */
.press-featured-card .wp-block-post-featured-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 8px;
}

.press-featured-card .wp-block-post-date {
	font-size: 0.875rem;
	color: var(--wp--preset--color--on-surface);
	opacity: 0.7;
	margin-bottom: 0.5rem;
}

.press-featured-card .wp-block-post-title {
	font-family: "Epilogue", sans-serif;
	font-weight: 900;
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.15;
	color: var(--wp--preset--color--primary);
	margin-bottom: 0.75rem;
}

.press-featured-card .wp-block-post-excerpt {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--wp--preset--color--on-surface);
	opacity: 0.8;
}

.press-featured-card .wp-block-read-more,
.press-featured-card .wp-block-post-excerpt__more-link {
	display: inline-block;
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
	padding: 0.75rem 1.5rem;
	border-radius: 9999px;
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
	margin-top: 0.5rem;
}

.press-featured-card .wp-block-read-more:hover,
.press-featured-card .wp-block-post-excerpt__more-link:hover {
	background: var(--wp--preset--color--secondary-container, #fed488) !important;
	color: var(--wp--preset--color--on-secondary-container, #785a1a) !important;
	opacity: 1;
}

/* List items (right column) — date + content side by side */
.press-releases-list .wp-block-post-template > .wp-block-post {
	padding-bottom: 1.5rem;
	margin-bottom: 1.5rem;
}

.press-releases-list .wp-block-post-template > .wp-block-post:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
}

/* The flex row inside each post item */
.press-releases-list .wp-block-post > .wp-block-group.is-layout-flex {
	gap: 1.25rem;
	flex-wrap: nowrap !important;
	align-items: flex-start;
}

/* Date column — fixed width, no shrink */
.press-releases-list .wp-block-post > .wp-block-group > .wp-block-group.is-vertical:first-child {
	flex: 0 0 5rem;
}

/* Content column — fill remaining space */
.press-releases-list .wp-block-post > .wp-block-group > .wp-block-group.is-vertical:last-child {
	flex: 1 1 0%;
	min-width: 0;
}

/* Large day number + month/year below */
.press-releases-list .wp-block-post-date {
	font-family: "Epilogue", sans-serif;
}

.press-releases-list .wp-block-post-title {
	font-family: "Epilogue", sans-serif;
}

.press-releases-list .wp-block-post-title strong {
	font-weight: inherit;
}

.press-releases-list .wp-block-post-excerpt {
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--wp--preset--color--on-surface);
	opacity: 0.7;
	margin-bottom: 0.5rem;
}

.press-releases-list .wp-block-read-more,
.press-releases-list .wp-block-post-excerpt__more-link {
	font-size: 0.875rem;
	font-weight: 800;
	color: var(--wp--preset--color--primary);
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.press-releases-list .wp-block-read-more:hover,
.press-releases-list .wp-block-post-excerpt__more-link:hover {
	color: var(--wp--preset--color--tertiary) !important;
	text-decoration: underline !important;
}

.press-releases-list .wp-block-read-more::after {
	content: " ›";
}

/*
 * GeoDirectory single listing (templates/gd-single.html): full-viewport hero; header overlays hero (absolute, out of flow).
 * Blog singles use the same parts/site-header.html with global sticky header — no override there.
 */
body.post-type-gd_place .wp-site-blocks > .site-header-bar,
body.single-gd_place .wp-site-blocks > .site-header-bar {
	position: absolute !important;
	left: 0;
	right: 0;
	top: 0 !important;
	z-index: 100001 !important;
	width: 100%;
	max-width: none;
	background: transparent !important;
	box-shadow: none !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

.admin-bar.post-type-gd_place .wp-site-blocks > .site-header-bar,
.admin-bar.single-gd_place .wp-site-blocks > .site-header-bar {
	top: 32px !important;
}

@media screen and (max-width: 782px) {
	.admin-bar.post-type-gd_place .wp-site-blocks > .site-header-bar,
	.admin-bar.single-gd_place .wp-site-blocks > .site-header-bar {
		top: 46px !important;
	}
}

.post-type-gd_place .dn-gd-single-bleed-stack,
.single-gd_place .dn-gd-single-bleed-stack {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-left: 0;
	padding-right: 0;
}

.post-type-gd_place .dn-gd-single-bleed-stack > *:first-child,
.single-gd_place .dn-gd-single-bleed-stack > *:first-child {
	margin-top: 0;
	padding-top: 0;
}

.single-gd_place .wp-site-blocks > *:first-child,
.post-type-gd_place .wp-site-blocks > *:first-child {
	margin-top: 0;
	padding-top: 0;
}

/*
 * GD single hero: remove WP core block-layout gaps (single template only).
 * Core: :where(.wp-site-blocks) > * { margin-block-start: 24px } — second top-level block (bleed stack) was pushed down.
 * Core: :where(.is-layout-flow) > * — hero after notifications inside bleed stack.
 * If the root wrapper uses flex/grid, :root { --wp--style--block-gap: 24px } + gap on layout also adds vertical space — margin resets do not remove gap.
 * Targeted to .dn-gd-single-bleed-stack / .gd-single-hero; main gets margin restored below.
 */
body.single-gd_place .wp-site-blocks,
body.post-type-gd_place .wp-site-blocks {
	padding-top: 0 !important;
	padding-block-start: 0 !important;
	row-gap: 0 !important;
	column-gap: 0 !important;
	gap: 0 !important;
}

body.single-gd_place .wp-site-blocks > .dn-gd-single-bleed-stack,
body.post-type-gd_place .wp-site-blocks > .dn-gd-single-bleed-stack {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

body.single-gd_place .dn-gd-single-bleed-stack > .gd-single-hero,
body.post-type-gd_place .dn-gd-single-bleed-stack > .gd-single-hero {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

body.single-gd_place .gd-single-hero,
body.post-type-gd_place .gd-single-hero {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

.post-type-gd_place main.dn-gd-page-shell,
.post-type-gd_place .dn-gd-page-shell.is-layout-constrained,
.single-gd_place main.dn-gd-page-shell,
.single-gd_place .dn-gd-page-shell.is-layout-constrained {
	margin-top: 0;
}

/* Restore vertical rhythm between hero stack and main; offset for listing action bar translateY(-50%) overlap */
body.single-gd_place main.dn-gd-page-shell,
body.post-type-gd_place main.dn-gd-page-shell {
	margin-block-start: calc(var(--wp--style--block-gap, 24px) - clamp(1.5rem, 4vw, 2.75rem)) !important;
	margin-top: calc(var(--wp--style--block-gap, 24px) - clamp(1.5rem, 4vw, 2.75rem)) !important;
}

/* Hide duplicate category row in main (categories appear as hero pill). Tags remain. */
.post-type-gd_place .dn-gd-page-shell .geodir_post_taxomomies .geodir-category,
.single-gd_place .dn-gd-page-shell .geodir_post_taxomomies .geodir-category {
	display: none !important;
}

/* =============================================
   GD SINGLE HERO — FULL VIEWPORT
   ============================================= */

.post-type-gd_place .gd-single-hero,
.single-gd_place .gd-single-hero {
	display: grid;
	grid-template: 1fr / 1fr;
	min-height: 90vh;
	overflow: visible;
	position: relative;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	box-sizing: border-box;
	padding: 0;
}

.post-type-gd_place .gd-single-hero > *,
.single-gd_place .gd-single-hero > * {
	grid-area: 1 / 1;
}

.gd-single-hero {
	position: relative;
}

.gd-single-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	z-index: 2;
	pointer-events: none;
}

/* Post images widget — fills hero cell */
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images,
.gd-single-hero .wp-block-geodirectory-geodir-widget-post-images {
	position: relative;
	z-index: 1;
	height: 100%;
	min-height: 90vh;
	overflow: hidden;
	align-self: stretch;
	justify-self: stretch;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

/* Inner wrappers (GD may still output slider/ratio markup) — stretch to same box as overlay */
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .geodir-image-container,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .geodir-image-container,
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .geodir-post-slider,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .geodir-post-slider,
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .geodir-image-wrapper,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .geodir-image-wrapper,
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-inner,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-inner,
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-item,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-item {
	height: 100%;
	min-height: 90vh;
	box-sizing: border-box;
}

/* Bootstrap .ratio / .embed-responsive — would otherwise cap height at 16:9 */
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .embed-responsive,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .embed-responsive,
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .ratio,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .ratio,
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images [class*="ratio"],
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images [class*="ratio"] {
	display: block;
	width: 100%;
	padding-bottom: 0 !important;
	aspect-ratio: unset !important;
	--bs-aspect-ratio: unset !important;
	height: 100% !important;
	min-height: 90vh !important;
}

.post-type-gd_place .gd-single-hero .geodir-image-container,
.single-gd_place .gd-single-hero .geodir-image-container {
	height: 100%;
	min-height: 90vh;
}

.post-type-gd_place .gd-single-hero .geodir-image-container > img,
.single-gd_place .gd-single-hero .geodir-image-container > img,
.post-type-gd_place .gd-single-hero img[class*="geodir-image"],
.single-gd_place .gd-single-hero img[class*="geodir-image"] {
	width: 100%;
	height: 100% !important;
	min-height: 90vh !important;
	object-fit: cover !important;
	display: block;
}

/* Mobile: shorter hero so prev/next buttons aren't lost off-screen */
@media (max-width: 768px) {
	/* Cap the outer hero wrapper — contains image, content, AND prev/next */
	.post-type-gd_place .gd-single-hero-outer,
	.single-gd_place .gd-single-hero-outer {
		display: flex !important;
		flex-direction: column !important;
		height: 85vh !important;
		max-height: 85vh !important;
		overflow: hidden !important;
		position: relative;
	}

	/* Inner hero (image + content overlay) takes remaining space */
	.post-type-gd_place .gd-single-hero,
	.single-gd_place .gd-single-hero {
		flex: 1 1 0% !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: hidden !important;
	}

	/* Prev/next stays at the bottom, never shrinks */
	.post-type-gd_place .gd-single-hero-outer .wp-block-geodirectory-geodir-widget-single-next-prev,
	.single-gd_place .gd-single-hero-outer .wp-block-geodirectory-geodir-widget-single-next-prev {
		flex: 0 0 auto !important;
		position: relative;
		z-index: 10;
	}

	/* Hide category pills on mobile to reduce clutter */
	.post-type-gd_place .gd-single-hero .gd-category-pill,
	.single-gd_place .gd-single-hero .gd-category-pill {
		display: none !important;
	}

	.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images,
	.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images,
	.post-type-gd_place .gd-single-hero .geodir-image-container,
	.single-gd_place .gd-single-hero .geodir-image-container,
	.post-type-gd_place .gd-single-hero .geodir-post-slider,
	.single-gd_place .gd-single-hero .geodir-post-slider,
	.post-type-gd_place .gd-single-hero .carousel-inner,
	.single-gd_place .gd-single-hero .carousel-inner,
	.post-type-gd_place .gd-single-hero .carousel-item,
	.single-gd_place .gd-single-hero .carousel-item,
	.post-type-gd_place .gd-single-hero .embed-responsive,
	.single-gd_place .gd-single-hero .embed-responsive,
	.post-type-gd_place .gd-single-hero .ratio,
	.single-gd_place .gd-single-hero .ratio,
	.post-type-gd_place .gd-single-hero [class*="ratio"],
	.single-gd_place .gd-single-hero [class*="ratio"] {
		min-height: 85vh !important;
		max-height: 85vh !important;
		height: 85vh !important;
		padding-bottom: 0 !important;
		aspect-ratio: unset !important;
	}

	.post-type-gd_place .gd-single-hero .gd-hero-content,
	.single-gd_place .gd-single-hero .gd-hero-content {
		max-height: 85vh !important;
		overflow: hidden !important;
		padding-bottom: 0.5rem !important;
		align-self: start !important;
		justify-content: flex-start !important;
		padding-top: 1rem !important;
	}

	/* Prev/next buttons inside the hero outer wrapper */
	.post-type-gd_place .gd-single-hero-outer .wp-block-geodirectory-geodir-widget-single-next-prev,
	.single-gd_place .gd-single-hero-outer .wp-block-geodirectory-geodir-widget-single-next-prev {
		position: relative;
		z-index: 10;
	}

	.post-type-gd_place .gd-single-hero-outer .wp-block-geodirectory-geodir-widget-single-next-prev .badge,
	.single-gd_place .gd-single-hero-outer .wp-block-geodirectory-geodir-widget-single-next-prev .badge {
		background-color: rgba(255, 255, 255, 0.9) !important;
		color: var(--wp--preset--color--primary, #0f3663) !important;
		font-weight: 700;
		padding: 0.5rem 1.25rem;
		font-size: 0.875rem;
	}
}

/* GD post-images slideshow UI: hide captions, dots, and default side carousel arrows (Bootstrap) */
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-caption,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-caption,
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-indicators,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-indicators,
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-control-prev,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-control-prev,
.post-type-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-control-next,
.single-gd_place .gd-single-hero .wp-block-geodirectory-geodir-widget-post-images .carousel-control-next {
	display: none !important;
}

.post-type-gd_place .gd-single-hero .gd-hero-content,
.single-gd_place .gd-single-hero .gd-hero-content,
.gd-single-hero .gd-hero-content {
	z-index: 3;
	position: relative;
	align-self: center;
	left: 0;
	right: auto;
	width: fit-content;
	max-width: min(52rem, 85vw);
	margin: 0;
	padding: 0 clamp(2rem, 5vw, 4rem) clamp(2rem, 4vw, 3rem);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	row-gap: 0;
	pointer-events: none;
}

.post-type-gd_place .gd-single-hero .gd-hero-content > * + *,
.single-gd_place .gd-single-hero .gd-hero-content > * + * {
	margin-top: 0.75rem;
}

.post-type-gd_place .gd-single-hero .gd-hero-content > .wp-block-geodirectory-geodir-widget-page-title + .wp-block-group.gd-hero-subtext,
.single-gd_place .gd-single-hero .gd-hero-content > .wp-block-geodirectory-geodir-widget-page-title + .wp-block-group.gd-hero-subtext {
	margin-top: 0.5rem;
}

.post-type-gd_place .gd-single-hero .gd-hero-content a,
.post-type-gd_place .gd-single-hero .gd-hero-content button,
.single-gd_place .gd-single-hero .gd-hero-content a,
.single-gd_place .gd-single-hero .gd-hero-content button {
	pointer-events: auto;
}

.post-type-gd_place .gd-single-hero .gd-hero-content [class*="post-badge"] a,
.post-type-gd_place .gd-single-hero .gd-hero-content [class*="post-categories"] a,
.post-type-gd_place .gd-single-hero .gd-hero-content [class*="post-terms"] a,
.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-category a,
.post-type-gd_place .gd-single-hero .gd-hero-content .gd-category-pill a,
.single-gd_place .gd-single-hero .gd-hero-content [class*="post-badge"] a,
.single-gd_place .gd-single-hero .gd-hero-content [class*="post-categories"] a,
.single-gd_place .gd-single-hero .gd-hero-content [class*="post-terms"] a,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-category a,
.single-gd_place .gd-single-hero .gd-hero-content .gd-category-pill a {
	display: inline-block;
	background: #720014;
	color: #ffffff;
	font-family: "Manrope", sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 0.35rem 1rem;
	border-radius: 999px;
	text-decoration: none;
	line-height: 1;
}

.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-page-title,
.post-type-gd_place .gd-single-hero .gd-hero-content .entry-title,
.post-type-gd_place .gd-single-hero .gd-hero-content h1,
.post-type-gd_place .gd-single-hero .gd-hero-content h2,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-page-title,
.single-gd_place .gd-single-hero .gd-hero-content .entry-title,
.single-gd_place .gd-single-hero .gd-hero-content h1,
.single-gd_place .gd-single-hero .gd-hero-content h2 {
	font-family: "Epilogue", sans-serif;
	font-size: clamp(2.5rem, 6vw, 4.5rem);
	font-weight: 800;
	color: #ffffff;
	text-align: left;
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
	line-height: 1.05;
	margin: 0;
}

.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-page-title-container,
.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-page-title-wrap,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-page-title-container,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-page-title-wrap {
	padding: 0;
	margin: 0;
}

/* Listing post content as hero subtitle (below title; full content, visually clamped) */
.post-type-gd_place .gd-single-hero .gd-hero-subtext,
.single-gd_place .gd-single-hero .gd-hero-subtext {
	margin: 0;
	margin-top: 0.75rem;
	padding: 1rem 1.25rem;
	max-width: 600px;
	width: auto;
	box-sizing: border-box;
	pointer-events: auto;
	background: rgba(15, 54, 99, 0.75);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border-radius: 12px;
}

.post-type-gd_place .gd-single-hero .gd-hero-subtext:not(:has(.geodir_post_meta)),
.single-gd_place .gd-single-hero .gd-hero-subtext:not(:has(.geodir_post_meta)) {
	display: none;
}

.post-type-gd_place .gd-single-hero .gd-hero-subtext .geodir-post-content-container,
.single-gd_place .gd-single-hero .gd-hero-subtext .geodir-post-content-container {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
}

.post-type-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content,
.single-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content,
.gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content {
	margin: 0;
	padding: 0;
	max-width: 600px;
	font-family: "Manrope", sans-serif;
	font-weight: 400;
	font-size: clamp(1.25rem, 2.75vw, 1.35rem);
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.9);
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.25);
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

.post-type-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content a,
.single-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.post-type-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content p,
.single-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content p {
	margin: 0;
	padding: 0;
}

.post-type-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content p + p,
.single-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content p + p {
	margin-top: 0.35em;
}

/* Expanded state — toggled by JS */
.post-type-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content.expanded,
.single-gd_place .gd-single-hero .gd-hero-subtext .geodir_post_meta.geodir-field-post_content.expanded {
	-webkit-line-clamp: unset;
	line-clamp: unset;
	overflow: visible;
}

/* "Read more / Read less" toggle link */
.gd-hero-read-more {
	display: inline-block;
	margin-top: 0.5rem;
	color: var(--wp--preset--color--secondary-container, #fed488);
	font-family: "Manrope", sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
	border: none;
	background: none;
	padding: 0;
	pointer-events: auto;
	transition: color 0.2s ease;
}

.gd-hero-read-more:hover,
.gd-hero-read-more:focus-visible {
	color: #ffffff;
}

/* Hero: destination tags (post_tags) — same stack as category / title / description */
.post-type-gd_place .gd-single-hero .gd-hero-content .gd-hero-tags,
.single-gd_place .gd-single-hero .gd-hero-content .gd-hero-tags,
.gd-single-hero .gd-hero-content .gd-hero-tags {
	position: relative;
	z-index: 3;
	/* 32px above tag group: overrides WP block gap / * + * (design system generous whitespace) */
	margin: 2rem 0 0 !important;
	padding: 0;
	max-width: min(52rem, 85vw);
	width: 100%;
	box-sizing: border-box;
	pointer-events: auto;
}

.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags .geodir_post_meta_title,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags .geodir_post_meta_title,
.gd-single-hero .gd-hero-content .geodir-field-post_tags .geodir_post_meta_title,
.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags > b,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags > b,
.gd-single-hero .gd-hero-content .geodir-field-post_tags > b,
.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags > strong,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags > strong,
.gd-single-hero .gd-hero-content .geodir-field-post_tags > strong,
.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags > .geodir-i-taxonomy,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags > .geodir-i-taxonomy,
.gd-single-hero .gd-hero-content .geodir-field-post_tags > .geodir-i-taxonomy {
	display: none;
}

/* Icon + label live in this span (see geodir_cf_taxonomy) */
.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags .geodir_post_meta_icon,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags .geodir_post_meta_icon,
.gd-single-hero .gd-hero-content .geodir-field-post_tags .geodir_post_meta_icon {
	display: none;
}

.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags.geodir_post_meta,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags.geodir_post_meta,
.gd-single-hero .gd-hero-content .geodir-field-post_tags.geodir_post_meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 6px;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font-size: 0;
	line-height: 0;
}

.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags > span:not([class]),
.single-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags > span:not([class]),
.gd-single-hero .gd-hero-content .geodir-field-post_tags > span:not([class]) {
	display: none;
}

.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags a,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags a,
.gd-single-hero .gd-hero-content .geodir-field-post_tags a {
	display: inline-block;
	background: rgba(255, 255, 255, 0.15);
	color: rgba(255, 255, 255, 0.9);
	padding: 4px 12px;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--manrope, sans-serif);
	font-size: 0.8rem;
	line-height: normal;
	text-decoration: none;
	margin: 0;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.post-type-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags a:hover,
.single-gd_place .gd-single-hero .gd-hero-content .geodir-field-post_tags a:hover,
.gd-single-hero .gd-hero-content .geodir-field-post_tags a:hover {
	background: rgba(255, 255, 255, 0.3);
}

/* Add breathing room between listing description and tag pills */
.listing-hero .listing-tags,
.listing-hero .tag-pills {
	margin-top: var(--wp--preset--spacing--40, 1.5rem);
}

/* Wrapper for hero + prev/next so the action bar can sit outside overflow:hidden .gd-single-hero */
.post-type-gd_place .gd-single-hero-outer,
.single-gd_place .gd-single-hero-outer {
	position: relative;
	overflow: visible;
	width: 100%;
	max-width: 100%;
}

/* Block wrapper: lives inside .gd-hero-content, flows naturally after tags */
.wp-block-destination-niagara-listing-action-bar {
	display: flex;
	justify-content: flex-start;
	width: 100%;
	margin-top: 1.25rem;
	pointer-events: none;
}

.wp-block-destination-niagara-listing-action-bar .listing-action-bar {
	pointer-events: auto;
}

/* Listing Action Bar */
.listing-action-bar {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.action-bar-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1.25rem;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	border: none;
	background: transparent;
	box-sizing: border-box;
}

.action-bar-btn--ghost {
	background: rgba(248, 249, 250, 0.88);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1.5px solid rgba(255, 255, 255, 0.25);
	color: var(--wp--preset--color--on-surface, #191c1d);
}

.action-bar-btn--ghost:hover {
	background: var(--wp--preset--color--surface, #f8f9fa);
	border-color: var(--wp--preset--color--primary, #0f3663);
	color: var(--wp--preset--color--primary, #0f3663);
}

.action-bar-btn--save {
	background: var(--wp--preset--color--secondary-container, #fed488);
	border: none;
	color: var(--wp--preset--color--on-secondary-container, #785a1a);
	padding: 0.6rem 1rem;
	border-radius: 999px;
}

.action-bar-btn--save:hover {
	opacity: 0.85;
}

.action-bar-btn--primary {
	background: var(--wp--preset--color--primary, #0f3663);
	color: var(--wp--preset--color--on-primary, #ffffff);
	border: none;
	border-radius: 999px;
	padding: 0.6rem 1.25rem;
	transition: background 0.2s ease, transform 0.15s ease, color 0.2s ease;
}

.action-bar-btn--primary:hover {
	background: var(--wp--preset--color--primary-container, #2b4d7c);
	color: var(--wp--preset--color--on-primary, #ffffff);
	transform: translateY(-1px);
}

.action-bar-btn--primary:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #0f3663);
	outline-offset: 2px;
}

.action-bar-btn i {
	font-size: 1.05rem;
}

/* Responsive: action bar inside hero */
@media (max-width: 600px) {
	.action-bar-btn {
		padding: 0.5rem 1rem;
		font-size: 0.82rem;
	}

	.action-bar-btn--primary {
		padding: 0.4rem 1rem;
		font-size: 0.8125rem;
	}
}

/* [gd_single_next_prev] — negative margin pulls prev/next pills up to overlay the hero bottom */
.post-type-gd_place .gd-single-hero-outer + .wp-block-geodirectory-geodir-widget-single-next-prev,
.single-gd_place .gd-single-hero-outer + .wp-block-geodirectory-geodir-widget-single-next-prev,
.post-type-gd_place .dn-gd-single-bleed-stack .wp-block-geodirectory-geodir-widget-single-next-prev,
.single-gd_place .dn-gd-single-bleed-stack .wp-block-geodirectory-geodir-widget-single-next-prev {
	position: relative;
	z-index: 11;
	display: flex;
	justify-content: center;
	width: fit-content;
	max-width: calc(100% - 2rem);
	margin: -7rem auto 0;
	padding: 0.5rem 0;
	box-sizing: border-box;
	pointer-events: none;
}

.post-type-gd_place .dn-gd-single-bleed-stack .wp-block-geodirectory-geodir-widget-single-next-prev .geodir-single-taxonomies-container,
.single-gd_place .dn-gd-single-bleed-stack .wp-block-geodirectory-geodir-widget-single-next-prev .geodir-single-taxonomies-container {
	margin: 0 !important;
}

.post-type-gd_place .dn-gd-single-bleed-stack .wp-block-geodirectory-geodir-widget-single-next-prev a,
.single-gd_place .dn-gd-single-bleed-stack .wp-block-geodirectory-geodir-widget-single-next-prev a {
	pointer-events: auto;
}

.post-type-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation,
.single-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation {
	margin: 0 !important;
	padding: 0 !important;
}

.post-type-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation .row,
.single-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation .row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.75rem 1.25rem;
	margin: 0 !important;
	padding: 0 !important;
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
}

.post-type-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation .row > [class*="col"],
.single-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation .row > [class*="col"] {
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	padding: 0;
}

.post-type-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation a.badge,
.single-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation a.badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 0;
	min-height: 0;
	height: auto;
	margin: 0;
	padding: 10px 24px;
	border: none;
	border-radius: var(--wp--custom--radius--full, 999px);
	font-family: var(--wp--preset--font-family--manrope), "Manrope", sans-serif;
	font-size: var(--wp--preset--font-size--body-sm, 0.875rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	color: var(--wp--preset--color--primary, #0f3663) !important;
	background: rgba(248, 249, 250, 0.82) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 0 0 1px rgba(194, 198, 211, 0.15);
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.post-type-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation a.badge:hover,
.single-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation a.badge:hover,
.post-type-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation a.badge:focus-visible,
.single-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation a.badge:focus-visible {
	background: var(--wp--preset--color--primary, #0f3663) !important;
	color: var(--wp--preset--color--on-primary, #ffffff) !important;
	box-shadow: 0 0 0 1px rgba(194, 198, 211, 0.15);
	outline: none;
}

.post-type-gd_place .dn-gd-single-bleed-stack .geodir-post_left a.badge::before,
.single-gd_place .dn-gd-single-bleed-stack .geodir-post_left a.badge::before,
.post-type-gd_place .dn-gd-single-bleed-stack .geodir-post_right a.badge::after,
.single-gd_place .dn-gd-single-bleed-stack .geodir-post_right a.badge::after {
	content: none;
}

@media (max-width: 768px) {
	.post-type-gd_place .gd-single-hero .gd-hero-content,
	.single-gd_place .gd-single-hero .gd-hero-content {
		max-width: 100%;
		padding: 0 1.5rem;
	}

	.post-type-gd_place .dn-gd-single-bleed-stack .wp-block-geodirectory-geodir-widget-single-next-prev,
	.single-gd_place .dn-gd-single-bleed-stack .wp-block-geodirectory-geodir-widget-single-next-prev {
		margin-top: -5.5rem;
		padding: 0.25rem 0;
	}

	.post-type-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation .row,
	.single-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation .row {
		gap: 0.5rem 0.75rem;
	}

	.post-type-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation a.badge,
	.single-gd_place .dn-gd-single-bleed-stack .geodir-pos_navigation a.badge {
		padding: 8px 18px;
		font-size: 0.8125rem;
	}
}

.single-article-sheet {
	position: relative;
	margin-top: -3rem !important;
	border-radius: 1.5rem 1.5rem 0 0;
	padding-top: 2.5rem !important;
	z-index: 1;
	box-shadow: var(--wp--custom--elevation--ambientShadow);
}

.single-article-body {
	line-height: 1.75;
}

.tagline-spaced {
    word-spacing: 0.5em;
    letter-spacing: 0.15em;
}
.single-article-body h2,
.single-article-body h3,
.single-article-body h4 {
	color: var(--wp--preset--color--primary);
	margin-top: var(--wp--preset--spacing--10);
	margin-bottom: var(--wp--preset--spacing--4);
	line-height: 1.25;
}

.single-article-body h2 {
	font-size: var(--wp--preset--font-size--title-md);
}

.single-article-body h3 {
	font-size: 1.25rem;
}

.single-article-body ul,
.single-article-body ol {
	padding-left: 1.25rem;
}

.single-article-body li {
	margin-top: 0.35rem;
	margin-bottom: 0.35rem;
}

.single-article-body blockquote {
	border-left: 4px solid var(--wp--preset--color--tertiary);
	padding-left: var(--wp--preset--spacing--6);
	margin-left: 0;
	margin-right: 0;
	font-style: italic;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
}

.single-article-body blockquote cite {
	font-style: normal;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--body-sm);
	color: var(--wp--preset--color--on-surface);
	opacity: 0.85;
}

.single-faq-section .wp-block-details summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--epilogue);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--body-lg);
	color: var(--wp--preset--color--primary);
	list-style: none;
}

.single-faq-section .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.single-faq-section .wp-block-details[open] summary {
	margin-bottom: var(--wp--preset--spacing--2);
}

.single-newsletter-cta .wp-block-search__inside-wrapper {
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--wp--custom--radius--full);
	overflow: hidden;
}

.single-newsletter-cta .wp-block-search__input {
	background: transparent;
	color: var(--wp--preset--color--on-primary);
	border: none;
}

.single-newsletter-cta .wp-block-search__input::placeholder {
	color: rgba(255, 255, 255, 0.65);
}

.single-newsletter-cta .wp-block-search__button {
	background-color: var(--ds-btn-secondary-bg) !important;
	color: var(--ds-btn-secondary-text) !important;
	border: none !important;
	border-radius: var(--wp--custom--radius--full) !important;
	font-weight: 700 !important;
	padding-left: 1.25rem !important;
	padding-right: 1.25rem !important;
}

.single-newsletter-cta .wp-block-search__button:hover {
	background-color: var(--ds-btn-secondary-bg-hover) !important;
	color: var(--ds-btn-secondary-text) !important;
}

.single-related-card__media .wp-block-post-featured-image {
	margin-bottom: 0;
}

.single-related-card__media .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;

	object-fit: cover;
	aspect-ratio: 4 / 3;
}

@media (max-width: 781px) {
	.related-posts-query .wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr;
	}
}

/* ----- Front page: Editorial Picks (Query Loop) — tonal cards, no 1px borders ----- */

/* Reusable front-page section header pattern (label + title). */
.section-header-label {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--tertiary);
	margin-top: 0;
	margin-block-start: 0;
	margin-bottom: var(--wp--preset--spacing--40, 1rem) !important;
}

.section-header-title {
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: 2.5rem;
	font-weight: 900;
	color: var(--wp--preset--color--primary);
	margin-top: -0.2rem;
	margin-block-start: -0.2rem !important; /* overrides wp layout “gap” margins */
	margin-bottom: var(--wp--preset--spacing--4);
}

/* Page intro subtitle (templates/page.html). Class-only `.subtitle-text` ties core
   `.is-layout-constrained > :where(...)` (both 0,1,0) and can lose by stylesheet order; `p` raises specificity. */
p.subtitle-text,
p.subtitle-text.wp-block-paragraph {
	max-width: 720px;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}

.partners-section .section-subheading {
	max-width: 36rem;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.partners-section .partners-grid {
	list-style: none;
	padding: 0;
	margin: var(--wp--preset--spacing--4) 0 0;
}

.partners-section .partners-grid > li {
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}

.partners-section .partner-card {
	position: relative;
	overflow: hidden !important;
	border-radius: var(--wp--custom--radius--xl);
	min-height: 23rem;
	isolation: isolate;
}

.partners-section .partner-card__media,
.partners-section .partner-card .wp-block-post-featured-image.partner-card__media {
	position: absolute;
	inset: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	margin: 0;
}

.partners-section .partner-card__media img,
.partners-section .partner-card .wp-block-post-featured-image.partner-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1);
	transition: transform 0.7s ease;
}

.partners-section .partner-card__overlay {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	text-align: center;
	padding: var(--wp--preset--spacing--6);
	background: rgba(25, 28, 29, 0.62);
	color: var(--wp--preset--color--on-primary);
	transition: background-color 0.35s ease;
}

.partners-section .partner-card:hover .partner-card__media img,
.partners-section .partner-card:hover .wp-block-post-featured-image.partner-card__media img {
	transform: scale(1.1);
}

.partners-section .partner-card:hover .partner-card__overlay {
	background: linear-gradient(to bottom, rgba(25, 28, 29, 0.62) 0%, rgba(25, 28, 29, 0.45) 45%, rgba(25, 28, 29, 0) 100%);
}

.partners-section .partner-card__top {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--preset--spacing--2);
	max-width: 24rem;
}

.partners-section .partner-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--title-md);
	font-weight: 700;
	line-height: 1.2;
	color: var(--wp--preset--color--on-primary);
}

.partners-section .partner-card__content,
.partners-section .partner-card__content .wp-block-post-excerpt__excerpt {
	margin: 0;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
	line-height: 1.5;
	color: var(--wp--preset--color--on-primary);
}

.partners-section .partner-card__content {
	max-width: 28ch;
}

.partners-section .partner-card__link {
	margin: 0;
	position: relative;
	z-index: 4;
	text-align: center;
}

.partners-section .partner-card__cta,
.partners-section .partner-card__link a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--body-sm);
	line-height: 1.3;
	color: var(--wp--preset--color--on-primary);
	text-decoration: none;
	position: relative;
	z-index: 2;
}

.partners-section .partner-card__cta::after,
.partners-section .partner-card__link a::after {
	content: "";
	position: absolute;
	inset: -9999px;
	z-index: 1;
}

.partners-section .partner-card__link-label,
.partners-section .partner-card__cta-icon {
	position: relative;
	z-index: 2;
}

.partners-section .partner-card__cta-icon {
	font-size: 16px;
	line-height: 1;
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

.partners-section .partner-card__cta:hover,
.partners-section .partner-card__cta:focus-visible,
.partners-section .partner-card__link a:hover,
.partners-section .partner-card__link a:focus-visible {
	text-decoration: none;
	opacity: 0.9;
}

.partners-section .partner-card__cta:active,
.partners-section .partner-card__link a:active {
	text-decoration: none;
	opacity: 0.85;
}

.partners-section .partner-card__cta-icon {
	text-decoration: none;
}

/* ----- Front page: Plan Your Perfect Niagara Trip (reference rebuild) ----- */
.plan-trip-hero {
	width: 100%;
}

.plan-trip-hero.plan-trip-hero,
.plan-trip-hero .plan-trip-hero__steps {
	padding-top: 0;
	padding-right: 0;
	padding-bottom: 0;
	padding-left: 0;
}

.plan-trip-hero .plan-trip-hero__cover {
	position: relative;
	min-height: 360px;
	overflow: hidden;
	box-shadow: var(--wp--custom--elevation--ambientShadow);
}

.plan-trip-hero .plan-trip-hero__columns {
	gap: clamp(2.5rem, 5vw, 4rem);
	align-items: center !important;
	margin-top: 0;
	margin-bottom: 0;
}

.plan-trip-hero .plan-trip-hero__content,
.plan-trip-hero .plan-trip-hero__steps-col {
	position: relative;
	z-index: 1;
}

.plan-trip-hero .plan-trip-hero__steps-col {
	display: flex;
	justify-content: center;
}

.plan-trip-hero .plan-trip-hero__steps {
	width: min(100%, 330px);
	padding: 1.15rem 1.15rem 1.25rem;
	border-radius: 1.1rem;
	background: color-mix(in srgb, var(--wp--preset--color--surface-container-lowest) 16%, transparent);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	box-shadow: 0 20px 40px rgba(8, 20, 41, 0.26);
}

.plan-trip-hero .plan-trip-hero__step-list {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: plan-trip-hero-step;
}

.plan-trip-hero .plan-trip-hero__step-list > li {
	counter-increment: plan-trip-hero-step;
	display: flex;
	align-items: center;
	gap: 0.72rem;
	margin: 0;
	padding: 0.56rem 0;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.87rem;
	font-weight: 600;
	line-height: 1.3;
	color: color-mix(in srgb, var(--wp--preset--color--on-primary) 82%, transparent);
}

.plan-trip-hero .plan-trip-hero__step-list > li::before {
	content: counter(plan-trip-hero-step);
	width: 1.8rem;
	height: 1.8rem;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	font-size: 0.74rem;
	font-weight: 700;
	background: rgba(255, 255, 255, 0.18);
	color: var(--wp--preset--color--on-primary);
}

.plan-trip-hero .plan-trip-hero__step-list > li:first-child {
	color: var(--wp--preset--color--on-primary);
}

.plan-trip-hero .plan-trip-hero__step-list > li:first-child::before {
	background: var(--wp--preset--color--secondary-container);
	color: var(--wp--preset--color--primary);
}

@media (max-width: 900px) {
	.plan-trip-hero .plan-trip-hero__cover {
		min-height: 0;
		background-position: center 38%;
	}

	.plan-trip-hero .plan-trip-hero__columns {
		gap: 1.75rem;
	}

	.plan-trip-hero .plan-trip-hero__steps-col {
		justify-content: flex-start;
	}
}

@media (max-width: 781px) {
	.plan-trip-hero {
		display: none !important;
	}

	.plan-trip-hero .plan-trip-hero__cover {
		min-height: auto;
	}

	.plan-trip-hero .plan-trip-hero__steps {
		width: 100%;
	}
}

/* Dedicated CTA card variant in the partners query grid (li.post.partner-card--cta). */
.partners-section .partners-grid > li.partner-card--cta .partner-card {
	background: var(--wp--preset--color--surface-container-lowest);
	border-radius: var(--wp--custom--radius--xl);
	border: 2px dotted color-mix(in srgb, var(--wp--preset--color--outline-variant) 55%, transparent);
	box-shadow: var(--wp--custom--elevation--ambientShadow);
	box-sizing: border-box;
	transition: background 0.2s ease;
}

/* Light blue “spotlight” on hover (entire tile — use li:hover so it works before the stretched-link hit area). */
.partners-section .partners-grid > li.partner-card--cta:hover .partner-card {
	background: radial-gradient(
		circle at 50% 32%,
		color-mix(in srgb, var(--wp--preset--color--surface-container-lowest) 92%, transparent) 0%,
		color-mix(in srgb, var(--wp--preset--color--primary) 11%, var(--wp--preset--color--surface-container-lowest)) 40%,
		color-mix(in srgb, var(--wp--preset--color--primary) 4%, var(--wp--preset--color--surface-container-lowest)) 68%,
		var(--wp--preset--color--surface-container-lowest) 100%
	);
}

.partners-section .partners-grid > li.partner-card--cta .partner-card__media {
	display: none;
}

/* Handshake (Material Symbols, self-hosted in theme) — CTA only; decorative, clicks pass through to stretched link. */
.partners-section .partners-grid > li.partner-card--cta .partner-cta__icon {
	display: inline-block;
	font-size: 1.875rem;
	line-height: 1;
	color: var(--wp--preset--color--primary);
	margin: 0 0 var(--wp--preset--spacing--4) 0;
	pointer-events: none;
	flex-shrink: 0;
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

.partners-section .partners-grid > li.partner-card--cta .partner-card__overlay {
	justify-content: center;
	align-items: center;
	text-align: center;
	/* Icon uses margin-bottom (sketch mb-4); keep modest gap between title block + link. */
	gap: var(--wp--preset--spacing--3);
	min-height: 100%;
	padding: var(--wp--preset--spacing--6);
	background: transparent;
	color: var(--wp--preset--color--on-surface);
}

.partners-section .partners-grid > li.partner-card--cta .partner-card__top {
	flex: 0 1 auto;
	max-width: 30ch;
}

.partners-section .partners-grid > li.partner-card--cta .partner-card__title,
.partners-section .partners-grid > li.partner-card--cta .partner-card__content,
.partners-section .partners-grid > li.partner-card--cta .partner-card__content .wp-block-post-excerpt__excerpt {
	color: var(--wp--preset--color--primary);
}

.partners-section .partners-grid > li.partner-card--cta .partner-card__content {
	max-width: 30ch;
	color: color-mix(in srgb, var(--wp--preset--color--on-surface) 88%, transparent);
}

.partners-section .partners-grid > li.partner-card--cta .partner-card__cta,
.partners-section .partners-grid > li.partner-card--cta .partner-card__link a {
	color: var(--wp--preset--color--primary);
}

/* Sketch-style “LEARN MORE” (uppercase); label stays the same string in PHP for i18n. */
.partners-section .partners-grid > li.partner-card--cta .partner-card__link-label {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 800;
	font-size: var(--wp--preset--font-size--body-sm);
}

.partners-section .partners-grid > li.partner-card--cta .partner-card__cta-icon {
	display: none;
}

.partners-section .partners-grid > li.partner-card--cta .partner-card__cta:hover,
.partners-section .partners-grid > li.partner-card--cta .partner-card__cta:focus-visible,
.partners-section .partners-grid > li.partner-card--cta .partner-card__link a:hover,
.partners-section .partners-grid > li.partner-card--cta .partner-card__link a:focus-visible {
	text-decoration: none !important;
}

@media (max-width: 640px) {
	.partners-section .partner-card {
		min-height: 20rem;
	}

	.partners-section .partner-card__overlay {
		padding: var(--wp--preset--spacing--4);
	}
}

.editorial-picks-query .wp-block-post-template.is-layout-grid {
	gap: var(--wp--preset--spacing--4);
	align-items: stretch !important;
}

.editorial-picks-query .wp-block-post-template > li,
.editorial-picks-query .wp-block-post-template > .wp-block-post {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.editorial-picks-query .wp-block-post-template > li > *,
.editorial-picks-query .wp-block-post-template > .wp-block-post > .wp-block-group {
	display: flex;
	flex-direction: column;
	flex: 1;
	height: 100%;
}

.editorial-picks-query .editorial-card {
	overflow: hidden;
}

.editorial-picks-query .editorial-card__media {
	margin: 0;
	line-height: 0;
}

.editorial-picks-query .editorial-card__media .wp-block-post-featured-image {
	margin: 0;
}

.editorial-picks-query .editorial-card__media .wp-block-post-featured-image a {
	display: block;
}

.editorial-picks-query .editorial-card__media .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--wp--custom--radius--lg) var(--wp--custom--radius--lg) 0 0;
	object-fit: cover;
}

.editorial-picks-query .editorial-card__body .wp-block-post-terms {
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-top: 0;
	margin-bottom: 0.35rem;
}

.editorial-picks-query .editorial-card__body .wp-block-post-terms a {
	color: var(--wp--preset--color--tertiary);
	text-decoration: none;
}

.editorial-picks-query .editorial-card__body .wp-block-post-title {
	margin-top: 0;
	margin-bottom: 0.5rem;
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--title-md);
	font-weight: 700;
	line-height: 1.25;
}

.editorial-picks-query .editorial-card__body .wp-block-post-title a {
	color: var(--wp--preset--color--on-surface);
	text-decoration: none;
}

.editorial-picks-query .editorial-card__body .wp-block-post-excerpt {
	margin-top: 0;
	margin-bottom: 0;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
}

.editorial-picks-query .editorial-card__body .wp-block-post-excerpt .wp-block-post-excerpt__excerpt {
	margin-bottom: 0;
}

.editorial-picks-query .editorial-card__body .wp-block-post-excerpt__more-link {
	font-weight: 700;
	color: var(--wp--preset--color--primary);
	text-decoration: none;
	margin-top: auto;
}

.editorial-picks-query .editorial-card__body .wp-block-post-excerpt__more-link:hover {
	text-decoration: underline;
}

@media (max-width: 1024px) {
	.editorial-picks-query .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.editorial-picks-query .wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr;
	}
}

/* ----- Single post author box (destination-niagara/author-box → parts/author-box.php) ----- */
/* Supports wrapper class from theme file (.single-author-box-wrap) or Site Editor (.author-box-wrapper). */

.single-author-box-wrap,
.author-box-wrapper {
	width: 100%;
}

.single-author-box,
.author-box-wrapper {
	box-sizing: border-box;
}

.single-author-box .author-box,
.author-box-wrapper .author-box {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 1.5rem;
	padding: 0;
	margin: 0;
	background: transparent;
	border-radius: 0;
	box-sizing: border-box;
}

.single-author-box .author-box__media,
.author-box-wrapper .author-box__media {
	flex-shrink: 0;
}

.single-author-box .author-box__avatar,
.author-box-wrapper .author-box__avatar {
	display: block;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
}

.single-author-box .author-box__body,
.author-box-wrapper .author-box__body {
	flex: 1;
	min-width: 0;
}

.single-author-box .author-box__name,
.author-box-wrapper .author-box__name {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--wp--preset--color--on-surface);
}

.single-author-box .author-box__bio,
.author-box-wrapper .author-box__bio {
	margin: 0;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-lg);
	line-height: 1.65;
	color: var(--wp--preset--color--on-surface);
	opacity: 0.85;
}

.single-author-box .author-box__bio p,
.author-box-wrapper .author-box__bio p {
	margin: 0 0 0.75rem;
}

.single-author-box .author-box__bio p:last-child,
.author-box-wrapper .author-box__bio p:last-child {
	margin-bottom: 0;
}

.single-author-box .author-box__socials,
.author-box-wrapper .author-box__socials {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
}

.single-author-box .author-box__social-link,
.author-box-wrapper .author-box__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--primary);
	transition: color 0.2s ease, transform 0.2s ease;
}

.single-author-box .author-box__social-link:hover,
.single-author-box .author-box__social-link:focus-visible,
.author-box-wrapper .author-box__social-link:hover,
.author-box-wrapper .author-box__social-link:focus-visible {
	color: var(--wp--preset--color--primary-container);
	transform: translateY(-1px);
}

.single-author-box .author-box__icon,
.author-box-wrapper .author-box__icon {
	display: block;
	flex-shrink: 0;
}

@media (max-width: 768px) {
	.single-author-box .author-box,
	.author-box-wrapper .author-box {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.single-author-box .author-box__body,
	.author-box-wrapper .author-box__body {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.single-author-box .author-box__socials,
	.author-box-wrapper .author-box__socials {
		justify-content: center;
	}
}

/* Profile photo field (wp-admin user profile) */
.dn-avatar-admin__intro,
.dn-avatar-admin__notice {
	max-width: 48rem;
}

.dn-avatar-admin__preview {
	margin-bottom: 0.75rem;
}

.dn-avatar-admin__preview-img {
	display: block;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
}

/**
 * Site footer (Stitch code.html — tonal surface, no 1px borders; tokens from theme.json).
 * Scoped to .site-footer only.
 */
.site-footer {
	border-top-left-radius: var(--wp--custom--radius--xl);
	border-top-right-radius: var(--wp--custom--radius--xl);
	box-shadow: var(--wp--custom--elevation--ambientShadow);
}

.site-footer .site-footer__columns {
	max-width: var(--wp--style--global--wide-size);
	margin-left: auto;
	margin-right: auto;
}

.site-footer__brand {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--6);
}

.site-footer__ack {
	font-family: var(--wp--preset--font-family--manrope);
	opacity: 0.78;
}

.site-footer__heading {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--4);
}

.site-footer .site-footer__list {
	list-style: none;
	padding-left: 0;
	margin: 0;
}

.site-footer .site-footer__list li {
	margin-bottom: var(--wp--preset--spacing--4);
	line-height: 1.5;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
}

.site-footer .site-footer__list li:last-child {
	margin-bottom: 0;
}

.site-footer .site-footer__list a {
	color: color-mix(in srgb, var(--wp--preset--color--on-surface) 65%, transparent);
	text-decoration: none;
	transition: color 0.2s ease;
}

.site-footer .site-footer__list a:hover,
.site-footer .site-footer__list a:focus-visible {
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

.site-footer__social-icons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--4);
	padding-top: var(--wp--preset--spacing--4);
	margin: 0;
}

.site-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--primary);
	text-decoration: none;
	line-height: 1;
	transition: color 0.2s ease, transform 0.2s ease;
}

.site-footer__social-link:hover,
.site-footer__social-link:focus-visible {
	color: var(--wp--preset--color--primary-container);
	transform: translateY(-1px);
}

.site-footer__social-link .material-symbols-outlined {
	font-size: var(--wp--preset--font-size--title-sm);
}

@media (max-width: 781px) {
	.site-footer .site-footer__columns {
		flex-direction: column;
		gap: var(--wp--preset--spacing--10);
	}

	.site-footer .site-footer__columns > .wp-block-column {
		flex-basis: 100% !important;
	}

	.site-footer {
		padding-top: 20px !important;
	}
}

/* ----- GeoDirectory: GD Search bar ----- */
/* CPT post-type dropdown: hidden after column rules; [class*="col"] excludes .gd-search-field-cpt (see bottom of this section). */

/*
 * Advance Search "Category" field DOM:
 * .gd-search-field-taxonomy.gd-search-field-categories > [data-argument].mb-3 > label + select[name="spost_category[]"]
 * (Keyword / City use .gd-search-field-search / .gd-search-field-near + .input-group-inside — leave their rules below.)
 */
/* 2–5. Zero mb-3 offset; flex-center inner stack; anchor for absolute label. */
.geodir-listing-search.gd-search-bar-style .gd-search-field-categories .mb-3,
.geodir-listing-search.gd-search-bar-style .gd-search-field-categories [data-argument] {
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	width: 100%;
	min-width: 0;
	position: relative;
}

/* 3. Category label fully out of layout flow. */
.geodir-listing-search.gd-search-bar-style .gd-search-field-categories label.visually-hidden,
.geodir-listing-search.gd-search-bar-style .gd-search-field-categories label.form-label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* 4. Category column vertically centers like other bar columns. */
.geodir-listing-search.gd-search-bar-style .gd-search-field-categories {
	display: flex !important;
	align-items: center !important;
}

/* 6. Category select matches keyword/city control height and design tokens. */
.geodir-listing-search.gd-search-bar-style .gd-search-field-categories select.form-select {
	height: 44px;
	min-height: 44px;
	padding: 0.5rem 1rem;
	margin: 0;
	box-sizing: border-box;
	font-family: var(--wp--preset--font-family--manrope), sans-serif;
	font-size: var(--wp--preset--font-size--body-lg, 1rem);
	line-height: 1.25;
	background-color: var(--wp--preset--color--surface-container-low, #f3f4f5);
	border: var(--wp--custom--elevation--ghost-border, 1px solid color-mix(in srgb, var(--wp--preset--color--outline-variant, #c2c6d3) 15%, transparent));
	border-radius: var(--wp--custom--radius--lg, 16px);
	box-shadow: none;
	color: var(--wp--preset--color--on-surface);
	width: 100%;
	appearance: none;
	cursor: pointer;
}

.geodir-listing-search.gd-search-bar-style .gd-search-field-categories select.form-select:focus {
	border-color: color-mix(in srgb, var(--wp--preset--color--outline-variant) 35%, transparent);
	outline: none;
	box-shadow: none;
}

/* 7. Bootstrap column children of the search row — exclude CPT wrapper (it has col-auto; flex was overriding display:none). */
.geodir-listing-search.gd-search-bar-style .geodir-search.row > [class*="col"]:not(.gd-search-field-cpt) {
	display: flex !important;
	align-items: center !important;
}

/*
 * GD Search bar vertical alignment (GeoDirectory bootstrap template).
 * Flex parent is div.geodir-search.row (form is .w-100.d-block; fields live inside .geodir-search).
 * Keyword: .gd-search-field-search > div > .input-group-inside + input
 * City: .gd-search-field-near > div > .input-group-inside + select
 */
.geodir-listing-search.gd-search-bar-style .geodir-search.row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: center;
}

/* Direct field columns (core puts col-auto flex-fill on the same node as each field wrapper). */
.geodir-listing-search.gd-search-bar-style .geodir-search.row > [class*="col"]:not(.gd-search-field-cpt),
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-search,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-near,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-categories {
	display: flex !important;
	align-items: center !important;
	align-self: center !important;
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
}

.geodir-listing-search.gd-search-bar-style .geodir-search.row > [class*="col"]:not(.gd-search-field-cpt) > *,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-search > *,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-near > *,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-categories > * {
	width: 100%;
	min-width: 0;
}

/* Hide Destinations post-type CPT dropdown (.gd-search-input-wrapper.gd-search-field-cpt). Placed after column rules; triple selectors + extras beat AUI/Bootstrap. */
.geodir-listing-search .gd-search-input-wrapper.gd-search-field-cpt,
.geodir-listing-search.gd-search-bar-style .gd-search-input-wrapper.gd-search-field-cpt,
.gd-search-input-wrapper.gd-search-field-cpt {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
}

.geodir-listing-search.gd-search-bar-style .geodir-search.row .btn,
.geodir-listing-search.gd-search-bar-style .geodir-search.row button[type="submit"],
.geodir-listing-search.gd-search-bar-style .geodir-search.row input[type="submit"] {
	min-height: 44px;
	width: auto;
	display: inline-flex;
	align-items: center;
	align-self: center;
}

/* AUI leaves mb-3 on some inner wrappers; strip under keyword/city (CPT wrapper is display:none). */
.geodir-listing-search.gd-search-bar-style .geodir-search.row .gd-search-field-search .mb-3,
.geodir-listing-search.gd-search-bar-style .geodir-search.row .gd-search-field-near .mb-3,
.geodir-listing-search.gd-search-bar-style .geodir-search.row .gd-search-field-search .form-group,
.geodir-listing-search.gd-search-bar-style .geodir-search.row .gd-search-field-near .form-group {
	margin-bottom: 0 !important;
}

/* Keyword + City: inner wrapper around AUI output. */
.geodir-listing-search.gd-search-bar-style .gd-search-field-search > div,
.geodir-listing-search.gd-search-bar-style .gd-search-field-near > div {
	display: flex;
	align-items: center;
	width: 100%;
	min-width: 0;
}

/* Icon + field stacks (AUI): fixed height matches bar controls. */
.geodir-listing-search.gd-search-bar-style .geodir-search .input-group-inside {
	box-sizing: border-box;
	min-height: 44px;
	height: 44px;
	display: flex;
	align-items: center;
}

.geodir-listing-search.gd-search-bar-style .geodir-search .input-group-inside .input-group-text {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	height: 44px;
	padding-left: 0.75rem;
	padding-right: 0.75rem;
	pointer-events: auto;
}

/* Screen-reader labels: out of flow (CPT + any bar labels). */
.geodir-listing-search.gd-search-bar-style .geodir-search label.visually-hidden,
.geodir-listing-search.gd-search-bar-style .geodir-search label.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Align main search inputs + submit with design-system tokens (ghost border, surface-container-low, radius lg). */
.geodir-listing-search.gd-search-bar-style input.form-control,
.geodir-listing-search.gd-search-bar-style select.form-select {
	min-height: 44px;
	height: 44px;
	padding: 0.5rem 1rem;
	box-sizing: border-box;
	margin: 0;
	font-family: var(--wp--preset--font-family--manrope), sans-serif;
	font-size: var(--wp--preset--font-size--body-lg, 1rem);
	line-height: 1.25;
	background-color: var(--wp--preset--color--surface-container-low);
	border: var(--wp--custom--elevation--ghost-border, 1px solid color-mix(in srgb, var(--wp--preset--color--outline-variant) 15%, transparent));
	border-radius: var(--wp--custom--radius--lg, 1rem);
	box-shadow: none;
	color: var(--wp--preset--color--on-surface);
}

.geodir-listing-search.gd-search-bar-style textarea.form-control {
	box-sizing: border-box;
	margin: 0;
	font-family: var(--wp--preset--font-family--manrope), sans-serif;
	font-size: var(--wp--preset--font-size--body-lg, 1rem);
	line-height: 1.25;
	background-color: var(--wp--preset--color--surface-container-low);
	border: var(--wp--custom--elevation--ghost-border, 1px solid color-mix(in srgb, var(--wp--preset--color--outline-variant) 15%, transparent));
	border-radius: var(--wp--custom--radius--lg, 1rem);
	box-shadow: none;
	color: var(--wp--preset--color--on-surface);
}

.geodir-listing-search.gd-search-bar-style input.form-control:focus,
.geodir-listing-search.gd-search-bar-style select.form-select:focus,
.geodir-listing-search.gd-search-bar-style textarea.form-control:focus {
	border-color: color-mix(in srgb, var(--wp--preset--color--outline-variant) 35%, transparent);
	outline: none;
	box-shadow: none;
}

/* City / near: native select chrome off (tokens come from block above). */
.geodir-listing-search.gd-search-bar-style .gd-search-field-near select.form-select,
.geodir-listing-search.gd-search-bar-style .gd-search-input-wrapper.gd-search-field-near select.form-select {
	appearance: none;
	cursor: pointer;
}

.geodir-listing-search.gd-search-bar-style .btn-primary,
.geodir-listing-search.gd-search-bar-style button[type="submit"].btn-primary,
.geodir-listing-search.gd-search-bar-style input[type="submit"].btn-primary,
.geodir-listing-search.gd-search-bar-style button[type="submit"]:not(.btn-close) {
	background-color: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
	border-radius: var(--wp--custom--radius--lg, 1rem);
}

.geodir-listing-search.gd-search-bar-style .btn-primary:hover,
.geodir-listing-search.gd-search-bar-style .btn-primary:focus-visible,
.geodir-listing-search.gd-search-bar-style button[type="submit"].btn-primary:hover,
.geodir-listing-search.gd-search-bar-style button[type="submit"].btn-primary:focus-visible,
.geodir-listing-search.gd-search-bar-style input[type="submit"].btn-primary:hover,
.geodir-listing-search.gd-search-bar-style input[type="submit"].btn-primary:focus-visible,
.geodir-listing-search.gd-search-bar-style button[type="submit"]:not(.btn-close):hover,
.geodir-listing-search.gd-search-bar-style button[type="submit"]:not(.btn-close):focus-visible {
	background-color: var(--wp--preset--color--primary-container);
	border-color: var(--wp--preset--color--primary-container);
	color: var(--wp--preset--color--on-primary);
}

/* GeoDirectory search bar — full-width wrapper, flexible field columns, compact icon submit (replaces prior padding/field restyle). */
.geodir-listing-search {
	max-width: 100% !important;
	width: 100% !important;
}

.geodir-search.row,
.geodir-listing-search.gd-search-bar-style .geodir-search.row {
	flex-wrap: wrap !important;
}

.geodir-search.row > .gd-search-input-wrapper,
.geodir-search.row > .gd-search-field-taxonomy,
.geodir-search.row > .gd-search-field-search,
.geodir-search.row > .gd-search-field-near,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-input-wrapper,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-taxonomy,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-search,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-near {
	min-width: 180px !important;
	flex: 1 1 180px !important;
}

.geodir-search.row > .gd-search-field-search:last-child,
.geodir-listing-search.gd-search-bar-style .geodir-search.row > .gd-search-field-search:last-child {
	flex: 0 0 auto !important;
	min-width: unset !important;
	max-width: 60px !important;
}

.geodir-search .geodir_submit_search,
.geodir-listing-search.gd-search-bar-style .geodir-search .geodir_submit_search {
	width: 48px !important;
	height: 48px !important;
	padding: 0 !important;
	border-radius: 0.5rem !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* GD Search: push input text clear of the icon overlay */
.geodir-listing-search .input-group-inside .input-group-text {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	z-index: 4;
	width: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: auto;
}

.geodir-listing-search .input-group-inside input.form-control,
.geodir-listing-search .input-group-inside select.form-control,
.geodir-listing-search .input-group-inside .form-select {
	padding-left: 2.5rem !important;
}

/* Give each search field column more horizontal breathing room */
.geodir-listing-search .gd-search-field-search,
.geodir-listing-search .gd-search-field-near,
.geodir-listing-search .gd-search-field-categories {
	padding-left: 0.5rem !important;
	padding-right: 0.5rem !important;
}

/* ----- GeoDirectory: listing grid (all archives / [gd_loop]) ----- */
/*
 * Category routes: .geodir-category-list-view + .dn-gd-listing-row on the row (content-archive-listing.php).
 * Block [gd_loop]: wraps in .geodir-loop-container; row may omit .geodir-category-list-view.
 * css_class dn-gd-archive-loop on [gd_loop] targets .geodir-loop-container.dn-gd-archive-loop when GD outputs it.
 */
/* Overrides Bootstrap .row / .row-cols-* on the listing row. <480 1 col; 480–767 2; 768–1199 3; ≥1200 4. */
.geodir-category-list-view.geodir-gridview.row,
.dn-gd-listing-row.geodir-gridview.row,
.geodir-loop-container .row.geodir-gridview,
.geodir-loop-container.dn-gd-archive-loop .row.geodir-gridview {
	display: grid !important;
	gap: 1.5rem !important;
	grid-template-columns: repeat(1, 1fr) !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.geodir-category-list-view.geodir-gridview.row > *,
.dn-gd-listing-row.geodir-gridview.row > *,
.geodir-loop-container .row.geodir-gridview > *,
.geodir-loop-container.dn-gd-archive-loop .row.geodir-gridview > * {
	width: auto !important;
	max-width: none !important;
	flex: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

@media (min-width: 480px) {
	.geodir-category-list-view.geodir-gridview.row,
	.dn-gd-listing-row.geodir-gridview.row,
	.geodir-loop-container .row.geodir-gridview,
	.geodir-loop-container.dn-gd-archive-loop .row.geodir-gridview {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (min-width: 768px) {
	.geodir-category-list-view.geodir-gridview.row,
	.dn-gd-listing-row.geodir-gridview.row,
	.geodir-loop-container .row.geodir-gridview,
	.geodir-loop-container.dn-gd-archive-loop .row.geodir-gridview {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

@media (min-width: 1200px) {
	.geodir-category-list-view.geodir-gridview.row,
	.dn-gd-listing-row.geodir-gridview.row,
	.geodir-loop-container .row.geodir-gridview,
	.geodir-loop-container.dn-gd-archive-loop .row.geodir-gridview {
		grid-template-columns: repeat(4, 1fr) !important;
	}
}

/* GeoDirectory: hide redundant "View all" under paged listings (pagination uses its own wrapper, e.g. [gd_loop_paging] / theme geodirectory/bootstrap/loop/pagination.php — not .geodir-widget-bottom). */
/* Tight scope: only when the bottom bar is a single anchor, so other .geodir-widget-bottom uses are not hidden. */
.geodir-widget-bottom:has(> a.geodir-all-link:only-child) {
	display: none;
}

/* GeoDirectory Pagination — Theme Colors (AyeCode UI: .aui-nav-links > ul.pagination; shared by Things to Do, gd-archive.html [gd_loop_paging], category archives). */
/* Tokens: design-system.md §2–5 + theme.json — primary #0f3663, on-primary, surface-container-lowest/low, on-surface, outline-variant ghost border ~15%. */
.aui-nav-links .pagination .page-item .page-link {
	font-family: "Manrope", sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #0f3663);
	background-color: var(--wp--preset--color--surface-container-lowest, #ffffff);
	border: 1px solid rgba(194, 198, 211, 0.15);
	border-radius: 0.5rem;
	padding: 0.5rem 0.875rem;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.aui-nav-links .pagination .page-item .page-link:hover {
	background-color: var(--wp--preset--color--surface-container-low, #f3f4f5);
	color: var(--wp--preset--color--primary, #0f3663);
}

.aui-nav-links .pagination .page-item .page-link.current.active {
	background-color: var(--wp--preset--color--primary, #0f3663);
	color: var(--wp--preset--color--on-primary, #ffffff);
	border-color: var(--wp--preset--color--primary, #0f3663);
}

.aui-nav-links .pagination .page-item .page-link.dots {
	border: none;
	background: transparent;
	color: var(--wp--preset--color--on-surface, #191c1d);
	cursor: default;
}

.aui-nav-links .pagination .page-item .page-link.next,
.aui-nav-links .pagination .page-item a.next.page-link,
.aui-nav-links .pagination .page-item .page-link.prev,
.aui-nav-links .pagination .page-item a.prev.page-link {
	color: var(--wp--preset--color--primary, #0f3663);
}

/* GeoDirectory Notifications — Theme Colors ([gd_notifications] / .wp-block-geodirectory-geodir-widget-notifications; BSUI alerts: .alert.alert-danger|warning|success|info). */
/* Tokens: design-system.md §2–5 + theme.json — tertiary/error, secondary gold/warning, primary/info, muted success green; ghost borders ~12–15%. */
.wp-block-geodirectory-geodir-widget-notifications .bsui .alert,
.wp-block-geodirectory-geodir-widget-notifications .alert {
	font-family: "Manrope", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	border-radius: var(--wp--custom--radius--lg, 1rem);
	border-width: 1px;
	border-style: solid;
	border-color: rgba(194, 198, 211, 0.15);
}

/* Error — tinted tertiary */
.wp-block-geodirectory-geodir-widget-notifications .bsui .alert-danger,
.wp-block-geodirectory-geodir-widget-notifications .alert-danger {
	background-color: #fdf2f2;
	color: var(--wp--preset--color--tertiary, #720014);
	border-color: rgba(114, 0, 20, 0.12);
}

/* Warning — tinted secondary / on-secondary-container text */
.wp-block-geodirectory-geodir-widget-notifications .bsui .alert-warning,
.wp-block-geodirectory-geodir-widget-notifications .alert-warning {
	background-color: #fef9ec;
	color: var(--wp--preset--color--on-secondary-container, #785a1a);
	border-color: rgba(120, 90, 26, 0.12);
}

/* Success — muted green (not in palette; premium tonal) */
.wp-block-geodirectory-geodir-widget-notifications .bsui .alert-success,
.wp-block-geodirectory-geodir-widget-notifications .alert-success {
	background-color: #f0f7f4;
	color: #1a5c3a;
	border-color: rgba(26, 92, 58, 0.12);
}

/* Info — tinted primary / navy */
.wp-block-geodirectory-geodir-widget-notifications .bsui .alert-info,
.wp-block-geodirectory-geodir-widget-notifications .alert-info {
	background-color: #f0f4f8;
	color: var(--wp--preset--color--primary, #0f3663);
	border-color: rgba(15, 54, 99, 0.12);
}

/* Dismiss controls (BS5 .btn-close uses --bs-btn-close-color + mask; BS4 .close uses text color) */
.wp-block-geodirectory-geodir-widget-notifications .alert .btn-close {
	--bs-btn-close-color: currentColor;
	filter: none;
	opacity: 0.72;
}

.wp-block-geodirectory-geodir-widget-notifications .alert .btn-close:hover {
	opacity: 1;
}

.wp-block-geodirectory-geodir-widget-notifications .alert button.close {
	color: inherit;
	opacity: 0.72;
	text-shadow: none;
}

.wp-block-geodirectory-geodir-widget-notifications .alert button.close:hover {
	opacity: 1;
	color: inherit;
}

.wp-block-geodirectory-geodir-widget-notifications .alert i,
.wp-block-geodirectory-geodir-widget-notifications .alert [class*="fa-"],
.wp-block-geodirectory-geodir-widget-notifications .alert svg {
	color: currentColor;
	fill: currentColor;
}

/* ----- GeoDirectory: Archive Item card — [gd_card_button] / .gd-card-cta + .gd-details-btn ----- */
/* design-system.md §5: primary #0f3663, radius lg (1rem), Manrope 600; hover primary_container #2b4d7c; tonal only (no 1px solid borders). */
.geodir-category-list-view > .geodir-post,
.dn-gd-listing-row > .geodir-post,
.geodir-loop-container .row > .geodir-post {
	display: flex;
	flex-direction: column;
}

/* Equal-height rows: .card.h-100 fills the column; flex column + flex:1 keeps .gd-card-cta pinned with margin-top:auto. */
.geodir-category-list-view .card,
.dn-gd-listing-row .card,
.geodir-loop-container .geodir-post .card {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
}

/* Listing grid only: strip Bootstrap card surface so blocks sit on the page background (DOM: div.card.h-100.p-0…). */
.geodir-category-list-view .card.h-100,
.dn-gd-listing-row .card.h-100,
.geodir-loop-container .geodir-post .card.h-100 {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
}

/* GeoDirectory Archive Item (block markup): post images widget + .geodir-image-container — not .card-img-top / .card-body. */
.geodir-category-list-view .card .geodir-link-image.ratio-16x9,
.dn-gd-listing-row .card .geodir-link-image.ratio-16x9,
.geodir-loop-container .geodir-post .card .geodir-link-image.ratio-16x9 {
	aspect-ratio: 3 / 4 !important;
	--bs-aspect-ratio: unset !important;
	min-height: unset !important;
}

.geodir-category-list-view .card .geodir-image-container img,
.dn-gd-listing-row .card .geodir-image-container img,
.geodir-loop-container .geodir-post .card .geodir-image-container img {
	object-fit: cover !important;
	width: 100% !important;
	height: 100% !important;
	transition: transform 0.4s ease !important;
}

.geodir-category-list-view .card:hover .geodir-image-container img,
.dn-gd-listing-row .card:hover .geodir-image-container img,
.geodir-loop-container .geodir-post .card:hover .geodir-image-container img {
	transform: scale(1.08) !important;
}

.geodir-category-list-view .card .wp-block-geodirectory-geodir-widget-post-images,
.dn-gd-listing-row .card .wp-block-geodirectory-geodir-widget-post-images,
.geodir-loop-container .geodir-post .card .wp-block-geodirectory-geodir-widget-post-images {
	margin-bottom: 1rem;
}

.geodir-category-list-view .card .geodir-image-container,
.dn-gd-listing-row .card .geodir-image-container,
.geodir-loop-container .geodir-post .card .geodir-image-container {
	border-radius: var(--wp--custom--radius--lg, 1rem) !important;
	overflow: hidden !important;
	min-height: unset !important;
}

/* GeoDirectory listing card title (Archive Item — .geodir-entry-title). */
.geodir-category-list-view .card .geodir-entry-title,
.dn-gd-listing-row .card .geodir-entry-title,
.geodir-loop-container .geodir-post .card .geodir-entry-title {
	font-family: "Epilogue", sans-serif !important;
	font-weight: 700 !important;
	font-size: 1.35rem !important;
	margin-top: 0.75rem !important;
	margin-bottom: 0.25rem !important;
}

.geodir-category-list-view .card .geodir-entry-title a,
.dn-gd-listing-row .card .geodir-entry-title a,
.geodir-loop-container .geodir-post .card .geodir-entry-title a {
	color: var(--wp--preset--color--primary, #0f3663) !important;
	text-decoration: none !important;
}

.geodir-category-list-view .card .geodir-entry-title a:hover,
.dn-gd-listing-row .card .geodir-entry-title a:hover,
.geodir-loop-container .geodir-post .card .geodir-entry-title a:hover {
	color: var(--wp--preset--color--primary-container, #2b4d7c) !important;
}

/* GeoDirectory listing card address (Archive Item — .geodir-field-address). */
.geodir-category-list-view .card .geodir_post_meta.geodir-field-address,
.dn-gd-listing-row .card .geodir_post_meta.geodir-field-address,
.geodir-loop-container .geodir-post .card .geodir_post_meta.geodir-field-address {
	font-family: "Manrope", sans-serif !important;
	font-size: 0.8rem !important;
	color: #6b7280 !important;
	margin-bottom: 0.75rem !important;
}

.geodir-category-list-view .card .geodir_post_meta_icon.geodir-i-address i,
.dn-gd-listing-row .card .geodir_post_meta_icon.geodir-i-address i,
.geodir-loop-container .geodir-post .card .geodir_post_meta_icon.geodir-i-address i {
	font-size: 0.75rem !important;
}

/* Post badges / pills on listing cards (GD post badge, Bootstrap .badge). */
.geodir-category-list-view .geodir-post .badge,
.dn-gd-listing-row .geodir-post .badge,
.geodir-loop-container .geodir-post .badge {
	font-family: "Manrope", sans-serif !important;
	font-weight: 600 !important;
	font-size: 0.65rem !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-radius: var(--wp--custom--radius--full, 999px) !important;
	padding: 0.35em 0.65rem !important;
	background: var(--wp--preset--color--surface-container-high, #e9edf3) !important;
	color: var(--wp--preset--color--on-surface, #191c1d) !important;
	border: none !important;
}

/* GeoDirectory listing card View Details (full-width block button). */
.geodir-category-list-view .card .gd-card-cta,
.dn-gd-listing-row .card .gd-card-cta,
.geodir-loop-container .geodir-post .card .gd-card-cta {
	width: 100% !important;
	margin-top: auto !important;
}

.geodir-category-list-view .card a.gd-details-btn,
.dn-gd-listing-row .card a.gd-details-btn,
.geodir-loop-container .geodir-post .card a.gd-details-btn {
	display: block !important;
	width: 100% !important;
	background-color: var(--wp--preset--color--primary, #0f3663) !important;
	color: #ffffff !important;
	text-align: center !important;
	padding: 0.75rem 1.5rem !important;
	border-radius: var(--wp--custom--radius--lg, 1rem) !important;
	font-family: "Manrope", sans-serif !important;
	font-weight: 600 !important;
	font-size: 0.95rem !important;
	text-decoration: none !important;
	border: none !important;
}

.geodir-category-list-view .card a.gd-details-btn:hover,
.dn-gd-listing-row .card a.gd-details-btn:hover,
.geodir-loop-container .geodir-post .card a.gd-details-btn:hover {
	background-color: var(--wp--preset--color--primary-container, #2b4d7c) !important;
	color: #ffffff !important;
}

.gd-card-cta {
	margin-top: auto;
	padding-top: 1rem;
	text-align: center;
}

.gd-details-btn {
	display: inline-block;
	background: var(--wp--preset--color--primary, #0f3663);
	color: #fff;
	padding: 0.625rem 1.5rem;
	border-radius: var(--wp--custom--radius--lg, 1rem);
	text-decoration: none;
	font-family: "Manrope", sans-serif;
	font-weight: 600;
	font-size: 0.875rem;
	transition: background 0.2s ease;
	border: none;
	box-shadow: none;
}

.gd-details-btn:hover {
	background: var(--wp--preset--color--primary-container, #2b4d7c);
	color: #fff;
}

/* =============================================
   MATERIAL SYMBOLS OUTLINED — base rendering
   ============================================= */
.material-symbols-outlined {
	font-family: 'Material Symbols Outlined';
	font-weight: normal;
	font-style: normal;
	font-size: 24px;
	display: inline-block;
	line-height: 1;
	text-transform: none;
	letter-spacing: normal;
	word-wrap: normal;
	white-space: nowrap;
	direction: ltr;
}

/* =============================================
   ICON CIRCLE — benefit / feature cards
   ============================================= */
.icon-circle {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1.5rem;
	transition: transform 0.2s ease;
}

.icon-circle:hover {
	transform: scale(1.1);
}

.icon-circle .material-symbols-outlined {
	font-size: 28px;
}

/* Color variants */
.icon-circle--yellow {
	background-color: #fef3cd;
	color: #785a1a;
}

.icon-circle--blue {
	background-color: #d4e6f9;
	color: #0f3663;
}

.icon-circle--pink {
	background-color: #f8d7da;
	color: #720014;
}

/* Glass variant — for use over hero/cover imagery (matches Stitch bg-white/20 backdrop-blur-md).
 * Self-contained: overrides WP Group block defaults (has-global-padding, is-layout-constrained). */
.icon-circle--glass,
.wp-block-group.icon-circle--glass,
.wp-block-group.icon-circle--glass.has-background {
	width: 48px !important;
	height: 48px !important;
	min-height: 0 !important;
	max-width: 48px !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, 0.20) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.20);
	color: #ffffff;
	flex-shrink: 0;
	box-sizing: border-box;
}

.icon-circle--glass .material-symbols-outlined {
	font-size: 28px;
	color: #ffffff;
	line-height: 1;
}

/* Label wrapper beside icon-circle--glass: strip WP Group padding so it sits tight. */
.icon-circle--glass + .wp-block-group {
	padding: 0 !important;
}

/* Utility: force a flex row Group to fill its parent width.
 * Apply via Additional CSS class(es) in the editor. */
.dn-full-width {
	width: 100% !important;
}

/* Utility: zero out child margins in a vertical flex stack.
 * Apply to a Stack/vertical Group to remove default p/h margin spacing. */
.dn-tight-stack > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Utility: subtle bottom border for list-row dividers (matches Stitch border-on-secondary-container/10). */
.dn-row-divider {
	border-bottom: 1px solid rgba(120, 90, 26, 0.10) !important;
}

/* Utility: remove underline from links.
 * Apply to a parent block — all <a> descendants lose their underline.
 * Or apply directly to a paragraph block containing a link. */
.dn-no-underline a,
a.dn-no-underline,
.is-style-no-underline a,
a.is-style-no-underline {
	text-decoration: none !important;
}

/* Utility: equal-height children in a flex row.
 * Apply to a Row or Columns parent so all direct children match the tallest. */
.dn-equal-height {
	align-items: stretch !important;
}

.dn-equal-height > * {
	height: auto !important;
}

/* Utility: fill parent height.
 * Apply to a child block that should stretch to fill its parent's full height. */
.dn-fill-height {
	height: 100% !important;
}

@media (max-width: 600px) {
	.wp-block-post-content .wp-block-group.dn-fill-height.has-background {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}
}

/* ==========================================================================
 * Border Card Watermark — large faded icon in the top-right of a card.
 *
 * Usage: Add a Paragraph block with is-style-material-icon containing the
 * icon name (e.g. "shield"). Apply "border-card-watermark" as an additional
 * CSS class. The parent Group must have position: relative and overflow: hidden.
 * ========================================================================== */
.border-card-watermark {
	position: absolute !important;
	right: -6rem;
	top: -6rem;
	font-size: 20rem !important;
	line-height: 1 !important;
	opacity: 0.08;
	pointer-events: none;
	color: #ffffff !important;
	margin: 0 !important;
	padding: 0 !important;
	z-index: 0;
}

/* Parent card for watermark — needs relative positioning and clipping */
.border-card-watermark-parent {
	position: relative !important;
	overflow: hidden !important;
}

/* Ensure content inside a watermark card doesn't overlap the icon area */
.border-card-content {
	max-width: 75% !important;
	position: relative;
	z-index: 1;
}

@media (max-width: 1023px) {
	.border-card-content {
		max-width: 100% !important;
	}
}

/* Separator: ensure editor-set color renders on the front-end.
 * Core uses background-color + height:1px for .has-background separators.
 * In vertical flex parents the hr collapses to zero width — force full width. */
.wp-block-separator.has-background {
	border-color: currentColor;
	width: 100%;
	align-self: stretch;
}

.wp-block-separator.has-alpha-channel-opacity {
	opacity: 1;
}

/* =============================================
   UTILITY BACKGROUND CLASSES
   ============================================= */
.has-gold-background { background-color: rgba(255, 214, 138, 0.36); }
.has-pink-background { background-color: rgba(115, 0, 21, 0.28); }
.has-lighter-blue-background { background-color: rgba(44, 78, 125, 0.28); }

/* =============================================
   WEBSITE-ICON — 64px circle for benefit cards
   ============================================= */
.website-icon {
	width: 64px !important;
	height: 64px !important;
	min-width: 64px;
	max-width: 64px;
	min-height: 64px;
	max-height: 64px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	overflow: hidden;
	flex-shrink: 0;
	box-sizing: border-box;
}

/* Override WordPress layout classes that force full width on Group blocks */
.website-icon.is-layout-flow,
.website-icon.is-layout-constrained,
.website-icon.is-layout-flex {
	width: 64px !important;
	max-width: 64px !important;
}

/* Ensure the icon inside is centered and doesn't push the circle wider */
.website-icon > * {
	max-width: 100%;
}

/* Left-align children in card Groups (icon circles, headings, paragraphs) */
.wp-block-group.is-layout-flow > .website-icon,
.wp-block-group.is-layout-constrained > .website-icon {
	margin-left: 0 !important;
	margin-right: auto !important;
}

/* =============================================
   BENEFIT-ICON — Get in Touch page icon circles
   ============================================= */
.benefit-icon {
	width: 64px;
	height: 64px;
	border-radius: 100px;
	background-color: var(--wp--preset--color--surface-container-low, #f3f4f5);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 500ms ease;
}

.benefit-icon .material-symbols-outlined {
	font-size: 32px;
	color: var(--wp--preset--color--primary, #0f3663);
	transition: color 500ms ease;
}

/* Hover: triggered by parent .benefit-card */
.benefit-card {
	transition: box-shadow 500ms ease;
}

.benefit-card:hover {
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.benefit-card:hover .benefit-icon {
	background-color: var(--wp--preset--color--primary, #0f3663);
}

.benefit-card:hover .benefit-icon .material-symbols-outlined {
	color: #ffffff;
}

.benefit-card:hover .benefit-icon .is-style-material-icon,
.benefit-card:hover .benefit-icon p.is-style-material-icon {
	color: #ffffff;
}

/* Benefit card contact details */
.card-email a {
	font-weight: 700;
	text-decoration: none;
}

.card-email a:hover {
	text-decoration: underline;
}

/* =============================================
   EQUAL-HEIGHT CARDS — scoped to .equal-height-cards
   ============================================= */
.equal-height-cards {
	align-items: stretch;
}

.equal-height-cards > .wp-block-column > .wp-block-group {
	height: 100%;
	display: flex;
	flex-direction: column;
}

.equal-height-cards > .wp-block-column > .wp-block-group > p:last-child {
	flex-grow: 1;
}

/* =============================================
   CONTACT-ICON — glassmorphic circle for contact rows
   ============================================= */
.contact-icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.contact-icon .material-symbols-outlined {
	font-size: 20px;
	color: #ffffff;
}

/* =============================================
   CONTACT FORM 7 — Partner page form
   ============================================= */

/* Grid layout — 2-column form (partner page uses .form-grid + .form-field wrappers) */
.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

.form-field.full-width {
	grid-column: 1 / -1;
}

.form-grid .form-field p {
	margin: 0;
}

.form-grid .form-field br {
	display: none;
}

/* Hide CF7 spinner */
.wpcf7-spinner {
	display: none;
}

/* =============================================
   CF7 BASELINE — auto-styles any CF7 form
   without needing .form-grid wrapper divs
   ============================================= */

/* Form container (CF7 block wrapper) */
.wp-block-contact-form-7-contact-form-selector {
	background: var(--wp--preset--color--surface-container-lowest, #ffffff);
	border-radius: var(--wp--custom--radius--xl, 1.5rem);
	padding: var(--wp--preset--spacing--10, 3.5rem);
}

/* Spacing between CF7's default <p> wrappers */
.wpcf7-form p {
	margin: 0 0 1.25rem;
}

.wpcf7-form p:last-of-type {
	margin-bottom: 0;
}

/* Labels */
.wpcf7-form label {
	display: block;
	font-size: var(--wp--preset--font-size--body-sm, 0.875rem);
	font-weight: 700;
	color: var(--wp--preset--color--primary, #0f3663);
	margin-bottom: 0.5rem;
}

/* Hide CF7 auto-inserted <br> between label text and input */
.wpcf7-form label br {
	display: none;
}

/* Inputs, selects, textareas */
.wpcf7-form .wpcf7-form-control:not(.wpcf7-submit) {
	width: 100%;
	background: var(--wp--preset--color--surface-container-low, #f3f4f5);
	border: none;
	border-radius: var(--wp--custom--radius--lg, 1rem);
	padding: 1rem;
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: 1rem;
	color: var(--wp--preset--color--on-surface, #191c1d);
	outline: none;
	transition: box-shadow 0.2s ease;
	box-sizing: border-box;
}

.wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):focus {
	box-shadow: 0 0 0 3px rgba(15, 54, 99, 0.15);
}

/* Select dropdown */
.wpcf7-form select.wpcf7-form-control {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23191c1d' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 12px 8px;
}

/* Textarea */
.wpcf7-form textarea.wpcf7-form-control {
	min-height: 120px;
	resize: vertical;
}

/* Submit button */
.wpcf7-form .wpcf7-submit {
	width: 100%;
	background: var(--wp--preset--color--primary, #0f3663);
	color: var(--wp--preset--color--on-primary, #ffffff);
	padding: 1.25rem;
	border: none;
	border-radius: var(--wp--custom--radius--lg, 1rem);
	font-family: var(--wp--preset--font-family--epilogue, "Epilogue", sans-serif);
	font-weight: 900;
	font-size: 1.125rem;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.1s ease;
	box-shadow: 0 4px 12px rgba(15, 54, 99, 0.25);
}

.wpcf7-form .wpcf7-submit:hover {
	opacity: 0.9;
}

.wpcf7-form .wpcf7-submit:active {
	transform: scale(0.98);
}

/* Responsive */
@media (max-width: 768px) {
	.wp-block-contact-form-7-contact-form-selector {
		padding: var(--wp--preset--spacing--6, 1.75rem);
	}
}

/* Responsive: single column on mobile */
@media (max-width: 768px) {
	.form-grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Newsletter Archive (patterns/newsletter-archive.php)
   Tokens from theme.json — no hardcoded hex values.
   Requirements: 5.5, 5.6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7
   ========================================================================== */

/* --- Newsletter Archive: Global --- */
.na {
	background-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--on-surface);
}

/* --- Hero Section --- */
.na-hero {
	position: relative;
	width: 100%;
	min-height: 480px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background-color: var(--wp--preset--color--primary);
	padding: 0;
}

.na-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--primary-container) 100%);
	opacity: 0.9;
	z-index: 1;
	padding: 0;
	margin: 0;
}

.na-hero__content {
	position: relative;
	z-index: 2;
	text-align: center;
	padding: var(--wp--preset--spacing--12) var(--wp--preset--spacing--4);
	max-width: 800px;
	margin: 0 auto;
}

.na-hero__overline {
	display: block;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 700;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--wp--preset--color--secondary-container);
	margin-bottom: var(--wp--preset--spacing--4);
}

.na-hero__title {
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--display-md);
	font-weight: 900;
	color: var(--wp--preset--color--on-primary);
	letter-spacing: -0.015em;
	line-height: 1.1;
	margin: 0 0 var(--wp--preset--spacing--6);
}

.na-hero__subtitle {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-lg);
	color: var(--wp--preset--color--on-primary);
	opacity: 0.9;
	line-height: 1.6;
	max-width: 600px;
	margin: 0 auto;
}

/* --- Layout: Sidebar + Content --- */
.na-layout {
	max-width: var(--wp--style--global--wide-size, 1400px);
	margin: 0 auto;
	padding: var(--wp--preset--spacing--12) var(--wp--preset--spacing--8);
	display: flex;
	gap: var(--wp--preset--spacing--12);
}

/* --- Sidebar --- */
.na-sidebar {
	width: 260px;
	flex-shrink: 0;
	position: sticky;
	top: 80px;
	align-self: flex-start;
	max-height: calc(100vh - 80px);
	overflow-y: auto;
}

.na-sidebar .sidebar-nav {
	position: static;
	background-color: transparent !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

.na-sidebar__heading {
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--overline);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--wp--preset--color--primary);
	margin: 0 0 var(--wp--preset--spacing--6);
}

.na-sidebar__nav {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--2);
}

.na-sidebar__link {
	display: flex;
	align-items: center;
	gap: 1rem;
	text-decoration: none;
	padding: 0.5rem 0;
	opacity: 0.4;
	transition: opacity 0.2s ease;
}

.na-sidebar__link:hover,
.na-sidebar__link.is-active {
	opacity: 1;
}

.na-sidebar__indicator {
	display: block;
	width: 16px;
	height: 1px;
	background-color: var(--wp--preset--color--outline-variant);
	border-radius: var(--wp--custom--radius--full);
	transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease;
}

.na-sidebar__link:hover .na-sidebar__indicator,
.na-sidebar__link.is-active .na-sidebar__indicator {
	width: 32px;
	height: 2px;
	background-color: var(--wp--preset--color--primary);
}

.na-sidebar__year {
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--title-sm);
	font-weight: 500;
	color: var(--wp--preset--color--on-surface);
}

.na-sidebar__link.is-active .na-sidebar__year {
	font-size: var(--wp--preset--font-size--title-md);
	font-weight: 800;
	color: var(--wp--preset--color--primary);
}

.na-sidebar__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* --- Content Area --- */
.na-content {
	flex-grow: 1;
	min-width: 0;
}

/* --- Year Section --- */
.na-year-section {
	margin-bottom: var(--wp--preset--spacing--16);
	scroll-margin-top: 100px;
}

/* --- Year Header --- */
.na-year-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: var(--wp--preset--spacing--8);
	padding-bottom: var(--wp--preset--spacing--4);
	border-bottom: 1px solid rgba(194, 198, 211, 0.15);
}

.na-year-header__title {
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--display-md);
	font-weight: 900;
	color: var(--wp--preset--color--primary);
	letter-spacing: -0.015em;
	margin: 0;
}

.na-year-header--past .na-year-header__title {
	opacity: 0.7;
}

.na-year-header__badge {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--tertiary);
}

/* --- Featured Card Grid --- */
.na-featured-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--6);
}

/* --- Featured Card --- */
.na-featured-card {
	background-color: var(--wp--preset--color--surface-container-lowest);
	border-radius: var(--wp--custom--radius--xl);
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.na-featured-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 20px 64px rgba(25, 28, 29, 0.08);
}

.na-featured-card:focus-within {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.na-featured-card__image {
	position: relative;
	height: 256px;
	overflow: hidden;
}

.na-featured-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms ease;
}

.na-featured-card:hover .na-featured-card__img {
	transform: scale(1.1);
}

.na-featured-card__image--placeholder {
	width: 100%;
	height: 100%;
	background-color: var(--wp--preset--color--surface-container-high);
}

.na-featured-card__month {
	position: absolute;
	top: var(--wp--preset--spacing--2);
	left: var(--wp--preset--spacing--2);
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--overline);
	font-weight: 700;
	padding: 0.25rem 0.75rem;
	border-radius: 4px;
}

.na-featured-card__body {
	padding: var(--wp--preset--spacing--6);
}

.na-featured-card__title {
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--title-sm);
	font-weight: 800;
	color: var(--wp--preset--color--primary);
	line-height: 1.3;
	margin: 0 0 0.75rem;
}

.na-featured-card__excerpt {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
	color: var(--wp--preset--color--on-surface-variant);
	line-height: 1.6;
	margin: 0 0 var(--wp--preset--spacing--4);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.na-featured-card__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.na-featured-card__issue {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--overline);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--outline-variant);
}

.na-featured-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background-color: var(--wp--preset--color--secondary-container);
	color: var(--wp--preset--color--on-secondary-container);
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 700;
	padding: 0.5rem 1.25rem;
	border-radius: var(--wp--custom--radius--lg);
	text-decoration: none;
	transition: gap 0.2s ease;
}

.na-featured-card__cta:hover {
	gap: 0.75rem;
}

.na-featured-card__cta:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* --- Compact Card List --- */
.na-compact-list {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--4);
}

/* --- Compact Card --- */
.na-compact-card {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--6);
	padding: var(--wp--preset--spacing--4);
	border-radius: var(--wp--custom--radius--xl);
	transition: background-color 0.2s ease;
}

.na-compact-card:hover {
	background-color: var(--wp--preset--color--surface-container-low);
}

.na-compact-card__thumb {
	width: 192px;
	height: 128px;
	border-radius: var(--wp--custom--radius--lg);
	overflow: hidden;
	flex-shrink: 0;
}

.na-compact-card__thumb--placeholder {
	background-color: var(--wp--preset--color--surface-container-high);
}

.na-compact-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.na-compact-card__body {
	flex-grow: 1;
	min-width: 0;
}

.na-compact-card__meta {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
}

.na-compact-card__month {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--overline);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--tertiary);
}

.na-compact-card__dot {
	color: var(--wp--preset--color--outline-variant);
}

.na-compact-card__subtitle {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--overline);
	color: var(--wp--preset--color--on-surface-variant);
}

.na-compact-card__title {
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--title-sm);
	font-weight: 700;
	color: var(--wp--preset--color--primary);
	margin: 0;
}

.na-compact-card__cta {
	flex-shrink: 0;
	display: inline-block;
	padding: 0.75rem 2rem;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: var(--wp--custom--radius--lg);
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.na-compact-card__cta:hover {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
}

.na-compact-card__cta:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* --- Toggle Button --- */
.na-toggle {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--6);
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--body-lg);
	font-weight: 700;
	color: var(--wp--preset--color--primary);
	padding: 0.5rem 0;
}

.na-toggle:hover {
	text-decoration: underline;
	text-underline-offset: 8px;
}

.na-toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.na-toggle__icon {
	font-size: 1.2em;
	line-height: 1;
}

/* --- Subscription CTA --- */
.na-cta {
	margin-top: var(--wp--preset--spacing--16);
	background-color: var(--wp--preset--color--primary);
	padding: var(--wp--preset--spacing--12) var(--wp--preset--spacing--10);
	border-radius: 2rem;
	position: relative;
	overflow: hidden;
}

.na-cta__content {
	position: relative;
	z-index: 1;
	max-width: 640px;
}

.na-cta__title {
	font-family: var(--wp--preset--font-family--epilogue);
	font-size: var(--wp--preset--font-size--display-md);
	font-weight: 900;
	color: var(--wp--preset--color--on-primary);
	letter-spacing: -0.015em;
	line-height: 1.1;
	margin: 0 0 var(--wp--preset--spacing--4);
}

.na-cta__subtitle {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-lg);
	color: var(--wp--preset--color--on-primary-container);
	opacity: 0.9;
	margin: 0 0 var(--wp--preset--spacing--6);
}

.na-cta__form {
	display: flex;
	gap: var(--wp--preset--spacing--2);
}

.na-cta__input {
	flex-grow: 1;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--wp--custom--radius--xl);
	padding: 1rem 1.5rem;
	color: var(--wp--preset--color--on-primary);
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-lg);
}

.na-cta__input::placeholder {
	color: rgba(255, 255, 255, 0.5);
}

.na-cta__input:focus {
	outline: none;
	border-color: var(--wp--preset--color--secondary-container);
	box-shadow: 0 0 0 2px var(--wp--preset--color--secondary-container);
}

.na-cta__button {
	background-color: var(--wp--preset--color--secondary-container);
	color: var(--wp--preset--color--on-secondary-container);
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-lg);
	font-weight: 700;
	padding: 1rem 2.5rem;
	border: none;
	border-radius: var(--wp--custom--radius--xl);
	cursor: pointer;
	transition: transform 0.15s ease;
	white-space: nowrap;
}

.na-cta__button:hover {
	transform: scale(1.05);
}

.na-cta__button:active {
	transform: scale(0.95);
}

.na-cta__button:focus-visible {
	outline: 2px solid var(--wp--preset--color--on-primary);
	outline-offset: 2px;
}

.na-cta__disclaimer {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--overline);
	color: rgba(255, 255, 255, 0.4);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 500;
	margin: var(--wp--preset--spacing--4) 0 0;
}

/* --- Responsive: Featured Grid --- */
@media (max-width: 900px) {
	.na-featured-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.na-featured-grid {
		grid-template-columns: 1fr;
	}

	.na-year-header {
		flex-direction: column;
		gap: 0.5rem;
	}

	.na-year-header__title {
		font-size: var(--wp--preset--font-size--title-md);
	}
}

/* --- Responsive: Compact Cards --- */
@media (max-width: 768px) {
	.na-compact-card {
		flex-direction: column;
		align-items: stretch;
	}

	.na-compact-card__thumb {
		width: 100%;
		height: 180px;
	}

	.na-compact-card__cta {
		align-self: flex-start;
	}
}

/* --- Responsive: Layout (hide sidebar on mobile) --- */
@media (max-width: 1023px) {
	.na-layout {
		flex-direction: column;
	}

	.na-sidebar {
		display: none;
	}
}

/* --- Responsive: CTA form stacking --- */
@media (max-width: 640px) {
	.na-cta__form {
		flex-direction: column;
	}

	.na-cta {
		padding: var(--wp--preset--spacing--8) var(--wp--preset--spacing--4);
	}
}

/* ==========================================================================
 * Sidebar Nav Layout (page-sidebar-nav template)
 *
 * Reusable two-column layout: fixed sidebar rail + scrollable content area.
 * Used for guide pages, newsletter archive, or any page needing anchor nav.
 *
 * The sidebar is position:fixed so the entire page body (post-content +
 * footer) is offset via a body class added by JS when the layout is present.
 * ========================================================================== */

html {
	scroll-behavior: smooth;
}

/* Body offset: applied when .sidebar-nav__links is on the page. */
body.has-sidebar-nav .wp-site-blocks > *:not(header) {
	margin-left: 260px;
}

/* Outer columns wrapper */
.sidebar-nav-layout__columns.wp-block-columns {
	flex-wrap: nowrap !important;
	align-items: flex-start;
	gap: 0 !important;
	/* Reset any margin the body offset adds — the rail handles its own positioning */
	margin-left: 0 !important;
}

/* --- Sidebar rail --- */
.sidebar-nav-layout__rail {
	flex-basis: 260px !important;
	flex-shrink: 0 !important;
	flex-grow: 0 !important;
	max-width: 260px;
}

/* Front-end only: rail takes zero space since sidebar is position:fixed.
 * The fixed .sidebar-nav handles the visual presence. */
body.has-sidebar-nav .sidebar-nav-layout__rail {
	flex-basis: 0 !important;
	width: 0 !important;
	max-width: 0 !important;
	overflow: visible;
	padding: 0 !important;
}

/* Fixed sidebar: pins to left edge of viewport, full height, below header.
 * top is set dynamically by JS to match actual header height.
 * position:fixed only applies on the front-end — editor uses normal flow. */
.sidebar-nav-layout__rail .sidebar-nav {
	position: sticky;
	top: var(--wp--preset--spacing--8);
	max-height: calc(100vh - 6rem);
	overflow-y: auto;
	background-color: var(--wp--preset--color--surface-container-lowest);
	border-top-right-radius: 20px;
	box-shadow: 32px 0 64px rgba(25, 28, 29, 0.06);
	z-index: 39;
	align-items: stretch !important;
}

/* Front-end only: switch to fixed positioning via body class added by PHP. */
body.has-sidebar-nav .sidebar-nav-layout__rail .sidebar-nav {
	position: fixed;
	top: 80px; /* clears sticky header + small gap */
	left: 0;
	width: 260px;
	height: calc(100vh - 80px);
	padding-top: var(--wp--preset--spacing--6);
	padding-left: var(--wp--preset--spacing--2) !important;
	padding-right: var(--wp--preset--spacing--2) !important;
}

/* Content column: no extra margin needed — body offset handles it */
.sidebar-nav-layout__content {
	flex-grow: 1 !important;
	min-width: 0;
}

/* --- Sidebar nav header: remove default group top padding --- */
.sidebar-nav__header.wp-block-group {
	padding-top: 0 !important;
}

/* --- Sidebar nav links --- */
.sidebar-nav__header.wp-block-group {
	padding-top: 0 !important;
}

/* --- Content column: remove default group top padding on first child --- */
.sidebar-nav-layout__content > .wp-block-group:first-child {
	padding-top: 0 !important;
}

/* --- Remove default entry-content bottom padding on sidebar-nav pages --- */
body.has-sidebar-nav .entry-content.wp-block-post-content,
body.has-sidebar-nav .wp-block-post-content {
	padding-bottom: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Remove root padding from wp-site-blocks on sidebar-nav pages so the
 * fixed sidebar doesn't create a double-indent on the content column. */
body.has-sidebar-nav .wp-site-blocks {
	padding-left: 0 !important;
}

body.has-sidebar-nav .sidebar-nav-layout__columns {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.sidebar-nav__links.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.625rem 0.75rem;
	border-radius: var(--wp--custom--radius--lg);
	color: var(--wp--preset--color--on-surface);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 500;
	width: 100%;
	box-sizing: border-box;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.sidebar-nav__links.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content:hover {
	background-color: var(--wp--preset--color--surface-container-low);
	color: var(--wp--preset--color--primary);
}

.sidebar-nav__links.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* Active state — toggled by scroll-spy JS. */
.sidebar-nav__links .wp-block-navigation-item.is-active .wp-block-navigation-item__content,
.sidebar-nav__links p.is-active a {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary) !important;
	font-weight: 600;
}

/* ==========================================================================
 * Sidebar Nav Items — icon + label row buttons
 *
 * Structure: Group (Row) .sidebar-nav-item > Material Icon <p> + Link <p>
 * States: white rest → grey hover → blue active (is-active)
 * ========================================================================== */
.sidebar-nav-item {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 0.75rem !important;
	padding: 0.625rem 0.75rem !important;
	border-radius: var(--wp--custom--radius--lg) !important;
	background-color: transparent;
	cursor: pointer;
	width: 100% !important;
	box-sizing: border-box !important;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
	text-decoration: none;
}

.sidebar-nav-item:hover {
	background-color: var(--wp--preset--color--surface-container-low);
	transform: translateX(4px);
}

.sidebar-nav-item.is-active {
	background-color: var(--wp--preset--color--primary) !important;
	box-shadow: 0 4px 12px rgba(15, 54, 99, 0.3);
}

/* Icon inside nav item */
.sidebar-nav-item .is-style-material-icon,
.sidebar-nav-item p.is-style-material-icon {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 22px;
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: none !important;
	color: var(--wp--preset--color--outline-variant);
	transition: color 0.2s ease;
}

.sidebar-nav-item:hover .is-style-material-icon,
.sidebar-nav-item:hover p.is-style-material-icon {
	color: var(--wp--preset--color--primary);
}

.sidebar-nav-item.is-active .is-style-material-icon,
.sidebar-nav-item.is-active p.is-style-material-icon {
	color: var(--wp--preset--color--on-primary) !important;
}

/* Label text inside nav item */
.sidebar-nav-item p:not(.is-style-material-icon) {
	margin: 0 !important;
	padding: 0 !important;
	flex: 1 1 0% !important;
	min-width: 0 !important;
	font-family: var(--wp--preset--font-family--manrope);
	font-weight: 500;
	color: var(--wp--preset--color--on-surface);
	transition: color 0.2s ease;
}

.sidebar-nav-item p:not(.is-style-material-icon) a {
	color: inherit;
	text-decoration: none;
}

.sidebar-nav-item:hover p:not(.is-style-material-icon),
.sidebar-nav-item:hover p:not(.is-style-material-icon) a {
	color: var(--wp--preset--color--primary);
}

.sidebar-nav-item.is-active p:not(.is-style-material-icon),
.sidebar-nav-item.is-active p:not(.is-style-material-icon) a {
	color: var(--wp--preset--color--on-primary) !important;
	font-weight: 600;
}

/* --- Paragraph-based sidebar links (from pattern) --- */
.sidebar-nav__links {
	width: 100% !important;
}

.sidebar-nav__links p {
	width: 100%;
	margin: 0;
}

.sidebar-nav__links p a {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.625rem 0.75rem;
	border-radius: var(--wp--custom--radius--lg);
	color: var(--wp--preset--color--on-surface);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: inherit;
	font-weight: 500;
	width: 100%;
	box-sizing: border-box;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.sidebar-nav__links p a:hover {
	background-color: var(--wp--preset--color--surface-container-low);
	color: var(--wp--preset--color--primary);
}

.sidebar-nav__links p a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* --- Mobile: hide sidebar, full-width content --- */
@media (max-width: 1023px) {
	.sidebar-nav-layout__columns.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.sidebar-nav-layout__rail {
		display: none;
	}

	.sidebar-nav-layout__content {
		flex-basis: 100% !important;
		max-width: 100%;
		margin-left: 0;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* Tighten cover block padding inside page content on mobile */
	.sidebar-nav-layout__content .wp-block-cover {
		padding: 22px !important;
	}

	/* Stack two-column cards vertically on mobile */
	.sidebar-nav-layout__content .wp-block-columns {
		flex-direction: column !important;
		flex-wrap: wrap !important;
		gap: 1.5rem !important;
	}

	.sidebar-nav-layout__content .wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		overflow: hidden;
	}

	/* Strip padding from columns without a background (transparent wrappers) */
	.sidebar-nav-layout__content .wp-block-columns > .wp-block-column:not(.has-background) {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* Also strip global padding from inner wrappers inside columns */
	.sidebar-nav-layout__content .wp-block-columns > .wp-block-column:not(.has-background) .has-global-padding {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* Columns with a background keep their padding but cap it for mobile */
	.sidebar-nav-layout__content .wp-block-columns > .wp-block-column.has-background {
		padding: 1.25rem !important;
		box-sizing: border-box !important;
		max-width: 100% !important;
	}

	/* Strip inner global padding inside background columns — the column itself provides the padding */
	.sidebar-nav-layout__content .wp-block-columns > .wp-block-column.has-background .has-global-padding {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* Prevent alignfull blocks from breaking out of columns on mobile */
	.sidebar-nav-layout__content .wp-block-column .alignfull {
		margin-left: 0 !important;
		margin-right: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	/* Prevent content overflow on mobile */
	.sidebar-nav-layout__content {
		overflow-x: hidden;
		max-width: 100vw;
	}

	/* Stack flex card layouts (image + content side-by-side) on mobile */
	.sidebar-nav-layout__content .dn-fill-height.is-layout-flex {
		flex-direction: column !important;
		flex-wrap: wrap !important;
		border-radius: 20px !important;
	}

	.sidebar-nav-layout__content .dn-fill-height.is-layout-flex > * {
		flex-basis: auto !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	/* On mobile, always put the image first (top) regardless of DOM order */
	.sidebar-nav-layout__content .dn-fill-height.is-layout-flex > .wp-block-image,
	.sidebar-nav-layout__content .dn-fill-height.is-layout-flex > *:has(> .wp-block-image) {
		order: -1 !important;
	}

	.sidebar-nav-layout__content .dn-fill-height.is-layout-flex .wp-block-image {
		height: 250px !important;
		overflow: hidden;
	}

	.sidebar-nav-layout__content .dn-fill-height.is-layout-flex .wp-block-image img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover;
		border-radius: 20px 20px 0 0 !important;
	}

	.sidebar-nav-layout__columns.wp-block-columns {
		margin-top: 0 !important;
	}

	body.has-sidebar-nav .wp-site-blocks > *:not(header) {
		margin-left: 0;
	}

	body.has-sidebar-nav .sidebar-nav-layout__rail .sidebar-nav {
		position: sticky;
		top: auto;
		left: auto;
		width: auto;
		height: auto;
	}
}

/* Admin bar: offset sidebar top by admin bar height */
.admin-bar.has-sidebar-nav .sidebar-nav-layout__rail .sidebar-nav {
	top: calc(80px + 32px);
	height: calc(100vh - 80px - 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar.has-sidebar-nav .sidebar-nav-layout__rail .sidebar-nav {
		top: calc(80px + 46px);
		height: calc(100vh - 80px - 46px);
	}
}

/* ==========================================================================
 * Utility: equal-width children in a Row group
 * Apply .card-half to each child block via Advanced > Additional CSS class(es)
 * ========================================================================== */
.card-half {
	flex: 1 1 50% !important;
	min-width: 0 !important;
	max-width: 50% !important;
}

/* Ensure images inside card-half don't exceed their container */
.card-half img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

@media (max-width: 600px) {
	.wp-block-post-content .card-half.wp-block-group.is-vertical {
		padding: 14px !important;
	}

	.wp-block-post-content .card-half .wp-block-group.has-global-padding.is-layout-constrained {
		padding-top: 1rem !important;
		padding-bottom: 1rem !important;
	}
}

/* ==========================================================================
 * CTA arrow hover — nudge arrow icon right on row hover
 * Apply .cta-arrow-row to the Row group, .cta-arrow to the icon <p>
 * ========================================================================== */
.cta-arrow {
	transition: transform 0.2s ease !important;
	display: inline-block !important;
}

.cta-arrow-row:hover .cta-arrow {
	transform: translateX(4px) !important;
}

.cta-arrow-row a {
	text-decoration: none !important;
}

/* ==========================================================================
 * Block Style Aliases (is-style-*)
 *
 * These map registered block styles (clickable buttons in the editor Styles
 * panel) to the existing design-system CSS. Each is-style-* selector mirrors
 * the original custom class so both approaches work.
 * ========================================================================== */

/* --- core/group: Icon Circle (Glass) --- */
.wp-block-group.is-style-icon-circle-glass,
.wp-block-group.is-style-icon-circle-glass.has-background {
	width: 48px !important;
	height: 48px !important;
	min-height: 0 !important;
	max-width: 48px !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, 0.20) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.20);
	color: #ffffff;
	flex-shrink: 0;
	box-sizing: border-box;
}

.wp-block-group.is-style-icon-circle-glass .material-symbols-outlined {
	font-size: 28px;
	color: #ffffff;
	line-height: 1;
}

/* --- core/group: Icon Circle color variants --- */
.wp-block-group.is-style-icon-circle-yellow,
.wp-block-group.is-style-icon-circle-blue,
.wp-block-group.is-style-icon-circle-pink {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1.5rem;
	transition: transform 0.2s ease;
}

.wp-block-group.is-style-icon-circle-yellow { background-color: #fef3cd; color: #785a1a; }
.wp-block-group.is-style-icon-circle-blue   { background-color: #d4e6f9; color: #0f3663; }
.wp-block-group.is-style-icon-circle-pink   { background-color: #f8d7da; color: #720014; }

.wp-block-group.is-style-icon-circle-yellow .material-symbols-outlined,
.wp-block-group.is-style-icon-circle-blue .material-symbols-outlined,
.wp-block-group.is-style-icon-circle-pink .material-symbols-outlined {
	font-size: 28px;
}

/* --- core/group: Full Width --- */
.wp-block-group.is-style-full-width {
	width: 100% !important;
}

/* --- core/paragraph: Section Header Label --- */
p.is-style-section-header-label {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--tertiary);
	margin-top: 0;
	margin-block-start: 0;
}

/* --- core/paragraph: Hero Subtext --- */
p.is-style-hero-subtext {
	max-width: 580px;
}

body.home p.is-style-hero-subtext {
	margin-left: auto;
	margin-right: auto;
}

/* --- Max-width constraint styles (Paragraph + Heading) --- */
.is-style-max-narrow { max-width: 50%; }
.is-style-max-medium { max-width: 66%; }
.is-style-max-wide   { max-width: 80%; }
.is-style-max-90     { max-width: 90%; }

/* --- Material Icon paragraph style --- */
p.is-style-material-icon {
	font-family: "Material Symbols Outlined";
	font-weight: normal;
	font-style: normal;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	word-wrap: normal;
	overflow: hidden;
	direction: ltr;
	-webkit-font-feature-settings: "liga";
	-webkit-font-smoothing: antialiased;
}

/* --- Separator thickness styles --- */
.wp-block-separator.is-style-hairline { height: 0.25px !important; }
.wp-block-separator.is-style-fine     { height: 0.5px !important; }
.wp-block-separator.is-style-thin     { height: 1px !important; }
.wp-block-separator.is-style-thick    { height: 3px !important; }

/* =====================================================================
 * Blog Category Filter Bar
 * Dynamic pill-button nav for filtering posts by category on the archive.
 * Block: destination-niagara/blog-category-filter
 * ===================================================================== */
.blog-category-filter {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: var(--wp--preset--spacing--5) var(--wp--preset--spacing--4);
}

.blog-category-filter::-webkit-scrollbar {
	display: none;
}

.blog-category-filter__list {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.625rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.blog-category-filter__pill {
	display: inline-block;
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: var(--wp--preset--font-size--overline, 0.75rem);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	padding: 0.5rem 1.5rem;
	border-radius: 9999px;
	border: 1px solid rgba(194, 198, 211, 0.15);
	background-color: transparent;
	color: var(--wp--preset--color--on-surface-variant, #424751);
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.blog-category-filter__pill:hover {
	border-color: var(--wp--preset--color--secondary-container, #fed488);
	color: var(--wp--preset--color--on-secondary-container, #785a1a);
}

.blog-category-filter__pill:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #0f3663);
	outline-offset: 2px;
}

.blog-category-filter__pill--active {
	background-color: var(--wp--preset--color--secondary-container, #fed488);
	color: var(--wp--preset--color--on-secondary-container, #785a1a);
	border-color: var(--wp--preset--color--secondary-container, #fed488);
}

.blog-category-filter__pill--active:hover {
	background-color: var(--ds-btn-secondary-bg-hover, #ffdea5);
	border-color: var(--ds-btn-secondary-bg-hover, #ffdea5);
}

/* On small screens, allow horizontal scroll instead of wrapping */
@media (max-width: 600px) {
	.blog-category-filter__list {
		flex-wrap: nowrap;
		justify-content: flex-start;
	}

	.blog-category-filter {
		padding-left: var(--wp--preset--spacing--2);
		padding-right: var(--wp--preset--spacing--2);
	}
}

/* =====================================================================
 * Blog Archive Hero — flex layout for bottom-justified filter bar
 * ===================================================================== */
.blog-archive-hero .wp-block-cover__inner-container {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	height: 100%;
	min-height: inherit;
	gap: var(--wp--preset--spacing--6);
}

/* Push the title group to center, filter bar to bottom */
.blog-archive-hero .stories-guides-header {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.blog-archive-hero .blog-category-filter {
	flex-shrink: 0;
	padding-bottom: var(--wp--preset--spacing--6);
}

/* =====================================================================
 * Ghost pill variant — inside Cover blocks (dark background)
 * ===================================================================== */
.wp-block-cover .blog-category-filter__pill {
	background-color: var(--ds-btn-ghost-bg);
	color: var(--ds-btn-ghost-text);
	border: 1px solid var(--ds-btn-ghost-border);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.wp-block-cover .blog-category-filter__pill:hover {
	background-color: var(--ds-btn-ghost-bg-hover);
	color: var(--ds-btn-ghost-text);
	border-color: var(--ds-btn-ghost-border-hover);
}

.wp-block-cover .blog-category-filter__pill:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.85);
	outline-offset: 2px;
}

.wp-block-cover .blog-category-filter__pill--active {
	background-color: var(--wp--preset--color--secondary-container, #fed488);
	color: var(--wp--preset--color--on-secondary-container, #785a1a);
	border-color: var(--wp--preset--color--secondary-container, #fed488);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.wp-block-cover .blog-category-filter__pill--active:hover {
	background-color: var(--ds-btn-secondary-bg-hover, #ffdea5);
	color: var(--wp--preset--color--on-secondary-container, #785a1a);
	border-color: var(--ds-btn-secondary-bg-hover, #ffdea5);
}

/* =====================================================================
 * Featured Story Card (blog archive hero post)
 * ===================================================================== */
.featured-story-card {
	overflow: hidden;
	transition: box-shadow 0.4s ease;
}

.featured-story-card:hover {
	box-shadow: 0 20px 64px rgba(25, 28, 29, 0.06);
}

/* Image: smooth zoom on card hover */
.featured-story-card .wp-block-column:first-child .wp-block-post-featured-image img {
	transition: transform 0.5s ease;
}

.featured-story-card:hover .wp-block-column:first-child .wp-block-post-featured-image img {
	transform: scale(1.05);
}

/* Image column: fill height, rounded left corners only */
.featured-story-card .wp-block-column:first-child {
	flex: 0 0 60% !important;
	max-width: 60%;
	overflow: hidden;
}

.featured-story-card .wp-block-column:first-child .wp-block-post-featured-image {
	height: 100%;
	margin: 0;
}

.featured-story-card .wp-block-column:first-child .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Content column: take remaining space, respect padding */
.featured-story-card .wp-block-column:last-child {
	flex: 1 1 0% !important;
	min-width: 0;
}

/* "Read the Story" link styling */
.featured-story-card .wp-block-post-excerpt__more-text {
	margin-top: var(--wp--preset--spacing--4);
}

.featured-story-card .wp-block-post-excerpt__more-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: var(--wp--preset--font-size--body-sm, 0.875rem);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	text-decoration: none;
	color: var(--wp--preset--color--on-surface, #191c1d);
	transition: color 0.2s ease;
}

.featured-story-card .wp-block-post-excerpt__more-link::after {
	content: "arrow_forward";
	font-family: "Material Symbols Outlined";
	font-size: 1.25rem;
	font-weight: normal;
	font-style: normal;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	color: var(--wp--preset--color--tertiary, #720014);
	display: inline-block;
	transition: transform 0.25s ease;
}

.featured-story-card .wp-block-post-excerpt__more-link:hover::after {
	transform: translateX(6px);
}

.featured-story-card .wp-block-post-excerpt__more-link:hover {
	color: var(--wp--preset--color--on-surface, #191c1d);
}

.featured-story-card .wp-block-post-excerpt__more-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #0f3663);
	outline-offset: 2px;
}

/* Mobile: stack columns vertically */
@media (max-width: 781px) {
	.featured-story-card {
		flex-direction: column !important;
	}

	.featured-story-card .wp-block-column:first-child {
		flex: 0 0 auto !important;
		max-width: 100%;
	}

	.featured-story-card .wp-block-column:last-child {
		flex: 0 0 auto !important;
	}

	.featured-story-card .wp-block-column:first-child .wp-block-post-featured-image img {
		border-radius: var(--wp--custom--radius--xl) var(--wp--custom--radius--xl) 0 0 !important;
	}
}

/* =====================================================================
 * Featured Story Card — category term pills (gold badge style)
 * ===================================================================== */
.featured-story-card .wp-block-post-terms {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}

.featured-story-card .wp-block-post-terms a {
	display: inline-block;
	background-color: var(--wp--preset--color--secondary-container, #fed488);
	color: var(--wp--preset--color--on-secondary-container, #785a1a) !important;
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: var(--wp--preset--font-size--overline, 0.75rem);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	text-decoration: none !important;
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	pointer-events: none;
	cursor: default;
}

/* Hide the comma separator between terms */
.featured-story-card .wp-block-post-terms .wp-block-post-terms__separator {
	display: none;
}

/* =====================================================================
 * Blog Posts Grid — category terms (non-clickable, amber text)
 * ===================================================================== */
.blog-posts-list .wp-block-post-terms a {
	color: var(--wp--preset--color--on-secondary-container, #785a1a) !important;
	text-decoration: none !important;
	pointer-events: none;
	cursor: default;
}

/* Image hover zoom on grid cards */
.blog-posts-list .wp-block-post-featured-image {
	overflow: hidden;
}

.blog-posts-list .wp-block-post-featured-image img {
	transition: transform 0.5s ease;
}

.blog-posts-list .wp-block-post:hover .wp-block-post-featured-image img {
	transform: scale(1.05);
}

/* Title hover color */
.blog-posts-list .wp-block-post-title a {
	text-decoration: none;
	transition: color 0.2s ease;
}

.blog-posts-list .wp-block-post:hover .wp-block-post-title a {
	color: var(--wp--preset--color--primary, #0f3663);
}

/* Blog grid cards — force category + date row onto one line */
.blog-posts-list .wp-block-post-terms {
	flex: 1 1 0% !important;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.blog-posts-list .wp-block-post-date {
	flex: 0 0 auto !important;
	white-space: nowrap;
}

/* =====================================================================
 * Blog Load More button + hidden native pagination
 * ===================================================================== */

/* Hide native pagination (kept in DOM for the JS to read next-page URL) */
.blog-posts-list__pagination {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	padding: 0 !important;
	margin: -1px !important;
}

/* Load More button */
.blog-load-more__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: var(--wp--preset--font-size--overline, 0.75rem);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	padding: 1rem 2.5rem;
	border: 2px solid var(--wp--preset--color--on-surface, #191c1d);
	border-radius: 9999px;
	background: transparent;
	color: var(--wp--preset--color--on-surface, #191c1d);
	cursor: pointer;
	transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.blog-load-more__btn:hover {
	background-color: var(--wp--preset--color--on-surface, #191c1d);
	color: #ffffff;
	transform: translateY(-1px);
}

.blog-load-more__btn:active {
	transform: translateY(0);
}

.blog-load-more__btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #0f3663);
	outline-offset: 2px;
}

.blog-load-more__btn:disabled {
	opacity: 0.6;
	cursor: wait;
}

.blog-load-more__icon {
	font-size: 1.25rem;
	transition: transform 0.25s ease;
}

.blog-load-more__btn:hover .blog-load-more__icon {
	transform: translateY(2px);
}

/* =====================================================================
 * GD Archive: search bar centered between hero and listings
 * ===================================================================== */
.gd-archive-search-bar {
	position: relative;
	z-index: 10;
	margin-top: -28px !important;
	margin-bottom: 0 !important;
}

.gd-archive-search-bar .geodir-listing-search {
	background-color: var(--wp--preset--color--surface-container-lowest, #ffffff);
	border-radius: var(--wp--custom--radius--xl, 1.5rem);
	box-shadow: 0 8px 32px rgba(25, 28, 29, 0.08);
	padding: 0.75rem 1rem;
}

/* GD Archive: remove top margin from listings group below search bar */
.dn-gd-page-shell > .gd-archive-search-bar + .wp-block-group {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
	padding-top: 20px !important;
}

/* GD Search: hide category suggestions dropdown on search field focus */
.gdasac-category {
	display: none !important;
}

/* =====================================================================
 * Navigation dropdown submenu — refined styling
 * ===================================================================== */

/* Dropdown container */
.wp-block-navigation .wp-block-navigation__submenu-container,
.wp-block-navigation .has-child .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--surface-container-lowest, #ffffff) !important;
	border: none !important;
	border-radius: var(--wp--custom--radius--xl, 1.5rem) !important;
	box-shadow: 0 12px 48px rgba(25, 28, 29, 0.12), 0 2px 8px rgba(25, 28, 29, 0.06) !important;
	padding: 0.75rem 0.5rem !important;
	min-width: 240px !important;
	gap: 0 !important;
	overflow: hidden;
}

/* Individual menu items */
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-link__content {
	display: block !important;
	padding: 0.625rem 1.25rem !important;
	border-radius: var(--wp--custom--radius--lg, 1rem) !important;
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif) !important;
	font-size: var(--wp--preset--font-size--body-sm, 0.875rem) !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-transform: none !important;
	color: var(--wp--preset--color--on-surface, #191c1d) !important;
	text-decoration: none !important;
	transition: background-color 0.2s ease, color 0.2s ease !important;
}

/* Hover state — subtle tonal background */
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-link__content:hover {
	background-color: var(--wp--preset--color--surface-container-high, #e9edf3) !important;
	color: var(--wp--preset--color--primary, #0f3663) !important;
}

/* Active/current item */
.wp-block-navigation .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
	background-color: var(--wp--preset--color--primary, #0f3663) !important;
	color: var(--wp--preset--color--on-primary, #ffffff) !important;
	border-radius: var(--wp--custom--radius--lg, 1rem) !important;
}

/* Remove default WP submenu item borders/separators */
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item {
	border: none !important;
	margin: 0 !important;
	padding: 0.125rem 0 !important;
}

/* Smooth open animation */
.wp-block-navigation .wp-block-navigation__submenu-container {
	animation: dn-dropdown-fade 0.2s ease;
}

@keyframes dn-dropdown-fade {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* =====================================================================
 * Section headers — label + title prominence
 * ===================================================================== */
.section-header-label {
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	margin-bottom: 0.5em !important;
}

.section-header-title {
	font-size: clamp(2rem, 4vw, 3rem) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
}

/* Plan Trip hero: wrap copy text sooner */
p.plan-trip-hero__copy {
	max-width: 480px !important;
	width: 480px !important;
}

/* =====================================================================
 * Plan Trip hero: animated step highlight cycle
 * ===================================================================== */
.plan-trip-hero__step-list {
	list-style: none !important;
	counter-reset: step-counter;
	padding-left: 0 !important;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.plan-trip-hero__step-list li {
	counter-increment: step-counter;
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.5rem 0.75rem;
	border-radius: var(--wp--custom--radius--lg, 1rem);
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: 1rem;
	font-weight: 400;
	color: rgba(25, 28, 29, 0.45);
}

/* Number circle */
.plan-trip-hero__step-list li::before {
	content: counter(step-counter);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	font-weight: 700;
	font-size: 0.875rem;
	background-color: rgba(194, 198, 211, 0.35);
	color: rgba(255, 255, 255, 0.7);
}

/* Active state via animation — fill-mode: both ensures 0% state applies during delay */
.plan-trip-hero__step-list li:nth-child(1) { animation: dn-step-text 8s ease infinite 0s both; }
.plan-trip-hero__step-list li:nth-child(2) { animation: dn-step-text 8s ease infinite 2s both; }
.plan-trip-hero__step-list li:nth-child(3) { animation: dn-step-text 8s ease infinite 4s both; }
.plan-trip-hero__step-list li:nth-child(4) { animation: dn-step-text 8s ease infinite 6s both; }

.plan-trip-hero__step-list li:nth-child(1)::before { animation: dn-step-circle 8s ease infinite 0s both; }
.plan-trip-hero__step-list li:nth-child(2)::before { animation: dn-step-circle 8s ease infinite 2s both; }
.plan-trip-hero__step-list li:nth-child(3)::before { animation: dn-step-circle 8s ease infinite 4s both; }
.plan-trip-hero__step-list li:nth-child(4)::before { animation: dn-step-circle 8s ease infinite 6s both; }

/* Text animation: muted white → bold white → muted white */
@keyframes dn-step-text {
	0%, 5% {
		color: rgba(255, 255, 255, 0.5);
		font-weight: 400;
		font-size: 1rem;
	}
	8%, 20% {
		color: #ffffff;
		font-weight: 700;
		font-size: 1.15rem;
	}
	25%, 100% {
		color: rgba(255, 255, 255, 0.5);
		font-weight: 400;
		font-size: 1rem;
	}
}

/* Circle animation: muted grey → yellow with black number → muted grey */
@keyframes dn-step-circle {
	0%, 5% {
		background-color: rgba(194, 198, 211, 0.35);
		color: rgba(255, 255, 255, 0.7);
	}
	8%, 20% {
		background-color: var(--wp--preset--color--secondary-container, #fed488);
		color: var(--wp--preset--color--on-surface, #191c1d);
	}
	25%, 100% {
		background-color: rgba(194, 198, 211, 0.35);
		color: rgba(255, 255, 255, 0.7);
	}
}

/* =====================================================================
 * Page Hero — conditional featured image hero with meta fields
 * ===================================================================== */
.page-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.page-hero .wp-block-cover__image-background {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.page-hero .wp-block-cover__background {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.page-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--4);
}

.page-hero__content {
	text-align: center;
}

@media (max-width: 600px) {
	.page-hero__content {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

.page-hero__pre-header {
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--secondary-container, #fed488);
	margin: 0 0 2rem;
}

.page-hero__title {
	font-family: var(--wp--preset--font-family--epilogue, "Epilogue", sans-serif);
	font-size: clamp(2.25rem, 5vw, 4.8rem);
	font-weight: 800;
	line-height: 1.1;
	color: #ffffff;
	margin: 0;
	text-shadow: 0 4px 24px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);
}

.page-hero__post-header {
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: clamp(1rem, 2vw, 1.35rem);
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.9);
	margin: 1.5rem 0 0;
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
}

/* Page Hero overlay — subtle dark tint for text readability */
.page-hero__overlay {
	background: rgba(0, 0, 0, 0.4) !important;
	opacity: 1 !important;
}

/* GD Archive Hero — pre-header and description (mirrors page-hero styling) */
.gd-archive-hero__pre-header {
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--secondary-container, #fed488);
	margin: 0 0 2rem;
}

.gd-archive-hero .wp-block-query-title {
	font-family: var(--wp--preset--font-family--epilogue, "Epilogue", sans-serif);
	font-size: clamp(2.25rem, 5vw, 4.8rem);
	font-weight: 800;
	line-height: 1.1;
	color: #ffffff;
	text-shadow: 0 4px 24px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);
	margin-top: 1rem;
}

.gd-archive-hero__description {
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
	font-size: clamp(1rem, 2vw, 1.35rem);
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.9);
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 1.5rem;
}

.gd-archive-hero .wp-block-cover__background {
	background: rgba(0, 0, 0, 0.4) !important;
	opacity: 1 !important;
}

/* Remove block gap margin above footer */
.wp-site-blocks > footer.wp-block-template-part {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

/* Page Hero — left aligned variant */
.page-hero--left .page-hero__content {
	text-align: left;
}

.page-hero--left .page-hero__post-header {
	margin-left: 0;
	margin-right: auto;
}

/* Page Hero — left aligned pre-header as yellow pill */
.page-hero--left .page-hero__pre-header {
	display: inline-block;
	background-color: var(--wp--preset--color--secondary-container, #fed488);
	color: var(--wp--preset--color--on-secondary-container, #785a1a);
	padding: 0.3rem 1rem;
	border-radius: 9999px;
	font-size: 0.75rem !important;
}

/* Page Hero — left aligned: bigger title, constrained width */
.page-hero--left .page-hero__title {
	font-size: clamp(3rem, 8vw, 6rem) !important;
	max-width: 10ch;
}

/* Press releases list — title link hover */
.press-releases-list .wp-block-post-title a:hover,
.press-featured-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--tertiary, #720014) !important;
}

/* Primary button on primary/dark background — use Primary B style instead */

/* =====================================================================
 * Primary A — yellow hover
 * ===================================================================== */
body .wp-site-blocks .wp-block-button.is-style-primary-a .wp-block-button__link,
body .wp-site-blocks .wp-block-button.is-style-primary-a .wp-block-button__link.wp-element-button {
	background-color: var(--ds-btn-primary-bg) !important;
	color: var(--ds-btn-primary-text) !important;
}

body .wp-site-blocks .wp-block-button.is-style-primary-a .wp-block-button__link:hover,
body .wp-site-blocks .wp-block-button.is-style-primary-a .wp-block-button__link.wp-element-button:hover {
	background-color: var(--wp--preset--color--secondary-container, #fed488) !important;
	color: var(--wp--preset--color--on-secondary-container, #785a1a) !important;
	transform: translateY(-1px);
}

body .wp-site-blocks .wp-block-button.is-style-primary-a .wp-block-button__link:active,
body .wp-site-blocks .wp-block-button.is-style-primary-a .wp-block-button__link.wp-element-button:active {
	background-color: #f0c878 !important;
	color: var(--wp--preset--color--on-secondary-container, #785a1a) !important;
	transform: translateY(0);
}

/* =====================================================================
 * Primary B — lighter blue hover
 * ===================================================================== */
body .wp-site-blocks .wp-block-button.is-style-primary-b .wp-block-button__link,
body .wp-site-blocks .wp-block-button.is-style-primary-b .wp-block-button__link.wp-element-button {
	background-color: var(--ds-btn-primary-bg) !important;
	color: var(--ds-btn-primary-text) !important;
}

body .wp-site-blocks .wp-block-button.is-style-primary-b .wp-block-button__link:hover,
body .wp-site-blocks .wp-block-button.is-style-primary-b .wp-block-button__link.wp-element-button:hover {
	background-color: var(--wp--preset--color--primary-container, #2b4d7c) !important;
	color: var(--wp--preset--color--on-primary, #ffffff) !important;
	transform: translateY(-1px);
}

body .wp-site-blocks .wp-block-button.is-style-primary-b .wp-block-button__link:active,
body .wp-site-blocks .wp-block-button.is-style-primary-b .wp-block-button__link.wp-element-button:active {
	background-color: #1a3a5e !important;
	color: var(--wp--preset--color--on-primary, #ffffff) !important;
	transform: translateY(0);
}

/* Footer — menu links hover to tertiary red */
footer.wp-block-template-part a:hover {
	color: var(--wp--preset--color--tertiary, #720014) !important;
}

/* Hide the floating reCAPTCHA v3 badge.
   Per Google's terms, a text attribution must appear near any protected form:
   "This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply." */
.grecaptcha-badge {
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* ==========================================================================
 * Single Newsletter (Newsletter Glue) — constrain content width
 * ========================================================================== */
body.single-newsletterglue .wp-block-post-content > * {
	max-width: 660px;
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
 * Constant Contact Subscribe Form — inline styled (.dn-cc-subscribe)
 * ========================================================================== */

/* Form layout: CSS grid */
.ctct-form-wrapper .dn-cc-subscribe.ctct-form,
.dn-cc-subscribe .ctct-form {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
	max-width: 560px;
	margin: 0 auto;
}

/* Email field — full width */
.dn-cc-subscribe .ctct-form-field-email,
.dn-cc-subscribe.ctct-form .ctct-form-field-email {
	grid-column: 1 / -1;
}

/* Submit — full width */
.dn-cc-subscribe .ctct-form-field-submit,
.dn-cc-subscribe.ctct-form .ctct-form-field-submit {
	grid-column: 1 / -1;
}

/* Hidden elements — full width */
.dn-cc-subscribe .ctct-list-selector,
.dn-cc-subscribe.ctct-form .ctct-list-selector,
.dn-cc-subscribe .ctct_usage,
.dn-cc-subscribe.ctct-form .ctct_usage {
	grid-column: 1 / -1;
}

/* Reset paragraph margins */
.dn-cc-subscribe p.ctct-form-field,
.dn-cc-subscribe.ctct-form p.ctct-form-field {
	margin: 0 !important;
}

/* All text inputs — pill shaped */
.dn-cc-subscribe input[type="email"],
.dn-cc-subscribe input[type="text"]:not(.ctct_usage_field),
.dn-cc-subscribe.ctct-form input[type="email"],
.dn-cc-subscribe.ctct-form input[type="text"]:not(.ctct_usage_field) {
	width: 100% !important;
	padding: 0.85rem 1.25rem !important;
	border: 1px solid var(--wp--preset--color--outline-variant, #c2c6d3) !important;
	border-radius: var(--wp--custom--radius--full, 9999px) !important;
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif) !important;
	font-size: 0.95rem !important;
	color: var(--wp--preset--color--on-surface, #191c1d) !important;
	background: var(--wp--preset--color--surface-container-lowest, #fff) !important;
	outline: none;
	box-sizing: border-box !important;
	transition: border-color 0.2s ease;
}

.dn-cc-subscribe input[type="email"]:focus,
.dn-cc-subscribe input[type="text"]:focus {
	border-color: var(--wp--preset--color--primary, #0f3663) !important;
}

/* Submit button — pill shaped, primary color */
.dn-cc-subscribe .ctct-submit,
.dn-cc-subscribe.ctct-form .ctct-submit {
	width: 100% !important;
	padding: 0.85rem 2rem !important;
	border: none !important;
	border-radius: var(--wp--custom--radius--full, 9999px) !important;
	background: var(--wp--preset--color--primary, #0f3663) !important;
	color: var(--wp--preset--color--on-primary, #fff) !important;
	font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif) !important;
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.dn-cc-subscribe .ctct-submit:hover,
.dn-cc-subscribe.ctct-form .ctct-submit:hover {
	background: var(--wp--preset--color--primary-container, #2b4d7c) !important;
}

/* Mobile: stack all fields */
@media (max-width: 600px) {
	.ctct-form-wrapper .dn-cc-subscribe.ctct-form,
	.dn-cc-subscribe .ctct-form,
	.dn-cc-subscribe.ctct-form {
		grid-template-columns: 1fr;
	}
}

/* Constant Contact form — hide hidden inputs from grid */
.dn-cc-subscribe .ctct-form input[type="hidden"] {
	display: none;
}

/* Constant Contact form inside the single post newsletter CTA (navy background) */
.single-newsletter-cta .ctct-form-wrapper,
.single-newsletter-cta .ctct-form {
	color: var(--wp--preset--color--on-primary, #ffffff) !important;
}

.single-newsletter-cta .ctct-form .ctct-submit {
	background: var(--wp--preset--color--secondary-container, #fed488) !important;
	color: var(--wp--preset--color--on-secondary-container, #785a1a) !important;
}

.single-newsletter-cta .ctct-form .ctct-submit:hover {
	filter: brightness(0.92);
}

.single-newsletter-cta .ctct-disclosure,
.single-newsletter-cta .ctct-disclosure a {
	color: rgba(255, 255, 255, 0.65) !important;
}

/* Related Stories cards — vertical spacing between text elements */
.related-posts-query .wp-block-post-terms {
	margin-top: 0.75rem;
	margin-bottom: 0;
	font-size: 0.65rem !important;
}

.related-posts-query .wp-block-post-terms a {
	color: var(--wp--preset--color--tertiary, #720014);
	text-decoration: none;
}

.related-posts-query .wp-block-post-title {
	margin-top: 1rem;
	margin-bottom: 0;
	line-height: 1.2;
}

.related-posts-query .wp-block-post-excerpt {
	margin-top: 0.5rem;
}

/* Read More link spacing in Related Stories cards */
.related-posts-query .wp-block-read-more {
	margin-top: 20px;
}

/* Contact card icon — turn white when icon circle background goes dark on hover */
.benefit-card:hover .is-style-material-icon,
.benefit-card:hover p.is-style-material-icon {
	color: #ffffff !important;
}
