/* Componentes comunes de las páginas de desarrollo a medida (xp_css = «herramientas»): tarjetas con ilustraciones de interfaz,
   informes (mockup), mockup del hero y formulario por pasos. La landing de campañas añade encima grupo-landing.css. */
/* Mockup del hero (ejemplo de intranet): imagen con su propia ventana y sombra, sin marco extra. */
.xp-hero__mockup { margin: 0; }
.xp-hero__mockup img { display: block; width: 100%; height: auto; }
.xp-hero__mockup figcaption { margin-top: .25rem; font-family: var(--xp-f-ui); font-size: .75rem; color: var(--xp-gris); text-align: center; }
.xp-hero__media--mockup::before { display: none; }

/* Ilustraciones de los ejemplos (maquetas de interfaz en CSS, sin imágenes): baldosa suave con tarjetas blancas, fila oscura y chips. */
.wp-block-group.xp-ejemplo { padding: clamp(.75rem, .5rem + .6vw, 1rem); gap: 0; }
.xp-ilu { --xi-fondo: #EAF1F5; display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; margin: 0 0 1rem; padding: 1rem; background: var(--xi-fondo); border-radius: var(--xp-radio); overflow: hidden; font-family: var(--xp-f-ui); font-size: .72rem; line-height: 1.25; color: var(--xp-ciruela); }
.xp-ilu * { box-sizing: border-box; }
.xp-ilu em { font-style: normal; color: var(--xp-gris); font-weight: 500; }
.xi-stack, .xi-card, .xi-sync { width: min(100%, 17.5rem); }
.xi-stack, .xi-sync { display: grid; gap: .4rem; }
.xi-card { background: var(--xp-blanco); border-radius: .75rem; padding: .7rem .75rem; box-shadow: 0 1px 2px rgba(41, 31, 47, .06), 0 8px 18px -10px rgba(41, 31, 47, .25); display: grid; gap: .4rem; }
.xi-h { display: flex; align-items: center; justify-content: space-between; gap: .5rem; font-weight: 600; color: var(--xp-ciruela); }
.xi-row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .5rem .65rem; background: var(--xp-blanco); border-radius: .6rem; font-weight: 600; box-shadow: 0 1px 2px rgba(41, 31, 47, .05); }
.xi-row > span { display: inline-flex; align-items: center; gap: .45rem; min-width: 0; }
.xi-card .xi-row { background: #F1F6F8; box-shadow: none; }
.xi-row--on, .xi-card .xi-row--on { background: var(--xp-ciruela); color: var(--xp-blanco); }
.xi-row--on em { color: #D9CCDF; }
.xi-dot { width: .5rem; height: .5rem; border-radius: 50%; background: #B7CAD3; flex: none; }
.xi-dot--r { background: var(--xp-rosa); }
.xi-dot--ok { background: #35B26A; }
.xi-num { display: inline-flex; align-items: center; justify-content: center; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--xp-rosa); color: var(--xp-blanco); font-style: normal; font-size: .62rem; flex: none; }
.xi-row:not(.xi-row--on) .xi-num { background: var(--xp-rosa-suave); color: var(--xp-rosa-tinta); }
.xi-chip { display: inline-block; padding: .12rem .5rem; border-radius: 99px; background: #E6EEF1; color: var(--xp-gris); font-size: .62rem; font-weight: 600; white-space: nowrap; }
.xi-chip--r { background: var(--xp-rosa-suave); color: var(--xp-rosa-tinta); }
.xi-chip--on { background: var(--xp-ciruela); color: var(--xp-blanco); }
.xi-chips { display: flex; gap: .3rem; flex-wrap: wrap; }
.xi-cal .xi-grid { display: grid; grid-template-columns: 1.9rem repeat(5, 1fr); gap: .3rem; align-items: center; justify-items: center; }
.xi-cal .xi-grid b { font-size: .62rem; color: var(--xp-gris); }
.xi-who { justify-self: start; font-weight: 600; font-size: .66rem; }
.s { display: block; width: 100%; height: 1.15rem; border-radius: .35rem; border: 1.5px solid #C9DBE2; background: var(--xp-blanco); }
.s.b { background: var(--xp-rosa-suave); border-color: var(--xp-rosa-suave); }
.s.o { background: var(--xp-ciruela); border-color: var(--xp-ciruela); }
.xi-leyenda { display: flex; gap: .8rem; font-size: .6rem; color: var(--xp-gris); }
.xi-leyenda span { display: inline-flex; align-items: center; gap: .3rem; }
.xi-leyenda .s { width: .75rem; height: .75rem; border-radius: .2rem; }
.xi-mini { display: grid; grid-template-columns: 3.4rem 1fr auto; align-items: center; gap: .4rem; padding: .35rem .5rem; background: #F1F6F8; border-radius: .5rem; }
.xi-mini span { color: var(--xp-gris); font-size: .62rem; }
.xi-mini b { font-weight: 600; }
.xi-mini em { color: var(--xp-rosa-tinta); font-size: .62rem; font-weight: 600; }
.xi-nodos { display: grid; grid-template-columns: 1fr 2.6rem 1fr; align-items: center; gap: .3rem; }
.xi-nodo { padding: .7rem .4rem; text-align: center; background: var(--xp-blanco); border-radius: .7rem; font-weight: 700; box-shadow: 0 1px 2px rgba(41, 31, 47, .06); }
.xi-nodo--on { background: var(--xp-ciruela); color: var(--xp-blanco); }
.xi-flecha { color: var(--xp-rosa); }
.xi-flecha svg { display: block; width: 100%; height: auto; }
.xi-busca { padding: .45rem .6rem; background: #F1F6F8; border-radius: 99px; color: var(--xp-gris); font-weight: 500; }
.xi-pin { width: .55rem; height: .55rem; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--xp-rosa); flex: none; }
.xi-barra { height: .45rem; border-radius: 99px; background: #E6EEF1; overflow: hidden; }
.xi-barra i { display: block; height: 100%; background: var(--xp-rosa); border-radius: 99px; }
.xi-leccion { display: flex; align-items: center; gap: .5rem; padding: .4rem .55rem; border-radius: .5rem; background: #F1F6F8; font-weight: 600; }
.xi-leccion i { width: .9rem; height: .9rem; border-radius: 50%; border: 1.5px solid #BFD3DB; flex: none; }
.xi-leccion--ok i { background: #35B26A; border-color: #35B26A; box-shadow: inset 0 0 0 2px var(--xp-lila); }
.xi-leccion--on { background: var(--xp-ciruela); color: var(--xp-blanco); }
.xi-leccion--on i { border-color: var(--xp-rosa); background: var(--xp-rosa); }
.xi-linea { height: .4rem; border-radius: 99px; background: #D9E5EA; }
.xi-linea--m { width: 82%; } .xi-linea--c { width: 55%; }
.xi-botones { display: flex; gap: .4rem; margin-top: .15rem; }
.xi-btn { flex: 1; padding: .45rem .5rem; border-radius: 99px; text-align: center; font-weight: 700; background: #E6EEF1; color: var(--xp-ciruela); }
.xi-btn--r { background: var(--xp-rosa-boton); color: var(--xp-blanco); }
.xi-btn--ancho { flex-basis: 100%; }
.xi-campo { padding: .45rem .6rem; background: #F1F6F8; border-radius: .5rem; color: var(--xp-gris); font-weight: 500; }
.xi-planes { display: flex; gap: .4rem; }
.xi-plan { flex: 1; padding: .4rem; text-align: center; border-radius: .5rem; border: 1.5px solid #C9DBE2; font-weight: 600; }
.xi-plan--on { border-color: var(--xp-rosa); background: var(--xp-rosa-suave); color: var(--xp-rosa-tinta); }

/* Tarjetas unificadas (situación + ilustración + solución). */
.xp-ejemplo__frase { margin: 0 0 .35rem; font-family: var(--xp-f-ui); font-size: .8125rem; font-weight: 500; line-height: 1.4; color: var(--xp-rosa-tinta); text-wrap: balance; }
.xp-ejemplo h3 { margin-top: 0; }
.xi-file { width: .8rem; height: .95rem; border-radius: .15rem; background: var(--xp-rosa-suave); border: 1.5px solid #E7B7C6; flex: none; position: relative; }
.xi-row--on .xi-file { background: rgba(255, 255, 255, .18); border-color: rgba(255, 255, 255, .5); }
.xi-h .xi-chips { flex-wrap: nowrap; }

/* ----- Formulario por pasos: base adaptada de formulario-presupuesto.css ----- */
.xp-lf .gfield_label,
.xp-lf legend.gfield_label,
.xp-gf-pregunta { margin: 0 0 .35rem; font-family: var(--xp-f-texto); font-weight: 600; font-size: clamp(1.125rem, 1.05rem + .3vw, 1.25rem); line-height: 1.3; color: var(--xp-ciruela); }
.xp-lf .field_description_above .gfield_description,
.xp-gf-ayuda { margin: 0 0 .85rem; font-size: .9375rem; line-height: 1.5; color: var(--xp-gris); }
/* Sin palabras sueltas en la última línea de una pregunta o de su ayuda (a 390 px: «menos?», «quieras.») */
.xp-lf :is(.gfield_label, .gfield_description), .xp-gf-pregunta, .xp-gf-ayuda { text-wrap: balance; }
.xp-gf-pregunta + .xp-gf-ayuda { margin-bottom: 0; }
/* Sin «(Obligatorio)» a la vista: casi todo es de un toque y lo opcional lo dice su descripción. El lector de pantalla sí lo lee. */
.xp-lf .gfield_required { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.xp-lf ::placeholder { color: var(--xp-gris); opacity: .85; }
body .xp-lf .gfield.xp-lf-corto textarea { height: 6.5rem; min-height: 5.5rem; }
/* Errores: en rosa tinta y pegados a su pregunta */
.xp-lf .gfield_description.gfield_validation_message,
.xp-lf .gfield_description.validation_message { margin: .55rem 0 0; padding: 0; font-size: .875rem; font-weight: 500; color: var(--xp-rosa-tinta); }
.xp-lf .gform_validation_errors { margin: 0 0 1.25rem; }
.xp-lf .gform_validation_errors .gform_submission_error { font-family: var(--xp-f-ui); font-size: .9375rem; line-height: 1.4; }

/* ---------- Opciones de un toque: el radio o la casilla quedan dentro, invisibles pero activos ---------- */
.xp-lf :is(.xp-lf-tarjetas, .xp-lf-pastillas, .xp-lf-chips) .gchoice { position: relative; display: block; min-width: 0; }
body .xp-lf .gfield:is(.xp-lf-tarjetas, .xp-lf-pastillas, .xp-lf-chips) .gchoice input {
	position: absolute; top: 50%; left: 50%; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none;
}
.xp-lf :is(.xp-lf-tarjetas, .xp-lf-pastillas, .xp-lf-chips) .gchoice label {
	cursor: pointer; -webkit-tap-highlight-color: transparent; user-select: none;
	border: 1.5px solid var(--xp-linea); background: var(--xp-blanco); color: var(--xp-ciruela);
	font-family: var(--xp-f-ui); font-weight: 600; font-size: .9375rem; line-height: 1.25;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.xp-lf :is(.xp-lf-tarjetas, .xp-lf-pastillas, .xp-lf-chips) .gchoice label:hover { border-color: var(--xp-gris); }
.xp-lf :is(.xp-lf-tarjetas, .xp-lf-pastillas, .xp-lf-chips) .gchoice input:focus-visible + label { outline: 3px solid var(--xp-rosa-boton); outline-offset: 2px; }
.xp-lf .gfield_error :is(.gchoice label) { border-color: var(--xp-rosa-tinta); }

/* Tarjetas */
.xp-lf .xp-lf-tarjetas .gchoice label {
	position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .55rem;
	height: 100%; min-height: 6.75rem; padding: 1rem 1rem .95rem; border-radius: var(--xp-radio);
}
.xp-lf .xp-lf-tarjetas .gchoice label:hover { transform: translateY(-2px); box-shadow: var(--xp-sombra); }
.xp-gf-op__icono { flex: none; width: 28px; height: 28px; color: var(--xp-rosa-tinta); }
.xp-gf-op__t { display: block; }
.xp-gf-op__b { display: block; margin-top: -.2rem; font-family: var(--xp-f-texto); font-weight: 400; font-size: .8125rem; line-height: 1.35; color: var(--xp-gris); text-wrap: balance; }
.xp-lf .xp-lf-tarjetas .gchoice label::after {
	content: ""; position: absolute; top: .7rem; right: .7rem; width: 1.5rem; height: 1.5rem; border-radius: 50%;
	background: var(--xp-ciruela) center / .85rem no-repeat; opacity: 0; transform: scale(.6); transition: opacity .15s ease, transform .2s ease;
}
.xp-lf .xp-lf-tarjetas .gchoice input:checked + label { border-color: var(--xp-ciruela); background: var(--xp-niebla); box-shadow: inset 0 0 0 1px var(--xp-ciruela); }
.xp-lf .xp-lf-tarjetas .gchoice input:checked + label::after {
	opacity: 1; transform: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 12.5l5 5 10-11'/></svg>");
}
/* Con casillas, la marca se ve siempre: un cuadradito vacío (se puede marcar más de una) que se rellena al marcarla. */
.xp-lf .xp-lf-tarjetas .gfield_checkbox .gchoice label::after {
	width: 1.375rem; height: 1.375rem; border-radius: 7px; opacity: 1; transform: none;
	background-color: var(--xp-blanco); box-shadow: inset 0 0 0 1.5px var(--xp-gris-lila);
	transition: background-color .15s ease, box-shadow .15s ease, transform .2s ease;
}
.xp-lf .xp-lf-tarjetas .gfield_checkbox .gchoice label:hover::after { box-shadow: inset 0 0 0 1.5px var(--xp-ciruela); }
.xp-lf .xp-lf-tarjetas .gfield_checkbox .gchoice input:checked + label::after { background-color: var(--xp-ciruela); box-shadow: none; animation: xp-gf-marca .25s cubic-bezier(.2, .8, .2, 1); }
@keyframes xp-gf-marca { 50% { transform: scale(1.15); } }
.xp-lf .gfield_error.xp-lf-tarjetas .gfield_checkbox .gchoice label::after { box-shadow: inset 0 0 0 1.5px var(--xp-rosa-tinta); }
@container (min-width: 540px) {
	.xp-lf .xp-lf-tarjetas .gfield_radio { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Pastillas (respuestas de un toque) */
.xp-lf .xp-lf-pastillas .gfield_radio { display: flex; flex-wrap: wrap; gap: .5rem; }
.xp-lf .xp-lf-pastillas .gchoice label { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .6rem 1.15rem; border-radius: 999px; text-align: center; }
.xp-lf .xp-lf-pastillas .gchoice input:checked + label { border-color: var(--xp-ciruela); background: var(--xp-ciruela); color: var(--xp-blanco); }
/* Tramos de presupuesto: rejilla pareja */
.xp-lf .xp-gf-rejilla .gfield_radio { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.xp-lf .xp-gf-rejilla .gchoice label { display: flex; width: 100%; height: 100%; padding-inline: .75rem; }
@container (min-width: 540px) {
	.xp-lf .xp-gf-rejilla .gfield_radio { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* ---------- Botones: grandes, «Siguiente» ocupa el sitio y WhatsApp debajo (o a la derecha en ancho) ---------- */
.xp-lf .gform_page_footer { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 2rem; padding: 0; }
.xp-lf .gform_page_footer :is(.gform_next_button, .gform_button, .gform_previous_button) { min-height: 56px; margin: 0; cursor: pointer; }
.xp-lf .gform_page_footer .gform_next_button {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em; flex: 1 1 10rem; order: 2;
	padding: .85em 1.6em; border: 0; border-radius: 999px; background: var(--xp-rosa-boton); color: var(--xp-blanco);
	font-family: var(--xp-f-ui); font-weight: 600; font-size: 1rem; box-shadow: 0 8px 18px -10px rgba(224, 23, 79, .7);
	transition: background-color .2s ease, transform .2s ease;
}
.xp-lf .gform_page_footer .gform_next_button::after {
	content: ""; width: 1.1em; height: 1.1em; background: currentColor;
	-webkit-mask: var(--xp-m-flecha) center / contain no-repeat; mask: var(--xp-m-flecha) center / contain no-repeat;
}
.xp-lf .gform_page_footer .gform_next_button:hover { background: var(--xp-rosa-tinta); transform: translateY(-1px); }
.xp-lf .gform_page_footer .gform_button { flex: 1 1 10rem; order: 2; font-size: 1rem; }
.xp-lf .gform_page_footer .gform_previous_button {
	display: inline-flex; align-items: center; justify-content: center; gap: .45em; flex: 0 0 auto; order: 1;
	padding: .85em 1.35em; border: 0; border-radius: 999px; font-family: var(--xp-f-ui); font-weight: 600; font-size: 1rem;
}
.xp-lf .gform_page_footer .gform_previous_button::before {
	content: ""; width: 1.1em; height: 1.1em; background: currentColor; transform: scaleX(-1);
	-webkit-mask: var(--xp-m-flecha) center / contain no-repeat; mask: var(--xp-m-flecha) center / contain no-repeat;
}
.xp-lf .gform_page_footer :is(button, input):focus-visible { outline: 3px solid var(--xp-rosa-boton); outline-offset: 3px; }

/* =======================================================================================================
   Formulario de la landing por pasos (.xp-lf): sección oscura, tarjeta blanca centrada, tarjetas seleccionables.
   Misma base visual que el formulario de presupuesto (formulario-presupuesto.css), pero autónoma para esta página.
   ======================================================================================================= */
.xp-lf-caja, .wp-block-group.xp-lf-caja { width: 100%; max-width: 46rem; margin-left: auto !important; margin-right: auto !important; }
.xp-lf { container-type: inline-size; }
.xp-lf .gform_fields { row-gap: 1.5rem; }
.xp-lf .gform_page { animation: xp-lf-entra .4s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes xp-lf-entra { from { opacity: 0; transform: translateX(14px); } }
/* Progreso de Gravity Forms */
.xp-lf .gf_progressbar_wrapper { margin: 0 0 1.5rem; }
.xp-lf .gf_progressbar_title { margin: 0 0 .5rem; font-family: var(--xp-f-ui); font-size: .8125rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--xp-gris); }
.xp-lf .gf_progressbar { height: 8px; overflow: hidden; border-radius: 999px; background: var(--xp-niebla); box-shadow: none; }
.xp-lf .gf_progressbar_percentage { height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--xp-rosa-boton), var(--xp-rosa)); transition: width .5s cubic-bezier(.2, .8, .2, 1); }
.xp-lf .gf_progressbar_percentage span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* Tarjetas seleccionables (casillas): 2 en móvil, 3 en ancho, con icono y marca */
.xp-lf .xp-lf-tarjetas .gfield_checkbox { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
@container (min-width: 520px) { .xp-lf .xp-lf-tarjetas .gfield_checkbox { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.xp-lf .xp-lf-tarjetas .gchoice label {
	position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .55rem;
	height: 100%; min-height: 6.5rem; padding: 3.1rem .9rem .9rem; border-radius: var(--xp-radio);
}
.xp-lf .xp-lf-tarjetas .gchoice label::before {
	content: ""; position: absolute; top: .95rem; left: .9rem; width: 1.6rem; height: 1.6rem; background: var(--xp-rosa-tinta);
	-webkit-mask: var(--xp-lf-icono) center / contain no-repeat; mask: var(--xp-lf-icono) center / contain no-repeat;
}
.xp-lf .xp-lf-tarjetas .gchoice label::after {
	content: ""; position: absolute; top: .8rem; right: .8rem; width: 1.375rem; height: 1.375rem; border-radius: 7px;
	background: var(--xp-blanco) center / .85rem no-repeat; box-shadow: inset 0 0 0 1.5px var(--xp-gris-lila); transition: background-color .15s ease, box-shadow .15s ease, transform .2s ease;
}
.xp-lf .xp-lf-tarjetas .gchoice label:hover { transform: translateY(-2px); box-shadow: var(--xp-sombra); }
.xp-lf .xp-lf-tarjetas .gchoice input:checked + label { border-color: var(--xp-ciruela); background: var(--xp-niebla); box-shadow: inset 0 0 0 1px var(--xp-ciruela); }
.xp-lf .xp-lf-tarjetas .gchoice input:checked + label::after {
	background-color: var(--xp-ciruela); box-shadow: none; animation: xp-lf-marca .25s cubic-bezier(.2, .8, .2, 1);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 12.5l5 5 10-11'/></svg>");
}
@keyframes xp-lf-marca { 50% { transform: scale(1.15); } }
.xp-lf .gfield_error.xp-lf-tarjetas .gchoice label::after { box-shadow: inset 0 0 0 1.5px var(--xp-rosa-tinta); }
.xp-lf .xp-lf-tarjetas .gchoice:nth-child(1) label { --xp-lf-icono: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M16 21v-2a4 4 0 00-4-4H6a4 4 0 00-4 4v2M9 11a4 4 0 100-8 4 4 0 000 8M22 21v-2a4 4 0 00-3-3.9M16 3.1a4 4 0 010 7.8'/></svg>"); }
.xp-lf .xp-lf-tarjetas .gchoice:nth-child(2) label { --xp-lf-icono: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 7a2 2 0 012-2h14a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2zM3 10h18'/></svg>"); }
.xp-lf .xp-lf-tarjetas .gchoice:nth-child(3) label { --xp-lf-icono: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M7 11V8a5 5 0 0110 0v3M5 11h14v9H5z'/></svg>"); }
.xp-lf .xp-lf-tarjetas .gchoice:nth-child(4) label { --xp-lf-icono: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M7 3v4M17 3v4M4 9h16M5 5h14a1 1 0 011 1v13a1 1 0 01-1 1H5a1 1 0 01-1-1V6a1 1 0 011-1z'/></svg>"); }
.xp-lf .xp-lf-tarjetas .gchoice:nth-child(5) label { --xp-lf-icono: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M17 4l3 3-3 3M20 7H8a4 4 0 00-4 4M7 20l-3-3 3-3M4 17h12a4 4 0 004-4'/></svg>"); }
.xp-lf .xp-lf-tarjetas .gchoice:nth-child(6) label { --xp-lf-icono: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 20V10M10 20V4M16 20v-7M22 20H2'/></svg>"); }
.xp-lf .xp-lf-tarjetas .gchoice:nth-child(7) label { --xp-lf-icono: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8z'/></svg>"); }
body .xp-lf .gfield.xp-lf-corto textarea { height: 7.5rem; min-height: 6rem; }
@media (prefers-reduced-motion: reduce) { .xp-lf .gform_page, .xp-lf .gf_progressbar_percentage { animation: none; transition: none; } .xp-lf .xp-lf-tarjetas .gchoice label:hover { transform: none; } }
.xp-lf-pie { margin-top: 1.5rem; }
.xp-lf-pie a { color: var(--xp-blanco); }

/* =======================================================================================================
   Informes (mockup que se esconde por abajo): un cuadro de mando con varios tipos de informe.
   ======================================================================================================= */
.xp-informes .xp-informes__boton { margin-top: clamp(1.5rem, 1rem + 2vw, 2.5rem); }
.xr { --xr-azul: #E6EEF1; position: relative; width: 100%; max-width: 70rem; margin: clamp(1.5rem, 1rem + 2vw, 2.5rem) auto 0 !important; max-height: 30rem; overflow: hidden; padding: clamp(.75rem, .4rem + 1.5vw, 1.5rem) clamp(.5rem, .2rem + 1.5vw, 1.5rem) 0; border-radius: 1.5rem 1.5rem 0 0; background: linear-gradient(180deg, var(--xr-azul), #F4F8FA); font-family: var(--xp-f-ui); color: var(--xp-ciruela); }
.xr::after { content: ""; position: absolute; inset: auto 0 0 0; height: 45%; background: linear-gradient(180deg, rgba(255, 255, 255, 0), var(--xp-blanco) 92%); pointer-events: none; }
.xr * { box-sizing: border-box; }
.xr-ventana { background: var(--xp-blanco); border-radius: 1rem 1rem 0 0; box-shadow: 0 30px 70px -30px rgba(41, 31, 47, .45), 0 0 0 1px rgba(65, 45, 73, .06); overflow: hidden; }
.xr-barra { display: flex; align-items: center; gap: .4rem; padding: .6rem .9rem; background: #F1F6F8; font-size: .6875rem; color: var(--xp-gris); }
.xr-barra i { width: .6rem; height: .6rem; border-radius: 50%; background: #CFDCE2; }
.xr-barra i:first-child { background: var(--xp-rosa); }
.xr-barra span { margin-left: .6rem; padding: .15rem .8rem; border-radius: 99px; background: var(--xp-blanco); }
.xr-cuerpo { padding: 1rem; display: grid; gap: .9rem; }
.xr-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: .75rem; font-weight: 600; }
.xr-tabs span { padding: .35rem .8rem; border-radius: 99px; color: var(--xp-gris); }
.xr-tabs span.on { background: var(--xp-ciruela); color: var(--xp-blanco); }
.xr-tabs em { margin-left: auto; font-style: normal; font-weight: 500; color: var(--xp-gris); }
.xr-tabs b { padding: .35rem .9rem; border-radius: 99px; background: var(--xp-rosa-boton); color: var(--xp-blanco); }
.xr-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.xr-kpi { padding: .8rem .9rem; border-radius: .8rem; background: #F1F6F8; }
.xr-kpi small { display: block; font-size: .6875rem; color: var(--xp-gris); }
.xr-kpi strong { display: block; margin: .15rem 0 .25rem; font-size: 1.5rem; letter-spacing: -.02em; }
.xr-kpi i { font-style: normal; font-size: .6875rem; font-weight: 600; padding: .1rem .5rem; border-radius: 99px; }
.xr-up { background: #E0F4E8; color: #1B7A3D; }
.xr-aviso { background: var(--xp-rosa-suave); color: var(--xp-rosa-tinta); }
.xr-rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.xr-card { padding: .9rem; border: 1px solid #DCE7EC; border-radius: .8rem; background: var(--xp-blanco); min-width: 0; }
.xr-ancha { grid-column: span 2; }
.xr-t { display: flex; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; font-size: .8125rem; font-weight: 600; }
.xr-t span { font-size: .6875rem; font-weight: 500; color: var(--xp-gris); }
.xr-ancha svg { display: block; width: 100%; height: 8.5rem; }
.xr-donut { display: flex; align-items: center; gap: 1rem; }
.xr-donut > i { flex: none; width: 6rem; height: 6rem; border-radius: 50%; background: conic-gradient(#F3285C 0 42%, #412D49 0 69%, #FF7A9C 0 88%, #B7CAD3 0); -webkit-mask: radial-gradient(circle, transparent 54%, #000 55%); mask: radial-gradient(circle, transparent 54%, #000 55%); }
.xr-donut ul { margin: 0; padding: 0; list-style: none; font-size: .6875rem; display: grid; gap: .35rem; flex: 1; }
.xr-donut li { display: flex; align-items: center; gap: .4rem; }
.xr-donut li b { width: .55rem; height: .55rem; border-radius: 50%; flex: none; }
.xr-donut li em { margin-left: auto; font-style: normal; font-weight: 600; }
.xr-barras { display: grid; gap: .6rem; font-size: .6875rem; }
.xr-barras span { display: block; margin-bottom: .2rem; color: var(--xp-gris); }
.xr-barras i { display: block; height: .55rem; border-radius: 99px; background: var(--xp-ciruela); }
.xr-barras div:nth-child(1) i { background: var(--xp-rosa); }
.xr-card table { width: 100%; border-collapse: collapse; font-size: .75rem; }
.xr-card td { padding: .4rem 0; border-top: 1px solid #E6EEF1; }
.xr-card td:nth-child(2) { font-weight: 600; text-align: right; padding-inline: .6rem; }
.xr-chip { display: inline-block; padding: .1rem .5rem; border-radius: 99px; background: #E0F4E8; color: #1B7A3D; font-size: .625rem; }
.xr-chip--r { background: var(--xp-rosa-suave); color: var(--xp-rosa-tinta); }
.xr-equipo { display: grid; gap: .6rem; font-size: .6875rem; }
.xr-equipo div { display: grid; grid-template-columns: 2.6rem 1fr 2.2rem; align-items: center; gap: .5rem; }
.xr-equipo i { height: .55rem; border-radius: 99px; background: #E6EEF1; overflow: hidden; }
.xr-equipo u { display: block; height: 100%; border-radius: 99px; background: var(--xp-rosa); }
.xr-equipo em { font-style: normal; font-weight: 600; text-align: right; }
@media (max-width: 781px) {
	.xr { max-height: 26rem; }
	.xr-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.xr-rejilla { grid-template-columns: minmax(0, 1fr); }
	.xr-ancha { grid-column: auto; }
	.xr-tabs em { display: none; }
}
.xp-lf .gform_required_legend { display: none; }
.xp-informes__cuadro { max-width: 70rem; margin-inline: auto; }
.xp-lf_wrapper .gform_heading { display: none; }
/* Títulos de tarjeta con enlace a su apartado (página principal de desarrollo a medida) */
.xp-ejemplo h3 a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size .2s ease; }
.xp-ejemplo h3 a:hover, .xp-ejemplo h3 a:focus-visible { background-size: 100% 1.5px; }

/* Ilustraciones de las subpáginas de desarrollo a medida (reservas, directorios, áreas privadas). */
.xp-ilu--hero { aspect-ratio: auto; padding: clamp(1rem, .6rem + 1.4vw, 1.6rem); font-size: .8rem; margin: 0; border-radius: 1.25rem; }
.xp-ilu--hero .xi-card, .xp-ilu--hero .xi-stack, .xp-ilu--hero .xh-portal { width: 100%; }
.xh-par { display: grid; gap: .7rem; width: 100%; }
.xh-dos { display: grid; grid-template-columns: 1.15fr 1fr; gap: .7rem; align-items: start; }
.xh-dias { display: grid; grid-template-columns: repeat(7, 1fr); gap: .15rem; text-align: center; }
.xh-dias b { font-size: .56rem; color: var(--xp-gris); font-weight: 600; }
.xh-dias i { font-style: normal; padding: .24rem 0; border-radius: .3rem; font-size: .64rem; font-weight: 600; }
.xh-dias i.n { color: #B7C6CC; text-decoration: line-through; }
.xh-dias i.r { background: var(--xp-rosa-suave); color: var(--xp-rosa-tinta); border-radius: 0; }
.xh-dias i.e { background: var(--xp-ciruela); color: var(--xp-blanco); }
.xh-mini2 { grid-template-columns: 4.2rem 1fr; }
.xh-mapa { position: relative; height: 7.5rem; border-radius: .6rem; background-color: #DCE9EE; overflow: hidden; background-image: linear-gradient(115deg, transparent 46%, #fff 46% 49%, transparent 49%), linear-gradient(20deg, transparent 60%, #fff 60% 62.5%, transparent 62.5%), linear-gradient(90deg, transparent 30%, #C9DCE3 30% 31%, transparent 31%); }
.xh-mapa--s { height: 5.2rem; }
.xh-mapa .xi-pin { position: absolute; width: .8rem; height: .8rem; box-shadow: 0 2px 4px rgba(41, 31, 47, .25); }
.xh-mapa--s .xi-pin { width: .65rem; height: .65rem; }
.xh-pin--on { background: var(--xp-ciruela); }
.xh-etq { position: absolute; transform: translateX(-50%); padding: .15rem .5rem; border-radius: 99px; background: var(--xp-blanco); font-weight: 700; font-size: .62rem; box-shadow: 0 2px 6px rgba(41, 31, 47, .2); white-space: nowrap; }
.xh-portal { display: grid; grid-template-columns: 6.1rem 1fr; gap: .7rem; padding: .7rem; background: var(--xp-blanco); border-radius: .85rem; box-shadow: 0 1px 2px rgba(41, 31, 47, .06), 0 8px 18px -10px rgba(41, 31, 47, .25); }
.xh-menu { display: grid; gap: .25rem; align-content: start; }
.xh-menu span { padding: .35rem .5rem; border-radius: .45rem; font-weight: 600; font-size: .64rem; color: var(--xp-gris); }
.xh-menu .on { background: var(--xp-ciruela); color: var(--xp-blanco); }
.xh-cuerpo { display: grid; gap: .35rem; min-width: 0; }
.xh-cuerpo .xi-row { background: #F1F6F8; box-shadow: none; }
.xh-av { display: inline-grid; place-items: center; width: 1.3rem; height: 1.3rem; border-radius: 50%; background: var(--xp-rosa-suave); color: var(--xp-rosa-tinta); font-style: normal; font-size: .56rem; font-weight: 700; flex: none; }
.xh-bono { display: flex; gap: .25rem; }
.xh-bono i { flex: 1; aspect-ratio: 1; max-width: 1.25rem; border-radius: 50%; border: 1.5px solid #C9DBE2; }
.xh-bono i.u { background: var(--xp-rosa); border-color: var(--xp-rosa); }
.xh-noches { display: grid; grid-template-columns: repeat(10, 1fr); gap: .2rem; }
.xh-noches .s { height: 1.35rem; }
.xi-planes .xi-plan { line-height: 1.35; }
@media (max-width: 600px) { .xh-dos { grid-template-columns: 1fr; } }

.xp-rejilla--2 > .xp-ejemplo .xp-ilu { aspect-ratio: 2.3 / 1; }
.xp-medida-funcion .xp-ilu--hero { margin-bottom: 1rem; }
