/**
 * @file style.css
 * @package mnorwise/medea
 * @subpackage css
 * @since 1.0.0
 * @author Mnorwise
 *
 * Main stylesheet for the Medea theme.
 * This file serves as the primary CSS entry point, importing design tokens,
 * block components, and typography. It also contains global layout rules,
 * such as the fixed site header and image slider heights.
 */

/* --- # Tokens & Base --- */

/**
 * @file tokens.css
 * --- Design tokens synchronized with WordPress theme.json ---
 * @see https://developer.wordpress.org/block-editor/reference-guides/theme-json-reference/
 */

:root {
	/* Color variables synchronized with theme.json */
	--color--primary: var(--wp--preset--color--primary, rgb(117, 33, 80));
	--color--secondary: var(--wp--preset--color--secondary, oklch(65% 0.15 220));
	--color--accent: var(--wp--preset--color--accent, oklch(75% 0.2 60));
	--color--success: var(--wp--preset--color--success, oklch(76% 0.177 163.223));
	--color--warning: var(--wp--preset--color--warning, oklch(82% 0.189 84.429));
	--color--error: var(--wp--preset--color--error, oklch(71% 0.194 13.428));
	--color--base-content: var(--wp--preset--color--base-content, rgb(96, 96, 96));
	--color--base-100: var(--wp--preset--color--base-100, oklch(100% 0 0));
	--color--base-200: var(--wp--preset--color--base-200, oklch(98% 0 0));
	--color--base-300: var(--wp--preset--color--base-300, oklch(95% 0 0));
	--color--base-link: var(--wp--preset--color--base-link, rgb(30, 30, 30));
	--color--base-light: var(--wp--preset--color--base-light, oklch(100% 0 0));
	--color--base-dark: var(--wp--preset--color--base-dark, oklch(0% 0 0));

	/* Font families*/
	--font-family--sans: var(--wp--preset--font-family--sans, Open Sans);

	/* Layout containers */
	--layout--content: var(--wp--style--global--content-size, 80rem);
	--layout--wide: var(--wp--style--global--wide-size, 96rem);

	/* Custom variables */
	--custom--entry-content-margin-block-start: var(
		--wp--custom--entry-content-margin-block-start,
		var(--wp--preset--spacing--2-xl)
	);
	--custom--comment-entry-content-margin-block-start: var(
		--wp--custom--comment-entry-content-margin-block-start,
		var(--wp--preset--spacing--md) is the default value. Used to change the position of the main content relative to
			the header in all templates.
	);
}

/**
 * @file tokens-custom.css
 * --- Custom design tokens (manual, not generated) ---
 */

:root {
	/* Transitions */
	--transition--fast: 0.2s ease;
	--transition--normal: 0.3s ease;
	--transition--slow: 0.6s ease;

	/* Z-index layers */
	--z--base: 0;
	--z--header: 1000;
	--z--modal: 2000;
	--z--tooltip: 3000;
}

/**
 * @file fonts.css
 * --- Font-face definitions ---
 */

/* open-sans-300 - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 300;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-300.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-300.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-300italic - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: italic;
	font-weight: 300;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-300italic.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-300italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-regular - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 400;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-regular.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-regular.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-italic - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: italic;
	font-weight: 400;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-italic.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-500 - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 500;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-500.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-500.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-500italic - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: italic;
	font-weight: 500;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-500italic.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-500italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-600 - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 600;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-600.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-600.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-600italic - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: italic;
	font-weight: 600;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-600italic.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-600italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-700 - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 700;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-700.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-700.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-700italic - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Open Sans";
	font-style: italic;
	font-weight: 700;
	src:
		url("../fonts/open-sans/open-sans-v44-latin_latin-ext-700italic.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/open-sans/open-sans-v44-latin_latin-ext-700italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* marcellus-regular - latin_latin-ext */

@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: "Marcellus";
	font-style: normal;
	font-weight: 400;
	src:
		url("../fonts/marcellus/marcellus-v14-latin_latin-ext-regular.woff2") format("woff2"),
		/* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
			url("../fonts/marcellus/marcellus-v14-latin_latin-ext-regular.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/**
 * @file typography.css
 * --- Typography and text element styles ---
 */

/* --- # Links --- */

:root
	:where(
		a:not(
			.wp-element-button,
			.wp-block-social-link-anchor,
			.custom-logo-link,
			.wp-block-navigation-item__content,
			.wp-block-media-text__media a
		)
	),
:root :where(a > .wp-block-navigation-item__label) {
	display: inline;
	background-image: linear-gradient(to right in oklab, currentColor 0%, currentColor 100%);
	background-size: 0 2px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-color: transparent;
	transition: background-size var(--wp--custom--transition--duration--base)
		var(--wp--custom--transition--timing--base);
}

:root
	:where(
		a:not(.wp-element-button, .wp-block-social-link-anchor, .custom-logo-link, .wp-block-media-text__media a):hover
	),
:root
	:where(
		a:not(
				.wp-element-button,
				.wp-block-social-link-anchor,
				.custom-logo-link,
				.wp-block-media-text__media a
			):focus-visible
	),
:root :where(a:has(> .wp-block-navigation-item__label):hover .wp-block-navigation-item__label),
:root :where(a:has(> .wp-block-navigation-item__label):focus-visible .wp-block-navigation-item__label) {
	background-size: 100% 2px;
	outline: none;
	/* Optional if the animation replaces the default outline */
}

/* --- # Headings --- */

h2 {
	letter-spacing: 2px;
}

:is(h2, .h2)::after {
	content: "";
	display: block;
	width: 7rem;
	border-bottom: calc(0.2px + 0.005em) solid color-mix(in oklch, currentColor 20%, transparent 80%);
	margin-top: 1.25rem;
	margin-left: 0;
	margin-right: auto;
}

:is(h2, .h2).has-text-align-center::after {
	margin-left: auto;
	margin-right: auto;
}

:is(h2, .h2).has-text-align-right::after {
	margin-left: auto;
	margin-right: 0;
}

.wp-block-mnorwise-slider :is(h2, .h2),
.wp-block-mnorwise-slider :is(h2, .h2)::after,
.wp-block-mnorwise-team-member :is(h2, .h2)::after,
.medea-team-member :is(h2, .h2)::after,
.archive :is(h2, .h2)::after,
.blog :is(h2, .h2)::after,
.single :is(h2, .h2)::after,
.error404 :is(h2, .h2)::after {
	content: none;
}

.archive :is(h2, .h2),
.blog :is(h2, .h2),
.single :is(h2, .h2),
.error404 :is(h2, .h2) {
	font-size: calc(var(--wp--preset--font-size--base) + var(--wp--preset--font-size--xs));
	/* font-size: var(--wp--preset--font-size--xl); */
	/* color: var(--wp--preset--color--primary); */
	color: color-mix(in oklab, var(--wp--preset--color--primary) 85%, var(--wp--preset--color--base-100));
}

.archive :is(h2 a, .h2 a),
.blog :is(h2 a, .h2 a),
.single :is(h2 a, .h2 a),
.error404 :is(h2 a, .h2 a) {
	color: color-mix(in oklab, var(--wp--preset--color--primary) 75%, transparent);
}

/* --- # Excerpts --- */

:root :where(body:not(.archive):not(.blog):not(.single) .wp-block-post-excerpt) {
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-weight: 300;
	font-size: var(--wp--preset--font-size--lg);
}

/* --- # Post Content Headings --- */

.wp-block-post-content h4 {
	margin-top: calc(var(--wp--style--block-gap) / 2);
}

/* --- # Accordion --- */

.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
	text-decoration: none;
}

/**
 * @file base.css
 * --- Base theme styles ---
 */

/* --- # Layout Resets --- */

:root :where(body:not(.archive, .single, .blog) .wp-site-blocks > footer),
:root :where(.home .is-layout-flow) > :first-child {
	margin-block-start: 0 !important;
}

/* --- # Spacing & Gaps --- */

:root :where(.wp-block-navigation__container) {
	gap: 0;
}

:root :where(footer, footer *) :where(.is-layout-flex:not(.wp-block-social-links)) {
	gap: 1rem !important;
}

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

:root :where(footer) a:where(:not(.wp-element-button, .custom-logo-link, .wp-block-social-link-anchor)) {
	opacity: 0.75;
}

/* --- # Components --- */

/**
 * @file components.css
 * --- Global block overrides and shared components ---
 */

/* --- # Contact Form 7 --- */

:root :where(.wpcf7-form) {
	margin-left: calc(var(--wp--style--root--padding-left) / 2);
	margin-right: calc(var(--wp--style--root--padding-right) / 2);
}

:root :where(.cf7-row) {
	display: flex;
	flex-wrap: wrap;
	/* Margins between columns */
	margin-top: 0;
	margin-left: calc(var(--wp--style--root--padding-left) / -2);
	margin-right: calc(var(--wp--style--root--padding-right) / -2);
	margin-bottom: 0;
}

:root :where(.cf7-column) {
	flex: 1;
	padding-top: 0;
	padding-left: calc(var(--wp--style--root--padding-left) / 2);
	padding-right: calc(var(--wp--style--root--padding-left) / 2);
	padding-bottom: 0;
	min-width: 359px;
}

/* Vertical spacing between fields in the same column */

:root :where(.cf7-column p),
:root :where(.cf7-column .wpcf7-form-control-wrap) {
	display: block;
	margin-bottom: calc(var(--wp--style--block-gap) / 2);
}

:root :where(.cf7-column br) {
	display: none; /* Remove extra line breaks if CF7 adds them automatically */
}

/* Base Styles for Inputs & Textarea (excluding checkboxes and radios) */

:root :where(.wpcf7-form-control:not(.wpcf7-submit):not([type="checkbox"]):not([type="radio"])) {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.75rem 1rem;
	border: 1px solid var(--wp--preset--color--base-300, #e5e5e5);
	background-color: var(--wp--preset--color--base-100, #fff);
	color: var(--wp--preset--color--base-content, #606060);
	font-family: var(--wp--preset--font-family--sans, "Open Sans", sans-serif);
	font-size: 0.95rem;
	transition:
		border-color var(--wp--custom--transition--duration--base) var(--wp--custom--transition--timing--base),
		box-shadow var(--wp--custom--transition--duration--base) var(--wp--custom--transition--timing--base);
	border-radius: 0;
}

:root :where(.wpcf7-form-control:not(.wpcf7-submit):not([type="checkbox"]):not([type="radio"]):focus) {
	outline: none;
	border-color: var(--wp--preset--color--primary, #752150);
	box-shadow: 0 0 0 3px rgba(117, 33, 80, 0.1);
}

/* Acceptance Field Styling */

:root :where(.wpcf7-acceptance) {
	display: block;
	margin-bottom: var(--wp--style--block-gap);
}

:root :where(.wpcf7-acceptance .wpcf7-list-item) {
	margin-left: 0;
}

:root :where(.wpcf7-acceptance label) {
	display: flex;
	align-items: flex-start;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.95rem;
	line-height: 1.4;
	color: var(--wp--preset--color--base-content, #606060);
}

:root :where(.wpcf7-acceptance input[type="checkbox"]) {
	margin-right: 0.75rem;
	margin-top: 0.25rem;
	width: 1.125rem;
	height: 1.125rem;
	cursor: pointer;
	accent-color: var(--wp--preset--color--primary, #752150);
}

:root :where(.wpcf7-textarea) {
	min-height: 7.5rem;
	resize: vertical;
}

/* Submit Button */

:root :where(.wpcf7-submit) {
	display: inline-block;
	padding: 14px 40px;
	/* background-color: var(--wp--preset--color--primary, #752150); */
	background-color: color-mix(in srgb, var(--wp--preset--color--base-100) 30%, transparent);
	color: var(--wp--preset--color--base-100, #fff);
	border: none;
	font-family: "Marcellus", serif;
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition:
		background-color var(--wp--custom--transition--duration--base) var(--wp--custom--transition--timing--base),
		transform var(--wp--custom--transition--duration--fast) var(--wp--custom--transition--timing--base),
		opacity var(--wp--custom--transition--duration--base) var(--wp--custom--transition--timing--base);
}

:root :where(.wpcf7-submit:hover:not(:disabled)) {
	background-color: var(--wp--preset--color--base-dark, #000);
}

:root :where(.wpcf7-submit:active:not(:disabled)) {
	transform: translateY(2px);
}

:root :where(.wpcf7-submit:disabled) {
	color: var(--wp--preset--color--base-content, #999);
	cursor: not-allowed;
	opacity: 0.8;
}

/* Validation & Response Messages */

:root :where(.wpcf7-not-valid-tip) {
	color: var(--wp--preset--color--error, #d32f2f);
	font-size: 0.875rem;
	margin-top: 5px;
}

:root :where(.wpcf7-response-output) {
	margin: 20px 0 0 !important;
	padding: 15px !important;
	border: 2px solid transparent !important;
	font-family: var(--wp--preset--font-family--sans, sans-serif);
}

:root :where(.wpcf7-mail-sent-ok) {
	border-color: var(--wp--preset--color--success, #4caf50) !important;
	background-color: oklch(98% 0.05 163) !important; /* Very light success tint */
}

:root :where(.wpcf7-validation-errors) {
	border-color: var(--wp--preset--color--warning, #ffa000) !important;
}

:root :where(.wpcf7-mail-sent-ng, .wpcf7-aborted) {
	border-color: var(--wp--preset--color--error, #f44336) !important;
}

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

/* Base Content */

.wp-block-button__link.has-base-content-background-color {
	background-color: color-mix(in srgb, var(--wp--preset--color--base-dark) 30%, transparent) !important;
}

.wp-block-button__link.has-base-content-background-color:hover,
.wp-block-button__link.has-base-content-background-color:focus,
.wp-block-button__link.has-base-content-background-color:active {
	background-color: color-mix(in srgb, var(--wp--preset--color--base-dark) 100%, transparent) !important;
	box-shadow: var(--wp--preset--shadow--md);
}

/* Base 100 */

.wp-block-button__link.has-base-100-background-color {
	background-color: color-mix(in srgb, var(--wp--preset--color--base-light) 30%, transparent) !important;
}

.wp-block-button__link.has-base-100-background-color:hover,
.wp-block-button__link.has-base-100-background-color:focus,
.wp-block-button__link.has-base-100-background-color:active {
	background-color: color-mix(in srgb, var(--wp--preset--color--base-dark) 100%, transparent) !important;
	box-shadow: var(--wp--preset--shadow--md);
}

/* --- # Instagram Feed by Smash Balloon --- */

#sb_instagram #sbi_images {
	padding: 0 0 1.5rem;
}

#sb_instagram #sbi_load .sbi_load_btn,
#sb_instagram .sbi_follow_btn a {
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: var(--wp--preset--font-size--base);
	border-radius: 0;
	background-color: color-mix(in srgb, var(--wp--preset--color--base-dark) 90%, transparent);
	padding-top: calc(0.667em + 2px);
	padding-right: calc(1.333em + 2px);
	padding-bottom: calc(0.667em + 2px);
	padding-left: calc(1.333em + 2px);
	transition: var(--wp--custom--transition--base);
}

#sb_instagram #sbi_load .sbi_load_btn:hover,
#sb_instagram #sbi_load .sbi_load_btn:focus,
#sb_instagram #sbi_load .sbi_load_btn:active,
#sb_instagram .sbi_follow_btn a:hover,
#sb_instagram .sbi_follow_btn a:focus,
#sb_instagram .sbi_follow_btn a:active {
	background-color: color-mix(in srgb, var(--wp--preset--color--base-dark) 100%, transparent);
	box-shadow: var(--wp--preset--shadow--md);
}

/* --- # Template Parts --- */

/**
 * @file header.css
 * --- Header template-part styles ---
 */

/* --- # Layout & Colors --- */

header.wp-block-template-part {
	position: sticky;
	top: 0;
	/* Unset the header height for the following elements */
	margin-block-end: calc(var(--header-height, 5rem) * -1);
	background-color: transparent;
	border-bottom: 1px solid color-mix(in oklch, currentColor 10%, transparent 90%);
}

/* Default (transparent) header colors */

header.wp-block-template-part a,
header .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content,
header .wp-block-navigation .wp-block-navigation__submenu-icon,
header .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--base-100);
}

header .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--base-dark);
}

/* Scrolled state: switch to dark color scheme */

header.is-scrolled,
header.is-scrolled a,
header.is-scrolled .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content,
header.is-scrolled .wp-block-navigation .wp-block-navigation__submenu-icon,
header.is-scrolled .wp-block-navigation__responsive-container-open,
header.is-scrolled .wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container,
.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container {
	color: var(--wp--preset--color--base-dark);
}

header.is-scrolled .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--base-100);
}

/* Override: restore light colors inside the open mobile menu overlay */

header.is-scrolled .wp-block-navigation__responsive-container.is-menu-open,
header.is-scrolled
	.wp-block-navigation__responsive-container.is-menu-open
	:is(a, .wp-block-navigation-item__content, .wp-block-navigation__submenu-icon) {
	color: var(--wp--preset--color--base-100);
}

/* --- # Navigation (Responsive) --- */

header
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container.wp-block-navigation-submenu,
header.is-scrolled
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__submenu-container.wp-block-navigation-submenu {
	background-color: var(--wp--preset--color--base-content);
}

/* Force mobile state up to 783px */

@media (max-width: 783px) {
	/* Hide the desktop container that WordPress tries to show after 600px */
	.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none !important;
	}
	/* Show the hamburger button that WordPress hides after 600px */
	.wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex !important;
	}
}

/* Activate desktop view only after 783px */

@media (min-width: 784px) {
	.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: block !important;
		position: relative;
		width: 100%;
		z-index: auto;
	}

	.wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: none !important;
	}
}

/* --- # Mobile Menu State --- */

.wp-block-navigation__responsive-container.is-menu-open {
	height: 100vh;
	height: 100svh;
}

.wp-block-navigation__overlay-container a.custom-logo-link svg {
	color: var(--wp--preset--color--base-light);
}

/* --- # Logo --- */

header.wp-block-template-part .custom-logo-link :is(svg, img) {
	height: auto;
	width: var(--wp--custom--logo--width);
	max-width: var(--wp--custom--logo--width);
}

@media (min-width: 784px) and (max-width: 1080px) {
	header.wp-block-template-part .custom-logo-link :is(svg, img) {
		width: var(--wp--custom--logo--width-lg);
		max-width: var(--wp--custom--logo--width-lg);
	}
}

@media (min-width: 601px) and (max-width: 783px) {
	header.wp-block-template-part .custom-logo-link :is(svg, img) {
		width: var(--wp--custom--logo--width-md);
		max-width: var(--wp--custom--logo--width-md);
	}
}

@media (max-width: 600px) {
	header.wp-block-template-part .custom-logo-link :is(svg, img) {
		width: var(--wp--custom--logo--width-sm);
		max-width: var(--wp--custom--logo--width-sm);
	}
}

/* --- # Navigation (Scrolled) --- */

header.wp-block-template-part.is-scrolled a,
header.wp-block-template-part.is-scrolled
	.wp-block-navigation:not(.has-text-color)
	.wp-block-navigation__submenu-container {
	color: var(--wp--preset--color--base-dark);
}

/**
 * @file footer.css
 * --- Footer template-part styles ---
 */

/* --- # Logo --- */

footer.wp-block-template-part .custom-logo-link :is(svg, img) {
	height: auto;
	width: var(--wp--custom--footer-logo--width);
	max-width: var(--wp--custom--footer-logo--width);
}

@media (min-width: 784px) and (max-width: 1080px) {
	footer.wp-block-template-part .custom-logo-link :is(svg, img) {
		width: var(--wp--custom--footer-logo--width-lg);
		max-width: var(--wp--custom--footer-logo--width-lg);
	}
}

@media (min-width: 601px) and (max-width: 783px) {
	footer.wp-block-template-part .custom-logo-link :is(svg, img) {
		width: var(--wp--custom--footer-logo--width-md);
		max-width: var(--wp--custom--footer-logo--width-md);
	}
}

@media (max-width: 600px) {
	footer.wp-block-template-part .custom-logo-link :is(svg, img) {
		width: var(--wp--custom--footer-logo--width-sm);
		max-width: var(--wp--custom--footer-logo--width-sm);
	}
}

/* --- # Blocks --- */

/**
 * @file group.css
 * --- Group block styles ---
 */

/**
 * @file columns.css
 * --- Columns block styles ---
 */

/* --- # Responsive Layout --- */

:root :where(body:not(.archive, .single, .blog) .wp-block-columns) {
	flex-wrap: wrap !important;
}

@media (min-width: 1280px) {
	.wp-block-columns {
		flex-wrap: nowrap !important;
	}
}

@media (min-width: 783px) and (max-width: 1279px) {
	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex-basis: 33.33%;
	}
}

@media (min-width: 601px) and (max-width: 782px) {
	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex-basis: 50% !important;
	}
}

@media (max-width: 600px) {
	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex-basis: 100% !important;
	}
}

/**
 * @file gallery.css
 * --- Gallery block styles ---
 */

/* --- # Image Effects --- */

:root :where(.wp-block-gallery .wp-block-image) {
	overflow: hidden;
}

:root :where(.wp-block-gallery .wp-block-image img) {
	transition: transform var(--wp--custom--transition--duration--slow) var(--wp--custom--transition--timing--base);
}

/* --- # Image Captions --- */

:root :where(.wp-block-gallery .wp-block-image figcaption) {
	transition:
		font-size var(--wp--custom--transition--duration--slow) var(--wp--custom--transition--timing--base),
		padding-top var(--wp--custom--transition--duration--slow) var(--wp--custom--transition--timing--base),
		padding-bottom var(--wp--custom--transition--duration--slow) var(--wp--custom--transition--timing--base);
}

:root :where(.wp-block-gallery .wp-block-image:hover img),
:root :where(.wp-block-gallery .wp-block-image:focus-within img),
:root :where(.wp-block-gallery .wp-block-image:active img) {
	transform: scale(1.1);
}

:root :where(.wp-block-gallery figure.wp-block-image:has(figcaption) img) {
	z-index: -1;
}

:root :where(.wp-block-gallery figure.wp-block-image:has(figcaption))::before {
	transition: backdrop-filter var(--wp--custom--transition--duration--slow)
		var(--wp--custom--transition--timing--base);
}

:root :where(.wp-block-gallery figure.wp-block-image:hover:has(figcaption))::before {
	backdrop-filter: blur(0px);
}

:root :where(.wp-block-gallery figure.wp-block-image:hover figcaption),
:root :where(.wp-block-gallery figure.wp-block-image:focus-within figcaption),
:root :where(.wp-block-gallery figure.wp-block-image:active figcaption) {
	font-size: 1rem;
	padding-top: 3em;
	padding-bottom: 1em;
}

/* --- # Nested Images --- */

:root :where(.wp-block-gallery.has-nested-images):not(.lr-gallery) figure.wp-block-image:not(#individual-image) {
	margin: 0;
	width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) / 2);
}

/* --- # Media Queries --- */

@media (min-width: 783px) and (max-width: 1080px) {
	:root
		:where(.wp-block-gallery.has-nested-images):not(.columns-2):not(.lr-gallery)
		figure.wp-block-image:not(#individual-image) {
		width: calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px) * 0.66667) !important;
	}
}

@media (min-width: 601px) and (max-width: 782px) {
	:root :where(.wp-block-gallery.has-nested-images):not(.lr-gallery) figure.wp-block-image:not(#individual-image) {
		width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) / 2) !important;
	}
}

@media (max-width: 600px) {
	:root :where(.wp-block-gallery.has-nested-images):not(.lr-gallery) figure.wp-block-image:not(#individual-image) {
		width: calc(100% - var(--wp--style--unstable-gallery-gap, 16px) / 2) !important;
	}
}

/**
 * @file slider.css
 * --- Slider block styles ---
 */

/* --- # Main Slider --- */

.main-slider.wp-block-mnorwise-slider.swiper {
	height: 100dvh;
}

@media only screen and (min-width: 782px) and (max-width: 1400px) {
	.wp-block-mnorwise-slider .swiper-slide .mnorwise-slider-item-content {
		padding-left: 8rem;
		padding-right: 8rem;
	}
}

@media only screen and (max-width: 782px) {
	.wp-block-mnorwise-slider .swiper-slide .mnorwise-slider-item-content,
	.wp-block-mnorwise-slider .swiper-slide .mnorwise-slider-item-content .has-text-align-left,
	.wp-block-mnorwise-slider .swiper-slide .mnorwise-slider-item-content .has-text-align-right,
	.wp-block-mnorwise-slider .swiper-slide .mnorwise-slider-item-content .wp-block-buttons {
		align-items: center;
	}
	.wp-block-mnorwise-slider .swiper-button-next,
	.wp-block-mnorwise-slider .swiper-button-prev {
		display: none;
	}
}

/* --- # Video Slider --- */

.video-slider.wp-block-mnorwise-slider.swiper {
	height: auto;
}

/* --- # Pagination --- */

.video-slider.wp-block-mnorwise-slider.swiper .swiper-pagination-bullet {
	box-sizing: content-box;
	width: 1.75rem;
	height: 0.125rem;
	/* Increases hit area: +20px height, +10px width */
	padding: 0.75rem 0.3125rem;
	border-radius: 0;
	background-color: var(--color--base-content, currentColor);
	background-clip: content-box;
	opacity: 0.3;
	transition:
		opacity var(--wp--custom--transition--duration--base),
		transform var(--wp--custom--transition--duration--base);
	/* Adjust margin because padding already creates space */
	margin: 0;
	pointer-events: auto;
}

.video-slider.wp-block-mnorwise-slider.swiper .swiper-pagination-bullet-active {
	opacity: 0.6;
	transform: none !important;
	background-color: var(--color--base-content, currentColor);
}

/* Pagination container spacing - Now sequential layout */

.video-slider.wp-block-mnorwise-slider.swiper .swiper-pagination.swiper-pagination-bullets {
	position: relative;
	bottom: auto !important;
	padding-top: 3.75rem;
	padding-bottom: 3.75rem;
	display: flex;
	justify-content: center;
	align-items: center;
	pointer-events: auto;
}

.team-slider.wp-block-mnorwise-slider.swiper .swiper-slide {
	align-self: flex-end;
	max-height: 50rem;
}

.team-slider.wp-block-mnorwise-slider.swiper .swiper-slide img {
	margin-bottom: 7rem;
	transform: matrix(1);
	transition: transform var(--wp--custom--transition--duration--fast) linear;
}

.team-slider.wp-block-mnorwise-slider.swiper .swiper-slide:hover img,
.team-slider.wp-block-mnorwise-slider.swiper .swiper-slide:focus img,
.team-slider.wp-block-mnorwise-slider.swiper .swiper-slide:active img {
	transform: scale(1.05);
}

.team-slider.wp-block-mnorwise-slider.swiper .mnorwise-slider-item-content {
	color: var(--color--base-content, currentColor);
	justify-content: flex-end;
	padding-left: 0;
	padding-right: 0;
	padding-bottom: 0;
	width: 100%;
}

.team-slider.wp-block-mnorwise-slider.swiper .mnorwise-slider-item-content .mnorwise-slide-content-outer {
	/* Position static to allow the stretched link */
	position: static;
	background-color: var(--color--base-100, currentColor);
	border-top: 1px solid var(--color--base-300, currentColor);
	width: 100%;
}

/* Stretched Link pseudo-element on the button link */

:is(.team-slider.wp-block-mnorwise-slider.swiper .mnorwise-slider-item-content)
	.wp-block-button
	.wp-block-button__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* --- # Separator under the block text in team slider --- */

.team-slider.wp-block-mnorwise-slider.swiper
	.mnorwise-slider-item-content
	.mnorwise-slide-content-outer
	.wp-block-separator {
	width: 30%;
	border-top-width: 1px;
}

/**
 * @file team-member.css
 * --- Team Member block styles ---
 */

/* Card Selector representing the individual card boundary.
   Matches when .medea-team-member is added to:
   1. The Columns block or Column wrapper (targeting the Cover block inside).
   2. The Cover block itself.
   3. The custom plugin block .wp-block-mnorwise-team-member. */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member) {
	position: relative;
}

/* --- # Layout resets for Stretched Link --- */

/* Make inner container and paragraph static so the link stretches to the cover card container. */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	.wp-block-cover__inner-container {
	position: static;
	z-index: 0;
}

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	:is(.wp-block-paragraph, .wp-block-paragraph a) {
	position: static;
}

/* Stretched Link pseudo-element for paragraph link */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	.wp-block-paragraph
	a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* Ensure social links remain clickable above the stretched link */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	.wp-block-social-links {
	position: relative;
	z-index: 2;
}

/* --- # Image & Figcaption --- */

.wp-block-image:is(.aligncenter, .alignleft, .alignright) > figcaption,
.wp-block-image :is(.aligncenter, .alignleft, .alignright) > figcaption {
	display: block;
}

/* --- # Typography --- */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member) h2 {
	font-size: var(--wp--preset--font-size--xl);
}

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	.team-member-position {
	font-size: var(--wp--preset--font-size--md);
}

/* --- # Hover Effects --- */

/* Set up transitions for fade & scale hover animations */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	.wp-block-cover__inner-container
	> h2,
:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	.wp-block-cover__background {
	transition:
		opacity var(--wp--custom--transition--duration--fast) linear,
		transform var(--wp--custom--transition--duration--fast) linear;
}

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	.wp-block-cover__inner-container
	> :is(.wp-block-paragraph, .wp-block-buttons) {
	transition: opacity var(--wp--custom--transition--duration--fast) linear;
}

/* Allow smooth scaling of text inside the paragraph link if wrapped in a span (Option 2) */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	.wp-block-cover__inner-container
	> .wp-block-paragraph
	a
	span {
	display: inline-block;
	transition: transform var(--wp--custom--transition--duration--fast) linear;
}

/* Hover States (Triggers individually on card hover) */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member):hover
	.wp-block-cover__inner-container
	> h2,
:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member):hover
	.wp-block-cover__background {
	transform: scale(1.1);
	opacity: 0;
}

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member):hover
	.wp-block-cover__inner-container
	> :is(.wp-block-paragraph, .wp-block-buttons) {
	opacity: 0;
}

/* Scale the nested span on hover (Option 2) */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member):hover
	.wp-block-cover__inner-container
	> .wp-block-paragraph
	a
	span {
	transform: scale(1.1);
}

/* --- # Stretched Link via Button block (Option 1) --- */

/* Ensure the button elements do not trap the stretched link */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	:is(.wp-block-buttons, .wp-block-button, .wp-block-button__link) {
	position: static !important;
}

/* Stretched Link pseudo-element on the button link */

:is(.medea-team-member .wp-block-cover, .wp-block-cover.medea-team-member, .wp-block-mnorwise-team-member)
	.wp-block-button__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.is-layout-flow > :is(.medea-team-member, .wp-block-mnorwise-team-member) p,
.is-layout-flow > .medea-team-member .wp-block-cover p {
	margin-block-start: 0;
}

/**
 * @file media-text.css
 * --- Media & Text block styles ---
 */

/* --- # General Styles --- */

:root
	:where(.wp-block-media-text.is-stacked-on-mobile:not(.is-image-fill-element) > figure.wp-block-media-text__media) {
	position: sticky;
	inset-block-start: var(--header-height);
}

/* --- # Mobile Stacked Layout --- */

@media (max-width: 782px) {
	:root
		:where(
			.wp-block-media-text.is-stacked-on-mobile:not(.is-image-fill-element) > figure.wp-block-media-text__media
		) {
		position: static;
		inset-block-start: auto;
	}

	:root :where(.wp-block-media-text.is-stacked-on-mobile) {
		grid-template-columns: 100% !important;
	}
}

@media (max-width: 782px) {
	.wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media {
		grid-column: 1;
		grid-row: 1;
		min-height: 25rem;
	}

	.wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
		grid-column: 1;
		grid-row: 2;
	}
}

/* --- # Helpers --- */

/**
 * @file helpers.css
 * --- Helper styles ---
 */

/* --- # Stretched Link --- */

/* Makes any link cover its nearest position:relative ancestor.
   Apply to the <a> element; the parent container must have position:relative. */

.stretched-link {
	position: static;
}

.stretched-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: auto;
}

/* --- # Stretched Link Only --- */

/* Collapses wrappers to zero-height when the button is used purely as a stretched link.
   Add "stretched-link-only" class to .wp-block-buttons to activate. */

.wp-block-buttons.stretched-link-only,
.wp-block-buttons.stretched-link-only .wp-block-button {
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	line-height: 0 !important;
	gap: 0 !important;
	overflow: visible !important;
}

.wp-block-buttons.stretched-link-only .wp-block-button__link {
	opacity: 0 !important;
	height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	font-size: 0 !important;
	line-height: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	box-shadow: none !important;
	pointer-events: auto !important;
}

/* --- # Responsive Padding --- */

@media (max-width: 783px) {
	.padding-xl {
		padding-left: var(--wp--preset--spacing--xl) !important;
		padding-right: var(--wp--preset--spacing--xl) !important;
	}

	.padding-lg {
		padding-left: var(--wp--preset--spacing--lg) !important;
		padding-right: var(--wp--preset--spacing--lg) !important;
	}

	.padding-md {
		padding-left: var(--wp--preset--spacing--md) !important;
		padding-right: var(--wp--preset--spacing--md) !important;
	}

	.padding-base {
		padding-left: var(--wp--preset--spacing--base) !important;
		padding-right: var(--wp--preset--spacing--base) !important;
	}
}
