/*
Theme Name: Marie Gerda – Neve Child
Theme URI: https://elbe-schiffsrestaurant.de/
Description: Editierbares Child Theme für das kostenfreie Neve Theme. Enthält Seiten, Speisekarte, Termine, Öffnungszeiten und zentrale Restaurantdaten.
Author: Mitteldeutsche Camping- und Gastro GmbH
Template: neve
Version: 1.0.3
Requires at least: 6.2
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: marie-gerda
*/

:root {
	--mg-navy: #102a39;
	--mg-navy-2: #173b4f;
	--mg-blue: #2f6f8f;
	--mg-sand: #f1e9da;
	--mg-paper: #faf6ee;
	--mg-paper-2: #f5efe3;
	--mg-ink: #1c2a31;
	--mg-muted: #5c6b72;
	--mg-brass: #b9863f;
	--mg-brass-soft: #caa066;
	--mg-line: rgba(16, 42, 57, 0.12);
	--mg-line-strong: rgba(16, 42, 57, 0.2);
	--mg-shadow: 0 18px 50px -22px rgba(16, 42, 57, 0.45);
	--mg-shadow-sm: 0 8px 24px -14px rgba(16, 42, 57, 0.4);
	--mg-display: "Spectral", Georgia, serif;
	--mg-body: "Mulish", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--mg-max: 1140px;
	--mg-gutter: clamp(20px, 5vw, 48px);
}

body.mg-site {
	margin: 0;
	color: var(--mg-ink);
	background: var(--mg-paper);
	font-family: var(--mg-body);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

.mg-site *,
.mg-site *::before,
.mg-site *::after {
	box-sizing: border-box;
}

.mg-site img {
	display: block;
	max-width: 100%;
	height: auto;
}

.mg-site a {
	color: var(--mg-blue);
	text-decoration: none;
}

.mg-site a:hover {
	color: var(--mg-navy);
}

.mg-site h1,
.mg-site h2,
.mg-site h3,
.mg-site h4 {
	margin: 0;
	color: var(--mg-navy);
	font-family: var(--mg-display);
	font-weight: 600;
	line-height: 1.12;
}

.mg-site h2 {
	margin-bottom: 0.5rem;
	font-size: clamp(1.9rem, 4vw, 3rem);
}

.mg-site h3 {
	font-size: 1.35rem;
}

.mg-site p {
	margin: 0 0 1.1em;
}

.mg-wrap {
	width: 100%;
	max-width: var(--mg-max);
	margin-inline: auto;
	padding-inline: var(--mg-gutter);
}

.mg-skip-link {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 9999;
	padding: 0.7rem 1rem;
	transform: translateY(-160%);
	border-radius: 5px;
	background: #fff;
	color: var(--mg-navy);
	font-weight: 700;
}

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

.mg-site a:focus-visible,
.mg-site button:focus-visible {
	outline: 3px solid var(--mg-brass-soft);
	outline-offset: 3px;
}

/* Top strip and navigation */
.mg-topbar {
	background: var(--mg-navy);
	color: #cfe0e8;
	font-size: 0.82rem;
	letter-spacing: 0.02em;
}

.mg-topbar .mg-wrap {
	display: flex;
	min-height: 40px;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.mg-topbar a {
	color: #cfe0e8;
}

.mg-nav {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--mg-line);
	background: rgba(250, 246, 238, 0.94);
	backdrop-filter: blur(10px);
	transition: box-shadow 0.3s ease;
}

.admin-bar .mg-nav {
	top: 32px;
}

.mg-nav.is-scrolled {
	box-shadow: 0 10px 30px -20px rgba(16, 42, 57, 0.6);
}

.mg-nav .mg-wrap {
	display: flex;
	min-height: 78px;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.mg-brand {
	display: flex;
	align-items: center;
	color: var(--mg-navy);
}

.mg-brand-text {
	line-height: 1.05;
}

.mg-brand-text strong {
	display: block;
	color: var(--mg-navy);
	font-family: var(--mg-display);
	font-size: 1.25rem;
	font-weight: 600;
}

.mg-brand-text span {
	color: var(--mg-muted);
	font-size: 0.72rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.mg-menu {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mg-menu a {
	position: relative;
	display: block;
	padding: 0.6rem 0.85rem;
	border-radius: 8px;
	color: var(--mg-navy);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.mg-menu a::after {
	position: absolute;
	right: 0.85rem;
	bottom: 0.3rem;
	left: 0.85rem;
	height: 2px;
	transform: scaleX(0);
	transform-origin: left;
	background: var(--mg-brass);
	content: "";
	transition: transform 0.25s ease;
}

.mg-menu a:hover::after,
.mg-menu .current-menu-item > a::after,
.mg-menu .current_page_item > a::after {
	transform: scaleX(1);
}

.mg-menu .current-menu-item > a,
.mg-menu .current_page_item > a {
	color: var(--mg-blue);
}

.mg-nav-toggle {
	display: none;
	margin-left: auto;
	padding: 0.25rem;
	border: 0;
	background: transparent;
	color: var(--mg-navy);
	font-size: 1.9rem;
	line-height: 1;
	cursor: pointer;
}

/* Hero and slider */
.mg-hero {
	position: relative;
	overflow: hidden;
	background: var(--mg-navy);
}

.mg-hero.full {
	height: clamp(420px, 76vh, 680px);
}

.mg-hero.compact {
	height: clamp(260px, 40vh, 360px);
}

.mg-slides,
.mg-slide {
	position: absolute;
	inset: 0;
}

.mg-slide {
	opacity: 0;
	transform: scale(1.05);
	background-position: center;
	background-size: cover;
	transition: opacity 1.1s ease, transform 6s ease;
}

.mg-slide.active {
	opacity: 1;
	transform: scale(1);
}

.mg-hero::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(16, 42, 57, 0.52), rgba(16, 42, 57, 0.15) 35%, rgba(16, 42, 57, 0.8));
	content: "";
}

.mg-hero-inner {
	position: relative;
	z-index: 3;
	display: flex;
	height: 100%;
	flex-direction: column;
	justify-content: flex-end;
	padding-bottom: clamp(34px, 6vh, 64px);
}

.mg-hero.compact .mg-hero-inner {
	justify-content: center;
}

.mg-hero h1 {
	max-width: 18ch;
	color: #fff;
	font-size: clamp(2.4rem, 6vw, 4.4rem);
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.35);
}

.mg-hero.compact h1 {
	font-size: clamp(2rem, 5vw, 3.2rem);
}

.mg-hero .mg-lead {
	max-width: 42ch;
	margin-top: 0.6rem;
	color: #e7eef2;
	font-size: clamp(1.05rem, 2.2vw, 1.4rem);
	text-shadow: 0 1px 14px rgba(0, 0, 0, 0.4);
}

.mg-kicker {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0 0 0.9rem;
	color: var(--mg-brass);
	font-family: var(--mg-body);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.mg-kicker::before {
	display: inline-block;
	width: 26px;
	height: 1px;
	background: currentColor;
	content: "";
}

.mg-hero .mg-kicker {
	color: var(--mg-brass-soft);
}

.mg-kicker.mg-center,
.mg-center.mg-kicker {
	justify-content: center;
}

.mg-slider-controls {
	position: absolute;
	right: var(--mg-gutter);
	bottom: clamp(34px, 6vh, 64px);
	z-index: 4;
	display: flex;
	gap: 0.5rem;
}

.mg-slider-controls button {
	display: grid;
	width: 46px;
	height: 46px;
	padding: 0;
	place-items: center;
	border: 1.5px solid rgba(255, 255, 255, 0.55);
	border-radius: 50%;
	background: rgba(16, 42, 57, 0.25);
	color: #fff;
	font-size: 1.1rem;
	cursor: pointer;
}

.mg-dots {
	position: absolute;
	bottom: calc(clamp(34px, 6vh, 64px) + 4px);
	left: var(--mg-gutter);
	z-index: 4;
	display: flex;
	gap: 0.5rem;
}

.mg-dots button {
	width: 34px;
	height: 4px;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.4);
	cursor: pointer;
}

.mg-dots button.active {
	background: var(--mg-brass-soft);
}

/* Editable content sections */
.mg-main {
	overflow: hidden;
}

.mg-section {
	margin: 0;
	padding-block: clamp(56px, 9vw, 104px);
}

.mg-site .mg-section > * {
	width: min(calc(100% - (2 * var(--mg-gutter))), var(--mg-max));
	margin-right: auto;
	margin-left: auto;
}

.mg-section.alignfull,
.mg-section.wp-block-group {
	max-width: none;
}

.mg-section > .alignwide,
.mg-section > .alignfull {
	max-width: var(--mg-max);
}

.mg-sand {
	background: var(--mg-sand);
}

.mg-lead-2 {
	color: var(--mg-navy-2);
	font-family: var(--mg-display);
	font-size: clamp(1.15rem, 2.3vw, 1.45rem);
	font-weight: 500;
	line-height: 1.5;
}

.mg-split {
	align-items: center !important;
	gap: clamp(32px, 5vw, 68px);
}

.mg-figure {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	margin: 0;
	border-radius: 14px;
	background: var(--mg-navy);
	box-shadow: var(--mg-shadow);
}

.mg-figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mg-feature-grid {
	gap: 1px !important;
	overflow: hidden;
	margin-top: 2.4rem;
	border: 1px solid var(--mg-line);
	border-radius: 14px;
	background: var(--mg-line);
}

.mg-feature-grid .mg-feature {
	flex-basis: 0 !important;
	padding: clamp(24px, 3vw, 34px);
	background: var(--mg-paper);
}

.mg-feature .mg-num {
	margin: 0 0 0.55rem;
	color: var(--mg-brass);
	font-family: var(--mg-display);
	font-size: 2rem;
	line-height: 1;
}

.mg-feature h3:not(.mg-num) {
	margin-bottom: 0.35rem;
	font-size: 1.18rem;
}

.mg-feature p {
	margin: 0;
	color: var(--mg-muted);
	font-size: 0.96rem;
}

.mg-cards {
	gap: clamp(18px, 2.5vw, 28px);
	margin-top: 2.2rem;
}

.mg-card {
	display: flex;
	flex-direction: column;
	padding: clamp(26px, 3vw, 36px);
	border: 1px solid var(--mg-line);
	border-radius: 14px;
	background: var(--mg-paper);
	box-shadow: var(--mg-shadow-sm);
}

.mg-tab {
	margin-bottom: 0.7rem;
	color: var(--mg-brass);
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.mg-card h3 {
	margin-bottom: 0.7rem;
	font-size: 1.5rem;
}

.mg-card ul {
	margin: 0.2rem 0 0;
	padding: 0;
	list-style: none;
}

.mg-card li {
	position: relative;
	margin-bottom: 0.55rem;
	padding-left: 1.5rem;
}

.mg-card li::before {
	position: absolute;
	top: 0.65em;
	left: 0;
	width: 8px;
	height: 8px;
	transform: rotate(45deg);
	background: var(--mg-blue);
	content: "";
}

.mg-cta {
	background: linear-gradient(160deg, var(--mg-blue), var(--mg-navy-2));
	color: #fff;
	text-align: center;
}

.mg-cta h2 {
	color: #fff;
}

.mg-cta p {
	max-width: 52ch;
	color: #dceaf0;
}

.mg-button-wrap {
	text-align: center;
}

.mg-button-left {
	text-align: left;
}

.mg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.2rem;
	padding: 0.85rem 1.6rem;
	border: 0;
	border-radius: 10px;
	background: var(--mg-brass);
	color: #fff !important;
	font-weight: 700;
	letter-spacing: 0.04em;
	transition: transform 0.2s ease, background 0.2s ease;
}

.mg-btn:hover {
	transform: translateY(-2px);
	background: var(--mg-brass-soft);
}

.mg-prose {
	max-width: 74ch;
}

.mg-dropcap::first-letter {
	float: left;
	padding: 0.08em 0.12em 0 0;
	color: var(--mg-brass);
	font-family: var(--mg-display);
	font-size: 3.4rem;
	font-weight: 600;
	line-height: 0.8;
}

.mg-pull {
	margin: 2rem 0;
	padding: 0.2rem 0 0.2rem 1.4rem;
	border-left: 3px solid var(--mg-brass);
	color: var(--mg-navy-2);
	font-family: var(--mg-display);
	font-size: 1.35rem;
	font-style: italic;
	line-height: 1.4;
}

.mg-timeline {
	max-width: 800px;
	margin-top: 2.4rem !important;
	padding-left: 2rem !important;
	border-left: 2px solid var(--mg-line-strong);
	list-style: none !important;
}

.mg-timeline li {
	position: relative;
	padding: 0 0 1.8rem 0.4rem;
}

.mg-timeline li::before {
	position: absolute;
	top: 0.45em;
	left: -2.46rem;
	width: 12px;
	height: 12px;
	border: 2px solid var(--mg-paper);
	border-radius: 50%;
	background: var(--mg-brass);
	content: "";
}

.mg-timeline strong {
	color: var(--mg-blue);
	font-family: var(--mg-display);
	font-size: 1.15rem;
}

.mg-info-row {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.4rem 1.4rem;
	margin: 1.2rem 0;
}

.mg-info-row dt {
	color: var(--mg-navy);
	font-weight: 700;
}

.mg-info-row dd {
	margin: 0;
}

.mg-small-note {
	color: var(--mg-muted);
	font-family: var(--mg-display);
	font-style: italic;
}

.mg-map-frame {
	overflow: hidden;
	border: 1px solid var(--mg-line);
	border-radius: 14px;
	box-shadow: var(--mg-shadow);
}

.mg-map-frame iframe {
	display: block;
	width: 100%;
	height: 420px;
	border: 0;
}

.mg-legal {
	max-width: none;
}

.mg-legal > * {
	max-width: 72ch;
}

.mg-legal h2 {
	margin-top: 2rem;
	font-size: 1.5rem;
}

.mg-legal h2:first-child {
	margin-top: 0;
}

/* Menu */
.mg-menu-section {
	padding-top: 0;
}

.mg-menu-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(30px, 5vw, 64px);
}

.mg-menu-group h2 {
	display: inline-block;
	padding-bottom: 0.55rem;
	border-bottom: 2px solid var(--mg-brass);
	font-size: 1.45rem;
}

.mg-dish-list {
	margin: 1.1rem 0 0;
	padding: 0;
	list-style: none;
}

.mg-dish {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--mg-line);
}

.mg-dish-line {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
}

.mg-dish-name {
	color: var(--mg-navy-2);
	font-family: var(--mg-display);
	font-size: 1.2rem;
}

.mg-dish-price {
	margin-left: auto;
	color: var(--mg-navy);
	font-weight: 700;
	white-space: nowrap;
}

.mg-dish-description {
	margin-top: 0.2rem;
	color: var(--mg-muted);
	font-size: 0.96rem;
}

.mg-badge {
	padding: 0.18rem 0.52rem;
	border-radius: 999px;
	background: rgba(63, 125, 82, 0.12);
	color: #3f7d52;
	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Events */
.mg-events-section {
	padding-top: 0;
}

.mg-events {
	display: grid;
	gap: 1.5rem;
}

.mg-event-card {
	display: grid;
	grid-template-columns: 170px 1fr;
	overflow: hidden;
	border: 1px solid var(--mg-line);
	border-radius: 16px;
	background: var(--mg-paper);
	box-shadow: var(--mg-shadow-sm);
}

.mg-event-date {
	display: flex;
	min-height: 240px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	background: var(--mg-navy);
	color: #dce8ed;
	text-align: center;
	text-transform: capitalize;
}

.mg-event-date strong {
	color: #fff;
	font-family: var(--mg-display);
	font-size: 4rem;
	line-height: 1;
}

.mg-event-content {
	padding: clamp(26px, 4vw, 46px);
}

.mg-event-content h2 {
	font-size: clamp(1.7rem, 3vw, 2.35rem);
}

.mg-event-description {
	margin-top: 0.8rem;
}

.mg-event-note {
	color: var(--mg-blue);
	font-weight: 700;
}

.mg-event-content .mg-button-wrap {
	text-align: left;
}

.mg-event-card.is-past {
	opacity: 0.82;
}

.mg-past-label {
	display: inline-block;
	padding: 0.2rem 0.6rem;
	border-radius: 999px;
	background: var(--mg-paper-2);
	color: var(--mg-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.mg-empty-note {
	max-width: 760px;
	margin-inline: auto;
	padding: clamp(28px, 5vw, 48px);
	border: 1px solid var(--mg-line);
	border-radius: 16px;
	background: var(--mg-paper-2);
	text-align: center;
}

/* Reviews, contact and footer */
.mg-reviews {
	padding-block: clamp(56px, 8vw, 90px);
	border-top: 1px solid var(--mg-line);
	background: var(--mg-paper-2);
}

.mg-review-card {
	max-width: 760px;
	margin-inline: auto;
	padding: clamp(30px, 5vw, 52px);
	border: 1px solid var(--mg-line);
	border-radius: 18px;
	background: var(--mg-paper);
	box-shadow: var(--mg-shadow);
	text-align: center;
}

.mg-review-card p {
	color: var(--mg-muted);
}

.mg-stars {
	margin: 0.6rem 0 1.4rem;
	color: #f5a623;
	font-size: 1.7rem;
	letter-spacing: 0.1em;
	line-height: 1;
}

.mg-review-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.8rem;
}

.mg-review-buttons .mg-btn {
	margin-top: 0;
}

.mg-btn-light {
	border: 1.5px solid var(--mg-line-strong);
	background: #fff;
	color: var(--mg-navy) !important;
}

.mg-contact-band {
	padding-block: clamp(56px, 9vw, 104px);
	background: var(--mg-navy);
	color: #dce8ed;
}

.mg-contact-band .mg-wrap {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: clamp(32px, 5vw, 64px);
}

.mg-contact-band .mg-kicker {
	color: var(--mg-brass-soft);
}

.mg-contact-band h2,
.mg-contact-band a {
	color: #fff;
}

.mg-contact-block p {
	margin: 0.15rem 0;
	color: #bcd0d9;
}

.mg-contact-block .mg-contact-name {
	margin-bottom: 0.4rem;
	color: #fff;
	font-family: var(--mg-display);
	font-size: 1.4rem;
}

.mg-contact-phone {
	display: inline-flex;
	margin-top: 1rem;
	font-family: var(--mg-display);
	font-size: 1.25rem;
}

.mg-hours {
	padding: clamp(22px, 3vw, 30px);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.04);
}

.mg-open-flag {
	display: inline-block;
	margin-bottom: 1rem;
	padding: 0.3rem 0.7rem;
	border-radius: 5px;
	background: var(--mg-brass);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.mg-hours dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.5rem 1.5rem;
	margin: 0;
}

.mg-hours dt {
	color: #bcd0d9;
}

.mg-hours dd {
	margin: 0;
	color: #fff;
	font-weight: 600;
	text-align: right;
}

.mg-hours-note {
	margin-top: 1.1rem !important;
	padding-top: 1.1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	color: #9fb6c0;
	font-size: 0.9rem;
	font-style: italic;
}

.mg-partners {
	border-top: 1px solid var(--mg-line);
	background: var(--mg-paper-2);
}

.mg-partners .mg-wrap {
	padding-block: 48px;
}

.mg-partner-label {
	margin-bottom: 1.8rem !important;
	color: var(--mg-muted);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-align: center;
	text-transform: uppercase;
}

.mg-partner-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(28px, 5vw, 60px);
}

.mg-partner-row a {
	opacity: 0.68;
	filter: grayscale(1);
	transition: opacity 0.25s ease, filter 0.25s ease, transform 0.25s ease;
}

.mg-partner-row a:hover {
	opacity: 1;
	filter: grayscale(0);
	transform: translateY(-2px);
}

.mg-partner-row img {
	width: auto;
	height: 52px;
	object-fit: contain;
}

.mg-site-footer {
	background: #0c2230;
	color: #9fb6c0;
	font-size: 0.9rem;
}

.mg-site-footer .mg-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.4rem;
	padding-block: 40px;
	text-align: center;
}

.mg-social {
	display: flex;
	gap: 0.7rem;
}

.mg-social a {
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.07);
	color: #cfe0e8;
	font-family: var(--mg-display);
	font-size: 1.1rem;
	font-weight: 700;
}

.mg-social a:hover {
	border-color: var(--mg-brass);
	background: var(--mg-brass);
	color: #fff;
}

.mg-footer-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem 1.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mg-footer-menu a {
	color: #cfe0e8;
	font-weight: 600;
}

.mg-footer-rule {
	width: 100%;
	height: 1px;
	background: rgba(255, 255, 255, 0.1);
}

.mg-footer-meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem 1.4rem;
	color: #6f8896;
	font-size: 0.82rem;
}

.mg-center-text {
	text-align: center;
}

.mg-article-card {
	margin-bottom: 2rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--mg-line);
}

/* Block editor approximation */
.editor-styles-wrapper .mg-section {
	padding: 48px 28px;
}

.editor-styles-wrapper .mg-sand {
	background: var(--mg-sand);
}

.editor-styles-wrapper .mg-cta {
	background: var(--mg-blue);
}

/* Responsive layout */
@media (max-width: 880px) {
	.admin-bar .mg-nav {
		top: 46px;
	}

	.mg-nav-toggle {
		display: inline-flex;
	}

	.mg-menu {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		display: none;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 0.25rem var(--mg-gutter) 0.85rem;
		border-bottom: 1px solid var(--mg-line);
		background: var(--mg-paper);
		box-shadow: var(--mg-shadow-sm);
	}

	.mg-menu.is-open {
		display: flex;
	}

	.mg-menu a {
		padding: 0.7rem 0.1rem;
	}

	.mg-menu a::after {
		display: none;
	}

	.mg-hero.full {
		display: block;
		height: auto;
		padding: 0;
	}

	.mg-hero.full::after {
		display: none;
	}

	.mg-hero.full .mg-slides {
		position: relative;
		height: min(62vw, 360px);
	}

	.mg-hero.full .mg-slides::after {
		position: absolute;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 2;
		height: 64px;
		background: linear-gradient(0deg, rgba(16, 42, 57, 0.55), transparent);
		content: "";
	}

	.mg-hero.full .mg-hero-inner {
		height: auto;
		padding-top: clamp(22px, 6vw, 30px);
		padding-bottom: clamp(26px, 7vw, 36px);
	}

	.mg-hero.full h1,
	.mg-hero.full .mg-lead {
		text-shadow: none;
	}

	.mg-hero.full .mg-dots {
		top: calc(min(62vw, 360px) - 22px);
		right: 0;
		bottom: auto;
		left: 0;
		justify-content: center;
	}

	.mg-hero.full .mg-slider-controls {
		display: none;
	}

	.mg-hero.compact {
		height: clamp(180px, 34vh, 260px);
	}

	.mg-event-card {
		grid-template-columns: 130px 1fr;
	}
}

@media (max-width: 782px) {
	.mg-topbar .mg-wrap {
		flex-direction: column;
		justify-content: center;
		gap: 0.1rem;
		padding-block: 0.5rem;
		text-align: center;
	}

	.mg-split,
	.mg-cards,
	.mg-feature-grid {
		flex-direction: column;
	}

	.mg-contact-band .mg-wrap,
	.mg-menu-columns {
		grid-template-columns: 1fr;
	}

	.mg-feature-grid {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 560px) {
	.mg-feature-grid {
		grid-template-columns: 1fr;
	}

	.mg-event-card {
		grid-template-columns: 1fr;
	}

	.mg-event-date {
		min-height: 0;
		padding: 1rem;
	}

	.mg-event-date strong {
		font-size: 3rem;
	}

	.mg-info-row,
	.mg-hours dl {
		grid-template-columns: 1fr;
		gap: 0.15rem;
	}

	.mg-info-row dd,
	.mg-hours dd {
		margin-bottom: 0.65rem;
		text-align: left;
	}

	.mg-review-buttons {
		align-items: stretch;
		flex-direction: column;
	}

	.mg-review-buttons .mg-btn {
		width: 100%;
	}
}

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