/* ==========================================================================
   Janova — estilos del tema
   Los colores y tamaños vienen de theme.json (variables --wp--preset--*),
   así que si se cambian en el Editor del sitio, cambia todo.
   Estética recta: sin esquinas redondeadas ni sombras (salvo el WhatsApp
   flotante, que necesita separarse del contenido).
   ========================================================================== */

:root {
	--jn-bg: var(--wp--preset--color--bg, #F4F1EC);
	--jn-ink: var(--wp--preset--color--ink, #1B1A17);
	--jn-accent: var(--wp--preset--color--accent, #B85A33);
	--jn-accent-dark: var(--wp--preset--color--accent-on-dark, #E08A62);
	--jn-sand: var(--wp--preset--color--sand, #E8E1D5);
	--jn-paper: var(--wp--preset--color--paper, #FBF9F5);
	--jn-hover: var(--wp--preset--color--hover, #ECE7DF);
	--jn-t2: var(--wp--preset--color--text-2, #4A4640);
	--jn-t3: var(--wp--preset--color--text-3, #5E5952);
	--jn-t4: var(--wp--preset--color--text-4, #8A847A);
	--jn-od2: var(--wp--preset--color--on-dark-2, #C9C3B9);
	--jn-od3: var(--wp--preset--color--on-dark-3, #8F897F);
	--jn-wa: var(--wp--preset--color--whatsapp, #3E8E5B);
	--jn-wa-hover: #2F7348;
	--jn-wa-brand: #25D366;
	--jn-tile: var(--wp--preset--color--bath-tile, #D9DED8);

	--jn-line: rgba(27, 26, 23, .14);
	--jn-line-2: rgba(27, 26, 23, .2);
	--jn-line-dark: rgba(244, 241, 236, .2);

	--jn-mono: var(--wp--preset--font-family--mono, 'JetBrains Mono', ui-monospace, monospace);
	--jn-pad: clamp(20px, 4vw, 48px);
	--jn-section: clamp(72px, 9vw, 128px);
	--jn-ease: cubic-bezier(.2, .7, .2, 1);
	--jn-header-h: 72px;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html { scroll-behavior: smooth; }

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
	font-stretch: 112%;
	text-wrap: balance;
}

h3 { font-stretch: 100%; }

[id] { scroll-margin-top: calc(var(--jn-header-h) + 16px); }

.janova-main p,
.janova-header p,
.janova-footer p,
.janova-main h1,
.janova-main h2,
.janova-main h3 {
	margin: 0;
}

:focus-visible {
	outline: 2px solid var(--jn-accent);
	outline-offset: 3px;
}

.janova-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: 1320px;
	margin-inline: auto;
	padding-inline: var(--jn-pad);
}

.janova-section { padding-block: var(--jn-section); }

.janova-section--dark {
	background: var(--jn-ink);
	color: var(--jn-bg);
}

.janova-section--dark h2,
.janova-section--dark h3 { color: var(--jn-bg); }

.janova-section--dark a { color: var(--jn-bg); }
.janova-section--dark a:hover { color: var(--jn-accent-dark); }

.janova-section--sand { background: var(--jn-sand); }

.janova-section--rule-top { border-top: 1px solid var(--jn-line); }

.janova-section--rules {
	border-top: 1px solid var(--jn-line);
	border-bottom: 1px solid var(--jn-line);
}

.janova-stack {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.janova-stack--l { gap: 18px; }

.janova-h2-small {
	font-size: var(--wp--preset--font-size--section-s);
	line-height: 1;
}

.janova-h2-contact {
	font-size: var(--wp--preset--font-size--contact);
	line-height: .95;
	letter-spacing: -.035em;
}

.janova-intro {
	max-width: 480px;
	font-size: 18px;
	line-height: 1.6;
	color: var(--jn-t2);
	text-wrap: pretty;
}

.janova-note {
	max-width: 360px;
	font-size: 15px;
	color: var(--jn-t3);
}

/* --------------------------------------------------------------------------
   Estilos de párrafo (panel «Estilos» del editor)
   -------------------------------------------------------------------------- */
.is-style-janova-eyebrow {
	font-family: var(--jn-mono);
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--jn-accent);
}

.janova-section--dark .is-style-janova-eyebrow { color: var(--jn-accent-dark); }

.is-style-janova-badge {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--jn-mono);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--jn-t3);
}

.is-style-janova-badge::before {
	content: "";
	flex: 0 0 8px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--jn-wa);
}

.is-style-janova-mono {
	font-family: var(--jn-mono);
	font-size: 12px;
	letter-spacing: .06em;
}

/* --------------------------------------------------------------------------
   Botones
   -------------------------------------------------------------------------- */
.wp-block-buttons { gap: 12px; }

.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.is-style-janova-dark .wp-block-button__link {
	background: var(--jn-ink);
	color: var(--jn-bg);
}

.is-style-janova-dark .wp-block-button__link:hover {
	background: var(--jn-accent);
	color: var(--jn-bg);
}

.is-style-janova-outline .wp-block-button__link {
	background: transparent;
	color: var(--jn-ink);
	box-shadow: inset 0 0 0 1.5px var(--jn-ink);
}

.is-style-janova-outline .wp-block-button__link:hover {
	background: var(--jn-ink);
	color: var(--jn-bg);
}

.is-style-janova-whatsapp .wp-block-button__link {
	background: var(--jn-wa);
	color: #FFF;
}

.is-style-janova-whatsapp .wp-block-button__link:hover {
	background: var(--jn-wa-hover);
	color: #FFF;
}

.janova-btn-sm .wp-block-button__link {
	padding: 11px 18px;
	font-size: 14px;
	letter-spacing: .02em;
}

/* --------------------------------------------------------------------------
   Cabecera
   -------------------------------------------------------------------------- */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 30;
}

/* En móvil la barra de administración deja de ser fija */
@media (max-width: 600px) {
	.wp-site-blocks > header.wp-block-template-part { top: 0; }
}

/* El desenfoque va en un pseudo-elemento y no en la cabecera: un
   backdrop-filter en la cabecera la convierte en el contenedor de los
   elementos fijos y el menú móvil se abriría encerrado dentro de ella. */
.janova-header {
	position: relative;
	isolation: isolate;
	border-bottom: 1px solid rgba(27, 26, 23, .12);
}

.janova-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(244, 241, 236, .92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.janova-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: var(--jn-header-h);
	padding-block: 16px;
}

.janova-logo {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--jn-ink);
	text-decoration: none;
}

.janova-logo:hover { color: var(--jn-ink); }

.janova-logo svg { flex: none; }

.janova-logo__tile { fill: var(--jn-accent); }

.janova-logo > span {
	font-size: 19px;
	font-weight: 700;
	font-stretch: 118%;
	letter-spacing: .14em;
	line-height: 1;
}

/* Nombre con «Reformas integrales» debajo */
.janova-logo__text {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.janova-logo__tag {
	font-family: var(--jn-mono);
	font-size: .47em;
	font-weight: 500;
	font-stretch: 100%;
	letter-spacing: .05em;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: .62;
}

.janova-nav { font-size: 15px; }

.janova-nav .wp-block-navigation__container { gap: 28px; }

.janova-nav .wp-block-navigation-item__content { color: var(--jn-ink); }

.janova-nav .wp-block-navigation-item__content:hover { color: var(--jn-accent); }

.janova-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px var(--jn-pad);
}

.janova-nav .is-menu-open .wp-block-navigation__container {
	gap: 22px;
	font-size: 28px;
	font-weight: 600;
	font-stretch: 108%;
}

.janova-nav .wp-block-navigation__responsive-container-open,
.janova-nav .wp-block-navigation__responsive-container-close { color: var(--jn-ink); }

/* En móvil sobra: está el botón del héroe y el WhatsApp flotante.
   Doble clase para ganar a `.wp-block-buttons.is-layout-flex` del núcleo. */
@media (max-width: 600px) {
	.janova-header .wp-block-buttons.janova-header__cta { display: none; }
}

/* --------------------------------------------------------------------------
   Héroe
   -------------------------------------------------------------------------- */
.janova-hero { padding-block: clamp(48px, 7vw, 96px) 56px; }

.janova-hero__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr));
	gap: clamp(40px, 5vw, 72px);
	align-items: end;
}

.janova-hero__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 28px;
}

.janova-hero h1 {
	font-size: var(--wp--preset--font-size--hero);
	line-height: .92;
	letter-spacing: -.035em;
}

.janova-lead {
	max-width: 520px;
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.55;
	color: var(--jn-t2);
	text-wrap: pretty;
}

.janova-hero__foto {
	margin: 0;
	aspect-ratio: 8 / 9;
	max-width: 100%;
	overflow: hidden;
}

.janova-hero__foto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* El plano de la vivienda */
.janova-plan-wrap {
	position: relative;
	padding: 28px 0 0 28px;
}

.janova-plan__cota-h {
	position: absolute;
	top: 6px;
	left: 28px;
	right: 0;
	display: flex;
	justify-content: space-between;
	font-family: var(--jn-mono);
	font-size: 11px;
	color: var(--jn-t4);
}

.janova-plan__cota-h::before { content: "|←"; }
.janova-plan__cota-h::after { content: "→|"; }

.janova-plan__cota-v {
	position: absolute;
	top: 28px;
	bottom: 34px;
	left: 0;
	display: flex;
	justify-content: center;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	font-family: var(--jn-mono);
	font-size: 11px;
	color: var(--jn-t4);
}

.janova-plan {
	display: grid;
	grid-template-columns: 1.3fr 1fr .9fr;
	grid-template-rows: 1.1fr .8fr 1fr;
	grid-template-areas:
		"salon salon cocina"
		"salon salon bano"
		"dorm1 pasillo dorm2";
	aspect-ratio: 9.4 / 7.2;
	border: 3px solid var(--jn-ink);
	background-color: var(--jn-paper);
	background-image:
		linear-gradient(rgba(27, 26, 23, .05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(27, 26, 23, .05) 1px, transparent 1px);
	background-size: 24px 24px;
}

.janova-room {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 14px;
	min-width: 0;
}

.janova-room__label {
	font-family: var(--jn-mono);
	font-size: 11px;
	letter-spacing: .06em;
}

.janova-room--salon {
	grid-area: salon;
	padding: 16px;
	border-right: 1.5px solid var(--jn-ink);
	border-bottom: 1.5px solid var(--jn-ink);
}

.janova-room__m2 {
	font-size: clamp(22px, 2.6vw, 34px);
	font-weight: 700;
	font-stretch: 112%;
}

.janova-room--cocina {
	grid-area: cocina;
	border-bottom: 1.5px solid var(--jn-ink);
	background: var(--jn-accent);
	color: #FFF;
}

.janova-room__big {
	font-size: 20px;
	font-weight: 700;
}

.janova-room--bano {
	grid-area: bano;
	border-bottom: 1.5px solid var(--jn-ink);
	background: var(--jn-tile);
}

.janova-room--dorm1 {
	grid-area: dorm1;
	border-right: 1.5px solid var(--jn-ink);
}

.janova-room--pasillo {
	grid-area: pasillo;
	border-right: 1.5px solid var(--jn-ink);
	background: var(--jn-sand);
}

.janova-room--dorm2 { grid-area: dorm2; }

.janova-plan__foot {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin-top: 12px;
	font-family: var(--jn-mono);
	font-size: 11px;
	color: var(--jn-t4);
}

/* --------------------------------------------------------------------------
   Franja diferencial
   -------------------------------------------------------------------------- */
.janova-franja {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: clamp(20px, 4vw, 56px);
	align-items: center;
	padding-block: 36px;
}

.janova-statement {
	font-size: var(--wp--preset--font-size--statement);
	font-weight: 600;
	font-stretch: 108%;
	letter-spacing: -.02em;
	line-height: 1.15;
	text-wrap: balance;
}

.janova-link-arrow a {
	padding-bottom: 2px;
	border-bottom: 1.5px solid var(--jn-ink);
	font-weight: 600;
	white-space: nowrap;
}

@media (max-width: 820px) {
	.janova-franja {
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
	}
}

/* --------------------------------------------------------------------------
   Cabecera de sección en dos columnas
   -------------------------------------------------------------------------- */
.janova-split-head {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 32px;
	align-items: end;
	margin-bottom: 56px;
}

.janova-split-head .janova-intro {
	max-width: 460px;
	justify-self: end;
	line-height: 1.55;
}

@media (max-width: 860px) {
	.janova-split-head .janova-intro { justify-self: start; }
}

/* --------------------------------------------------------------------------
   Acordeones (bloque Detalles de WordPress)
   -------------------------------------------------------------------------- */
.janova-accordion { border-top: 1.5px solid var(--jn-ink); }

.janova-accordion .wp-block-details {
	margin: 0;
	border-bottom: 1px solid var(--jn-line-2);
}

.janova-accordion summary {
	list-style: none;
	cursor: pointer;
}

.janova-accordion summary::-webkit-details-marker { display: none; }

.janova-accordion summary::after {
	content: "+";
	font-weight: 300;
	font-stretch: 100%;
	line-height: 1;
	color: var(--jn-accent);
}

.janova-accordion details[open] > summary::after { content: "−"; }

/* Servicios: número, título y signo */
.janova-accordion--services { counter-reset: janova-svc; }

.janova-accordion--services .wp-block-details {
	counter-increment: janova-svc;
	padding: 28px 0;
	transition: padding .25s ease, background-color .25s ease;
}

.janova-accordion--services .wp-block-details:hover {
	padding-left: 12px;
	background: var(--jn-hover);
}

.janova-accordion--services summary {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto;
	gap: 20px;
	align-items: baseline;
	font-size: var(--wp--preset--font-size--service);
	font-weight: 600;
	font-stretch: 108%;
	letter-spacing: -.02em;
	line-height: 1.15;
}

.janova-accordion--services summary::before {
	content: counter(janova-svc, decimal-leading-zero);
	padding-left: 8px;
	font-family: var(--jn-mono);
	font-size: 13px;
	font-weight: 400;
	font-stretch: 100%;
	letter-spacing: 0;
	color: var(--jn-t4);
}

.janova-accordion--services summary::after {
	padding-right: 8px;
	font-size: 28px;
}

.janova-accordion--services .wp-block-details > :not(summary) {
	max-width: 680px;
	margin-left: 84px;
}

.janova-accordion--services .wp-block-details > p {
	margin-top: 12px;
	font-size: 17px;
	line-height: 1.6;
	color: var(--jn-t2);
}

@media (max-width: 600px) {
	.janova-accordion--services summary { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; }
	.janova-accordion--services summary::before { padding-left: 0; }
	.janova-accordion--services .wp-block-details > :not(summary) { margin-left: 46px; }
	.janova-accordion--services .wp-block-details:hover { padding-left: 0; }
}

/* Etiquetas (lista con estilo «Etiquetas») */
.is-style-janova-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

.is-style-janova-chips li {
	margin: 0;
	padding: 5px 10px;
	border: 1px solid rgba(27, 26, 23, .3);
	font-family: var(--jn-mono);
	font-size: 12px;
	line-height: 1.4;
}

/* Preguntas frecuentes */
.janova-faq {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
	gap: 56px;
}

.janova-accordion--faq summary {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 22px 0;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.35;
}

.janova-accordion--faq summary::after { font-size: 24px; }

.janova-accordion--faq .wp-block-details > p {
	max-width: 620px;
	margin: 0 0 24px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--jn-t2);
}

/* --------------------------------------------------------------------------
   Método
   -------------------------------------------------------------------------- */
.janova-metodo__title {
	max-width: 880px;
	margin: 16px 0 64px !important;
}

.janova-steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	border-top: 1px solid rgba(244, 241, 236, .25);
}

.janova-steps::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--jn-accent-dark);
	transform-origin: left;
}

.janova-step {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 32px 28px 8px 20px;
	border-right: 1px solid rgba(244, 241, 236, .12);
}

.janova-step__n {
	font-size: 72px;
	font-weight: 800;
	font-stretch: 125%;
	line-height: 1;
	color: var(--jn-accent-dark);
}

.janova-step h3 {
	font-size: 22px;
	font-weight: 700;
}

.janova-step__d {
	font-size: 16px;
	line-height: 1.6;
	color: var(--jn-od2);
}

.janova-step__time {
	margin-top: auto !important;
	font-family: var(--jn-mono);
	font-size: 12px;
	color: var(--jn-od3);
}

/* --------------------------------------------------------------------------
   Acabados
   -------------------------------------------------------------------------- */
.janova-acabados {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
	gap: 56px;
	align-items: center;
}

.janova-swatches {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.janova-swatch {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.janova-swatch::before {
	content: "";
	display: block;
	aspect-ratio: 1;
	border: 1px solid rgba(27, 26, 23, .1);
	background: var(--janova-swatch, #DDD);
}

.janova-swatch p {
	font-family: var(--jn-mono);
	font-size: 11px;
	color: var(--jn-t3);
}

.janova-swatch--roble { --janova-swatch: repeating-linear-gradient(92deg, #C49A6C 0 6px, #B98D5E 6px 9px, #CBA374 9px 16px); }
.janova-swatch--microcemento { --janova-swatch: radial-gradient(circle at 30% 30%, #BDB6AC, #A79F94); }
.janova-swatch--terrazo { --janova-swatch: radial-gradient(circle at 20% 30%, #8A7F72 0 3px, transparent 4px), radial-gradient(circle at 70% 60%, #B85A33 0 3px, transparent 4px), radial-gradient(circle at 45% 80%, #5E5952 0 2px, transparent 3px), #E9E3D8; }
.janova-swatch--barro { --janova-swatch: #B85A33; }
.janova-swatch--salvia { --janova-swatch: #9AA594; }
.janova-swatch--lacado { --janova-swatch: #F8F6F1; }

/* --------------------------------------------------------------------------
   Obras
   -------------------------------------------------------------------------- */
.janova-obras__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
	margin-bottom: 40px;
}

.janova-obras {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	gap: 20px;
}

.janova-obra {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.janova-obra__img {
	margin: 0;
	aspect-ratio: 4 / 5;
	max-width: 100%;
	overflow: hidden;
	background: var(--jn-sand);
}

.janova-obra__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.janova-obra__caption {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding-top: 12px;
	border-top: 1.5px solid var(--jn-ink);
}

.janova-obra__title {
	font-size: 18px;
	font-weight: 700;
}

.janova-obra__cat {
	font-family: var(--jn-mono);
	font-size: 12px;
	color: var(--jn-t3);
	text-align: right;
}

/* --------------------------------------------------------------------------
   Zonas
   -------------------------------------------------------------------------- */
.janova-zonas__title {
	max-width: 820px;
	margin: 16px 0 40px !important;
}

.is-style-janova-zones {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: clamp(26px, 3.6vw, 50px);
	font-weight: 600;
	font-stretch: 108%;
	letter-spacing: -.02em;
	line-height: 1.2;
}

.is-style-janova-zones li {
	display: flex;
	align-items: center;
	margin: 0;
	white-space: nowrap;
}

.is-style-janova-zones li::after {
	content: "/";
	padding: 0 .35em;
	color: #C9C1B4;
}

.is-style-janova-zones li:nth-child(5n + 1) { color: var(--jn-accent); }

/* --------------------------------------------------------------------------
   Contacto
   -------------------------------------------------------------------------- */
.janova-contacto {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 64px;
}

.janova-contacto__info { gap: 28px; }

.janova-datos {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding-top: 28px;
	border-top: 1px solid var(--jn-line-dark);
	font-size: 18px;
}

.janova-dato {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.janova-dato__label {
	font-family: var(--jn-mono);
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--jn-od3);
}

.janova-wa-card {
	align-self: flex-start;
	display: flex;
	align-items: stretch;
	border: 1.5px solid var(--jn-wa-brand);
	color: var(--jn-bg);
	text-decoration: none;
	transition: background-color .2s ease;
}

.janova-section--dark .janova-wa-card:hover {
	background: rgba(37, 211, 102, .12);
	color: var(--jn-bg);
}

.janova-wa-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	background: var(--jn-wa-brand);
}

.janova-wa-card__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 9px 16px;
}

.janova-wa-card__text strong {
	font-size: 15px;
	font-weight: 600;
}

.janova-wa-card__text span {
	font-size: 12.5px;
	color: var(--jn-od2);
}

/* Tarjeta clara del formulario */
.janova-form-card {
	padding: clamp(24px, 3vw, 40px);
	background: var(--jn-bg);
	color: var(--jn-ink);
}

.janova-form-card a { color: var(--jn-ink); text-decoration: underline; }
.janova-form-card a:hover { color: var(--jn-accent); }

/* Contact Form 7 */
.janova-form-card .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.janova-form__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 16px;
}

.janova-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.janova-field--full { grid-column: 1 / -1; }

.janova-field__label {
	font-family: var(--jn-mono);
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.janova-form-card .wpcf7-form-control-wrap { display: block; }

.janova-form-card input[type="text"],
.janova-form-card input[type="tel"],
.janova-form-card input[type="email"],
.janova-form-card select,
.janova-form-card textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 14px;
	border: 1px solid var(--jn-ink);
	border-radius: 0;
	background: #FFF;
	color: var(--jn-ink);
	font: inherit;
	font-size: 16px;
}

.janova-form-card textarea {
	min-height: 120px;
	resize: vertical;
}

.janova-form-card input:focus,
.janova-form-card select:focus,
.janova-form-card textarea:focus {
	outline: 2px solid var(--jn-accent);
	outline-offset: 0;
}

.janova-field--check .wpcf7-list-item { margin: 0; }

.janova-field--check label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	line-height: 1.45;
}

.janova-field--check input[type="checkbox"] {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	accent-color: var(--jn-accent);
}

.janova-form__legal {
	font-size: 12px;
	line-height: 1.5;
	color: var(--jn-t3);
}

.janova-form-card .janova-form__submit,
.janova-form-card input[type="submit"] {
	width: 100%;
	padding: 18px;
	border: 0;
	border-radius: 0;
	background: var(--jn-accent);
	color: #FFF;
	font: inherit;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .2s ease;
}

.janova-form-card .janova-form__submit:hover,
.janova-form-card input[type="submit"]:hover { background: var(--jn-ink); }

.janova-form-card .wpcf7-spinner { margin: 8px auto 0; display: block; }

.janova-form__note {
	font-size: 13px;
	color: #6B665E;
}

.janova-form-card .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
	color: var(--jn-accent);
}

.janova-form-card .wpcf7 form .wpcf7-response-output {
	margin: 0;
	padding: 14px 16px;
	border: 1.5px solid var(--jn-accent);
	font-size: 15px;
}

/* Estado «enviado»: se oculta el formulario y queda el mensaje grande */
.janova-form-card .wpcf7 form.sent > *:not(.wpcf7-response-output) { display: none; }

.janova-form-card .wpcf7 form.sent .wpcf7-response-output {
	padding: 40px 0;
	border: 0;
	font-size: 17px;
	line-height: 1.6;
	color: var(--jn-t2);
}

.janova-form-card .wpcf7 form.sent .wpcf7-response-output::before {
	content: "Recibido.";
	display: block;
	margin-bottom: 12px;
	font-size: 40px;
	font-weight: 800;
	font-stretch: 115%;
	line-height: 1;
	color: var(--jn-ink);
}

.janova-form-missing {
	padding: 16px;
	border: 1.5px dashed var(--jn-accent);
	font-size: 15px;
}

/* --------------------------------------------------------------------------
   Pie
   -------------------------------------------------------------------------- */
.janova-footer {
	background: var(--jn-ink);
	color: var(--jn-od3);
	border-top: 1px solid rgba(244, 241, 236, .15);
}

.janova-footer__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	padding-block: 28px;
	font-size: 14px;
}

.janova-footer__brand {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.janova-logo--light,
.janova-logo--light:hover { color: var(--jn-bg); }

.janova-logo--light .janova-logo__tile { fill: var(--jn-accent-dark); }

.janova-logo--light > span { font-size: 15px; }
.janova-logo--light .janova-logo__tag { font-size: .6em; opacity: .6; }

.janova-footer a { color: var(--jn-od2); }
.janova-footer a:hover { color: var(--jn-bg); }

.janova-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
}

/* Solo aparece si hay analítica que consentir (lo activa el JS) */
.janova-cookie-settings { display: none; }
.janova-has-consent .janova-cookie-settings { display: inline; }
.janova-footer .janova-logo--light { color: var(--jn-bg); }

/* --------------------------------------------------------------------------
   WhatsApp flotante
   -------------------------------------------------------------------------- */
.janova-wa-float {
	position: fixed;
	right: 20px;
	bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	z-index: 40;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 18px 6px 6px;
	background: var(--jn-ink);
	color: var(--jn-bg);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	box-shadow: 0 10px 30px rgba(27, 26, 23, .25);
	transition: background-color .2s ease;
}

.janova-wa-float:hover {
	background: var(--jn-accent);
	color: #FFF;
}

.janova-wa-float__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: var(--jn-wa-brand);
}

@media (max-width: 480px) {
	.janova-wa-float { right: 14px; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); }
}

/* --------------------------------------------------------------------------
   Calculadora (patrón opcional)
   -------------------------------------------------------------------------- */
.janova-calc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 56px;
}

.janova-calc {
	display: flex;
	flex-direction: column;
	gap: 28px;
	padding: clamp(24px, 3vw, 40px);
	border: 1.5px solid var(--jn-ink);
	background: var(--jn-bg);
}

.janova-calc__field {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.janova-calc__field legend,
.janova-calc__row span,
.janova-calc__label {
	padding: 0;
	font-family: var(--jn-mono);
	font-size: 12px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.janova-calc__field legend { margin-bottom: 10px; }

.janova-calc__row {
	display: flex;
	justify-content: space-between;
}

.janova-calc__seg {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border: 1px solid var(--jn-ink);
}

.janova-calc__seg label {
	position: relative;
	border-right: 1px solid var(--jn-ink);
}

.janova-calc__seg label:last-child { border-right: 0; }

.janova-calc__seg input {
	position: absolute;
	inset: 0;
	opacity: 0;
	cursor: pointer;
}

.janova-calc__seg span {
	display: block;
	padding: 14px 8px;
	font-size: 15px;
	font-weight: 600;
	text-align: center;
}

.janova-calc__seg input:checked + span {
	background: var(--jn-ink);
	color: var(--jn-bg);
}

.janova-calc__seg input:focus-visible + span {
	outline: 2px solid var(--jn-accent);
	outline-offset: -4px;
}

.janova-calc input[type="range"] {
	width: 100%;
	accent-color: var(--jn-accent);
}

.janova-calc__result {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 24px;
	border-top: 1.5px solid var(--jn-ink);
}

.janova-calc__label { color: var(--jn-t3); }

.janova-calc__range {
	font-size: clamp(34px, 4vw, 52px);
	font-weight: 800;
	font-stretch: 115%;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}

.janova-calc__note {
	font-size: 14px;
	color: var(--jn-t3);
}

.janova-calc__cta {
	display: block;
	padding: 17px;
	background: var(--jn-ink);
	color: var(--jn-bg);
	font-weight: 600;
	text-align: center;
	transition: background-color .2s ease;
}

.janova-calc__cta:hover {
	background: var(--jn-accent);
	color: #FFF;
}

/* --------------------------------------------------------------------------
   Páginas legales y de texto
   -------------------------------------------------------------------------- */
.janova-legal {
	box-sizing: border-box;
	max-width: 760px;
	margin-inline: auto;
	padding: clamp(48px, 7vw, 96px) var(--jn-pad);
}

.janova-legal__title {
	margin: 0 0 32px;
	font-size: var(--wp--preset--font-size--section-s);
	line-height: 1;
}

.janova-legal__body h2 {
	margin: 40px 0 12px;
	font-size: 24px;
	line-height: 1.2;
}

.janova-legal__body p,
.janova-legal__body li {
	margin: 0 0 16px;
	font-size: 17px;
	line-height: 1.65;
	color: var(--jn-t2);
}

.janova-legal__body a { text-decoration: underline; }

/* --------------------------------------------------------------------------
   Páginas legales (plantilla «Página legal»)
   -------------------------------------------------------------------------- */
.janova-wrap--legal { max-width: 1120px; }

.janova-logo--legal svg { width: 28px; height: 28px; }
.janova-logo--legal > span { font-size: 18px; }

.janova-back a {
	color: var(--jn-ink);
	font-size: 14px;
	font-weight: 600;
}

.janova-back a:hover { color: var(--jn-accent); }

.janova-legal-top { padding-top: clamp(40px, 6vw, 72px); }

.janova-tabs {
	display: flex;
	width: fit-content;
	max-width: 100%;
	margin-top: 20px;
	overflow-x: auto;
	border: 1.5px solid var(--jn-ink);
}

.janova-tabs__item {
	flex-shrink: 0;
	padding: 13px 20px;
	border-right: 1px solid var(--jn-ink);
	color: var(--jn-ink);
	font-size: 15px;
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}

.janova-tabs__item:last-child { border-right: 0; }
.janova-tabs__item:hover { background: var(--jn-hover); color: var(--jn-ink); }

.janova-tabs__item.is-current,
.janova-tabs__item.is-current:hover {
	background: var(--jn-ink);
	color: var(--jn-bg);
}

.janova-legal-note {
	max-width: 760px;
	margin-top: 24px !important;
	padding: 14px 18px;
	border: 1px dashed var(--jn-accent);
	font-size: 14px;
	line-height: 1.55;
	color: var(--jn-t2);
}

.janova-legal-note mark,
.janova-legal__body mark {
	padding: 0 5px;
	background: #F3DFA2 !important;
	color: var(--jn-ink);
}

.janova-legal-article {
	display: flex;
	flex-direction: column;
	gap: 40px;
	padding-block: 40px 96px;
}

.janova-legal-head {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.janova-legal-article .janova-legal__title {
	margin: 0;
	font-size: clamp(38px, 5vw, 60px);
	line-height: 1;
	letter-spacing: -.03em;
}

.janova-legal__date {
	font-family: var(--jn-mono);
	font-size: 12px;
	text-transform: uppercase;
	color: var(--jn-t3);
}

.janova-legal-article .janova-legal__body {
	width: 100%;
	max-width: 720px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--jn-t2);
}

.janova-legal-article .janova-legal__body > * { margin: 0 0 12px; }

.janova-legal-article .janova-legal__body > h2 {
	margin: 36px 0 12px;
	font-size: 22px;
	font-weight: 700;
	font-stretch: 100%;
	letter-spacing: 0;
	line-height: 1.25;
	color: var(--jn-ink);
}

.janova-legal-article .janova-legal__body > h2:first-child { margin-top: 0; }

.janova-legal-article .janova-legal__body p,
.janova-legal-article .janova-legal__body li {
	font-size: 16px;
	line-height: 1.7;
	color: var(--jn-t2);
}

.janova-legal-article .janova-legal__body strong { color: var(--jn-ink); }

/* Solo los enlaces de texto: los botones tienen su propio estilo */
.janova-legal-article .janova-legal__body a:not(.wp-block-button__link) {
	color: var(--jn-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.janova-legal-article .janova-legal__body a:not(.wp-block-button__link):hover { color: var(--jn-ink); }

.janova-legal-article .janova-legal__body ul {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-left: 20px;
}

.janova-legal-intro {
	font-size: 18px !important;
	color: var(--jn-ink) !important;
}

/* Tablas legales */
.janova-legal__body .wp-block-table {
	margin: 0 0 12px;
	overflow-x: auto;
}

.janova-legal__body .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
}

.janova-legal__body .wp-block-table td,
.janova-legal__body .wp-block-table th {
	padding: 12px 16px;
	border: 0;
	border-bottom: 1px solid rgba(27, 26, 23, .15);
	text-align: left;
	vertical-align: top;
}

.janova-legal__body .wp-block-table tr:last-child td { border-bottom: 0; }

/* Datos del titular */
.janova-legal__body .is-style-janova-datos table {
	border: 1.5px solid var(--jn-ink);
	background: var(--jn-paper);
	font-size: 15px;
}

.janova-legal__body .is-style-janova-datos td:first-child {
	width: 180px;
	font-family: var(--jn-mono);
	font-size: 12px;
	text-transform: uppercase;
	color: var(--jn-t3);
}

.janova-legal__body .is-style-janova-datos td:last-child { color: var(--jn-ink); }

/* Finalidades: filas sin caja, con raya arriba */
.janova-legal__body .is-style-janova-filas table { border-top: 1.5px solid var(--jn-ink); }

.janova-legal__body .is-style-janova-filas td {
	padding: 16px 24px 16px 0;
	font-size: 15px;
}

.janova-legal__body .is-style-janova-filas td:first-child {
	width: 50%;
	font-size: 16px;
	font-weight: 600;
	color: var(--jn-ink);
}

/* Tabla de cookies */
.janova-legal__body .is-style-janova-cookies table {
	min-width: 560px;
	border: 1.5px solid var(--jn-ink);
	background: var(--jn-paper);
	font-size: 14px;
	line-height: 1.5;
}

.janova-legal__body .is-style-janova-cookies thead {
	border-bottom: 1px solid var(--jn-ink);
}

.janova-legal__body .is-style-janova-cookies th {
	padding: 10px 14px;
	border-bottom: 1px solid var(--jn-ink);
	font-family: var(--jn-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--jn-ink);
}

.janova-legal__body .is-style-janova-cookies td { padding: 12px 14px; }

.janova-legal__body .is-style-janova-cookies td:first-child {
	font-family: var(--jn-mono);
	font-size: 13px;
	color: var(--jn-ink);
}

@media (max-width: 600px) {
	.janova-legal__body .is-style-janova-datos td:first-child { width: 110px; }
	.janova-legal__body .is-style-janova-filas tr { display: block; padding: 14px 0; border-bottom: 1px solid rgba(27, 26, 23, .15); }
	.janova-legal__body .is-style-janova-filas td { display: block; width: auto !important; padding: 0 0 6px; border: 0; }
}

/* Enlaces a la ayuda de cada navegador */
.janova-legal-links { gap: 8px; }

.janova-legal-links .wp-block-button__link {
	padding: 8px 14px;
	background: transparent;
	color: var(--jn-ink);
	font-size: 14px;
	font-weight: 400;
	text-decoration: none;
	box-shadow: inset 0 0 0 1px var(--jn-ink);
}

.janova-legal-links .wp-block-button__link:hover,
.janova-legal-links .wp-block-button__link:focus-visible {
	background: var(--jn-ink);
	color: var(--jn-bg);
}

/* --------------------------------------------------------------------------
   Aviso de cookies
   -------------------------------------------------------------------------- */
.janova-cookies {
	position: fixed;
	left: 20px;
	bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	z-index: 50;
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: min(420px, calc(100% - 40px));
	padding: 22px;
	background: var(--jn-ink);
	color: var(--jn-od2);
	box-shadow: 0 10px 30px rgba(27, 26, 23, .25);
}

.janova-cookies[hidden] { display: none; }

.janova-cookies__title {
	margin: 0;
	font-family: var(--jn-mono);
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--jn-accent-dark);
}

.janova-cookies__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
}

.janova-cookies__text a {
	color: var(--jn-bg);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.janova-cookies__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-top: 4px;
}

/* Aceptar y Rechazar con el mismo peso, como pide la AEPD */
.janova-cookies__btn {
	padding: 13px 10px;
	border: 1.5px solid var(--jn-bg);
	border-radius: 0;
	background: transparent;
	color: var(--jn-bg);
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}

.janova-cookies__btn:hover {
	background: var(--jn-bg);
	color: var(--jn-ink);
}

/* Mientras está abierto, el WhatsApp flotante se aparta en móvil */
@media (max-width: 600px) {
	.janova-cookies {
		left: 12px;
		right: 12px;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		width: auto;
	}

	.janova-cookies-open .janova-wa-float { display: none; }
}

/* --------------------------------------------------------------------------
   Animaciones
   Solo se activan si el JS añade .janova-anim al <html>: sin JavaScript,
   o con movimiento reducido, la página se ve completa y quieta.
   -------------------------------------------------------------------------- */
.janova-anim .janova-reveal {
	opacity: 0;
	transform: translateY(28px);
}

.janova-anim .janova-reveal.is-in {
	opacity: 1;
	transform: none;
	transition: opacity .8s var(--jn-ease), transform .8s var(--jn-ease);
}

/* Plano: se dibuja de esquina a esquina y luego entran las estancias */
.janova-anim .janova-plan { clip-path: inset(0 100% 100% 0); }

.janova-anim .janova-plan-wrap.is-in .janova-plan {
	clip-path: inset(0 0 0 0);
	transition: clip-path 1.2s cubic-bezier(.65, 0, .25, 1) .2s;
}

.janova-anim .janova-plan > * {
	opacity: 0;
	transform: scale(.96);
}

.janova-anim .janova-plan-wrap.is-in .janova-plan > * {
	opacity: 1;
	transform: none;
	transition: opacity .5s var(--jn-ease), transform .5s var(--jn-ease);
}

.janova-anim .janova-plan-wrap.is-in .janova-plan > :nth-child(1) { transition-delay: .9s; }
.janova-anim .janova-plan-wrap.is-in .janova-plan > :nth-child(2) { transition-delay: 1.04s; }
.janova-anim .janova-plan-wrap.is-in .janova-plan > :nth-child(3) { transition-delay: 1.18s; }
.janova-anim .janova-plan-wrap.is-in .janova-plan > :nth-child(4) { transition-delay: 1.32s; }
.janova-anim .janova-plan-wrap.is-in .janova-plan > :nth-child(5) { transition-delay: 1.46s; }
.janova-anim .janova-plan-wrap.is-in .janova-plan > :nth-child(6) { transition-delay: 1.6s; }

/* Método: la línea se traza y los pasos entran en cadena */
.janova-anim .janova-steps::before { transform: scaleX(0); }

.janova-anim .janova-steps.is-in::before {
	transform: scaleX(1);
	transition: transform 1.6s cubic-bezier(.65, 0, .25, 1);
}

.janova-anim .janova-step {
	opacity: 0;
	transform: translateY(24px);
}

.janova-anim .janova-steps.is-in .janova-step {
	opacity: 1;
	transform: none;
	transition: opacity .7s var(--jn-ease), transform .7s var(--jn-ease);
}

.janova-anim .janova-steps.is-in .janova-step:nth-child(1) { transition-delay: .2s; }
.janova-anim .janova-steps.is-in .janova-step:nth-child(2) { transition-delay: .52s; }
.janova-anim .janova-steps.is-in .janova-step:nth-child(3) { transition-delay: .84s; }
.janova-anim .janova-steps.is-in .janova-step:nth-child(4) { transition-delay: 1.16s; }

/* Obras: las fotos suben como una persiana */
.janova-anim .janova-obra__img { clip-path: inset(100% 0 0 0); }

.janova-anim .janova-obras.is-in .janova-obra__img {
	clip-path: inset(0 0 0 0);
	transition: clip-path 1.1s cubic-bezier(.7, 0, .2, 1);
}

.janova-anim .janova-obras.is-in .janova-obra:nth-child(2) .janova-obra__img { transition-delay: .14s; }
.janova-anim .janova-obras.is-in .janova-obra:nth-child(3) .janova-obra__img { transition-delay: .28s; }

/* El WhatsApp flotante da un saltito a los 4 segundos */
@keyframes janova-nudge {
	0%, 100% { transform: translateY(0); }
	25% { transform: translateY(-10px); }
	60% { transform: translateY(-4px); }
}

.janova-anim .janova-wa-float.is-nudge { animation: janova-nudge .9s ease-out; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
}

/* --------------------------------------------------------------------------
   Editor: que se vea como la web publicada
   -------------------------------------------------------------------------- */
.editor-styles-wrapper .janova-ssr { margin: 0; }

/* Las pestañas son de verdad enlaces: en el editor no deben navegar */
.editor-styles-wrapper .janova-tabs a { pointer-events: none; }
.editor-styles-wrapper .janova-accordion summary { pointer-events: auto; }
.editor-styles-wrapper .janova-wrap { max-width: 1320px; }

/* --------------------------------------------------------------------------
   Página de gracias (tras enviar el formulario)
   -------------------------------------------------------------------------- */
.janova-gracias { padding-block: clamp(48px, 7vw, 96px) clamp(64px, 8vw, 112px); }

.janova-gracias__wrap {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.janova-gracias__wrap > * {
	width: 100%;
	max-width: 680px;
	margin-block: 0;
}

.janova-gracias h1 {
	font-size: clamp(36px, 5.2vw, 64px);
	line-height: 1.02;
}

.janova-gracias .janova-gracias__card {
	margin-block: 16px 8px;
	padding: 28px;
	border: 1px solid var(--jn-ink);
	background: var(--wp--preset--color--paper, #FBF9F5);
}

.janova-gracias__steps {
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: paso;
}

.janova-gracias__steps li {
	position: relative;
	padding: 14px 0 14px 44px;
	border-top: 1px solid rgba(27, 26, 23, .14);
	counter-increment: paso;
}

.janova-gracias__steps li:last-child { padding-bottom: 0; }

.janova-gracias__steps li::before {
	content: counter(paso, decimal-leading-zero);
	position: absolute;
	left: 0;
	font-family: var(--jn-mono);
	font-size: 13px;
	line-height: 1.9;
	color: var(--jn-accent);
}

.janova-gracias .wp-block-buttons { gap: 12px; }

/* --------------------------------------------------------------------------
   Datos de experiencia (bajo el héroe)
   -------------------------------------------------------------------------- */
.janova-cifras-sec { border-bottom: 1px solid rgba(27, 26, 23, .14); }

.janova-cifras {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	border-top: 3px solid var(--jn-ink);
}

.janova-cifra {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 40px clamp(20px, 3vw, 40px) 44px;
	border-right: 1px solid rgba(27, 26, 23, .18);
}

.janova-cifra:last-child { border-right: 0; }

.janova-cifra > * { margin: 0; }

.janova-cifra .janova-cifra__num {
	display: flex;
	align-items: flex-start;
	gap: 4px;
	font-size: clamp(72px, 8vw, 120px);
	font-weight: 800;
	font-stretch: 118%;
	line-height: .9;
	letter-spacing: -.04em;
	color: var(--jn-ink);
	font-variant-numeric: tabular-nums;
}

.janova-cifra__num--mas::before {
	content: "+";
	margin-top: .05em;
	font-size: .47em;
	color: var(--jn-accent);
}

.janova-cifra .janova-cifra__title {
	margin-top: 6px;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--jn-ink);
}

.janova-cifra .janova-cifra__text {
	max-width: 300px;
	font-size: 16px;
	line-height: 1.55;
	color: #5E5952;
}

/* En una columna, la separación pasa de vertical a horizontal */
@media (max-width: 660px) {
	.janova-cifra {
		padding-inline: 0;
		border-right: 0;
		border-bottom: 1px solid rgba(27, 26, 23, .18);
	}
	.janova-cifra:last-child { border-bottom: 0; }
}

.janova-anim .janova-cifras > * {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1);
}
.janova-anim .janova-cifras > *:nth-child(2) { transition-delay: .16s; }
.janova-anim .janova-cifras > *:nth-child(3) { transition-delay: .32s; }
.janova-anim .janova-cifras.is-in > * { opacity: 1; transform: none; }

/* --------------------------------------------------------------------------
   Franja de precio
   -------------------------------------------------------------------------- */
.janova-precio { background: var(--jn-accent); color: #FFF; }

.janova-precio__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	padding-block: 22px;
}

.janova-precio__msg {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}

.janova-precio p { margin: 0; color: #FFF; }

.janova-precio .janova-precio__tag {
	padding: 5px 10px;
	border: 1px solid rgba(255, 255, 255, .6);
	font-family: var(--jn-mono);
	font-size: 12px;
	letter-spacing: .1em;
	white-space: nowrap;
}

.janova-precio .janova-precio__text {
	font-size: clamp(18px, 1.5vw, 21px);
	font-weight: 600;
	font-stretch: 108%;
	letter-spacing: -.01em;
	line-height: 1.2;
}

.janova-precio .janova-precio__link a {
	padding-bottom: 2px;
	border-bottom: 1.5px solid #FFF;
	color: #FFF;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: color .2s, border-color .2s;
}

.janova-precio .janova-precio__link a:hover {
	border-color: var(--jn-ink);
	color: var(--jn-ink);
}

/* --------------------------------------------------------------------------
   Blog de obras: listado, ficha y obras de la portada
   -------------------------------------------------------------------------- */
.janova-ob-head {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 32px;
	align-items: end;
	padding-block: clamp(48px, 7vw, 96px) 32px;
}

.janova-ob-head__title,
.janova-ob-top__title {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.janova-ob-head h1 {
	font-size: clamp(44px, 6.4vw, 92px);
	font-weight: 700;
	font-stretch: 112%;
	line-height: .94;
	letter-spacing: -.035em;
	text-wrap: balance;
}

.janova-ob-head__lead {
	max-width: 460px;
	justify-self: end;
	font-size: 18px;
	line-height: 1.55;
	color: #4A4640;
	text-wrap: pretty;
}

.janova-ob-filtros {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-block: 16px;
	border-top: 1.5px solid var(--jn-ink);
	border-bottom: 1px solid rgba(27, 26, 23, .2);
}

.janova-ob-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.janova-ob-chip {
	padding: 9px 14px;
	border: 1px solid var(--jn-ink);
	color: var(--jn-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
}

.janova-ob-chip:hover { background: rgba(27, 26, 23, .06); color: var(--jn-ink); }

.janova-ob-chip.is-active,
.janova-ob-chip.is-active:hover {
	background: var(--jn-ink);
	color: var(--jn-bg);
}

.janova-ob-municipio {
	display: flex;
	align-items: center;
	gap: 10px;
}

.janova-ob-municipio label,
.janova-ob-count,
.janova-ob-card__meta,
.janova-ob-back a,
.janova-ob-compara__ayuda,
.janova-ob-ficha dt,
.janova-ob-cita figcaption {
	font-family: var(--jn-mono);
	color: #5E5952;
}

.janova-ob-municipio label { font-size: 11px; letter-spacing: .06em; }

.janova-ob-municipio select,
.janova-ob-municipio button {
	padding: 9px 12px;
	border: 1px solid var(--jn-ink);
	border-radius: 0;
	background: #FFF;
	color: var(--jn-ink);
	font: inherit;
	font-size: 14px;
}

.janova-ob-count { padding-top: 14px; font-size: 12px; }

.janova-ob-list { padding-block: 28px clamp(72px, 9vw, 120px); }

.janova-ob-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
	gap: 40px 20px;
}

.janova-ob-grid--s {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 20px;
}

.janova-ob-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	color: var(--jn-ink);
	text-decoration: none;
}

.janova-ob-card:hover { color: var(--jn-accent); }

.janova-ob-card__img {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: #E8E1D5;
}

.janova-ob-card__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}

.janova-ob-card:hover .janova-ob-card__img img { transform: scale(1.03); }

.janova-ob-card__tipo {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 4px 8px;
	border: 1px solid var(--jn-ink);
	background: var(--jn-bg);
	color: var(--jn-ink);
	font-family: var(--jn-mono);
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.janova-ob-card__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 12px;
	border-top: 1.5px solid var(--jn-ink);
}

.janova-ob-card__title {
	font-size: 22px;
	font-weight: 700;
	font-stretch: 106%;
	line-height: 1.2;
	letter-spacing: -.01em;
}

.janova-ob-card--s { gap: 12px; }
.janova-ob-card--s .janova-ob-card__body { gap: 4px; padding-top: 10px; }
.janova-ob-card--s .janova-ob-card__title { font-size: 19px; font-stretch: 100%; }

.janova-ob-card__meta { font-size: 12px; text-transform: uppercase; }

.janova-ob-vacio { padding-block: 48px; font-size: 18px; color: #4A4640; }

.janova-ob-vacio a {
	color: var(--jn-accent);
	font-weight: 600;
	text-decoration: underline;
}

.janova-ob-pag {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 48px;
}

.janova-ob-pag .page-numbers {
	padding: 9px 14px;
	border: 1px solid var(--jn-ink);
	color: var(--jn-ink);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.janova-ob-pag .page-numbers.current { background: var(--jn-ink); color: var(--jn-bg); }
.janova-ob-pag .page-numbers.dots { border-color: transparent; }

/* Ficha ---------------------------------------------------------------- */
.janova-ob-back { padding-top: 28px; }

.janova-ob-back a {
	font-size: 12px;
	letter-spacing: .06em;
	text-decoration: none;
}

.janova-ob-back a:hover { color: var(--jn-accent); }

.janova-ob-top {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	gap: 40px;
	align-items: end;
	padding-block: 28px 40px;
}

.janova-ob-top__title { gap: 16px; }

.janova-ob-top h1 {
	font-size: clamp(40px, 5.6vw, 80px);
	font-weight: 700;
	font-stretch: 112%;
	line-height: .95;
	letter-spacing: -.035em;
	text-wrap: balance;
}

.janova-ob-ficha {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
	border: 1.5px solid var(--jn-ink);
	background: var(--wp--preset--color--paper, #FBF9F5);
}

.janova-ob-ficha > div {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 18px;
	border-right: 1px solid rgba(27, 26, 23, .18);
	border-bottom: 1px solid rgba(27, 26, 23, .18);
}

.janova-ob-ficha > div:nth-child(2n) { border-right: 0; }
.janova-ob-ficha > div:nth-last-child(-n + 2):nth-child(2n + 1),
.janova-ob-ficha > div:last-child { border-bottom: 0; }

.janova-ob-ficha dt { font-size: 11px; letter-spacing: .06em; }
.janova-ob-ficha dd { margin: 0; font-size: 20px; font-weight: 700; }

.janova-ob-compara {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border: 1.5px solid var(--jn-ink);
	background: #E8E1D5;
	cursor: ew-resize;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}

.janova-ob-compara--sola { cursor: auto; }

.janova-ob-compara__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
	-webkit-user-drag: none;
}

.janova-ob-compara__antes { clip-path: inset(0 calc(100% - var(--split, 50%)) 0 0); }

.janova-ob-compara__linea {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--split, 50%);
	width: 2px;
	margin-left: -1px;
	background: var(--jn-bg);
	pointer-events: none;
}

.janova-ob-compara__tirador {
	position: absolute;
	top: 50%;
	left: var(--split, 50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background: var(--jn-accent);
	color: #FFF;
	font-size: 18px;
	font-weight: 700;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.janova-ob-compara__tag {
	position: absolute;
	top: 12px;
	padding: 5px 10px;
	font-family: var(--jn-mono);
	font-size: 11px;
	letter-spacing: .08em;
	pointer-events: none;
}

.janova-ob-compara__tag--antes { left: 12px; background: var(--jn-ink); color: var(--jn-bg); }
.janova-ob-compara__tag--despues { right: 12px; background: var(--jn-accent); color: #FFF; }

/* El control real para teclado y lectores: invisible, pero enfocable */
.janova-ob-compara__range {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	pointer-events: none;
}

.janova-ob-compara:has(.janova-ob-compara__range:focus-visible) {
	outline: 2px solid var(--jn-accent);
	outline-offset: 3px;
}

.janova-ob-compara__ayuda { margin-top: 10px; font-size: 11px; color: #8A847A; }

.janova-ob-historia {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	padding-block: clamp(56px, 7vw, 96px);
	border-bottom: 1px solid rgba(27, 26, 23, .14);
}

.janova-ob-historia__col {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-right: clamp(0px, 2vw, 24px);
	padding: 28px clamp(0px, 2vw, 28px) 28px 0;
	border-top: 3px solid var(--jn-ink);
}

.janova-ob-historia h2 {
	font-size: 28px;
	font-weight: 700;
	font-stretch: 108%;
	letter-spacing: -.02em;
	line-height: 1.15;
}

.janova-ob-historia__col > p:last-child {
	font-size: 17px;
	line-height: 1.65;
	color: #4A4640;
	text-wrap: pretty;
}

.janova-ob-galeria { padding-top: clamp(56px, 7vw, 96px); }

.janova-ob-galeria__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 12px;
	margin-top: 20px;
}

.janova-ob-galeria__grid a {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: #E8E1D5;
	cursor: zoom-in;
}

.janova-ob-galeria__grid img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.janova-ob-extra {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 48px;
	align-items: start;
	padding-block: clamp(56px, 7vw, 96px);
}

.janova-ob-materiales {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.janova-ob-materiales ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.janova-ob-materiales li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 12px 8px 8px;
	border: 1px solid var(--jn-ink);
	font-size: 15px;
	font-weight: 500;
}

.janova-ob-materiales li span {
	width: 22px;
	height: 22px;
	border: 1px solid rgba(27, 26, 23, .2);
}

.janova-ob-cita {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding-top: 20px;
	border-top: 1.5px solid var(--jn-ink);
}

.janova-ob-cita blockquote {
	margin: 0;
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 600;
	font-stretch: 106%;
	line-height: 1.25;
	letter-spacing: -.01em;
	text-wrap: pretty;
}

.janova-ob-cita figcaption { font-size: 12px; text-transform: uppercase; }

.janova-ob-cta { background: var(--jn-ink); color: var(--jn-bg); }

.janova-ob-cta__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 32px;
	padding-block: clamp(56px, 7vw, 96px);
}

.janova-ob-cta h2 {
	max-width: 720px;
	color: var(--jn-bg);
	font-size: clamp(34px, 4.6vw, 64px);
	font-weight: 700;
	font-stretch: 112%;
	line-height: .98;
	letter-spacing: -.03em;
}

.janova-ob-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; }

.janova-ob-cta__btns a {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 600;
	text-decoration: none;
	transition: background .2s, color .2s;
}

.janova-ob-cta__main { padding: 17px 26px; background: var(--jn-accent); color: #FFF; }
.janova-ob-cta__main:hover { background: var(--jn-bg); color: var(--jn-ink); }

.janova-ob-cta__wa { padding: 16px 22px; border: 1.5px solid #25D366; color: var(--jn-bg); }
.janova-ob-cta__wa:hover { background: rgba(37, 211, 102, .12); color: var(--jn-bg); }
.janova-ob-cta__wa span { width: 8px; height: 8px; background: #25D366; }

.janova-ob-mas { padding-block: clamp(56px, 7vw, 96px); }

.janova-ob-mas__head {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 28px;
}

.janova-ob-mas__head h2 {
	font-size: clamp(28px, 3.4vw, 44px);
	font-weight: 700;
	font-stretch: 112%;
	letter-spacing: -.03em;
}

.janova-ob-mas__head > a {
	padding-bottom: 2px;
	border-bottom: 1.5px solid var(--jn-ink);
	color: var(--jn-ink);
	font-weight: 600;
	text-decoration: none;
}

.janova-ob-mas__head > a:hover { border-color: var(--jn-accent); color: var(--jn-accent); }

.janova-ob-mas__head--home { margin-bottom: 40px; }
.janova-ob-mas__head--home > div { display: flex; flex-direction: column; gap: 18px; }

/* Foto de la galería en grande */
.janova-ob-lightbox {
	max-width: none;
	max-height: none;
	width: 100vw;
	height: 100dvh;
	margin: 0;
	padding: 24px;
	border: 0;
	background: rgba(27, 26, 23, .94);
}

.janova-ob-lightbox[open] {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

.janova-ob-lightbox::backdrop { background: rgba(27, 26, 23, .94); }

.janova-ob-lightbox img {
	max-width: min(100%, 1400px);
	max-height: 100%;
	min-width: 0;
	object-fit: contain;
}

.janova-ob-lightbox button {
	flex: none;
	width: 48px;
	height: 48px;
	border: 1px solid rgba(244, 241, 236, .5);
	border-radius: 0;
	background: transparent;
	color: var(--jn-bg);
	font: inherit;
	font-size: 20px;
	cursor: pointer;
}

.janova-ob-lightbox button:hover { background: var(--jn-accent); border-color: var(--jn-accent); }

.janova-ob-lightbox__x { position: absolute; top: 16px; right: 16px; }
.janova-ob-lightbox--una .janova-ob-lightbox__nav { display: none; }

@media (max-width: 700px) {
	.janova-ob-head__lead { justify-self: start; }
	.janova-ob-lightbox { padding: 12px; }
	.janova-ob-lightbox__nav { position: absolute; bottom: 16px; }
	.janova-ob-lightbox__nav[data-dir="-1"] { left: 16px; }
	.janova-ob-lightbox__nav[data-dir="1"] { right: 16px; }
}
