/*
Theme Name: GeneratePress Child
Theme URI: https://yourdomain.com
Description: Child theme for GeneratePress
Author: Your Name
Author URI: https://yourdomain.com
Template: generatepress
Version: 1.0
*/

/* Global typography baseline for consistent sizing across site pages. */
:root {
	--gp-font-family-base: "Sora", "Poppins", "Segoe UI", sans-serif;
	--gp-font-size-body: 16px;
	--gp-line-height-body: 1.65;
	--gp-font-size-h1: clamp(2rem, 4.4vw, 2.9rem);
	--gp-font-size-h2: clamp(1.7rem, 3.3vw, 2.3rem);
	--gp-font-size-h3: clamp(1.35rem, 2.5vw, 1.75rem);
	--gp-font-size-h4: 1.25rem;
	--gp-font-size-h5: 1.08rem;
	--gp-font-size-h6: 1rem;
}

html {
	font-size: var(--gp-font-size-body);
}

.gp-skip-link {
	position: fixed;
	top: 10px;
	left: 12px;
	z-index: 9999;
	padding: 10px 14px;
	border-radius: 10px;
	background: #0f213f;
	border: 1px solid #5fa3ff;
	color: #eef6ff;
	text-decoration: none;
	font-weight: 700;
	transform: translateY(-160%);
	transition: transform 160ms ease;
}

.gp-skip-link:focus-visible {
	transform: translateY(0);
}

.gp-main-anchor {
	display: block;
	height: 0;
}

body,
button,
input,
select,
textarea {
	font-family: var(--gp-font-family-base);
	font-size: 1rem;
	line-height: var(--gp-line-height-body);
}

h1,
.entry-content h1 {
	font-size: var(--gp-font-size-h1);
	line-height: 1.15;
}

h2,
.entry-content h2 {
	font-size: var(--gp-font-size-h2);
	line-height: 1.2;
}

h3,
.entry-content h3 {
	font-size: var(--gp-font-size-h3);
	line-height: 1.25;
}

h4,
.entry-content h4 {
	font-size: var(--gp-font-size-h4);
	line-height: 1.3;
}

h5,
.entry-content h5 {
	font-size: var(--gp-font-size-h5);
	line-height: 1.3;
}

h6,
.entry-content h6 {
	font-size: var(--gp-font-size-h6);
	line-height: 1.35;
}

p,
li {
	font-size: 1rem;
	line-height: var(--gp-line-height-body);
}

small {
	font-size: 0.875rem;
}

.main-navigation .main-nav ul li > a {
	border: 1px solid transparent;
	border-radius: 10px;
	transition:
		color 160ms ease,
		background-color 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.main-navigation .main-nav ul li:is(.current-menu-item, .current_page_item, .current-menu-ancestor, .current-page-ancestor) > a {
	color: #eef6ff !important;
	background: rgba(91, 143, 255, 0.24);
	border-color: rgba(128, 167, 246, 0.46);
	box-shadow: inset 0 0 0 1px rgba(95, 181, 255, 0.15);
	font-weight: 700;
}

.main-navigation .main-nav ul li:not(.current-menu-item):not(.current_page_item):not(.current-menu-ancestor):not(.current-page-ancestor):hover > a,
.main-navigation .main-nav ul li:not(.current-menu-item):not(.current_page_item):not(.current-menu-ancestor):not(.current-page-ancestor):focus-within > a {
	background: rgba(71, 108, 183, 0.18);
	border-color: rgba(111, 145, 214, 0.36);
	color: #e4eeff;
}

@media (min-width: 769px) {
	.main-navigation:not(.toggled) .main-nav > ul {
		display: flex;
		align-items: center;
		gap: 4px;
	}

	.main-navigation:not(.toggled) .main-nav > ul > li {
		float: none;
	}

	.main-navigation:not(.toggled) .main-nav ul li a {
		line-height: 44px;
		padding-left: 14px;
		padding-right: 14px;
	}
}

@media (max-width: 640px) {
	:root {
		--gp-font-size-body: 15px;
		--gp-font-size-h1: clamp(1.75rem, 8vw, 2.2rem);
		--gp-font-size-h2: clamp(1.45rem, 6vw, 1.85rem);
		--gp-font-size-h3: clamp(1.2rem, 4.7vw, 1.45rem);
	}
}

@media (max-width: 768px) {
	body.gp-mobile-menu-open {
		overflow: hidden;
	}

	#page {
		transition:
			filter 180ms ease,
			transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
			opacity 180ms ease;
		transform-origin: top center;
	}

	body.gp-mobile-menu-open #page {
		filter: blur(4px);
		transform: scale(0.992);
		opacity: 0.9;
		will-change: filter, transform, opacity;
	}

	.mobile-menu-control-wrapper,
	#site-navigation {
		position: relative;
		z-index: 140;
	}

	.has-inline-mobile-toggle #site-navigation,
	.has-inline-mobile-toggle #site-navigation.toggled {
		margin-top: 0 !important;
		background: transparent !important;
	}

	#site-navigation > .inside-navigation {
		position: relative;
	}

	#site-navigation .menu-toggle {
		position: relative;
		z-index: 142;
	}

	#site-navigation .main-nav {
		position: absolute;
		top: calc(100% + 12px);
		left: 0;
		right: 0;
		display: block;
		margin: 0;
		padding: 0;
		border: 1px solid rgba(94, 122, 176, 0.36);
		border-radius: 18px;
		background:
			linear-gradient(180deg, rgba(18, 33, 67, 0.98) 0%, rgba(11, 22, 48, 0.97) 100%);
		box-shadow: 0 24px 56px rgba(4, 10, 28, 0.52);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(-10px) scale(0.985);
		transform-origin: top center;
		transition:
			opacity 180ms ease,
			transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
			visibility 0s linear 220ms;
		z-index: 141;
	}

	#site-navigation .main-nav > ul {
		display: block !important;
		margin: 0;
		padding: 10px 0;
		list-style: none;
	}

	#site-navigation .main-nav li {
		display: block;
		float: none;
		margin: 0;
		text-align: left;
	}

	#site-navigation .main-nav li a {
		display: block;
		margin: 3px 10px;
		padding: 13px 16px;
		border-bottom: 1px solid rgba(109, 137, 191, 0.16);
		color: #e9f2ff;
		line-height: 1.35;
		border-radius: 10px;
	}

	#site-navigation .main-nav li:last-child a {
		border-bottom: 0;
	}

	#site-navigation .main-nav li:is(.current-menu-item, .current_page_item, .current-menu-ancestor, .current-page-ancestor) > a {
		background: rgba(91, 143, 255, 0.3);
		border-color: rgba(134, 173, 252, 0.62);
		color: #f0f6ff !important;
		box-shadow: inset 0 0 0 1px rgba(95, 181, 255, 0.2);
	}

	#site-navigation.toggled {
		margin-bottom: 0;
	}

	#site-navigation.toggled .main-nav {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0) scale(1);
		transition-delay: 0s;
	}

	.gp-mobile-nav-backdrop {
		position: fixed;
		inset: 0;
		display: block;
		border: 0;
		padding: 0;
		background: rgba(6, 12, 27, 0.46);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 180ms ease, visibility 0s linear 180ms;
		z-index: 130;
	}

	body.gp-mobile-menu-open .gp-mobile-nav-backdrop,
	.gp-mobile-nav-backdrop.is-active {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transition-delay: 0s;
	}
}

@media (prefers-reduced-motion: reduce) {
	#page,
	#site-navigation .main-nav,
	.gp-mobile-nav-backdrop,
	.main-navigation .main-nav ul li > a {
		transition: none !important;
	}
}

.gp-footer-trust-links {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-left: 8px;
}

.gp-footer-trust-links a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}
