/**
 * SARVONA supplementary styles.
 * Tokens come from theme.json (CSS custom properties --wp--preset--*).
 */

/* ---------- Telugu typography ---------- */
:lang(te) body,
body:lang(te),
:lang(te) {
	font-family: var(--wp--preset--font-family--telugu);
}
:lang(te) p,
:lang(te) li {
	line-height: 1.8;
}
:lang(te) h1,
:lang(te) h2,
:lang(te) h3 {
	letter-spacing: 0;
	line-height: 1.35;
}

/* ---------- Accessibility ---------- */
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Header ---------- */
.sarvona-header {
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .sarvona-header {
	top: var(--wp-admin--admin-bar--height, 0);
}
.sarvona-topbar {
	font-size: var(--wp--preset--font-size--xs);
}
.sarvona-topbar a {
	color: var(--wp--preset--color--muted-on-dark);
	text-decoration: none;
}
.sarvona-topbar a:hover {
	color: var(--wp--preset--color--white);
}
.sarvona-mainbar .wp-block-navigation a {
	text-decoration: none;
}
.sarvona-mainbar .wp-block-navigation-item__content:hover,
.sarvona-mainbar .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--gold);
}

/*
 * The main menu has ten items, so it collapses into the overlay below 1100px
 * (core only offers a fixed 600px breakpoint). Navigation uses overlayMenu "always";
 * from 1100px we show the items inline again.
 */
@media (min-width: 1100px) {
	.sarvona-mainbar .wp-block-navigation__responsive-container-open {
		display: none;
	}
	.sarvona-mainbar .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) {
		display: block;
		position: relative;
		inset: auto;
		width: 100%;
		z-index: auto;
		background-color: inherit;
		padding: 0;
	}
	.sarvona-mainbar .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close {
		display: none;
	}
	.sarvona-mainbar .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container {
		flex-direction: row;
		gap: 1.6rem;
	}
	.sarvona-mainbar .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
		background: var(--wp--preset--color--navy-700);
		border: 1px solid var(--wp--preset--color--navy-500);
		border-radius: var(--wp--custom--radius--md);
		padding: 0.5rem;
		min-width: 240px;
	}
}
.sarvona-mainbar .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--white);
	padding: var(--wp--preset--spacing--50);
}
.sarvona-mainbar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 1.1rem;
	font-size: var(--wp--preset--font-size--lg);
}

/* ---------- Language switcher & account links ---------- */
.sarvona-lang,
.sarvona-account {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.sarvona-lang a.is-current {
	color: var(--wp--preset--color--gold);
	font-weight: 600;
}
.sarvona-account__join {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy-900) !important;
	font-weight: 600;
	padding: 0.35rem 0.85rem;
	border-radius: var(--wp--custom--radius--sm);
}
.sarvona-account__join:hover {
	background: var(--wp--preset--color--gold-soft);
}

/* ---------- Breadcrumbs ---------- */
.sarvona-breadcrumbs {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted-on-dark);
}
.sarvona-breadcrumbs a {
	color: var(--wp--preset--color--muted-on-dark);
}
.sarvona-breadcrumbs a:hover {
	color: var(--wp--preset--color--gold);
}
.sarvona-breadcrumbs__sep {
	margin: 0 0.5rem;
	opacity: 0.6;
}

/* ---------- Text styles ---------- */
.is-style-eyebrow {
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy-700);
}
.has-navy-900-background-color .is-style-eyebrow,
.has-navy-700-background-color .is-style-eyebrow,
.has-navy-depth-gradient-background .is-style-eyebrow,
.is-style-card-dark .is-style-eyebrow {
	color: var(--wp--preset--color--gold);
}
.is-style-badge {
	display: inline-block;
	width: fit-content;
	padding: 0.2rem 0.65rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	background: var(--wp--preset--color--gold-soft);
	color: var(--wp--preset--color--navy-900);
}

/* Gold rule under section eyebrows / headings */
.sarvona-rule {
	width: 56px;
	height: 3px;
	background: var(--wp--preset--color--gold);
	border: 0;
	margin: 0;
}

/* ---------- Cards ---------- */
.is-style-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--grey-300);
	border-radius: var(--wp--custom--radius--lg);
	padding: var(--wp--preset--spacing--40);
	box-shadow: var(--wp--preset--shadow--card);
	height: 100%;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.is-style-card-dark {
	background: var(--wp--preset--color--navy-700);
	border: 1px solid var(--wp--preset--color--navy-500);
	border-radius: var(--wp--custom--radius--lg);
	padding: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted-on-dark);
	height: 100%;
	transition: transform 0.2s ease, border-color 0.2s ease;
}
.is-style-card-dark :where(h2, h3, h4) {
	color: var(--wp--preset--color--white);
}
.is-style-card:has(a):hover {
	transform: translateY(-3px);
	box-shadow: var(--wp--preset--shadow--raised);
	border-color: var(--wp--preset--color--gold);
}
.is-style-card-dark:has(a):hover {
	transform: translateY(-3px);
	border-color: var(--wp--preset--color--gold);
}
.is-style-card h3 a,
.is-style-card-dark h3 a {
	text-decoration: none;
	color: inherit;
}
/* Whole card clickable via its heading link */
.is-style-card:has(h3 a),
.is-style-card-dark:has(h3 a) {
	position: relative;
}
.is-style-card h3 a::after,
.is-style-card-dark h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}
.sarvona-card-icon {
	width: 44px;
	height: 44px;
	display: block;
	margin-bottom: 0.25rem;
}
.sarvona-card-icon svg {
	width: 100%;
	height: 100%;
}

/* ---------- Buttons ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--navy-900);
	border-color: var(--wp--preset--color--navy-900);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--white);
}
.wp-block-button.is-style-ghost-light > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--white);
	border-color: rgba(255, 255, 255, 0.7);
}
.wp-block-button.is-style-ghost-light > .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--gold);
}

/* ---------- Lists ---------- */
.is-style-checklist {
	list-style: none;
	padding-left: 0;
}
.is-style-checklist li {
	position: relative;
	padding-left: 1.75rem;
	margin-bottom: 0.5rem;
}
.is-style-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 1rem;
	height: 0.55rem;
	border-left: 2px solid var(--wp--preset--color--gold);
	border-bottom: 2px solid var(--wp--preset--color--gold);
	transform: rotate(-45deg);
}

/* ---------- Hero ---------- */
.sarvona-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.sarvona-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(60rem 30rem at 85% -10%, rgba(212, 175, 55, 0.16), transparent 60%),
		radial-gradient(40rem 24rem at 10% 110%, rgba(28, 53, 87, 0.9), transparent 70%);
}
.sarvona-hero::after {
	content: "";
	position: absolute;
	right: -6rem;
	top: 50%;
	width: 34rem;
	height: 34rem;
	transform: translateY(-50%);
	z-index: -1;
	border: 1px solid rgba(212, 175, 55, 0.25);
	border-radius: 50%;
	box-shadow: 0 0 0 4rem rgba(212, 175, 55, 0.04), 0 0 0 8rem rgba(212, 175, 55, 0.03);
}
@media (max-width: 781px) {
	.sarvona-hero::after {
		width: 20rem;
		height: 20rem;
		right: -10rem;
		top: 15%;
	}
}

/* ---------- Membership plan table ---------- */
.sarvona-plan {
	display: flex;
	flex-direction: column;
}
.sarvona-plan.is-featured {
	border: 2px solid var(--wp--preset--color--gold);
}
.sarvona-plan__price {
	font-size: var(--wp--preset--font-size--xxl);
	font-weight: 800;
	color: var(--wp--preset--color--navy-900);
	line-height: 1.1;
}
.sarvona-plan__price small {
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	color: var(--wp--preset--color--muted);
}

/* ---------- Footer ---------- */
.sarvona-footer a {
	color: var(--wp--preset--color--muted-on-dark);
	text-decoration: none;
}
.sarvona-footer a:hover {
	color: var(--wp--preset--color--gold);
}
.sarvona-footer .wp-block-heading {
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--sm);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.sarvona-footer ul {
	list-style: none;
	padding-left: 0;
	margin: 0;
}
.sarvona-footer li {
	margin-bottom: 0.55rem;
}

/* ---------- Forms (Fluent Forms) ---------- */
.frm-fluent-form .ff-el-form-control {
	border-radius: var(--wp--custom--radius--sm);
	border-color: var(--wp--preset--color--grey-300);
}
.frm-fluent-form .ff-el-form-control:focus {
	border-color: var(--wp--preset--color--navy-700);
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.35);
}
.frm-fluent-form .ff-btn-submit {
	background: var(--wp--preset--color--gold) !important;
	border-color: var(--wp--preset--color--gold) !important;
	color: var(--wp--preset--color--navy-900) !important;
	font-weight: 600 !important;
	border-radius: var(--wp--custom--radius--sm) !important;
	padding: 0.875rem 1.625rem !important;
}

/* ---------- Legal pages ---------- */
.sarvona-legal-notice {
	border-left: 4px solid var(--wp--preset--color--gold);
}

/* ---------- Posts grid ---------- */
.sarvona-post-card .wp-block-post-featured-image img {
	border-radius: var(--wp--custom--radius--md);
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* ---------- Icons ---------- */
.sarvona-card-icon {
	color: var(--wp--preset--color--gold);
}
.has-white-background-color .sarvona-card-icon,
.has-grey-100-background-color .sarvona-card-icon,
.is-style-card .sarvona-card-icon {
	color: var(--wp--preset--color--navy-700);
}
.is-style-card .sarvona-card-icon {
	background: var(--wp--preset--color--gold-soft);
	border-radius: var(--wp--custom--radius--md);
	padding: 9px;
	box-sizing: border-box;
}

/* Section lead paragraphs: readable line length */
.sarvona-lead {
	max-width: 760px;
}
.has-text-align-center.sarvona-lead {
	margin-left: auto;
	margin-right: auto;
}

/* ---------- Layout seams: no gaps between header bars, main and footer ---------- */
.wp-site-blocks > main,
.wp-site-blocks > footer,
.sarvona-header > * {
	margin-block-start: 0;
}
.wp-site-blocks > footer > .sarvona-footer {
	margin-block-start: 0;
}

/* ---------- Links on dark backgrounds ---------- */
:where(.has-navy-900-background-color, .has-navy-700-background-color, .has-navy-depth-gradient-background, .is-style-card-dark) a:where(:not(.wp-element-button):not(.sarvona-account__join)) {
	color: var(--wp--preset--color--white);
	text-decoration-color: var(--wp--preset--color--gold);
	text-underline-offset: 3px;
}
:where(.has-navy-900-background-color, .has-navy-700-background-color, .has-navy-depth-gradient-background, .is-style-card-dark) a:where(:not(.wp-element-button):not(.sarvona-account__join)):hover {
	color: var(--wp--preset--color--gold);
}

/* ---------- Footer refinements ---------- */
.sarvona-footer .wp-block-site-title a {
	color: var(--wp--preset--color--gold);
}
.sarvona-footer .wp-block-heading {
	margin-bottom: 1rem;
}

/* ---------- Small screens ---------- */
@media (max-width: 599px) {
	.sarvona-topbar .wp-block-group > p:first-child {
		display: none;
	}
	.sarvona-topbar .wp-block-group {
		justify-content: flex-end;
	}
}

/* Mobile overlay menu: left-aligned, readable */
.sarvona-mainbar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.sarvona-mainbar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.sarvona-mainbar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: flex-start;
	text-align: left;
}
.sarvona-mainbar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	padding-left: 1rem;
	font-size: var(--wp--preset--font-size--md);
	gap: 0.8rem;
}

/* ---------- Legal pages: calmer heading scale ---------- */
.page-template-page-legal .wp-block-post-content h2 {
	font-size: var(--wp--preset--font-size--xl);
	margin-top: var(--wp--preset--spacing--50);
}
.page-template-page-legal .wp-block-post-content h3 {
	font-size: var(--wp--preset--font-size--lg);
}

/* ---------- WooCommerce: account, notices, membership tab ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--grey-300);
	border-radius: var(--wp--custom--radius--md);
	overflow: hidden;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.75rem 1rem;
	text-decoration: none;
	color: var(--wp--preset--color--navy-900);
	border-bottom: 1px solid var(--wp--preset--color--grey-300);
}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child a {
	border-bottom: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--wp--preset--color--navy-900);
	color: var(--wp--preset--color--white);
	box-shadow: inset 4px 0 0 var(--wp--preset--color--gold);
}
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.sarvona-membership .button {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy-900);
	border-radius: var(--wp--custom--radius--sm);
	font-weight: 600;
	padding: 0.75rem 1.25rem;
	text-decoration: none;
	border: 0;
}
.woocommerce .button:hover,
.sarvona-membership .button:hover {
	background: var(--wp--preset--color--gold-soft);
	color: var(--wp--preset--color--navy-900);
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-left: 4px solid var(--wp--preset--color--gold);
	background: var(--wp--preset--color--grey-100);
	padding: 1rem 1.25rem;
	list-style: none;
}
.woocommerce-error {
	border-left-color: #b42318;
}
.sarvona-membership__passes {
	width: 100%;
	border-collapse: collapse;
	margin: var(--wp--preset--spacing--40) 0;
	font-size: var(--wp--preset--font-size--sm);
}
.sarvona-membership__passes caption {
	text-align: left;
	font-weight: 700;
	margin-bottom: 0.5rem;
}
.sarvona-membership__passes th,
.sarvona-membership__passes td {
	text-align: left;
	padding: 0.6rem 0.75rem;
	border-bottom: 1px solid var(--wp--preset--color--grey-300);
}
.sarvona-membership__note,
.sarvona-account-box {
	color: var(--wp--preset--color--muted);
}
@media (max-width: 599px) {
	.sarvona-membership__passes {
		display: block;
		overflow-x: auto;
	}
}
