/**
 * 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,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(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: .875rem; color: rgba(0,0,0,.87); text-decoration: none;}
.css-79elbk .icasa-submenu a:hover{background: rgba(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;}

/*
 * 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, .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,.2), 0 6px 10px 0 rgba(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;}
}
