.emd-button,
.wp-block-button__link,
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	align-items: center;
	appearance: none;
	background: var(--emd-button-bg, var(--emd-color-brand-red));
	border: 1px solid var(--emd-button-border, transparent);
	border-radius: var(--emd-radius-md);
	box-shadow: var(--emd-button-shadow, var(--emd-shadow-brand));
	color: var(--emd-button-color, var(--emd-color-text-primary));
	cursor: pointer;
	display: inline-flex;
	font-family: var(--emd-font-heading);
	font-size: var(--emd-size-small);
	font-weight: 900;
	gap: var(--emd-space-xs);
	justify-content: center;
	letter-spacing: 0.06em;
	line-height: 1;
	min-height: 3rem;
	padding: 0.875rem 1.375rem;
	text-transform: uppercase;
	transition: background var(--emd-transition-slow), border-color var(--emd-transition-slow), box-shadow var(--emd-transition-slow), color var(--emd-transition-slow), transform var(--emd-transition-slow);
}

.emd-button:hover,
.wp-block-button__link:hover,
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	background: var(--emd-button-hover-bg, var(--emd-color-brand-red-hover));
	color: var(--emd-button-hover-color, var(--emd-color-text-primary));
	transform: translateY(-2px);
}

.emd-button:active,
.wp-block-button__link:active,
button:active,
input[type="button"]:active,
input[type="reset"]:active,
input[type="submit"]:active {
	transform: translateY(0);
}

.emd-button[disabled],
.emd-button.is-disabled,
.wp-block-button__link.is-disabled,
button:disabled,
input:disabled {
	cursor: not-allowed;
	opacity: 0.58;
	transform: none;
}

.emd-button--secondary,
.is-style-emd-secondary .wp-block-button__link {
	--emd-button-bg: var(--emd-color-surface-soft);
	--emd-button-border: var(--emd-color-line-soft);
	--emd-button-shadow: none;
	--emd-button-hover-bg: var(--emd-color-surface-card);
}

.emd-button--outline,
.is-style-emd-outline .wp-block-button__link {
	--emd-button-bg: transparent;
	--emd-button-border: var(--emd-color-line-soft);
	--emd-button-shadow: none;
	--emd-button-hover-bg: var(--emd-color-surface-soft);
}

.emd-button--whatsapp,
.is-style-emd-whatsapp .wp-block-button__link {
	--emd-button-bg: var(--emd-color-brand-red);
	--emd-button-hover-bg: var(--emd-color-brand-red-hover);
}

.emd-floating-contact {
	align-items: center;
	background: color-mix(in srgb, var(--emd-color-brand-black) 88%, transparent);
	border: 1px solid var(--emd-color-line-soft);
	border-radius: 999px;
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.35);
	display: flex;
	gap: 0.35rem;
	inset-block-end: 1.15rem;
	inset-inline: 50% auto;
	padding: 0.35rem;
	position: fixed;
	transform: translateX(-50%);
	z-index: calc(var(--emd-z-header) + 20);
}

.emd-floating-contact__item {
	align-items: center;
	background: var(--emd-color-surface-soft);
	border: 1px solid var(--emd-color-line-soft);
	border-radius: 999px;
	color: var(--emd-color-text-primary);
	display: inline-flex;
	font-family: var(--emd-font-heading);
	font-size: 0.78rem;
	font-weight: 900;
	gap: 0.45rem;
	line-height: 1;
	min-height: 2.75rem;
	padding: 0.45rem 0.85rem 0.45rem 0.5rem;
	text-transform: uppercase;
	transition: background var(--emd-transition-slow), border-color var(--emd-transition-slow), transform var(--emd-transition-slow);
	white-space: nowrap;
}

.emd-floating-contact__item span {
	align-items: center;
	background: var(--emd-color-brand-red);
	border-radius: 999px;
	color: var(--emd-color-text-primary);
	display: inline-flex;
	font-size: 0.66rem;
	height: 1.85rem;
	justify-content: center;
	min-width: 1.85rem;
	padding-inline: 0.35rem;
}

.emd-floating-contact__item:hover,
.emd-floating-contact__item:focus-visible {
	background: var(--emd-color-brand-red);
	border-color: var(--emd-color-brand-red);
	color: var(--emd-color-text-primary);
	transform: translateY(-2px);
}

.emd-floating-contact__item--call {
	background: var(--emd-color-brand-red);
	border-color: var(--emd-color-brand-red);
}

.emd-button--cta-primary {
	--emd-button-shadow: var(--emd-shadow-brand);
}

.emd-button--cta-secondary,
.is-style-emd-cta .wp-block-button__link {
	--emd-button-bg: var(--emd-color-surface-soft);
	--emd-button-border: var(--emd-color-line-soft);
	--emd-button-shadow: none;
}

.emd-card {
	background: var(--emd-card-bg, var(--emd-color-surface-card));
	border: 1px solid var(--emd-card-border, var(--emd-color-line-soft));
	border-radius: var(--emd-card-radius, var(--emd-radius-md));
	box-shadow: var(--emd-card-shadow, none);
	color: var(--emd-color-text-primary);
	display: flex;
	flex-direction: column;
	gap: var(--emd-space-md);
	min-height: 100%;
	padding: var(--emd-card-padding, var(--emd-space-lg));
	transition: border-color var(--emd-transition-slow), box-shadow var(--emd-transition-slow), transform var(--emd-transition-slow);
}

.emd-card:hover {
	border-color: var(--emd-color-brand-red);
	box-shadow: var(--emd-card-hover-shadow, var(--emd-shadow-soft));
	transform: translateY(-2px);
}

.emd-card__media {
	aspect-ratio: var(--emd-card-media-ratio, 16 / 10);
	background: var(--emd-color-surface-soft);
	border-radius: var(--emd-radius-md);
	overflow: hidden;
}

.emd-card__content {
	display: flex;
	flex-direction: column;
	gap: var(--emd-space-sm);
}

.emd-card__title {
	font-family: var(--emd-font-heading);
	font-size: var(--emd-size-h4);
	font-weight: 800;
	line-height: 1.2;
	margin: 0;
}

.emd-card__text {
	color: var(--emd-color-text-muted);
	font-size: var(--emd-size-body);
	margin: 0;
}

.emd-card--service {
	--emd-card-padding: var(--emd-space-lg);
}

.emd-card--gallery {
	--emd-card-media-ratio: 4 / 5;
}

.emd-card--testimonial {
	--emd-card-bg: var(--emd-color-surface-soft);
}

.emd-card--package {
	--emd-card-hover-shadow: var(--emd-shadow-elevated);
}

.emd-card--blog {
	--emd-card-media-ratio: 16 / 9;
}

.site-header {
	backdrop-filter: blur(18px);
	background: color-mix(in srgb, var(--emd-color-brand-black) 82%, transparent);
	border-bottom: 1px solid var(--emd-color-line-soft);
	inset-block-start: 0;
	position: sticky;
	z-index: var(--emd-z-header);
}

.site-header__inner {
	align-items: center;
	display: grid;
	gap: var(--emd-space-md);
	grid-template-columns: auto 1fr auto auto;
	margin-inline: auto;
	min-height: 5.15rem;
	width: var(--emd-layout-shell);
}

.site-branding {
	align-items: center;
	display: flex;
	gap: var(--emd-space-sm);
	min-width: 0;
}

.emd-site-logo,
.custom-logo-link {
	align-items: center;
	display: inline-flex;
	flex: 0 0 auto;
	justify-content: center;
	max-width: min(7.8rem, 30vw);
}

.emd-site-logo img,
.custom-logo-link img {
	display: block;
	height: auto;
	max-height: 5rem;
	max-width: 100%;
	object-fit: contain;
	filter: drop-shadow(0 0.45rem 1rem rgba(0, 0, 0, 0.45));
	width: auto;
}

.site-title {
	font-family: var(--emd-font-heading);
	font-size: var(--emd-size-body);
	font-weight: 900;
	line-height: 1.1;
	margin: 0;
}

.site-description {
	color: var(--emd-color-text-muted);
	font-size: var(--emd-size-caption);
	margin: 0;
}

.main-navigation {
	justify-self: end;
}

.main-navigation ul,
.footer-navigation ul,
.legal-navigation ul,
.social-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--emd-space-md);
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation a,
.footer-navigation a,
.legal-navigation a,
.social-navigation a {
	color: var(--emd-color-text-primary);
	font-family: var(--emd-font-heading);
	font-size: var(--emd-size-small);
	font-weight: 800;
}

.menu-toggle {
	background: var(--emd-color-surface-soft);
	border-color: var(--emd-color-line-soft);
	box-shadow: none;
	display: none;
	min-height: 2.75rem;
	padding-inline: var(--emd-space-sm);
}

.site-header__cta {
	justify-self: end;
}

.site-header__mobile-title {
	align-items: center;
	display: none;
	justify-content: center;
	justify-self: center;
	max-width: min(21rem, 48vw);
	min-width: 0;
	width: 100%;
}

.site-header__mobile-title img {
	display: block;
	filter: drop-shadow(0 0.35rem 0.8rem rgba(0, 0, 0, 0.55));
	height: auto;
	max-height: 3.85rem;
	object-fit: contain;
	width: 100%;
}

.site-header__cta .widget,
.site-footer .widget {
	margin: 0;
}

.site-footer {
	background: var(--emd-color-brand-black);
	border-top: 1px solid var(--emd-color-line-soft);
	color: var(--emd-color-text-muted);
	padding-block: var(--emd-space-3xl) var(--emd-space-xl);
}

.site-footer__inner {
	display: grid;
	gap: var(--emd-space-xl);
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.95fr) minmax(0, 1fr) minmax(0, 1.05fr);
	margin-inline: auto;
	width: var(--emd-layout-shell);
}

.footer-widgets,
.site-footer__brand {
	display: grid;
	gap: var(--emd-space-sm);
}

.site-footer__logo {
	max-width: min(15rem, 72vw);
}

.site-footer__logo img {
	max-height: none;
	object-fit: contain;
	width: 100%;
}

.site-footer__brand strong,
.site-footer__contact strong,
.site-footer__navigation strong,
.site-footer__map strong {
	color: var(--emd-color-text-primary);
	font-family: var(--emd-font-heading);
	font-size: var(--emd-size-h4);
	font-weight: 900;
}

.site-footer__brand p {
	margin: 0;
	max-width: 34rem;
}

.site-footer__social {
	border-top: 1px solid var(--emd-color-line-soft);
	display: flex;
	flex-wrap: wrap;
	gap: var(--emd-space-sm);
	margin-block-start: var(--emd-space-xs);
	padding-block-start: var(--emd-space-md);
}

.site-footer__meta {
	border-top: 1px solid var(--emd-color-line-soft);
	color: var(--emd-color-text-muted);
	font-size: var(--emd-size-small);
	margin-block-start: var(--emd-space-2xl);
	padding-block-start: var(--emd-space-lg);
}

.site-footer__meta-inner {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--emd-space-md);
	justify-content: space-between;
	margin-inline: auto;
	width: var(--emd-layout-shell);
}

.site-footer__copyright {
	margin: 0;
}

.site-footer__navigation,
.site-footer__contact,
.site-footer__social,
.site-footer__map {
	display: grid;
	gap: var(--emd-space-md);
}

.site-footer__contact a,
.site-footer__contact span,
.site-footer__social a,
.site-footer__social span,
.site-footer__map a {
	color: var(--emd-color-text-muted);
	font-size: var(--emd-size-small);
	font-weight: 700;
}

.site-footer__contact a:hover,
.site-footer__contact a:focus-visible,
.site-footer__social a:hover,
.site-footer__social a:focus-visible,
.site-footer__map a:hover,
.site-footer__map a:focus-visible {
	color: var(--emd-color-text-primary);
}

.site-footer__map iframe {
	aspect-ratio: 4 / 3;
	border: 0;
	border-radius: var(--emd-radius-md);
	display: block;
	min-height: 13rem;
	width: 100%;
}

.footer-navigation ul,
.legal-navigation ul,
.social-navigation ul {
	align-items: flex-start;
	flex-direction: column;
	gap: var(--emd-space-sm);
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-navigation a,
.legal-navigation a {
	color: var(--emd-color-text-muted);
	font-size: var(--emd-size-small);
	font-weight: 700;
}

.footer-navigation a:hover,
.footer-navigation a:focus-visible,
.legal-navigation a:hover,
.legal-navigation a:focus-visible {
	color: var(--emd-color-text-primary);
}

.legal-navigation ul {
	flex-direction: row;
	flex-wrap: wrap;
}

@media (max-width: 900px) {
	.site-header__inner {
		grid-template-columns: auto minmax(0, 1fr) auto auto;
	}

	.menu-toggle {
		display: inline-flex;
	}

	.site-header__mobile-title {
		display: flex;
	}

	.main-navigation {
		background: var(--emd-color-brand-black);
		border-top: 1px solid var(--emd-color-line-soft);
		display: none;
		grid-column: 1 / -1;
		justify-self: stretch;
		padding-block: var(--emd-space-md);
	}

	.main-navigation.is-open {
		display: block;
	}

	.main-navigation ul {
		align-items: stretch;
		flex-direction: column;
		gap: var(--emd-space-sm);
	}

	.site-footer__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.emd-site-logo,
	.custom-logo-link {
		max-width: clamp(5.1rem, 23vw, 6.35rem);
	}

	.site-header__cta {
		display: none;
	}

	.site-header__inner {
		gap: var(--emd-space-sm);
		grid-template-columns: auto minmax(0, 1fr) auto;
		min-height: 6.25rem;
	}

	.site-header__mobile-title {
		max-width: clamp(11rem, 48vw, 17rem);
	}

	.site-header__mobile-title img {
		max-height: 4.35rem;
	}

	.menu-toggle {
		min-height: 3.35rem;
		padding-inline: var(--emd-space-md);
	}

	.site-footer__inner {
		grid-template-columns: 1fr;
	}

	.site-footer__meta-inner {
		align-items: flex-start;
		flex-direction: column;
	}

	.emd-floating-contact {
		border-radius: var(--emd-radius-md);
		display: grid;
		gap: 0.35rem;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		inset-block-end: 0.55rem;
		inset-inline: 0.55rem;
		padding: 0.35rem;
		transform: none;
	}

	.emd-floating-contact__item {
		border-radius: var(--emd-radius-sm);
		display: grid;
		gap: 0.25rem;
		justify-items: center;
		min-height: 3.15rem;
		padding: 0.45rem 0.25rem;
		text-align: center;
	}

	.emd-floating-contact__item span {
		font-size: 0.58rem;
		height: 1.45rem;
		min-width: 1.45rem;
	}

	.emd-floating-contact__item strong {
		font-size: clamp(0.56rem, 2.15vw, 0.72rem);
	}
}
