/*
Theme Name: Glow Reviews
Theme URI: https://glowreviews.net/
Author: motiraj
Author URI: https://profiles.wordpress.org/motiraj/
Description: Complete, zero-dependency WordPress block theme for the Glow Reviews plugin. Designed for speed, WCAG 2.2 AA accessibility, answer-first content, and rich structured data.
Version: 1.0.4
Requires at least: 5.2
Tested up to: 7.0.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: glowreviews
Tags: block-patterns, full-site-editing, custom-colors, custom-spacing, editor-style, responsive-layout, accessibility-ready
*/

/* -------------------------------------------------------------------------
 * Base Utilities & Accessibility
 * ------------------------------------------------------------------------- */

/* Skip Link */
.gr-skip-link {
	position: absolute;
	top: -999px;
	left: 1rem;
	z-index: 100000;
	padding: 0.75rem 1.25rem;
	background: var(--wp--preset--color--emerald, #2f6b4f);
	color: #ffffff;
	font-weight: 600;
	text-decoration: none;
	border-radius: 0 0 8px 8px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
	transition: top 0.2s ease-in-out;
}

.gr-skip-link:focus {
	top: 0;
	outline: 3px solid var(--wp--preset--color--amber, #ffb868);
	outline-offset: 2px;
}

/* Global Focus Ring (WCAG 2.2 AA) */
:focus-visible {
	outline: 3px solid var(--wp--preset--color--emerald, #2f6b4f);
	outline-offset: 2px;
}

/* Headings Overflow & Responsive Wrapping */
h1, h2, h3, h4, h5, h6,
.wp-block-heading,
.wp-block-post-title {
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: manual;
}

/* Dark section focus ring */
.has-night-background :focus-visible,
.has-night-2-background :focus-visible,
.has-night-3-background :focus-visible,
[data-theme-surface="dark"] :focus-visible {
	outline-color: var(--wp--preset--color--amber, #ffb868);
}

/* Motion Preferences */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Subtle Scroll Reveal (progressive enhancement) */
@media not (prefers-reduced-motion: reduce) {
	.gr-reveal {
		opacity: 0;
		transform: translateY(16px);
		transition: opacity 280ms cubic-bezier(0.16, 1, 0.3, 1), transform 280ms cubic-bezier(0.16, 1, 0.3, 1);
		will-change: opacity, transform;
	}

	.gr-reveal.is-revealed {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Inline Links */
.has-base-background a,
.has-paper-background a,
.has-sand-background a {
	color: var(--wp--preset--color--secondary, #2f6b4f);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1.5px;
}

.has-base-background a:hover,
.has-paper-background a:hover,
.has-sand-background a:hover {
	color: var(--wp--preset--color--primary, #b45f00);
}

.has-night-background a,
.has-night-2-background a,
.has-night-3-background a {
	color: var(--wp--preset--color--amber, #ffb868);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.has-night-background a:hover,
.has-night-2-background a:hover,
.has-night-3-background a:hover {
	color: #ffffff;
}

/* Footer Links & Navigation Polish (No Underline by Default) */
footer a,
footer .wp-block-list a,
footer .wp-block-navigation a,
footer p a {
	text-decoration: none !important;
	transition: color 0.15s ease, opacity 0.15s ease;
}

footer a:hover,
footer .wp-block-list a:hover,
footer .wp-block-navigation a:hover,
footer p a:hover {
	text-decoration: underline !important;
	color: #ffffff !important;
}

/* Navigation items without underline */
header .wp-block-navigation .wp-block-navigation__container {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: clamp(0.75rem, 1.3vw, 1.5rem) !important;
	margin: 0 !important;
	padding: 0 !important;
}

header .wp-block-navigation-item {
	white-space: nowrap !important;
	display: inline-flex !important;
	align-items: center !important;
}

.wp-block-navigation .wp-block-navigation-item__content {
	text-decoration: none !important;
	white-space: nowrap !important;
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	padding: 0.35rem 0.45rem !important;
}

.wp-block-navigation .wp-block-navigation-item__content:hover {
	text-decoration: underline !important;
	color: var(--wp--preset--color--amber, #FFB868) !important;
}

/* Button & Touch Target Polish */
.wp-element-button,
.wp-block-button__link {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	transition: background-color 0.15s ease, transform 0.1s ease;
	text-decoration: none !important;
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	transform: translateY(-1px);
}

/* Quick Facts & Feature Tables */
.gr-facts-table table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	border: 1px solid var(--wp--preset--color--outline, #d5c3b5);
	border-radius: 12px;
	overflow: hidden;
}

.gr-facts-table th,
.gr-facts-table td {
	padding: 0.875rem 1.25rem;
	text-align: left;
	border-bottom: 1px solid var(--wp--preset--color--outline, #d5c3b5);
}

.gr-facts-table th {
	background: var(--wp--preset--color--sand, #eedfcf);
	font-weight: 600;
	width: 32%;
}

.gr-facts-table tr:last-child td {
	border-bottom: none;
}

/* FAQ Details Block Styling */
details.wp-block-details {
	background: var(--wp--preset--color--paper, #faebdb);
	border: 1px solid var(--wp--preset--color--outline, #d5c3b5);
	border-radius: 12px;
	padding: 1rem 1.25rem;
	margin-bottom: 1rem;
	transition: border-color 0.2s ease;
}

details.wp-block-details[open] {
	border-color: var(--wp--preset--color--secondary, #2f6b4f);
}

details.wp-block-details summary {
	font-weight: 600;
	font-size: 1.125rem;
	cursor: pointer;
	padding-right: 1.5rem;
	list-style-position: outside;
}

details.wp-block-details summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary, #2f6b4f);
	outline-offset: 4px;
	border-radius: 4px;
}

/* Code Snippet with Copy Button */
.gr-code-wrapper {
	position: relative;
	margin: 1.25rem 0;
}

.gr-code-copy-btn {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	background: rgba(255, 255, 255, 0.15);
	color: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 6px;
	padding: 0.25rem 0.6rem;
	font-size: 0.75rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.gr-code-copy-btn:hover {
	background: rgba(255, 255, 255, 0.3);
}

/* YouTube Facade (Zero third-party script on load) */
.gr-youtube-facade {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000000;
	border-radius: 16px;
	overflow: hidden;
	cursor: pointer;
}

.gr-youtube-facade img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gr-youtube-facade .gr-play-btn {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 68px;
	height: 48px;
	background: #ff0000;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
	transition: transform 0.15s ease, background-color 0.15s ease;
}

.gr-youtube-facade:hover .gr-play-btn {
	transform: translate(-50%, -50%) scale(1.08);
	background: #cc0000;
}

.gr-youtube-facade .gr-play-btn svg {
	width: 24px;
	height: 24px;
	fill: #ffffff;
}

/* -------------------------------------------------------------------------
 * Documentation 2-Column Responsive Layout & Tables
 * ------------------------------------------------------------------------- */
.gr-docs-container {
	width: 100%;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

@media (min-width: 960px) {
	.gr-docs-container {
		display: grid !important;
		grid-template-columns: 280px minmax(0, 1fr) !important;
		gap: 3.5rem !important;
		align-items: start !important;
	}

	.gr-docs-sidebar {
		position: sticky !important;
		top: 88px !important;
		max-height: calc(100vh - 100px);
		overflow-y: auto;
	}

	.gr-docs-toggle-btn {
		display: none !important;
	}

	.gr-docs-sidebar-content {
		display: block !important;
	}
}

@media (max-width: 959px) {
	.gr-docs-sidebar {
		margin-bottom: 2rem !important;
	}

	.gr-docs-sidebar-title {
		display: none !important;
	}

	.gr-docs-toggle-btn {
		display: flex !important;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		background: none;
		border: none;
		font-size: 1rem;
		font-weight: 700;
		color: var(--wp--preset--color--ink, #231A10);
		cursor: pointer;
		padding: 0.25rem 0;
	}

	.gr-docs-sidebar-content {
		display: none;
		margin-top: 1rem;
		padding-top: 0.75rem;
		border-top: 1px solid var(--wp--preset--color--outline, #D5C3B5);
	}

	.gr-docs-sidebar.is-open .gr-docs-sidebar-content {
		display: block !important;
	}

	.gr-docs-sidebar.is-open .gr-docs-chevron {
		transform: rotate(180deg);
	}
}

.gr-docs-content {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* Documentation Content Typography */
.gr-docs-content h1,
.gr-docs-content .wp-block-heading:first-of-type {
	font-family: var(--wp--preset--font-family--heading, "Bricolage Grotesque", sans-serif);
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	line-height: 1.2;
	color: var(--wp--preset--color--ink, #231A10);
	margin-top: 0.5rem;
	margin-bottom: 1rem;
}

.gr-docs-content h2 {
	font-family: var(--wp--preset--font-family--heading, "Bricolage Grotesque", sans-serif);
	font-size: 1.5rem;
	margin-top: 2.5rem;
	margin-bottom: 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--wp--preset--color--outline, #D5C3B5);
	color: var(--wp--preset--color--ink, #231A10);
}

/* Documentation Tables: Professional & Responsive */
.gr-docs-content .wp-block-table {
	width: 100%;
	margin: 1.5rem 0 2.5rem;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border: 1px solid var(--wp--preset--color--outline, #D5C3B5);
	border-radius: 12px;
	background: var(--wp--preset--color--base, #FFF8F0);
}

.gr-docs-content table {
	width: 100%;
	min-width: 620px;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.gr-docs-content th,
.gr-docs-content td {
	padding: 0.85rem 1.15rem;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--wp--preset--color--outline, #D5C3B5);
}

.gr-docs-content th {
	background: var(--wp--preset--color--sand, #EEDFCF);
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink, #231A10);
}

.gr-docs-content tr:last-child td {
	border-bottom: none;
}

.gr-docs-content td:first-child code {
	font-weight: 700;
	color: var(--wp--preset--color--primary, #B45F00);
	background: rgba(180, 95, 0, 0.08);
	padding: 0.15rem 0.4rem;
	border-radius: 4px;
}

/* Sidebar Nav Hover & Active */
.gr-docs-nav-list a {
	color: var(--wp--preset--color--ink, #231A10);
	transition: background-color 0.15s ease, color 0.15s ease;
}

.gr-docs-nav-list a:hover {
	background: var(--wp--preset--color--sand, #EEDFCF);
	color: var(--wp--preset--color--primary, #B45F00);
}

.gr-docs-nav-list a.is-active,
.gr-docs-nav-list a[aria-current="page"] {
	background: var(--wp--preset--color--sand, #EEDFCF);
	color: var(--wp--preset--color--primary, #B45F00);
	font-weight: 700;
	border-left: 3px solid var(--wp--preset--color--primary, #B45F00);
	padding-left: 0.5rem;
}

/* Custom Logo Styling */
.wp-block-site-logo img,
.custom-logo {
	max-height: 48px;
	width: auto;
	object-fit: contain;
	display: block;
	border-radius: 6px;
}

.wp-block-site-logo {
	margin: 0;
	display: flex;
	align-items: center;
}

:root {
	--gr-header-height: 73px;
}

@media (max-width: 959px) {
	:root {
		--gr-header-height: 62px;
	}
}

/* -------------------------------------------------------------------------
 * Full-Width Layout & Fixed Header / Footer
 * ------------------------------------------------------------------------- */
html {
	margin: 0;
	padding: 0;
	width: 100%;
	min-height: 100vh;
	overflow-x: clip;
	scroll-padding-top: calc(var(--gr-header-height, 73px) + 80px);
}

body {
	margin: 0;
	padding: 0;
	width: 100%;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	overflow-x: clip;
}

.wp-site-blocks {
	flex: 1 0 auto;
	width: 100%;
	max-width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

/* Fixed / Sticky Header for Long Pages: Edge-to-Edge with #101727 Night Ground */
header.wp-block-template-part,
.wp-block-template-part:has(> header),
.wp-block-template-part > header,
header.wp-block-group.alignfull,
header.site-header {
	position: sticky !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 99999 !important;
	background-color: var(--wp--preset--color--night, #101727) !important;
	box-sizing: border-box !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
	transition: box-shadow 0.2s ease, background-color 0.2s ease;
}

/* When WordPress Admin Bar is present, offset sticky header */
.admin-bar header.wp-block-template-part,
.admin-bar .wp-block-template-part:has(> header),
.admin-bar .wp-block-template-part > header,
.admin-bar header.wp-block-group.alignfull,
.admin-bar header.site-header {
	top: 32px !important;
}

@media screen and (max-width: 782px) {
	.admin-bar header.wp-block-template-part,
	.admin-bar .wp-block-template-part:has(> header),
	.admin-bar .wp-block-template-part > header,
	.admin-bar header.wp-block-group.alignfull,
	.admin-bar header.site-header {
		top: 46px !important;
	}
}

/* Demo Page Sticky Sub-Navigation (Jump Bar) */
.gr-demo-sticky-nav,
div.wp-block-group.alignfull.gr-demo-sticky-nav {
	position: sticky !important;
	top: var(--gr-header-height, 73px) !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 9999 !important;
	background-color: var(--wp--preset--color--paper, #FAEBDB) !important;
	border-bottom: 1px solid var(--wp--preset--color--outline, #D5C3B5) !important;
	box-shadow: 0 4px 16px rgba(35, 26, 16, 0.1) !important;
	transition: top 0.2s ease, box-shadow 0.2s ease !important;
	box-sizing: border-box !important;
}

/* Offset when WordPress Admin Bar is visible */
.admin-bar .gr-demo-sticky-nav,
.admin-bar div.wp-block-group.alignfull.gr-demo-sticky-nav {
	top: calc(var(--gr-header-height, 73px) + 32px) !important;
}

@media screen and (max-width: 782px) {
	.admin-bar .gr-demo-sticky-nav,
	.admin-bar div.wp-block-group.alignfull.gr-demo-sticky-nav {
		top: calc(var(--gr-header-height, 62px) + 46px) !important;
	}
}

.gr-demo-section,
[id^="demo-"] {
	scroll-margin-top: calc(var(--gr-header-height, 73px) + 80px) !important;
}

/* Full Width Header Container */
header.wp-block-group.alignfull > .wp-block-group,
header.wp-block-group.alignfull .alignfull,
header.wp-block-template-part .alignfull {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Fixed Bottom Footer (Sticky layout, 100% full width) */
footer.wp-block-group.alignfull {
	margin-top: auto;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Full Width Page and Post Content */
.wp-block-post-content,
.entry-content {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Alignfull edge-to-edge stretching across all screens */
.alignfull {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

/* Single post article full-width */
article.wp-block-group.alignfull {
	width: 100%;
	box-sizing: border-box;
}

/* =========================================================================
 * Dark Section & Hero Main Title High-Contrast Fix (Solves Dim Title Bug)
 * ========================================================================= */
.has-night-background-color,
.has-night-2-background-color,
.has-night-3-background-color,
[data-theme-surface="dark"] {
	color: #F8FAFC !important;
}

.has-night-background-color h1,
.has-night-background-color h2,
.has-night-background-color h3,
.has-night-background-color h4,
.has-night-background-color h5,
.has-night-background-color h6,
.has-night-background-color .wp-block-heading,
.has-night-background-color .wp-block-post-title,
.has-night-2-background-color h1,
.has-night-2-background-color h2,
.has-night-3-background-color h1,
.has-night-3-background-color h2 {
	color: #FFFFFF !important;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
}

.has-night-background-color p,
.has-night-background-color .has-sand-color {
	color: #E2E8F0 !important;
}

.has-night-background-color .gr-breadcrumbs,
.has-night-background-color .gr-breadcrumbs a,
.has-night-background-color .gr-breadcrumbs span {
	color: #FDE68A !important; /* Luminous warm amber */
	font-weight: 500;
}

.has-night-background-color .gr-breadcrumbs a:hover {
	color: #FFFFFF !important;
	text-decoration: underline;
}

/* Attractive Slogan Badge Pill */
.gr-hero-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	padding: 0.4rem 1.15rem;
	font-size: clamp(0.72rem, 2vw, 0.8125rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--amber, #FFB868);
	margin-bottom: 1.25rem;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
	backdrop-filter: blur(4px);
	max-width: 100%;
	line-height: 1.4;
	box-sizing: border-box;
}

.gr-hero-badge span {
	display: inline-block;
	max-width: 100%;
	word-break: break-word;
	overflow-wrap: break-word;
}

.gr-hero-badge:hover {
	border-color: var(--wp--preset--color--amber, #FFB868);
	background: rgba(255, 255, 255, 0.12);
}

.gr-page-hero,
.gr-page-hero * {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

/* Header CTA Button */
.gr-header-cta {
	margin-left: 1rem !important;
	flex-shrink: 0 !important;
}

.gr-header-cta .wp-block-button {
	flex-shrink: 0 !important;
}

.gr-header-cta .wp-block-button__link,
.gr-header-cta .wp-element-button {
	white-space: nowrap !important;
	display: inline-flex !important;
	align-items: center !important;
	font-weight: 600 !important;
	padding: 0.55rem 1.25rem !important;
	min-width: fit-content !important;
}

/* Feature Deep Dives & Guides Spoke Buttons - High Contrast Fix */
.gr-spoke-btn,
a.gr-spoke-btn,
.wp-block-columns .wp-element-button.gr-spoke-btn {
	background-color: var(--wp--preset--color--secondary, #2F6B4F) !important;
	color: #FFFFFF !important;
	border: 1px solid var(--wp--preset--color--secondary, #2F6B4F) !important;
	font-weight: 700 !important;
	border-radius: 10px !important;
	padding: 0.65rem 1.25rem !important;
	text-decoration: none !important;
	display: inline-block !important;
	text-align: center !important;
	box-shadow: 0 2px 8px rgba(47, 107, 79, 0.25) !important;
	transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease !important;
}

.gr-spoke-btn:hover,
a.gr-spoke-btn:hover,
.wp-block-columns .wp-element-button.gr-spoke-btn:hover {
	background-color: var(--wp--preset--color--primary, #B45F00) !important;
	border-color: var(--wp--preset--color--primary, #B45F00) !important;
	color: #FFFFFF !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 4px 12px rgba(180, 95, 0, 0.35) !important;
}

/* Pricing Table Card Polish & Proper Height */
.gr-pricing-card {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gr-pricing-card:hover {
	transform: translateY(-3px);
}

.gr-pricing-card--featured:hover {
	box-shadow: 0 12px 32px rgba(180, 95, 0, 0.2) !important;
}

.gr-pricing-features li {
	color: var(--wp--preset--color--ink, #231A10);
}

@media (max-width: 959px) {
	.gr-hero-badge {
		font-size: 0.72rem;
		padding: 0.35rem 0.85rem;
		border-radius: 12px;
		letter-spacing: 0.02em;
		text-align: center;
	}
	.gr-page-hero h1,
	.has-night-background-color h1,
	.entry-content > .wp-block-group.alignfull:first-of-type h1 {
		font-size: clamp(1.75rem, 6.5vw, 2.5rem) !important;
		line-height: 1.2 !important;
	}
	.gr-header-cta,
	div.gr-header-cta,
	header .wp-block-buttons,
	.site-header .wp-block-buttons,
	.wp-block-template-part header .wp-block-buttons {
		display: none !important;
	}
	header .wp-block-site-logo,
	header .wp-block-site-logo img,
	header .custom-logo,
	header img {
		max-width: 140px !important;
		height: auto !important;
	}

	/* Mobile Header Hamburger Button Right-Alignment */
	header .wp-block-navigation {
		width: 100% !important;
		display: flex !important;
		justify-content: flex-end !important;
	}
	header .wp-block-navigation__responsive-container-open {
		margin-left: auto !important;
		margin-right: 0 !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		background: transparent !important;
		border: 1px solid rgba(255, 255, 255, 0.2) !important;
		border-radius: 8px !important;
		padding: 6px 10px !important;
		color: #EDE6DA !important;
		cursor: pointer !important;
	}
	header .wp-block-navigation__responsive-container-open svg {
		fill: currentColor !important;
	}
	header .wp-block-navigation__responsive-container-open:hover,
	header .wp-block-navigation__responsive-container-open:focus {
		color: var(--wp--preset--color--amber, #FFB868) !important;
		border-color: var(--wp--preset--color--amber, #FFB868) !important;
	}
}

/* =========================================================================
 * Mobile Navigation Overlay (Drawer/Modal) Polish & High Contrast
 * ========================================================================= */
.wp-block-navigation__responsive-container.is-menu-open {
	background-color: #101727 !important; /* Night brand background */
	color: #EDE6DA !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	background-color: #101727 !important;
	color: #EDE6DA !important;
	padding: clamp(1.5rem, 5vw, 3rem) !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	color: #EDE6DA !important;
	background: rgba(255, 255, 255, 0.08) !important;
	border: 1px solid rgba(255, 255, 255, 0.15) !important;
	border-radius: 8px !important;
	padding: 6px !important;
	cursor: pointer !important;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
	fill: currentColor !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:focus {
	color: var(--wp--preset--color--amber, #FFB868) !important;
	background: rgba(255, 255, 255, 0.15) !important;
}

/* Modal menu list and items */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-end !important;
	text-align: right !important;
	gap: 1.25rem !important;
	padding: 2rem 0 !important;
	width: 100% !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100% !important;
	text-align: right !important;
	display: block !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
	padding-bottom: 0.85rem !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child {
	border-bottom: none !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: #EDE6DA !important;
	font-size: 1.25rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	display: inline-block !important;
	transition: color 0.15s ease, transform 0.15s ease;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus {
	color: var(--wp--preset--color--amber, #FFB868) !important;
	transform: translateX(-4px);
}

/* Prevent horizontal page blowouts on mobile without breaking sticky header */
html,
body {
	overflow-x: clip;
	max-width: 100%;
}

a, p, li, span, h1, h2, h3, h4, h5, h6 {
	overflow-wrap: break-word;
	word-wrap: break-word;
}

/* =========================================================================
 * Standard Website Margin & Gutters
 * ========================================================================= */
/* Enforce generous, modern standard horizontal margins across all sections */
.wp-block-group.alignfull,
.entry-content > .wp-block-group.alignfull {
	padding-left: clamp(1.5rem, 5vw, 3.5rem) !important;
	padding-right: clamp(1.5rem, 5vw, 3.5rem) !important;
	box-sizing: border-box;
}

/* Ensure inner content container is centered with standard max width */
.wp-block-group.alignfull > .wp-block-group,
.wp-block-group.alignfull > .is-layout-constrained {
	width: 100%;
	max-width: 1200px;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
}

.wp-block-columns.alignwide {
	width: 100%;
	max-width: 1200px;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
}

/* =========================================================================
 * Viewport Coverage & Display-Fitting Heights
 * ========================================================================= */
/* First Section (Hero / Page Header) covers display screen gracefully */
.entry-content > .wp-block-group.alignfull:first-of-type,
.gr-page-hero,
.wp-block-group.gr-hero-section {
	min-height: 48vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: clamp(4.5rem, 9vh, 7rem) !important;
	padding-bottom: clamp(4.5rem, 9vh, 7rem) !important;
	box-sizing: border-box;
}

/* Substantial major sections for high visual impact and display fitting */
.entry-content > .wp-block-group.alignfull:not(:first-of-type) {
	padding-top: clamp(4rem, 8vh, 6.5rem) !important;
	padding-bottom: clamp(4rem, 8vh, 6.5rem) !important;
	box-sizing: border-box;
}

