/* MY-MVZ global design system. Page copy and saved builder content remain untouched. */
:root {
	--mymvz-forest: #123d31;
	--mymvz-green: #08764f;
	--mymvz-green-dark: #075d3f;
	--mymvz-mint: #edf5ef;
	--mymvz-cream: #fbfaf7;
	--mymvz-ink: #22312c;
	--mymvz-muted: #64716b;
	--mymvz-line: rgba(18, 61, 49, .12);
	--mymvz-shadow: 0 18px 48px rgba(18, 61, 49, .09);
	--mymvz-radius: 22px;
}

html { scroll-behavior: smooth; }
body {
	color: var(--mymvz-ink);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Shared navigation: clean white surface and a clear active-page cue. */
#navigation {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(255, 255, 255, .97) !important;
	box-shadow: 0 8px 30px rgba(16, 54, 42, .07);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}
body.admin-bar #navigation { top: 32px; }
#navigation .h-section-grid-container { max-width: 1440px; }
#navigation .h-logo__image,
#navigation .h-logo__alt-image {
	max-height: 78px;
	width: auto;
	filter: drop-shadow(0 2px 1px rgba(7, 70, 46, .30)) drop-shadow(0 7px 5px rgba(12, 65, 46, .18)) drop-shadow(0 15px 17px rgba(20, 93, 60, .14));
	transform: perspective(600px) rotateY(-7deg) rotateX(2deg) translateZ(4px);
	transform-origin: center;
	transition: transform .3s ease, filter .3s ease;
}
#navigation a:hover .h-logo__image,
#navigation a:focus-visible .h-logo__image {
	transform: perspective(600px) rotateY(0) rotateX(0) translateY(-2px) translateZ(8px);
	filter: drop-shadow(0 3px 2px rgba(7, 70, 46, .32)) drop-shadow(0 10px 12px rgba(20, 93, 60, .22));
}
#navigation .menu-item > a,
#navigation .h-menu a {
	color: var(--mymvz-forest) !important;
	font-weight: 700;
	letter-spacing: .045em;
	text-decoration-thickness: 2px;
	text-underline-offset: 7px;
	transition: color .2s ease, opacity .2s ease;
}
#navigation .menu-item > a:hover,
#navigation .menu-item.current-menu-item > a,
#navigation .menu-item.current_page_item > a { color: var(--mymvz-green) !important; }

/* Consistent reading width, spacing, and heading hierarchy across all pages. */
.page-content .h-section:not(#navigation):not(#footer) .h-section-boxed-container,
.page-content .h-section:not(#navigation):not(#footer) .h-section-grid-container {
	max-width: 1320px;
}
.page-content .h-section:not(#navigation):not(#footer) {
	 scroll-margin-top: 110px;
}
.page-content h1,
.page-content h2,
.page-content h3 {
	color: var(--mymvz-forest);
	letter-spacing: -.025em;
	text-wrap: balance;
}
.page-content h1 { line-height: 1.06; }
.page-content h2 { line-height: 1.14; }
.page-content p,
.page-content li {
	color: var(--mymvz-muted);
	line-height: 1.75;
}
.page-content p { max-width: 74ch; }

/* Calm, consistent section rhythm. Baden-Baden's custom layout remains intact. */
.page-content .h-section:not(#navigation):not(#footer):not(#hero) {
	padding-top: clamp(2.6rem, 5.2vw, 5.4rem);
	padding-bottom: clamp(2.6rem, 5.2vw, 5.4rem);
}
.page-content .h-section:not(#navigation):not(#footer):nth-of-type(even) {
	background-color: var(--mymvz-cream);
}
.page-content .h-section[id="features"] .h-column-container,
.page-content .h-section[id="features-2"] .h-column-container,
.page-content .h-section[id="about-2"] .h-column-container {
	border: 1px solid var(--mymvz-line);
	border-radius: var(--mymvz-radius);
	background: #fff;
	box-shadow: 0 10px 30px rgba(18, 61, 49, .055);
	transition: box-shadow .22s ease, transform .22s ease;
}
.page-content .h-section[id="features"] .h-column-container:hover,
.page-content .h-section[id="features-2"] .h-column-container:hover,
.page-content .h-section[id="about-2"] .h-column-container:hover {
	transform: translateY(-3px);
	box-shadow: var(--mymvz-shadow);
}

/* Images use a consistent, responsive presentation without replacing source files. */
#content img:not(.h-logo__image):not(.h-logo__alt-image):not(.cmp-logo):not([src*="gravatar"]) {
	max-width: 100%;
	height: auto;
	border-radius: 18px;
	object-fit: cover;
	box-shadow: 0 12px 32px rgba(18, 61, 49, .12);
	transition: transform .25s ease, box-shadow .25s ease;
}
#content a:hover > img,
#content a:focus-visible > img {
	transform: scale(1.012);
	box-shadow: 0 18px 40px rgba(18, 61, 49, .17);
}

/* Buttons and links keep their existing labels and destinations. */
.page-content a.wp-block-button__link,
.page-content a.button,
.page-content .h-button,
.page-content a[role="button"] {
	border-radius: 999px !important;
	font-weight: 700 !important;
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.page-content a.wp-block-button__link:hover,
.page-content a.button:hover,
.page-content .h-button:hover,
.page-content a[role="button"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(8, 118, 79, .2);
}

#footer {
	background: var(--mymvz-forest) !important;
	color: rgba(255, 255, 255, .84) !important;
}
#footer a,
#footer p,
#footer li,
#footer h2,
#footer h3 { color: #fff !important; }
#footer a { text-underline-offset: 4px; }

/* The MY-MVZ assistant is sitewide and uses local, fixed information only. */
.mymvz-chat-toggle {
	position: fixed;
	z-index: 99990;
	right: 24px;
	bottom: 24px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #176c51, #0d4f3d);
	color: #fff;
	padding: 14px 19px;
	box-shadow: 0 12px 32px rgba(13, 65, 47, .30);
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}
.mymvz-chat {
	position: fixed;
	z-index: 99991;
	right: 24px;
	bottom: 86px;
	width: min(380px, calc(100vw - 32px));
	max-height: min(590px, calc(100vh - 120px));
	display: none;
	flex-direction: column;
	border: 1px solid #d7e7df;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 22px 70px rgba(16, 57, 42, .24);
	overflow: hidden;
	color: #183329;
}
.mymvz-chat.is-open { display: flex; }
.mymvz-chat-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 18px;
	background: linear-gradient(135deg, #176c51, #0d4f3d);
	color: #fff;
}
.mymvz-chat-head strong { display: block; font-size: 16px; }
.mymvz-chat-head small { display: block; color: #fff; opacity: .9; }
.mymvz-chat-close { border: 0; background: transparent; color: #fff; font-size: 25px; cursor: pointer; line-height: 1; }
.mymvz-chat-log { padding: 18px; overflow: auto; flex: 1; min-height: 120px; }
.mymvz-chat-message { max-width: none !important; margin: 0 0 12px; padding: 13px 14px; border-radius: 4px 16px 16px 16px; background: #eff6f2; color: #334a40; font-size: 14px; line-height: 1.6; }
.mymvz-chat-message a { color: #075d3f; font-weight: 700; text-underline-offset: 2px; }
.mymvz-chat-actions { display: grid; gap: 8px; padding: 0 18px 18px; }
.mymvz-chat-actions button { width: 100%; padding: 11px 13px; border-radius: 12px; border: 1px solid #cfe1d7; background: #fff; color: #125b44; text-align: left; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.mymvz-chat-actions button:hover { background: #edf6f1; color: #125b44; }
.mymvz-chat-privacy { max-width: none !important; margin: 0; padding: 0 18px 15px; color: #75827c; font-size: 11px; line-height: 1.5; }

/* High-contrast focus states for keyboard users. */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible {
	outline: 3px solid #d6a94d !important;
	outline-offset: 3px !important;
}

@media (max-width: 767px) {
	body.admin-bar #navigation { top: 46px; }
	#navigation .h-logo__image,
	#navigation .h-logo__alt-image { max-height: 58px; }
	.page-content .h-section:not(#navigation):not(#footer):not(#hero) {
		padding-top: 2.5rem;
		padding-bottom: 2.5rem;
	}
	#content img:not(.h-logo__image):not(.h-logo__alt-image):not(.cmp-logo):not([src*="gravatar"]) {
		border-radius: 14px;
	}
	.mymvz-chat-toggle { right: 15px; bottom: 15px; }
	.mymvz-chat { right: 12px; bottom: 76px; }
}

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