/*
Theme Name: Málaga Mudanzas
Theme URI: https://mudanzasbaratasmalaga.com/
Author: Proyecto Mudanzas Málaga
Description: Tema de bloques ligero y accesible. Identidad y datos de contacto gestionados fuera del tema.
Version: 1.1.0
Requires at least: 6.6
Requires PHP: 8.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: malaga-mudanzas
*/

:root {
	--mbm-ink: #102b3f;
	--mbm-accent: #bb420c;
	--mbm-paper: #fff;
	--mbm-canvas: #f6f4ef;
	--mbm-muted: #4c606f;
	--mbm-line: #d6dee3;
	--mbm-radius: 0.5rem;
	--mbm-space: clamp(2.5rem, 6vw, 5rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 1.5rem; }
body { margin: 0; text-rendering: optimizeLegibility; }
img, svg, video { max-width: 100%; }
img { height: auto; }
button, input, select, textarea { font: inherit; }
button, [type="submit"], [type="button"] { cursor: pointer; }
button, a, input, textarea, select, summary { -webkit-tap-highlight-color: transparent; }
a { text-underline-offset: 0.2em; text-decoration-thickness: 0.08em; }
a:hover { text-decoration-thickness: 0.13em; }
a, p, li, h1, h2, h3, h4 { overflow-wrap: break-word; }
h1, h2, h3 { text-wrap: balance; }
::selection { background: #f7cdb7; color: var(--mbm-ink); }
:focus-visible { outline: 3px solid var(--mbm-ink); outline-offset: 4px; box-shadow: 0 0 0 7px var(--mbm-paper); }
[id] { scroll-margin-top: 1.5rem; }
.wp-site-blocks { padding-top: 0; padding-bottom: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-block-post-content > :first-child { margin-block-start: 0; }
.wp-block-post-content > :last-child { margin-block-end: 0; }
.wp-block-post-content :where(ul, ol) { padding-inline-start: 1.4em; }
.wp-block-post-content li + li { margin-block-start: 0.35rem; }
.skip-link {
	position: absolute;
	left: 1rem;
	top: 0;
	z-index: 100001;
	transform: translateY(-160%);
	background: var(--mbm-ink);
	color: var(--mbm-paper);
	padding: 0.875rem 1.25rem;
	font-weight: 650;
}
.skip-link:focus { transform: translateY(1rem); }

/* Header remains in normal flow: no obscured anchors or form controls. */
.mbm-header {
	border-top: 5px solid var(--mbm-accent);
	border-bottom: 1px solid var(--mbm-line);
	background: var(--mbm-paper);
}
.mbm-header__inner { min-height: 6rem; gap: 1.5rem; padding-block: 1.125rem; }
.mbm-brand { flex: 1 1 15rem; min-width: 0; }
.mbm-brand > * { margin-block: 0; }
.mbm-brand__domain { font-size: clamp(0.9375rem, 1.5vw, 1.125rem); font-weight: 750; letter-spacing: -0.02em; }
.mbm-brand__domain a { color: var(--mbm-ink); text-decoration: none; overflow-wrap: anywhere; }
.mbm-brand .wp-block-shortcode { font-size: 0.9375rem; color: var(--mbm-muted); }
.mbm-header .wp-block-navigation { flex: 0 1 auto; }
.mbm-header .wp-block-navigation__container { column-gap: 1.25rem; row-gap: 0.5rem; }
.wp-block-navigation .wp-block-navigation-item__content { padding-block: 0.6rem; text-underline-offset: 0.25em; }
.wp-block-navigation .current-menu-item > a,
.wp-block-navigation .current_page_item > a { text-decoration: underline; text-decoration-thickness: 2px; }
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; color: var(--mbm-ink); background: var(--mbm-paper); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; gap: 1rem; align-items: stretch; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch; gap: 0.75rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: block; padding: 0.6rem; }
.mbm-header-contact { flex: 0 1 auto; margin-block: 0; }
.mbm-header-contact:empty { display: none; }
.mbm-header-contact:not(:has(a, button)) { display: none; }

/* Editorial content: the same classes work on blocks and plugin markup. */
.mbm-main { padding-block: var(--mbm-space); min-height: 45vh; }
.mbm-main--home { padding-block: 0; }
.mbm-page-heading { margin-block-end: 2rem; }
.mbm-page-heading > * + * { margin-block-start: 0.875rem; }
.mbm-hero {
	position: relative;
	isolation: isolate;
	background: var(--mbm-canvas);
	padding-block: clamp(3rem, 8vw, 7rem);
	border-bottom: 1px solid var(--mbm-line);
}
.mbm-hero::after {
	content: "";
	display: block;
	width: clamp(4rem, 12vw, 9rem);
	height: 0.5rem;
	margin-top: 2.5rem;
	background: linear-gradient(90deg, var(--mbm-accent) 0 62%, transparent 62% 72%, var(--mbm-ink) 72% 100%);
}
.mbm-hero h1 { max-width: 15ch; margin-block: 0 1.5rem; }
.mbm-hero > .wp-block-columns { max-width: var(--wp--style--global--wide-size); }
.mbm-hero :where(p) { max-width: 58ch; }
.mbm-hero .mbm-eyebrow { margin-block-end: 1.25rem; }
.mbm-eyebrow { font-size: 0.8125rem; font-weight: 750; letter-spacing: 0.12em; line-height: 1.5; text-transform: uppercase; color: var(--mbm-accent); }
.mbm-section { padding-block: var(--mbm-space); }
.mbm-section > :first-child { margin-block-start: 0; }
.mbm-section > :last-child { margin-block-end: 0; }
.mbm-section + .mbm-section { border-top: 1px solid var(--mbm-line); }
.mbm-section__intro { max-width: 44rem; margin-block-end: 2rem; }
.mbm-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; align-items: stretch; }
.mbm-grid > * { min-width: 0; margin-block: 0; }
.mbm-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mbm-card {
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--mbm-line);
	border-radius: var(--mbm-radius);
	background: var(--mbm-paper);
}
.mbm-card > :first-child { margin-block-start: 0; }
.mbm-card > :last-child { margin-block-end: 0; }
.mbm-card h2, .mbm-card h3 { font-size: 1.5rem; line-height: 1.25; }
.mbm-card__number { display: block; color: var(--mbm-accent); font-size: 0.875rem; font-weight: 750; margin-bottom: 1rem; }
.mbm-callout {
	padding: clamp(1.5rem, 4vw, 3rem);
	border-radius: var(--mbm-radius);
	border-left: 4px solid var(--mbm-accent);
	background: var(--mbm-canvas);
}
.mbm-callout > :first-child { margin-block-start: 0; }
.mbm-callout > :last-child { margin-block-end: 0; }
.mbm-callout--dark { background: var(--mbm-ink); color: var(--mbm-paper); border-left: none; }
.mbm-callout--dark a:not(.mbm-button):not(.wp-block-button__link) { color: var(--mbm-paper); }
.mbm-callout--dark .mbm-eyebrow { color: #f7cdb7; }
.mbm-callout--dark :focus-visible { outline-color: var(--mbm-paper); box-shadow: 0 0 0 7px var(--mbm-ink); }
.mbm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.875rem; margin-block-start: 1.5rem; }
.mbm-button,
.mbm-form button[type="submit"],
.mbm-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	max-width: 100%;
	padding: 0.875rem 1.375rem;
	border: 2px solid transparent;
	border-radius: 0.375rem;
	background: var(--mbm-accent);
	color: var(--mbm-paper);
	font-size: 1rem;
	font-weight: 650;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	white-space: normal;
}
.mbm-button:hover,
.mbm-form button[type="submit"]:hover,
.mbm-form input[type="submit"]:hover,
.wp-block-button__link:hover { background: #943308; color: var(--mbm-paper); }
.mbm-button--secondary { background: transparent; border-color: var(--mbm-ink); color: var(--mbm-ink); }
.mbm-button--secondary:hover { background: var(--mbm-ink); color: var(--mbm-paper); }
.mbm-callout--dark .mbm-button--secondary { border-color: var(--mbm-paper); color: var(--mbm-paper); }
.mbm-callout--dark .mbm-button--secondary:hover { background: var(--mbm-paper); color: var(--mbm-ink); }
.wp-block-button__link { min-height: 48px; white-space: normal; }
.is-style-outline .wp-block-button__link:hover { border-color: var(--mbm-ink); background: var(--mbm-ink); color: var(--mbm-paper); }
.mbm-contact { display: flex; flex-wrap: wrap; gap: 0.625rem 1rem; align-items: center; }
.mbm-contact a { display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
.mbm-contact ul { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin: 0; padding: 0; list-style: none; }
.mbm-contact:empty { display: none; }

/* Native form controls, visible labels and readable validation feedback. */
.mbm-form { max-width: 52rem; }
.mbm-form fieldset { min-width: 0; padding: 0; border: 0; margin: 0 0 2rem; }
.mbm-form legend { padding: 0; margin-bottom: 1rem; font-size: 1.25rem; font-weight: 700; }
.mbm-field { min-width: 0; margin-block-end: 1.25rem; }
.mbm-field > label, .mbm-form label { display: block; margin-block-end: 0.375rem; font-weight: 600; }
.mbm-form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]), select, textarea) {
	width: 100%;
	min-height: 48px;
	padding: 0.75rem 0.875rem;
	border: 1px solid #697c89;
	border-radius: 0.375rem;
	background: var(--mbm-paper);
	color: var(--mbm-ink);
	font-size: 1rem;
	line-height: 1.5;
}
.mbm-form textarea { min-height: 10rem; resize: vertical; }
.mbm-form ::placeholder { opacity: 1; color: #5a6873; }
.mbm-form input[type="checkbox"], .mbm-form input[type="radio"] { width: 1.25rem; height: 1.25rem; accent-color: var(--mbm-accent); flex-shrink: 0; }
.mbm-form label:has(input[type="checkbox"]), .mbm-form label:has(input[type="radio"]) { display: flex; align-items: flex-start; gap: 0.75rem; min-height: 44px; font-weight: 400; }
.mbm-form :where(small, .mbm-help) { display: block; margin-top: 0.375rem; color: var(--mbm-muted); font-size: 0.9375rem; }
.mbm-form [aria-invalid="true"] { border-color: #a22119; border-width: 2px; }
.mbm-errors { padding: 1.25rem; margin-block: 1.5rem; border: 2px solid #a22119; border-radius: var(--mbm-radius); background: #fff5f3; color: #691914; }
.mbm-errors a { color: #691914; }
.mbm-errors > :first-child { margin-block-start: 0; }
.mbm-errors > :last-child { margin-block-end: 0; }
.mbm-success { padding: 1.25rem; margin-block: 1.5rem; border: 2px solid #286341; border-radius: var(--mbm-radius); background: #eff7f1; color: #18442b; }
.mbm-form [disabled] { opacity: 0.65; cursor: not-allowed; }
.mbm-form [hidden] { display: none !important; }

/* Details keep FAQ content readable without scripts. */
.wp-block-details, .mbm-faq details { padding-block: 1.25rem; border-bottom: 1px solid var(--mbm-line); }
.wp-block-details summary, .mbm-faq summary { min-height: 44px; cursor: pointer; font-size: 1.125rem; font-weight: 650; }
.wp-block-details[open] > summary, .mbm-faq details[open] > summary { margin-bottom: 0.875rem; }
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; font-size: 1rem; }
.wp-block-table th, .wp-block-table td { padding: 0.875rem; border: 1px solid var(--mbm-line); vertical-align: top; }
.wp-block-table th { background: var(--mbm-canvas); text-align: left; }
.wp-block-search__inside-wrapper { gap: 0.625rem; flex-wrap: wrap; }
.wp-block-search__input { min-height: 48px; min-width: min(12rem, 100%); border: 1px solid #697c89; border-radius: 0.375rem; padding: 0.75rem; font: inherit; }
.wp-block-search__button { margin: 0; min-height: 48px; }
.mbm-post-list > li { padding-block: 2rem; border-top: 1px solid var(--mbm-line); }
.mbm-post-list > li:first-child { padding-top: 0; border-top: 0; }
.wp-block-query-pagination { gap: 1rem; margin-top: 2.5rem; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0.375rem; }

.mbm-footer { margin-block-start: 0; padding-block: 3rem 2rem; background: var(--mbm-ink); color: var(--mbm-paper); }
.mbm-footer a { color: var(--mbm-paper); }
.mbm-footer :focus-visible { outline-color: var(--mbm-paper); box-shadow: 0 0 0 7px var(--mbm-ink); }
.mbm-footer__inner { gap: 2rem; }
.mbm-footer .mbm-brand__domain { font-size: 1.125rem; }
.mbm-footer .mbm-brand__domain a { color: var(--mbm-paper); }
.mbm-footer .mbm-brand .wp-block-shortcode { color: #d6dee3; }
.mbm-footer__bottom { border-top: 1px solid #506575; padding-top: 1.5rem; margin-top: 2rem; }
.mbm-footer .wp-block-navigation { font-size: 0.9375rem; }
.mbm-footer .wp-block-navigation__container { gap: 0.5rem 1.25rem; }
.mbm-footer .mbm-contact { align-items: flex-start; }

@media (max-width: 1000px) {
	.mbm-header__inner { gap: 0.75rem 1.5rem; }
	.mbm-header .mbm-brand { flex-basis: 100%; }
	.mbm-header .wp-block-navigation { margin-right: auto; }
	.mbm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.mbm-header__inner { min-height: 5rem; column-gap: 0.75rem; }
	.mbm-header .mbm-brand { flex: 1 1 12rem; }
	.mbm-header .wp-block-navigation { margin-right: 0; }
	.mbm-header-contact { flex-basis: 100%; }
	.mbm-grid, .mbm-grid--two { grid-template-columns: minmax(0, 1fr); }
	.mbm-hero h1 { max-width: 100%; }
	.mbm-actions { align-items: stretch; }
	.mbm-actions > .mbm-button { flex: 1 1 100%; }
	.mbm-form .wp-block-columns { gap: 0; }
	.mbm-callout { padding: 1.5rem 1.125rem; }
	.mbm-footer__inner { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
	.mbm-button, .wp-block-button__link { border: 2px solid ButtonText; }
	.mbm-card, .mbm-callout { border: 1px solid CanvasText; }
}
@media print {
	.mbm-header .wp-block-navigation, .skip-link, .mbm-header-contact, .mbm-form, .wp-block-search, .wp-block-query-pagination { display: none !important; }
	body { color: #000; background: #fff; font-size: 11pt; }
	.mbm-main, .mbm-section, .mbm-hero, .mbm-footer { padding-block: 1rem; }
	.mbm-footer, .mbm-callout { color: #000; background: #fff; }
	.mbm-footer a { color: #000; }
	.mbm-card { break-inside: avoid; }
}
