/**
 * Chrome del sitio clonado de producción: banner, cabecera, pie y WhatsApp.
 *
 * Se carga en todas las páginas. Las clases son las que genera Emotion en el
 * sitio viejo (`css-1gsydjn`…): son opacas a propósito — se conservan tal cual
 * para que el resultado sea idéntico al original.
 *
 * Generado desde https://www.icasa.pe — no editar a mano salvo para corregir.
 */

/* --- envoltorio de página --- */
/*
 * El `<main>` de todas las vistas clonadas. Va aquí y no en la hoja de una
 * sección porque lo comparten cuatro plantillas —`front-page.php`,
 * `archive-proyecto_terminado.php`, `home.php` y `single.php`— y ninguna de
 * ellas es dueña de las demás.
 */
.css-1939klg {
	padding-top: 48px;
	padding-bottom: 48px;
}

/* --- banner --- */
/*
 * `static`, no `fixed` como en el original. Fuera del flujo no ocupaba sitio y
 * el hueco había que devolvérselo a mano desde la barra de abajo; quien se pega
 * ahora es `.icasa-barra-superior`, que lo lleva dentro.
 */
.css-3zlnmp {
	background-color: rgb(17, 25, 52);
	color: white;
	text-align: center;
	padding: 8px 16px;
	position: static;
	width: 100%;
	z-index: 1400;
}
.css-142yg1a {
	margin: 0px;
	font-family: Poppins, sans-serif;
	line-height: 1.43;
	font-weight: 500;
	font-size: 0.8rem;
}
/* --- header --- */
/*
 * La cabecera es lo único de este archivo que se aparta de lo clonado, y va
 * todo por el mismo motivo: en el original banner y barra estaban los dos fuera
 * del flujo (`fixed`), así que no ocupaban sitio y había que reservárselo a
 * mano —`padding-top: 80px` en cada portada, `margin-top: 32px` en la barra—.
 * Ninguno de esos números era fiable: las plantillas sin portada arrancaban
 * tapadas, el banner mide 34 px y no 32, y con la barra de administración de
 * WordPress todo se descuadraba otra vez.
 *
 * Aquí los dos van en el flujo dentro de `.icasa-barra-superior`, y lo que se
 * pega es ese contenedor. Ocupan su alto real, sea el que sea, y no queda
 * ningún número escrito a mano que mantener.
 */
.icasa-barra-superior {
	position: sticky;
	top: 0;
	z-index: 1400;
}

/*
 * La barra de administración es `fixed` sobre el borde del viewport, así que
 * hay que apartarse de ella o la cabecera se le mete debajo al desplazarse.
 * Los altos son los de WordPress: 32 px, 46 px por debajo de 782 px de ancho y
 * ninguno por debajo de 600, donde deja de ser fija y se va con la página.
 */
body.admin-bar .icasa-barra-superior {
	top: 32px;
}
@media screen and (max-width: 782px) {
	body.admin-bar .icasa-barra-superior {
		top: 46px;
	}
}
@media screen and (max-width: 600px) {
	body.admin-bar .icasa-barra-superior {
		top: 0;
	}
}

[type='button']:not(:disabled),
button:not(:disabled) {
	cursor: pointer;
}
.css-1gsydjn {
	box-shadow: var(--Paper-shadow);
	background-image: var(--Paper-overlay);
	display: flex;
	flex-direction: column;
	width: 100%;
	box-sizing: border-box;
	flex-shrink: 0;
	position: relative;
	z-index: 1100;
	left: auto;
	right: 0px;
	--AppBar-background: #f5f5f5;
	--AppBar-color: rgba(0, 0, 0, 0.87);
	background-color: var(--AppBar-background);
	color: var(--AppBar-color);
	transition: margin-top 0.3s;
}
@media print {
	.css-1gsydjn {
		position: static;
	}
}
.css-9wvnva {
	width: 100%;
	margin-left: auto;
	box-sizing: border-box;
	margin-right: auto;
	padding-left: 16px;
	padding-right: 16px;
}
@media (min-width: 600px) {
	.css-9wvnva {
		padding-left: 24px;
		padding-right: 24px;
	}
}
@media (min-width: 1200px) {
	.css-9wvnva {
		max-width: 1200px;
	}
}
.css-xshbem {
	position: relative;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	min-height: 56px;
	-webkit-box-pack: justify;
	justify-content: space-between;
}
@media (min-width: 0px) {
	@media (orientation: landscape) {
		.css-xshbem {
			min-height: 48px;
		}
	}
}
@media (min-width: 600px) {
	.css-xshbem {
		min-height: 64px;
	}
}
.css-759u60 {
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	cursor: pointer;
}
.css-u1jr60 {
	height: 40px;
}
.css-k5rr6j {
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	gap: 24px;
}
.css-79elbk {
	position: relative;
}
.css-9vvcua {
	display: inline-flex;
	-webkit-box-align: center;
	align-items: center;
	-webkit-box-pack: center;
	justify-content: center;
	position: relative;
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
	outline: 0px;
	margin: 0px;
	cursor: pointer;
	user-select: none;
	vertical-align: middle;
	appearance: none;
	text-decoration: none;
	font-family: Poppins, sans-serif;
	font-size: 0.875rem;
	line-height: 1.75;
	min-width: 64px;
	border: 0px;
	border-radius: 4px;
	padding: 6px 8px;
	background-color: var(--variant-textBg);
	--variant-textColor: #1976d2;
	--variant-outlinedColor: #1976d2;
	--variant-outlinedBorder: rgba(25, 118, 210, 0.5);
	--variant-containedColor: #fff;
	--variant-containedBg: #1976d2;
	transition:
		background-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
		box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1),
		border-color 250ms cubic-bezier(0.4, 0, 0.2, 1);
	font-weight: 500;
	text-transform: none;
	color: rgba(0, 0, 0, 0.87);
}
@media print {
	.css-9vvcua {
		print-color-adjust: exact;
	}
}
.css-9vvcua:hover {
	text-decoration: none;
}
@media (hover: hover) {
	.css-9vvcua:hover {
		--variant-containedBg: #1565c0;
		--variant-textBg: rgba(25, 118, 210, 0.04);
		--variant-outlinedBorder: #1976d2;
		--variant-outlinedBg: rgba(25, 118, 210, 0.04);
	}
}
/* --- movil_header --- */
[type='button']:not(:disabled),
button:not(:disabled) {
	cursor: pointer;
}
.css-1gsydjn {
	box-shadow: var(--Paper-shadow);
	background-image: var(--Paper-overlay);
	display: flex;
	flex-direction: column;
	width: 100%;
	box-sizing: border-box;
	flex-shrink: 0;
	position: relative;
	z-index: 1100;
	left: auto;
	right: 0px;
	--AppBar-background: #f5f5f5;
	--AppBar-color: rgba(0, 0, 0, 0.87);
	background-color: var(--AppBar-background);
	color: var(--AppBar-color);
	transition: margin-top 0.3s;
}
@media print {
	.css-1gsydjn {
		position: static;
	}
}
.css-9wvnva {
	width: 100%;
	margin-left: auto;
	box-sizing: border-box;
	margin-right: auto;
	padding-left: 16px;
	padding-right: 16px;
}
@media (min-width: 600px) {
	.css-9wvnva {
		padding-left: 24px;
		padding-right: 24px;
	}
}
@media (min-width: 1200px) {
	.css-9wvnva {
		max-width: 1200px;
	}
}
.css-xshbem {
	position: relative;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	min-height: 56px;
	-webkit-box-pack: justify;
	justify-content: space-between;
}
@media (min-width: 0px) {
	@media (orientation: landscape) {
		.css-xshbem {
			min-height: 48px;
		}
	}
}
@media (min-width: 600px) {
	.css-xshbem {
		min-height: 64px;
	}
}
.css-759u60 {
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	cursor: pointer;
}
.css-u1jr60 {
	height: 40px;
}
.css-15ni0jc {
	display: inline-flex;
	-webkit-box-align: center;
	align-items: center;
	-webkit-box-pack: center;
	justify-content: center;
	position: relative;
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
	background-color: transparent;
	outline: 0px;
	border: 0px;
	margin: 0px -12px 0px 0px;
	cursor: pointer;
	user-select: none;
	vertical-align: middle;
	appearance: none;
	text-decoration: none;
	text-align: center;
	flex: 0 0 auto;
	font-size: 1.5rem;
	padding: 8px;
	border-radius: 50%;
	color: rgba(0, 0, 0, 0.54);
	transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
	--IconButton-hoverBg: rgba(0, 0, 0, 0.04);
}
@media print {
	.css-15ni0jc {
		print-color-adjust: exact;
	}
}
.css-15ni0jc:hover {
	background-color: var(--IconButton-hoverBg);
}
@media (hover: none) {
	.css-15ni0jc:hover {
		background-color: transparent;
	}
}
.css-q7mezt {
	user-select: none;
	width: 1em;
	height: 1em;
	display: inline-block;
	flex-shrink: 0;
	transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1);
	fill: currentcolor;
	font-size: 1.5rem;
}
/* --- movil_drawer --- */
.css-s0r7el {
	position: fixed;
	inset: 0px;
	z-index: 1200;
}
.css-14dl35y {
	position: fixed;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	-webkit-box-pack: center;
	justify-content: center;
	inset: 0px;
	background-color: rgba(0, 0, 0, 0.5);
	-webkit-tap-highlight-color: transparent;
	z-index: -1;
}
.css-y50yd7 {
	background-color: rgb(255, 255, 255);
	color: rgba(0, 0, 0, 0.87);
	transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: var(--Paper-shadow);
	background-image: var(--Paper-overlay);
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	height: 100%;
	flex: 1 0 auto;
	z-index: 1200;
	position: fixed;
	top: 0px;
	outline: 0px;
	right: 0px;
}
.css-1hskriy {
	width: 250px;
}
.css-1wduhak {
	list-style: none;
	margin: 0px;
	padding: 8px 0px;
	position: relative;
}
.css-146xefr {
	display: flex;
	-webkit-box-pack: start;
	justify-content: flex-start;
	-webkit-box-align: center;
	align-items: center;
	position: relative;
	text-decoration: none;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
	padding: 8px 16px;
}
.css-14rdsw0 {
	flex: 1 1 auto;
	min-width: 0px;
	margin-top: 4px;
	margin-bottom: 4px;
}
.MuiTypography-root:where(.css-14rdsw0 .MuiListItemText-primary) {
	display: block;
}
.css-1yhs6h4 {
	margin: 0px;
	font-family: Poppins, sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 700;
}
.css-10fm534 {
	display: flex;
	-webkit-box-pack: start;
	justify-content: flex-start;
	-webkit-box-align: center;
	align-items: center;
	position: relative;
	text-decoration: none;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
	padding: 8px 16px 8px 32px;
	transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
}
.css-10fm534:hover {
	text-decoration: none;
	background-color: rgba(0, 0, 0, 0.04);
}
@media (hover: none) {
	.css-10fm534:hover {
		background-color: transparent;
	}
}
.css-5f4oky {
	margin: 0px;
	font-family: Poppins, sans-serif;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.5;
}
.css-1l2w8sj {
	display: flex;
	-webkit-box-pack: start;
	justify-content: flex-start;
	-webkit-box-align: center;
	align-items: center;
	position: relative;
	text-decoration: none;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
	padding: 8px 16px;
	transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
}
.css-1l2w8sj:hover {
	text-decoration: none;
	background-color: rgba(0, 0, 0, 0.04);
}
@media (hover: none) {
	.css-1l2w8sj:hover {
		background-color: transparent;
	}
}
/* --- footer --- */
a:not([href]):not([class]),
a:not([href]):not([class]):hover {
	color: inherit;
	text-decoration: none;
}
[type='button']:not(:disabled),
button:not(:disabled) {
	cursor: pointer;
}
.css-9wvnva {
	width: 100%;
	margin-left: auto;
	box-sizing: border-box;
	margin-right: auto;
	padding-left: 16px;
	padding-right: 16px;
}
@media (min-width: 600px) {
	.css-9wvnva {
		padding-left: 24px;
		padding-right: 24px;
	}
}
@media (min-width: 1200px) {
	.css-9wvnva {
		max-width: 1200px;
	}
}
.css-u1jr60 {
	height: 40px;
}
.css-16qpid4 {
	box-sizing: border-box;
	display: flex;
	flex-flow: wrap;
	margin-top: calc(-32px);
	width: calc(100% + 32px);
	margin-left: calc(-32px);
}
.css-16qpid4 > .MuiGrid-item {
	padding-top: 32px;
}
.css-16qpid4 > .MuiGrid-item {
	padding-left: 32px;
}
.css-19egsyp {
	box-sizing: border-box;
	margin: 0px;
	flex-direction: row;
	flex-basis: 100%;
	-webkit-box-flex: 0;
	flex-grow: 0;
	max-width: 100%;
}
@media (min-width: 600px) {
	.css-19egsyp {
		flex-basis: 100%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 100%;
	}
}
@media (min-width: 900px) {
	.css-19egsyp {
		flex-basis: 33.3333%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 33.3333%;
	}
}
@media (min-width: 1200px) {
	.css-19egsyp {
		flex-basis: 33.3333%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 33.3333%;
	}
}
@media (min-width: 1536px) {
	.css-19egsyp {
		flex-basis: 33.3333%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 33.3333%;
	}
}
.css-1e35omq {
	background-color: rgb(38, 38, 132);
	padding-top: 48px;
	padding-bottom: 48px;
	margin-top: 32px;
}
.css-1ha4th6 {
	box-sizing: border-box;
	margin: 0px;
	flex-direction: row;
	flex-basis: 100%;
	-webkit-box-flex: 0;
	flex-grow: 0;
	max-width: 100%;
}
@media (min-width: 600px) {
	.css-1ha4th6 {
		flex-basis: 100%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 100%;
	}
}
@media (min-width: 900px) {
	.css-1ha4th6 {
		flex-basis: 25%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 25%;
	}
}
@media (min-width: 1200px) {
	.css-1ha4th6 {
		flex-basis: 25%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 25%;
	}
}
@media (min-width: 1536px) {
	.css-1ha4th6 {
		flex-basis: 25%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 25%;
	}
}
.css-1qm1lh {
	margin-bottom: 16px;
}
.css-1stwv81 {
	margin: 0px 0px 8px;
	font-family: Poppins, sans-serif;
	font-weight: 400;
	font-size: 0.875rem;
	line-height: 1.43;
	color: white;
}
.css-1ap30x2 {
	margin: 16px 0px 0px;
	font-family: Poppins, sans-serif;
	font-weight: 400;
	font-size: 0.875rem;
	line-height: 1.43;
	color: white;
}
.css-8zz4wg {
	margin: 0px;
	font: inherit;
	letter-spacing: inherit;
	text-decoration: underline;
	color: inherit;
}
.css-8zz4wg:hover {
	text-decoration-color: inherit;
}
.css-wya1u2 {
	margin: 0px 0px 0.35em;
	font-family: Poppins, sans-serif;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.75;
	color: white;
}
.css-18zsr3k {
	display: flex;
	flex-direction: column;
}
.css-17wkiy {
	margin: 0px;
	font-family: Poppins, sans-serif;
	font-weight: 400;
	font-size: 0.875rem;
	line-height: 1.43;
	text-decoration: none;
	color: white;
	cursor: pointer;
}
.css-17wkiy:hover {
	text-decoration: underline;
}
.css-1xrgc4z {
	width: 150px;
	height: auto;
	margin-top: 8px;
}
.css-1se8gix {
	margin: 32px 0px 0.35em;
	font-family: Poppins, sans-serif;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.75;
	color: white;
}
.css-r7calx {
	box-sizing: border-box;
	margin: 0px;
	flex-direction: row;
	flex-basis: 100%;
	-webkit-box-flex: 0;
	flex-grow: 0;
	max-width: 100%;
}
@media (min-width: 600px) {
	.css-r7calx {
		flex-basis: 100%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 100%;
	}
}
@media (min-width: 900px) {
	.css-r7calx {
		flex-basis: 16.6667%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 16.6667%;
	}
}
@media (min-width: 1200px) {
	.css-r7calx {
		flex-basis: 16.6667%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 16.6667%;
	}
}
@media (min-width: 1536px) {
	.css-r7calx {
		flex-basis: 16.6667%;
		-webkit-box-flex: 0;
		flex-grow: 0;
		max-width: 16.6667%;
	}
}
.css-1ov46kg {
	display: flex;
	flex-direction: column;
}
.css-yll4e5 {
	margin: 0px;
	font: inherit;
	letter-spacing: inherit;
	color: rgb(25, 118, 210);
	text-decoration: none;
}
.css-1s979d0 {
	position: relative;
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
	outline: 0px;
	margin: 0px;
	cursor: pointer;
	user-select: none;
	vertical-align: middle;
	appearance: none;
	text-decoration: none;
	font-family: Poppins, sans-serif;
	font-weight: 500;
	line-height: 1.75;
	text-transform: uppercase;
	border: 1px solid white;
	background-color: var(--variant-outlinedBg);
	--variant-textColor: #1976d2;
	--variant-outlinedColor: #1976d2;
	--variant-outlinedBorder: rgba(25, 118, 210, 0.5);
	--variant-containedColor: #fff;
	--variant-containedBg: #1976d2;
	font-size: 0.8125rem;
	transition:
		background-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
		box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1),
		border-color 250ms cubic-bezier(0.4, 0, 0.2, 1);
	color: white;
	border-radius: 50px;
	height: 30px;
	width: 50px;
	min-width: 0px;
	padding: 0px;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	-webkit-box-pack: center;
	justify-content: center;
}
@media print {
	.css-1s979d0 {
		print-color-adjust: exact;
	}
}
.css-1s979d0:hover {
	text-decoration: none;
}
@media (hover: hover) {
	.css-1s979d0:hover {
		--variant-containedBg: #1565c0;
		--variant-textBg: rgba(25, 118, 210, 0.04);
		--variant-outlinedBorder: #1976d2;
		--variant-outlinedBg: rgba(25, 118, 210, 0.04);
	}
}
.css-1sboh2n {
	user-select: none;
	width: 1em;
	height: 1em;
	display: inline-block;
	flex-shrink: 0;
	transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1);
	fill: currentcolor;
	font-size: 1.5rem;
	color: rgb(255, 255, 255);
}
.css-1edmoyc {
	margin-top: 48px;
	border-top: 1px solid rgb(68, 68, 68);
	padding-top: 24px;
}
.css-1do9of1 {
	margin: 0px;
	font-family: Poppins, sans-serif;
	font-weight: 400;
	font-size: 0.875rem;
	line-height: 1.43;
	text-align: var(--Typography-textAlign);
	color: white;
}
/* --- whatsapp --- */
a:not([href]):not([class]),
a:not([href]):not([class]):hover {
	color: inherit;
	text-decoration: none;
}
.css-15dv52s {
	position: fixed;
	bottom: 50px;
	right: 24px;
	z-index: 1000;
}
.css-13eiuhl {
	display: inline-flex;
	-webkit-box-align: center;
	align-items: center;
	-webkit-box-pack: center;
	justify-content: center;
	position: relative;
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
	outline: 0px;
	border: 0px;
	margin: 0px;
	cursor: pointer;
	user-select: none;
	vertical-align: middle;
	appearance: none;
	text-decoration: none;
	font-family: Poppins, sans-serif;
	font-weight: 500;
	font-size: 0.875rem;
	line-height: 1.75;
	text-transform: uppercase;
	min-height: 36px;
	transition:
		background-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
		box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1),
		border-color 250ms cubic-bezier(0.4, 0, 0.2, 1);
	border-radius: 50%;
	padding: 0px;
	min-width: 0px;
	z-index: 1050;
	box-shadow:
		rgba(0, 0, 0, 0.2) 0px 3px 5px -1px,
		rgba(0, 0, 0, 0.14) 0px 6px 10px 0px,
		rgba(0, 0, 0, 0.12) 0px 1px 18px 0px;
	width: 48px;
	height: 48px;
	background-color: rgb(37, 211, 102);
	color: white;
}
@media print {
	.css-13eiuhl {
		print-color-adjust: exact;
	}
}
.css-13eiuhl:active {
	box-shadow:
		rgba(0, 0, 0, 0.2) 0px 7px 8px -4px,
		rgba(0, 0, 0, 0.14) 0px 12px 17px 2px,
		rgba(0, 0, 0, 0.12) 0px 5px 22px 4px;
}
.css-13eiuhl:hover {
	background-color: rgb(245, 245, 245);
	text-decoration: none;
}
@media (hover: none) {
	.css-13eiuhl:hover {
		background-color: rgb(224, 224, 224);
	}
}
.css-13eiuhl:hover {
	background-color: rgb(27, 94, 32);
}
@media (hover: none) {
	.css-13eiuhl:hover {
		background-color: rgb(46, 125, 50);
	}
}
.css-13eiuhl:hover {
	background-color: rgb(30, 188, 89);
}
.css-q7mezt {
	user-select: none;
	width: 1em;
	height: 1em;
	display: inline-block;
	flex-shrink: 0;
	transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1);
	fill: currentcolor;
	font-size: 1.5rem;
}

/* Escritorio vs. móvil. Ver nota arriba. */
@media (max-width: 899.95px) {
	.css-k5rr6j {
		display: none;
	}
}
@media (min-width: 900px) {
	.css-15ni0jc {
		display: none;
	}
}

/* El drawer se monta siempre y se muestra al abrirlo. */
.css-s0r7el {
	visibility: hidden;
}
.css-s0r7el.esta-abierto {
	visibility: visible;
}
.css-y50yd7 {
	width: 250px;
	transform: translateX(100%);
	transition: transform 225ms cubic-bezier(0, 0, 0.2, 1);
}
.css-s0r7el.esta-abierto .css-y50yd7 {
	transform: translateX(0);
}
.css-14dl35y {
	opacity: 0;
	transition: opacity 225ms cubic-bezier(0, 0, 0.2, 1);
}
.css-s0r7el.esta-abierto .css-14dl35y {
	opacity: 1;
}

/* Los <li> del drawer llevan enlace real; en producción eran texto con onClick. */
.css-146xefr a,
.css-10fm534 a,
.css-1l2w8sj a {
	color: inherit;
	text-decoration: none;
	display: block;
	width: 100%;
}

/* Submenú «Nosotros» en escritorio: el original lo montaba React al pasar el ratón. */
.css-79elbk .icasa-submenu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 240px;
	padding: 8px;
	margin: 0;
	list-style: none;
	background: #fff;
	border-radius: 4px;
	box-shadow:
		0 5px 5px -3px rgba(0, 0, 0, 0.2),
		0 8px 10px 1px rgba(0, 0, 0, 0.14),
		0 3px 14px 2px rgba(0, 0, 0, 0.12);
	opacity: 0;
	visibility: hidden;
	transition:
		opacity 150ms,
		visibility 150ms;
	z-index: 1200;
}
.css-79elbk:hover .icasa-submenu,
.css-79elbk:focus-within .icasa-submenu {
	opacity: 1;
	visibility: visible;
}
.css-79elbk .icasa-submenu a {
	display: block;
	padding: 8px 12px;
	border-radius: 4px;
	font-family: Poppins, sans-serif;
	font-size: 0.875rem;
	color: rgba(0, 0, 0, 0.87);
	text-decoration: none;
}
.css-79elbk .icasa-submenu a:hover {
	background: rgba(0, 0, 0, 0.04);
}

/* Solo se muestra la diapositiva activa del carrusel. */
.icasa-hero-slide[hidden] {
	display: none;
}

/* Texto para lectores de pantalla. */
.icasa-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/*
 * Aquí vivía la corrección para la barra de wp-admin: bajaba el banner fijo a
 * `top: 32px` y le daba a la cabecera `margin-top: 64px`. Eran dos parches
 * sobre dos elementos fuera del flujo, y de ahí salía la franja blanca entre el
 * banner y la barra gris —64 px de margen contra un banner que acaba a los
 * 66—. Estando los dos en el flujo no hay nada que compensar; lo único que
 * queda es apartar de la barra de administración el contenedor que se pega, y
 * eso está arriba, junto al resto de la cabecera.
 */

/* --- campos de formulario --- */
/*
 * Los estados que en producción resolvía React y aquí resuelve el CSS: la
 * etiqueta que sube, el hueco que se abre en el borde, el icono de la casilla,
 * el punto del radio y el foco.
 *
 * Va en esta hoja —global— y no en la de cada sección porque este marcado lo
 * pinta `template-parts/campo.php`, que es de los cinco formularios y no es de
 * ninguno. Estaba copiado en cuatro hojas y a la quinta, la cotización, se le
 * olvidó: por eso ahí la etiqueta se quedaba encima de lo escrito y salían los
 * dos iconos de la casilla a la vez. Aquí solo puede olvidarse una vez.
 *
 * Se apunta a `MuiInputLabel-root` y no a las clases con hash porque hay dos
 * tamaños de etiqueta —`css-19lagpe` a 0.875rem y `css-1fekm3r` a 1rem, la de
 * reclamaciones— y el estado subido es idéntico en las dos.
 *
 * El input lleva `placeholder=" "` justamente para esto: sin placeholder,
 * `:placeholder-shown` es siempre cierto y la etiqueta no subiría nunca. El
 * `<select>` no lo tiene, así que se mira si hay una opción elegida que no sea
 * la vacía.
 */
.css-1vbfw84:has(.css-1pk1fka:focus) > .MuiInputLabel-root,
.css-1vbfw84:has(.css-1pk1fka:not(:placeholder-shown)) > .MuiInputLabel-root,
.css-1vbfw84:has(.css-s63k3s:focus) > .MuiInputLabel-root,
.css-1vbfw84:has(.css-s63k3s:not(:placeholder-shown)) > .MuiInputLabel-root,
.css-1vbfw84:has(.icasa-select:focus) > .MuiInputLabel-root,
.css-1vbfw84:has(.icasa-select option:not([value='']):checked) > .MuiInputLabel-root {
	max-width: calc(133% - 32px);
	transform: translate(14px, -9px) scale(0.75);
	pointer-events: auto;
	user-select: none;
}
.css-1vbfw84:has(.css-1pk1fka:focus) .css-81qg8w,
.css-1vbfw84:has(.css-1pk1fka:not(:placeholder-shown)) .css-81qg8w,
.css-1vbfw84:has(.css-s63k3s:focus) .css-81qg8w,
.css-1vbfw84:has(.css-s63k3s:not(:placeholder-shown)) .css-81qg8w,
.css-1vbfw84:has(.icasa-select:focus) .css-81qg8w,
.css-1vbfw84:has(.icasa-select option:not([value='']):checked) .css-81qg8w {
	max-width: 100%;
	transition: max-width 100ms cubic-bezier(0, 0, 0.2, 1) 50ms;
}
.css-1vbfw84:has(:focus) > .MuiInputLabel-root {
	color: rgb(25, 118, 210);
}
.css-1vbfw84:has(:focus) > .MuiInputLabel-root.Mui-error {
	color: rgb(211, 47, 47);
}
.css-1vbfw84:has(:focus) .MuiOutlinedInput-notchedOutline {
	border-width: 2px;
	border-color: rgb(25, 118, 210);
}
.css-1vbfw84:has(.Mui-error :focus) .MuiOutlinedInput-notchedOutline {
	border-color: rgb(211, 47, 47);
}

/*
 * El `<select>` nativo sustituye al combobox de MUI (ver la nota de `campo.php`).
 * Solo hay que quitarle la flecha del sistema, porque la plantilla pinta la suya
 * como SVG; sin esto salen las dos.
 */
.icasa-select {
	appearance: none;
	-webkit-appearance: none;
	background-image: none;
}

/*
 * Y su aspecto, clonado del `MuiSelect` de producción: la caja del propio
 * `<select>` y la flecha SVG que la plantilla pinta al lado.
 *
 * Va aquí y no en la hoja de una sección porque el origen `'proyectos'` de
 * `icasa_core_formulario_opciones()` sirve a más de un formulario —el libro de
 * reclamaciones y el «Proyecto de interés» del plan de referidos—, y sin estas
 * dos reglas el campo sale sin caja y con la flecha a tamaño de página. Las
 * hojas de reclamaciones y de tipologías traen su propia copia, que gana por
 * cargarse después y dice lo mismo.
 */
.css-mp9f0v {
	appearance: none;
	user-select: none;
	cursor: pointer;
	border-radius: 4px;
	font: inherit;
	letter-spacing: inherit;
	color: currentcolor;
	border: 0px;
	box-sizing: content-box;
	background: none;
	height: 1.4375em;
	margin: 0px;
	-webkit-tap-highlight-color: transparent;
	display: block;
	min-width: 0px;
	width: 100%;
	padding: 16.5px 14px;
}
.css-mp9f0v:focus {
	outline: 0px;
	border-radius: 4px;
}
.css-mp9f0v.css-mp9f0v.css-mp9f0v {
	padding-right: 32px;
}
.css-mp9f0v.MuiSelect-select {
	height: auto;
	min-height: 1.4375em;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}
.css-mp9f0v:not([multiple]) option,
.css-mp9f0v:not([multiple]) optgroup {
	background-color: rgb(255, 255, 255);
}
.css-1l3b12y {
	user-select: none;
	width: 1em;
	height: 1em;
	display: inline-block;
	flex-shrink: 0;
	transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1);
	fill: currentcolor;
	font-size: 1.5rem;
	position: absolute;
	top: calc(50% - 0.5em);
	pointer-events: none;
	color: rgba(0, 0, 0, 0.54);
	right: 7px;
}

/*
 * El selector de moneda que va DENTRO de la caja de un importe (el `adorno` de
 * `campo.php`). Es el hueco que MUI llama `InputAdornment`, y cabe sin marcado
 * nuevo porque `MuiInputBase-root` ya es un flex y el borde lo pinta el
 * `<fieldset>` de detrás, no la caja.
 *
 * Renuncia a todo lo suyo —borde, fondo, flecha del sistema— para leerse como
 * un prefijo del número y no como un segundo campo metido dentro.
 */
.icasa-adorno {
	flex: 0 0 auto;
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0 4px 0 14px;
	border: 0;
	background: none;
	appearance: none;
	-webkit-appearance: none;
	font: inherit;
	color: inherit;
	cursor: pointer;
}
.icasa-adorno:focus {
	outline: none;
}

/* Con el adorno delante, el número ya no necesita separarse del borde. */
.MuiInputBase-root:has(> .icasa-adorno) > .MuiInputBase-input {
	padding-left: 6px;
}

/*
 * Marcado y desmarcado de casillas y radios, que en producción alterna React.
 *
 * El radio no cambia de icono: MUI deja siempre el aro y superpone el punto,
 * escalándolo de 0 a 1. Con `display` se perdería el aro y el círculo saldría
 * relleno a secas, que no es lo que hace el original. La casilla sí sustituye
 * el icono entero, y por eso la plantilla imprime los dos.
 */
/*
 * El estado de reposo va calificado con la clase del envoltorio, y no suelto,
 * por una cuestión de especificidad: las hojas de sección se cargan después de
 * esta y ahí `.css-q7mezt` y `.css-ga1h76` —las clases del icono, clonadas de
 * producción— traen su propio `display` y su propio `transform`. Con un solo
 * nombre de clase empatarían y ganaría la que se carga más tarde, así que el
 * icono «marcado» se vería siempre y saldrían los dos a la vez.
 */
.css-d771x4 .icasa-check-on {
	display: none;
}
.css-d771x4:has(input:checked) .icasa-check-off {
	display: none;
}
.css-d771x4:has(input:checked) .icasa-check-on {
	display: inline-block;
}
.css-d771x4:has(input:checked) {
	color: rgb(25, 118, 210);
}
.css-6m95b7 .icasa-radio-on {
	transform: scale(0);
}
.css-6m95b7:has(input:checked) .icasa-radio-on {
	transform: scale(1);
}
.css-6m95b7:has(input:checked) {
	color: rgb(25, 118, 210);
}

/* El foco del teclado no se ve: el input real es transparente y está encima. */
.css-6m95b7:has(input:focus-visible),
.css-d771x4:has(input:focus-visible) {
	outline: 2px solid rgb(25, 118, 210);
	outline-offset: -2px;
}

/* Error de un campo y aviso del envío. El margen lo pone cada formulario. */
.icasa-campo-error {
	margin: 4px 14px 0;
	font-family: Poppins, sans-serif;
	font-size: 0.75rem;
	line-height: 1.66;
	color: rgb(211, 47, 47);
}
.icasa-aviso {
	padding: 12px 16px;
	border-radius: 4px;
	font-family: Poppins, sans-serif;
	font-size: 0.875rem;
	line-height: 1.43;
	color: rgb(255, 255, 255);
}
.icasa-aviso:focus {
	outline: none;
}
.icasa-aviso--ok {
	background-color: rgb(46, 125, 50);
}
.icasa-aviso--mal {
	background-color: rgb(211, 47, 47);
}

/* --- popup --- */
/*
 * No hay original que clonar: el popup no existe en producción. De ahí que las
 * clases sean propias (`icasa-…`) y no `css-…` con hash.
 *
 * `hidden` lo pone la plantilla y lo quita el JS; el `display: none` va escrito
 * porque `.icasa-popup` fija su propio `display: flex` y, a igual peso, ganaría
 * el que se declara después y el atributo dejaría de tener efecto.
 *
 * `z-index: 1500`: por encima del drawer del menú (1400 en el banner y en el
 * modal de MUI), que es lo más alto que hay en el resto del sitio.
 */
.icasa-popup[hidden] {
	display: none;
}
.icasa-popup {
	position: fixed;
	inset: 0;
	z-index: 1500;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.icasa-popup__fondo {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
}

/* `max-height` con `min()` para que en móvil apaisado no se salga por abajo. */
.icasa-popup__caja {
	position: relative;
	max-width: 560px;
	max-height: min(90vh, 720px);
	display: flex;
}
.icasa-popup__enlace {
	display: block;
	line-height: 0;
}
.icasa-popup__imagen {
	display: block;
	max-width: 100%;
	max-height: min(90vh, 720px);
	width: auto;
	height: auto;
	border-radius: 8px;
}

/*
 * El botón se sale media anchura hacia fuera de la esquina para no taparle nada
 * a la imagen. En pantallas estrechas se mete dentro: fuera quedaría cortado por
 * el borde de la ventana.
 */
.icasa-popup__cerrar {
	position: absolute;
	top: -14px;
	right: -14px;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: rgb(38, 38, 132);
	cursor: pointer;
	box-shadow:
		0 3px 5px -1px rgba(0, 0, 0, 0.2),
		0 6px 10px 0 rgba(0, 0, 0, 0.14);
}
.icasa-popup__cerrar:hover {
	background: rgb(238, 238, 245);
}
/*
 * Sin aro de foco. Aquí había un `outline` azul en `:focus-visible` y se quita
 * a propósito, pero escrito y no borrado: el botón recibe el foco nada más
 * abrirse el popup, así que dejar la regla fuera no lo deja limpio —saldría el
 * aro que pinta el navegador por su cuenta—. Hace falta apagarlo.
 */
.icasa-popup__cerrar:focus {
	outline: none;
}
.icasa-popup__cerrar svg {
	width: 24px;
	height: 24px;
	fill: currentColor;
}

@media (max-width: 599.95px) {
	.icasa-popup__cerrar {
		top: 8px;
		right: 8px;
	}
}

/* --- llámanos --- */
/*
 * No hay original que clonar: en producción la cabecera no tiene teléfono. De
 * ahí que las clases sean propias (`icasa-…`) y no `css-…` con hash.
 *
 * Es la única acción de la barra, así que es lo único con relleno: los enlaces
 * del menú son texto y este es un botón en el azul de marca. Esa diferencia es
 * la jerarquía —«llamar» pesa más que «Blog»—, y con el azul del logo justo
 * enfrente la barra sigue leyéndose como una sola pieza.
 */
.icasa-llamanos__boton {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	padding: 8px 18px;
	border: 0;
	border-radius: 999px;
	background-color: rgb(38, 38, 132);
	color: #fff;
	font-family: Poppins, sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.75;
	white-space: nowrap;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition:
		background-color 200ms cubic-bezier(0.4, 0, 0.2, 1),
		box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);
}
.icasa-llamanos__boton:hover {
	background-color: rgb(29, 29, 107);
}
.icasa-llamanos__boton:focus-visible {
	outline: 2px solid rgb(38, 38, 132);
	outline-offset: 2px;
}

.icasa-llamanos__icono {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	fill: currentcolor;
}

.icasa-llamanos__punta {
	width: 20px;
	height: 20px;
	margin-right: -6px;
	flex: 0 0 auto;
	fill: currentcolor;
	transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
}
.icasa-llamanos__boton[aria-expanded='true'] .icasa-llamanos__punta {
	transform: rotate(180deg);
}

/*
 * Cada versión se enseña en su ancho, con el mismo corte que ya usan el menú de
 * escritorio y la hamburguesa (900 px).
 */
.icasa-llamanos__boton--movil {
	display: none;
}
@media (max-width: 899.95px) {
	.icasa-llamanos__boton--movil {
		display: inline-flex;
	}
	/*
 * En móvil comparte fila con el logo y la hamburguesa, así que estrecha de
 * lados; de alto no, porque es un objetivo táctil y con el relleno de
 * escritorio se quedaba en 38 px, por debajo de los 44 que necesita un dedo.
 */
	.icasa-llamanos__boton--movil {
		margin-left: auto;
		margin-right: 8px;
		padding: 10px 14px;
	}
}

/*
 * El panel cuelga de la barra pegada, así que baja con ella y no se queda
 * flotando al desplazarse. `absolute` y no `fixed` por lo mismo.
 */
.icasa-llamanos__panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	z-index: 1300;
	padding: 8px 0 16px;
	pointer-events: none;
}
.icasa-llamanos__panel[hidden] {
	display: none !important;
}

.icasa-llamanos__caja {
	pointer-events: auto;
	max-width: 230px;
	margin-left: auto;
	padding: 20px 22px 8px;
	border-radius: 12px;
	background: #fff;
	box-shadow:
		0 12px 28px -6px rgba(17, 25, 52, 0.28),
		0 4px 10px -4px rgba(17, 25, 52, 0.16);
	transform-origin: top right;
}

/*
 * El único momento de movimiento de la cabecera: el panel cae desde arriba
 * mientras aparece. Salida exponencial y desde un estado ya visible, para que
 * no dé la sensación de carga.
 */
@keyframes icasa-llamanos-entra {
	from {
		opacity: 0;
		transform: translateY(-10px) scale(0.98);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
.icasa-llamanos__panel:not([hidden]) .icasa-llamanos__caja {
	animation: icasa-llamanos-entra 220ms cubic-bezier(0.16, 1, 0.3, 1) both;
}
@media (prefers-reduced-motion: reduce) {
	.icasa-llamanos__panel:not([hidden]) .icasa-llamanos__caja {
		animation: none;
	}
	.icasa-llamanos__punta,
	.icasa-llamanos__boton,
	.icasa-llamanos__numero {
		transition: none;
	}
}

/*
 * El encabezado va en dos renglones a propósito: en uno solo se come el ancho
 * entero de la caja y empuja los teléfonos hacia abajo como si fuera un titular.
 * Partido, se lee de un vistazo y deja el peso en los números.
 *
 * Se corta con un ancho en `ch` y no con un `<br>` porque el texto se edita en
 * Configuración ICASA: un salto escrito a mano se rompería en cuanto el cliente
 * cambie la frase. `balance` reparte las dos líneas en vez de dejar una huérfana.
 */
.icasa-llamanos__titulo {
	max-width: 28ch;
	margin: 0 0 14px;
	font-family: Poppins, sans-serif;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.45;
	text-wrap: balance;
	color: rgb(38, 38, 132);
}

.icasa-llamanos__sedes,
.icasa-llamanos__numeros {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Separación entre proyectos: más aire que entre los números de uno mismo. */
.icasa-llamanos__sede + .icasa-llamanos__sede {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid rgb(238, 238, 245);
}

/*
 * El nombre del proyecto es la etiqueta del grupo, no un titular: va pequeño y
 * en gris, para que el número —que es lo que se toca— sea lo que pesa.
 */
.icasa-llamanos__sede-nombre {
	margin: 0 0 4px;
	font-family: Poppins, sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgb(97, 97, 114);
}

/*
 * Cada número es una fila entera y no un enlace dentro de un párrafo: en un
 * móvil el objetivo de un toque tiene que ser el renglón, no siete dígitos.
 */
.icasa-llamanos__numero {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 -10px;
	padding: 9px 10px;
	border-radius: 8px;
	font-family: Poppins, sans-serif;
	font-size: 0.9rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.01em;
	color: rgb(38, 38, 132);
	text-decoration: none;
	transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
}
.icasa-llamanos__numero:hover {
	background-color: rgb(238, 238, 245);
}
.icasa-llamanos__numero:focus-visible {
	outline: 2px solid rgb(38, 38, 132);
	outline-offset: -2px;
}
.icasa-llamanos__numero .icasa-llamanos__icono {
	color: rgb(120, 120, 160);
}

@media (max-width: 899.95px) {
	/* En móvil ocupa el ancho de la pantalla: es donde se va a usar de verdad. */

	.icasa-llamanos__numero {
		padding: 13px 10px;
	}
}
