/* ==========================================================================
   Casas Rurales Florentino — estilos del tema hijo de Kadence
   Colores: paleta global de Kadence (--global-paletteN, ver inc/setup.php)
   + el dorado del logo, que ya usa el botón del buscador.
   Regla de oro contra el CLS: toda imagen con hueco reservado (width/height o
   aspect-ratio) y nada que aparezca desplazando contenido.
   ========================================================================== */

:root {
	--fk-oro: #e3a72f;
	--fk-oro-claro: #efb84a;
	--fk-granate-banda: #81152b;
	--fk-radio: 12px;
	--fk-sombra: 0 1px 2px rgba(43, 33, 28, .06), 0 8px 24px rgba(43, 33, 28, .08);
	--fk-sombra-hover: 0 2px 4px rgba(43, 33, 28, .08), 0 16px 36px rgba(43, 33, 28, .14);
	/* Serif del sistema para titulares: carácter rústico sin descargar ninguna fuente. */
	--fk-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
}

/* Las franjas a sangre usan 100vw: que la barra de scroll no provoque scroll horizontal. */
#wrapper { overflow-x: clip; }

img { height: auto; }

/* Iconos Font Awesome: en portada y fichas la fuente llega sin bloquear (inc/assets.php).
   Mismo ancho y alto de línea antes y después de que cargue => sin saltos de diseño. */
.fa {
	display: inline-block;
	width: 1.2em;
	line-height: 1;
	text-align: center;
}

/* --- Cabecera: barra superior con teléfono y WhatsApp ------------------- */
/* (El HTML está en Personalizar > Cabecera > HTML: <span class="fk-top-contact">...) */
.site-top-header-wrap .site-header-row-container-inner { background: var(--global-palette3); }
.fk-top-contact {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.5rem;
	font-size: .85rem;
	line-height: 1.4;
}
.fk-top-contact a { text-decoration: none; }
.site-top-header-wrap .fk-top-contact a { color: #fff; }
.site-top-header-wrap .fk-top-contact a:hover { color: var(--fk-oro); }
.fk-top-wa::before {
	content: "";
	display: inline-block;
	width: .55em;
	height: .55em;
	margin-right: .45em;
	border-radius: 50%;
	background: #25d366;
	vertical-align: .08em;
}
/* Dentro del menú móvil: en columna y con el color de marca */
.mobile-html .fk-top-contact { flex-direction: column; font-size: 1rem; padding: 1rem 0; }
.mobile-html .fk-top-contact a { color: var(--global-palette1); font-weight: 600; }

/* --- Titulares ---------------------------------------------------------- */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.fk-grid-title,
.fk-card__title {
	font-family: var(--fk-serif);
	letter-spacing: -0.01em;
}

/* --- Botones del contenido antiguo -------------------------------------- */
/* "Más detalles" (<!--more-->) y botones con la clase .boton */
.wp-block-button.boton a,
.entry-content a.btn,
.fk-btn {
	display: inline-block;
	padding: .8em 1.8em;
	border-radius: 999px;
	background: var(--global-palette1);
	color: var(--global-palette9) !important;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color .2s ease, transform .2s ease;
}
.wp-block-button.boton a:hover,
.entry-content a.btn:hover,
.fk-btn:hover {
	background: var(--global-palette2);
	transform: translateY(-1px);
}
.fk-btn--outline {
	background: transparent;
	color: var(--global-palette1) !important;
	box-shadow: inset 0 0 0 2px var(--global-palette1);
}
.fk-btn--outline:hover {
	background: var(--global-palette1);
	color: var(--global-palette9) !important;
}
.entry-content .center,
.entry-content p.center { text-align: center; }

/* --- Ficha de casa: clases del contenido existente ----------------------- */

/* Galería de fotos (sustituye a MetaSlider, ver inc/galeria.php). Carrusel con scroll-snap:
   funciona con el dedo sin JS; el hueco (aspect-ratio) está reservado desde el principio. */
.fk-galeria {
	position: relative;
	margin: 0 0 1.5rem;
	border-radius: var(--fk-radio);
	overflow: hidden;
	background: var(--global-palette7);
}
.fk-galeria__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
}
.fk-galeria__track::-webkit-scrollbar { display: none; }
.fk-galeria__track:focus-visible { outline: 3px solid var(--fk-oro); outline-offset: -3px; }
/* ".fk-galeria" delante: Kadence da margen a .entry-content figure y height:auto a las img. */
.fk-galeria .fk-galeria__slide {
	position: relative;
	flex: 0 0 100%;
	margin: 0;
	aspect-ratio: var(--fk-ratio, 4 / 3);
	scroll-snap-align: start;
}
.fk-galeria .fk-galeria__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fk-galeria__caption {
	position: absolute;
	inset: auto 0 0 0;
	padding: 2rem 1rem .9rem;
	background: linear-gradient(to top, rgba(0, 0, 0, .6), transparent);
	color: #fff;
	font-size: .95rem;
}
.fk-galeria__nav {
	position: absolute;
	top: 50%;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin-top: -22px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	color: var(--global-palette3);
	font-size: 28px;
	line-height: 1;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .25);
	cursor: pointer;
	transition: opacity .2s ease, background-color .2s ease;
}
.fk-galeria__nav:hover { background: #fff; }
.fk-galeria__nav:disabled { opacity: 0; pointer-events: none; }
.fk-galeria__nav--prev { left: .75rem; }
.fk-galeria__nav--next { right: .75rem; }
.fk-galeria__count {
	position: absolute;
	right: .75rem;
	bottom: .75rem;
	margin: 0;
	padding: .2em .7em;
	border-radius: 999px;
	background: rgba(0, 0, 0, .55);
	color: #fff;
	font-size: .8rem;
	font-variant-numeric: tabular-nums;
}
@media (hover: none) {
	/* En móvil se desliza con el dedo: flechas más discretas */
	.fk-galeria__nav { width: 36px; height: 36px; margin-top: -18px; font-size: 22px; }
}

/* Cabecera de la ficha: nombre de la casa y subtítulo */
.title-casa {
	margin: 1.5rem auto 2rem;
	padding-bottom: 1rem;
	text-align: center;
	border-bottom: 0;
	position: relative;
}
.title-casa::after {
	content: "";
	display: block;
	width: 64px;
	height: 3px;
	margin: 1rem auto 0;
	border-radius: 3px;
	background: var(--fk-oro);
}
.title-casa h1,
.tagline h1 {
	margin: 0 0 .25em;
	color: var(--global-palette3);
	font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.5rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
}
.title-casa h2,
.tagline h2 {
	margin: 0;
	padding: 0;
	color: var(--global-palette5);
	font-size: clamp(1rem, .9rem + .4vw, 1.2rem);
	font-weight: 400;
}
.tagline {
	text-align: center;
	font-size: 1.2rem;
	margin: .5em 0 1.5em;
}

/* Franja de datos clave (capacidad, camas, baños, wifi, jacuzzi, chimenea...):
   icono + cifra + etiqueta, como en la plantilla de referencia (Blocksy Real Estate). */
.iconos-casa {
	gap: .75rem !important;
	margin: 1.5rem 0 !important;
	padding: 1rem 1.25rem;
	border-radius: var(--fk-radio);
	background: var(--global-palette8);
	border: 1px solid var(--global-palette7);
}
/* Algunas fichas tienen una franja de iconos dentro de otra: una sola caja. */
.iconos-casa .iconos-casa {
	margin: 0 !important;
	flex: 1 1 100%; /* ocupa todo el ancho: en la columna flex exterior se encogía a una sola columna */
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
}
.iconos-casa .wp-block-column {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	margin: 0 !important;
	text-align: center;
	color: var(--global-palette4);
}
.iconos-casa .wp-block-column > * { margin: 0; }
.iconos-casa img {
	width: 32px;
	height: 32px;
	margin-right: 6px;
	object-fit: contain;
	vertical-align: middle;
}
.iconos-casa strong { vertical-align: middle; color: var(--global-palette3); }

/* Franja granate con el buscador, a todo el ancho de la pantalla. */
.booking_bg {
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding: 1.75rem calc(50vw - 50%) !important;
	background:
		radial-gradient(120% 140% at 0% 0%, rgba(255, 255, 255, .08), transparent 55%),
		var(--fk-granate-banda);
	color: #fff;
}
.booking_bg h2,
.booking_bg h3,
.booking_bg p { color: #fff; }

/* Cajas de información (.panel) */
.panel {
	margin-bottom: 1.25rem;
	border: 1px solid var(--global-palette7);
	border-radius: var(--fk-radio);
	background: var(--global-palette9);
	box-shadow: var(--fk-sombra);
	overflow: hidden;
	color: var(--global-palette4);
}
.panel .panel-heading {
	margin: 0;
	padding: .7rem 1rem;
	background: var(--global-palette1);
	color: #fff;
	font-size: 1.15rem;
	font-weight: 700;
	text-align: center;
}
.panel .panel-body {
	margin: 0;
	padding: 1rem;
	background: none;
	font-weight: 600;
	text-align: center;
}

/* Galerías: esquinas suaves y hueco reservado */
.entry-content .wp-block-gallery.is-cropped img { border-radius: 8px; }

/* --- Rejillas de tarjetas (casas, ofertas, entorno, "otras casas") ------ */
.fk-grid-section { margin: 3rem 0 1rem; }
.fk-grid-title {
	margin: 0 0 1.5rem;
	text-align: center;
	color: var(--global-palette3);
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem);
}
.fk-grid {
	display: grid;
	gap: 1.75rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
}
.fk-grid--casa-mini { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 1.25rem; }

.fk-card {
	display: flex;
	flex-direction: column;
	margin: 0;
	border-radius: var(--fk-radio);
	background: var(--global-palette9);
	box-shadow: var(--fk-sombra);
	overflow: hidden;
	transition: box-shadow .25s ease, transform .25s ease;
}
.fk-card:hover { box-shadow: var(--fk-sombra-hover); transform: translateY(-3px); }

.fk-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--global-palette7);
	overflow: hidden;
}
.fk-card__media img,
.fk-card__noimg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.fk-card:hover .fk-card__media img { transform: scale(1.04); }

/* Precio sobre la foto */
.fk-card__badge {
	position: absolute;
	left: .9rem;
	bottom: .9rem;
	padding: .4em .85em;
	border-radius: 999px;
	background: var(--fk-oro);
	color: #21252e;
	font-size: .85rem;
	font-weight: 700;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
}
/* Titular de oferta sobre la foto (experiencias) */
.fk-card__overlay {
	position: absolute;
	inset: auto 0 0 0;
	padding: 2.5rem 1rem 1rem;
	background: linear-gradient(to top, rgba(43, 11, 17, .85), transparent);
	color: #fff;
	font-family: var(--fk-serif);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.15;
	text-transform: uppercase;
}

.fk-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: .5rem;
	padding: 1.25rem 1.35rem 1.5rem;
}
.fk-card__title {
	margin: 0;
	font-size: 1.35rem;
	line-height: 1.2;
}
.fk-card--casa-mini .fk-card__title { font-size: 1.1rem; }
.fk-card__title a { color: var(--global-palette3); text-decoration: none; }
.fk-card__title a:hover { color: var(--global-palette1); }
.fk-card__stars {
	display: inline-block;
	margin-left: .35em;
	color: var(--fk-oro);
	font-size: .8em;
	letter-spacing: .05em;
	vertical-align: middle;
}
.fk-card__price {
	margin: 0;
	color: var(--global-palette1);
	font-weight: 700;
}
.fk-card__content { font-size: .95rem; color: var(--global-palette5); }
.fk-card__content > :first-child { margin-top: 0; }
.fk-card__content h3 { font-size: 1.05rem; margin: 0 0 .4em; font-family: inherit; }
.fk-card__content p { margin: 0 0 .6em; }
/* El botón de la tarjeta, siempre abajo aunque los textos tengan distinta longitud */
.fk-card__content { display: flex; flex-direction: column; flex: 1; }
.fk-card__content > p:last-child,
.fk-card__content > .wp-block-button:last-child { margin-top: auto; padding-top: .5rem; }
.fk-card--casa-mini .fk-btn { align-self: flex-start; margin-top: auto; }

.fk-otras-casas {
	margin-top: 4rem;
	padding-top: 2.5rem;
	border-top: 1px solid var(--global-palette7);
}

/* --- Cualquier contenido antiguo que aún use la rejilla de Twenty Fourteen -- */
.grid-content-inner {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
}
.grid-content .hentry { float: none; width: auto; margin: 0; }

/* Reseñas: enlace a todas las opiniones bajo el carrusel de cada ficha */
.fr-ver-todas { margin: .75rem 0 0; text-align: center; font-weight: 600; }
.fr-ver-todas a { display: inline-block; padding: .5rem .75rem; color: var(--global-palette1); }

/* --- Varios --------------------------------------------------------------- */
/* Restos de microformatos antiguos guardados dentro del contenido */
.hatom-extra { display: none; }

@media (prefers-reduced-motion: reduce) {
	.fk-card,
	.fk-card__media img,
	.wp-block-button.boton a,
	.entry-content a.btn,
	.fk-btn,
	.fk-galeria__nav { transition: none; }
	.fk-galeria__track { scroll-behavior: auto; }
	.fk-card:hover,
	.fk-card:hover .fk-card__media img { transform: none; }
}

/* ==========================================================================
   SISTEMA VISUAL "YOSEMITE" (inspirado en la plantilla G19 de Kadence)
   Verde bosque + salvia, titulares Source Serif 4 con palabras en cursiva,
   rótulos en mayúsculas espaciadas, fotos a sangre y formas en arco.
   Va al final a propósito: manda sobre lo anterior.
   ========================================================================== */

html:root {
	--fk-oro: #e3a72f;
	--fk-oro-claro: #efb84a;
	--fk-burdeos: #8a1c2b;
	--fk-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
	--fk-sans: "Red Hat Display", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--fk-contenedor: 1240px;
	--fk-radio: 18px;
	--fk-granate-banda: var(--global-palette2);
	--global-body-font-family: var(--fk-sans);
	--global-heading-font-family: var(--fk-serif);
	/* Textura de la plantilla (trazos sueltos), muy tenue, para fondos salvia y verdes */
	--fk-textura: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' fill='none' stroke='%23000' stroke-opacity='.07' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M18 30c6-8 12 8 18 0M110 22l8 10 8-10M70 80c4 6 10 6 14 0M20 120l10-6 4 10M128 100c-6 4-6 12 0 16M90 140c6-4 12 4 18 0M50 52l-6 10M150 60l-8 4'/%3E%3C/svg%3E");
	--fk-textura-clara: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' fill='none' stroke='%23fff' stroke-opacity='.08' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M18 30c6-8 12 8 18 0M110 22l8 10 8-10M70 80c4 6 10 6 14 0M20 120l10-6 4 10M128 100c-6 4-6 12 0 16M90 140c6-4 12 4 18 0M50 52l-6 10M150 60l-8 4'/%3E%3C/svg%3E");
}
body { font-family: var(--fk-sans); }
h1, h2, h3, h4, .fk-cita, .fk-grid-title, .fk-card__title { font-family: var(--fk-serif); font-weight: 700; }
h1 em, h2 em, h3 em, .fk-cita em, .fk-arco__etiqueta em, .fk-perfil em { font-style: italic; }

/* Rótulo pequeño sobre los titulares */
.fk-kicker {
	display: block;
	margin: 0 0 .6rem;
	font-family: var(--fk-sans);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--global-palette1);
}
.fk-kicker--luz { color: var(--fk-oro); }

/* Botones */
.fk-btn { display: inline-flex; align-items: center; gap: .5em; padding: .95em 1.9em; font-family: var(--fk-sans); letter-spacing: .06em; }
.fk-btn .fk-icono { width: 1.2em; height: 1.2em; }
.fk-btn--oro { background: var(--fk-oro); color: #1d2622 !important; }
.fk-btn--oro:hover { background: var(--fk-oro-claro); }
.fk-btn--claro { background: transparent; color: #fff !important; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .85); }
.fk-btn--claro:hover { background: #fff; color: var(--global-palette3) !important; }

/* Cabecera: barra superior verde oscuro, botón "Reservar" dorado */
.site-top-header-wrap .site-header-row-container-inner { background: var(--global-palette2); }
.header-button-wrap .header-button,
.mobile-header-button-wrap .mobile-header-button {
	border-radius: 999px !important;
	background: var(--fk-oro) !important;
	color: #1d2622 !important;
	font-weight: 700;
	letter-spacing: .04em;
}
.header-button-wrap .header-button:hover { background: var(--fk-oro-claro) !important; }

/* Cabecera transparente sobre la foto de portada */
.transparent-header #masthead { background: linear-gradient(to bottom, rgba(12, 22, 17, .6), rgba(12, 22, 17, 0)); }
.transparent-header .main-navigation .primary-menu-container > ul > li.menu-item > a,
.transparent-header .main-navigation .primary-menu-container > ul > li.menu-item > .dropdown-nav-special-toggle,
.transparent-header .menu-toggle-open { color: #fff; }
.transparent-header .main-navigation .primary-menu-container > ul > li.menu-item > a:hover { color: var(--fk-oro); }
/* Logo transparente sobre la foto: un contorno blanco (4 sombras desplazadas = filo macizo) para que el rojo se lea sobre lo oscuro */
.transparent-header .site-branding .custom-logo { filter: drop-shadow(1.5px 0 0 #fff) drop-shadow(-1.5px 0 0 #fff) drop-shadow(0 1.5px 0 #fff) drop-shadow(0 -1.5px 0 #fff) drop-shadow(0 1px 6px rgba(0, 0, 0, .45)); }

/* Pie: verde bosque */
.site-footer .site-footer-row-container-inner { background: var(--global-palette3); color: #cfd6c8; }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--fk-oro); }

/* Franja del buscador en las fichas y el buscador en sí: de granate a verde bosque */
.booking_bg { background: var(--global-palette2) var(--fk-textura-clara) !important; }
div.rv2-buscador {
	--rv2-b-band: var(--global-palette2);
	--rv2-vino: var(--global-palette1);
	--rv2-vino-dark: var(--global-palette2);
	--rv2-navy: var(--global-palette3);
	font-family: var(--fk-sans);
}

/* ── Portada ───────────────────────────────────────────────────────────── */
.fk-portada { overflow-x: clip; }
.fk-contenedor { max-width: var(--fk-contenedor); margin: 0 auto; padding: 0 1.5rem; }
.fk-contenedor--estrecho { max-width: 860px; text-align: center; }
.fk-seccion { padding: clamp(4rem, 2.5rem + 5vw, 7.5rem) 0; }
.fk-seccion--salvia { background: var(--global-palette8) var(--fk-textura); }
.fk-cabecera-seccion { max-width: 760px; margin: 0 auto clamp(2rem, 1.5rem + 2vw, 3.5rem); text-align: center; }
.fk-cabecera-seccion h2,
.fk-franja h2,
.fk-cierre h2 {
	margin: 0;
	color: var(--global-palette3);
	font-size: clamp(2rem, 1.3rem + 2.6vw, 3.4rem);
	line-height: 1.08;
	letter-spacing: -.015em;
}

/* Foto a sangre + titular abajo a la izquierda */
.fk-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: min(92vh, 860px);
	overflow: hidden;
	background: var(--global-palette2);
	color: #fff;
}
.fk-hero__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.fk-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(12, 22, 17, .35) 0%, rgba(12, 22, 17, 0) 28%, rgba(12, 22, 17, .12) 52%, rgba(12, 22, 17, .78) 100%);
}
.fk-hero__texto { width: 100%; max-width: var(--fk-contenedor); margin: 0 auto; padding: 8rem 1.5rem 9.5rem; }
.fk-hero__titulo {
	max-width: 15ch;
	margin: 0 0 1rem;
	color: #fff;
	font-size: clamp(2.5rem, 1.4rem + 4.6vw, 5rem);
	line-height: 1.02;
	letter-spacing: -.02em;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .25);
}
.fk-hero__sub { max-width: 44ch; margin: 0; font-size: clamp(1.05rem, .95rem + .45vw, 1.3rem); line-height: 1.5; color: rgba(255, 255, 255, .95); }

/* Buscador en tarjeta que monta sobre la foto */
.fk-buscador-flotante {
	position: relative;
	z-index: 2;
	margin-top: -6.5rem;
	padding: 1.4rem 1.6rem 1rem;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 24px 60px rgba(15, 30, 22, .18);
}
.fk-buscador-flotante__titulo { margin: 0 0 .8rem; font-family: var(--fk-serif); font-size: 1.35rem; font-weight: 700; color: var(--global-palette3); }
.fk-buscador-flotante .rv2-buscador .rv2-b-card { padding: 0; background: transparent; }
.fk-buscador-flotante .rv2-buscador .rv2-b-input { border: 1px solid var(--global-palette7); background: var(--global-palette8); }
.fk-buscador-flotante .rv2-b-trust { margin: .9rem 0 0; }

/* Frase grande */
.fk-intro { text-align: center; }
.fk-cita {
	margin: 0 0 1.5rem;
	color: var(--global-palette3);
	font-size: clamp(1.7rem, 1.2rem + 1.9vw, 2.7rem);
	line-height: 1.22;
	letter-spacing: -.01em;
}
.fk-intro__texto { max-width: 62ch; margin: 0 auto; font-size: 1.1rem; color: var(--global-palette5); }

/* Por qué alojarte con nosotros */
.fk-porque__grid { display: grid; gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; }
@media (min-width: 900px) { .fk-porque__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.fk-arco { position: relative; margin: 0; }
.fk-arco__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 999px 999px 24px 24px;
	box-shadow: 0 0 0 10px #fff, 0 30px 60px rgba(15, 30, 22, .18);
}
.fk-arco__etiqueta {
	position: absolute;
	right: -.5rem;
	bottom: 2rem;
	max-width: 16ch;
	padding: 1rem 1.25rem;
	border-radius: 14px;
	background: #fff;
	color: var(--global-palette3);
	font-family: var(--fk-serif);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.15;
	box-shadow: 0 12px 30px rgba(15, 30, 22, .15);
}
.fk-ventajas { margin: 0; padding: 0; list-style: none; }
.fk-ventaja { display: flex; gap: 1.1rem; align-items: flex-start; padding: 1.15rem 0; border-bottom: 1px solid var(--global-palette7); }
.fk-ventaja:last-child { border-bottom: 0; }
.fk-ventaja__icono {
	display: grid;
	flex: 0 0 52px;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: #fff;
	color: var(--global-palette1);
	box-shadow: 0 6px 16px rgba(15, 30, 22, .08);
}
.fk-icono { width: 26px; height: 26px; }
.fk-ventaja__titulo { display: block; margin-bottom: .15rem; font-family: var(--fk-serif); font-size: 1.25rem; color: var(--global-palette3); }
.fk-ventaja__texto { color: var(--global-palette5); }

/* Casas */
.fk-casas .fk-grid-section { margin: 0; }
.fk-grid--casa-mini { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 1.5rem; }
/* Portada: las 5 casas en filas completas o centradas (5 en una fila desde 1016 px; 3 + 2 o 2 + 2 + 1 más estrecho) */
.fk-casas__grid .fk-grid--casa-mini { --fk-cols: 1; --fk-hueco: 1.5rem; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--fk-hueco); }
.fk-casas__grid .fk-grid--casa-mini > * { flex: 0 0 calc((100% - (var(--fk-cols) - 1) * var(--fk-hueco)) / var(--fk-cols)); min-width: 0; }
@media (min-width: 520px) { .fk-casas__grid .fk-grid--casa-mini { --fk-cols: 2; } }
@media (min-width: 760px) { .fk-casas__grid .fk-grid--casa-mini { --fk-cols: 3; } }
@media (min-width: 1016px) { .fk-casas__grid .fk-grid--casa-mini { --fk-cols: 5; --fk-hueco: 1.1rem; } }
.fk-card { border-radius: var(--fk-radio); }
.fk-card--casa-mini .fk-card__media { aspect-ratio: 4 / 5; }
.fk-card__sub { margin: 0; font-size: .92rem; color: var(--global-palette6); }
.fk-casas__perfiles { display: grid; gap: 1.25rem; margin-top: 2.5rem; }
@media (min-width: 700px) { .fk-casas__perfiles { grid-template-columns: 1fr 1fr; } }
.fk-perfil {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	padding: 1.6rem 1.8rem;
	border-radius: var(--fk-radio);
	background: var(--global-palette8) var(--fk-textura);
	color: var(--global-palette3);
	text-decoration: none;
	transition: background-color .2s ease;
}
.fk-perfil .fk-kicker { grid-column: 1 / -1; }
.fk-perfil strong { font-family: var(--fk-serif); font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); line-height: 1.1; }
.fk-perfil > span[aria-hidden] { font-size: 1.8rem; color: var(--global-palette1); transition: transform .2s ease; }
.fk-perfil:hover { background-color: var(--global-palette7); }
.fk-perfil:hover > span[aria-hidden] { transform: translateX(6px); }

/* Última hora: el título lo pone la sección */
.fk-ultima-hora .rv2-of-title { display: none; }
.fk-ultima-hora .rv2-of-sub { text-align: center; }

/* Franja fotográfica */
.fk-franja {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	min-height: clamp(460px, 60vw, 640px);
	overflow: hidden;
	color: #fff;
}
.fk-franja__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.fk-franja::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(12, 22, 17, .82) 0%, rgba(12, 22, 17, .45) 55%, rgba(12, 22, 17, .1) 100%); }
.fk-franja__texto { width: 100%; }
.fk-franja__texto > * { max-width: 540px; }
.fk-franja h2 { color: #fff; margin-bottom: 1rem; }
.fk-franja p { font-size: 1.1rem; color: rgba(255, 255, 255, .92); }

/* Cierre */
.fk-cierre {
	padding: clamp(4rem, 3rem + 4vw, 6.5rem) 0;
	background: var(--global-palette2) var(--fk-textura-clara);
	color: #fff;
}
.fk-cierre h2 { color: #fff; }
.fk-cierre p { margin: 1rem auto 2rem; font-size: 1.15rem; color: rgba(255, 255, 255, .9); }
.fk-cierre__botones { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

@media (max-width: 699px) {
	.fk-hero { min-height: 88vh; }
	.fk-hero__texto { padding-bottom: 7.5rem; }
	.fk-buscador-flotante { margin-top: -5rem; padding: 1.1rem 1rem .8rem; }
	.fk-arco__etiqueta { right: .5rem; font-size: 1.15rem; }
}
@media (prefers-reduced-motion: reduce) {
	.fk-perfil, .fk-perfil > span[aria-hidden] { transition: none; }
}

/* ── Retoques tras la primera revisión de la portada ─────────────────────── */
/* Foto en arco: encuadrar el jacuzzi y las luces, no el techo */
.fk-arco__img { object-position: 60% 85%; }

/* Selector de idioma (WPML) en el menú: sin la caja blanca del plugin */
#masthead .wpml-ls-item > a,
#masthead .wpml-ls-item .sub-menu a { background: transparent !important; }
#masthead .wpml-ls-item .sub-menu { background: #fff; }
#masthead .wpml-ls-item .sub-menu a { color: var(--global-palette3) !important; }

/* Barra superior: enlaces sin subrayado */
.site-top-header-wrap .header-html a { text-decoration: none; }

/* Pie: menú legible sobre el verde oscuro */
.site-footer .footer-navigation a,
.site-footer nav a { color: #cfd6c8 !important; }
.site-footer .footer-navigation a:hover,
.site-footer nav a:hover { color: var(--fk-oro) !important; }

/* Ofertas de última hora: del burdeos al verde */
section.rv2-ofertas {
	--rv2-vino: var(--global-palette1);
	--rv2-vino-dark: var(--global-palette2);
	--rv2-navy: var(--global-palette3);
}

/* Reseñas: de los tonos tierra al verde y salvia */
html:root {
	--fr-tierra: #2f5240;
	--fr-tierra-dk: #1f3a2c;
	--fr-tierra-lt: #a9b79a;
	--fr-tierra-xs: #eef1e7;
	--fr-verde: #2f5240;
	--fr-crema: #ffffff;
	--fr-crema-dk: #eef1e7;
	--fr-texto: #1d2622;
	--fr-suave: #5d655f;
	--fr-borde: #dce1cf;
}

/* Rótulo sobre la foto de portada: pastilla oscura translúcida para que se lea sobre cualquier foto */
.fk-hero .fk-kicker { display: inline-block; padding: .4em .9em; border-radius: 999px; background: rgba(12, 22, 17, .5); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }

/* ── Fuentes de respaldo ajustadas (anti-CLS) ───────────────────────────────
   Las fuentes de Google llegan sin bloquear (inc/assets.php). Mientras tanto se usa
   Georgia/Arial escaladas con size-adjust para que ocupen lo mismo que Source Serif 4 /
   Red Hat Display: al cambiar de fuente no cambian los cortes de línea ni se mueve nada.
   Proporciones medidas en el navegador con los textos de la portada (sep. 2026).
   Gelasio (Georgia) y Liberation Sans/Arimo (Arial) son sus equivalentes métricos en Linux. */
@font-face {
	font-family: "Source Serif 4 Fallback";
	src: local("Georgia Bold"), local("Georgia-Bold"), local("Gelasio Bold"), local("Gelasio-Bold");
	font-weight: 700;
	font-style: normal;
	size-adjust: 94.5%;
}
@font-face {
	font-family: "Source Serif 4 Fallback";
	src: local("Georgia Bold Italic"), local("Georgia-BoldItalic"), local("Gelasio Bold Italic"), local("Gelasio-BoldItalic");
	font-weight: 700;
	font-style: italic;
	size-adjust: 89.3%;
}
@font-face {
	font-family: "Red Hat Display Fallback";
	src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("LiberationSans"), local("Arimo");
	font-weight: 400;
	size-adjust: 96.5%;
}
@font-face {
	font-family: "Red Hat Display Fallback";
	src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("LiberationSans-Bold"), local("Arimo Bold");
	font-weight: 700;
	size-adjust: 94.6%;
}
html:root {
	--fk-serif: "Source Serif 4", "Source Serif 4 Fallback", Georgia, "Times New Roman", serif;
	--fk-sans: "Red Hat Display", "Red Hat Display Fallback", Arial, sans-serif;
}
@media (max-width: 480px) { .fk-hero .fk-kicker { font-size: .68rem; letter-spacing: .08em; } }

/* ==========================================================================
   PÁGINAS INTERIORES CON LOS FORMATOS DE LA PLANTILLA G19 "YOSEMITE"
   ========================================================================== */

/* ── Cabecera fotográfica de página (layout.php: florentino_cabecera_pagina) ── */
.fk-cabecera {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	min-height: clamp(360px, 30vw + 220px, 560px);
	margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem);
	overflow: hidden;
	background: var(--global-palette2);
	color: #fff;
	text-align: center;
}
.fk-cabecera__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.fk-cabecera::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(12, 22, 17, .55) 0%, rgba(12, 22, 17, .25) 40%, rgba(12, 22, 17, .7) 100%);
}
.fk-cabecera__texto { width: 100%; max-width: 900px; padding: 8rem 1.5rem 3.5rem; }
.fk-cabecera .fk-kicker {
	display: inline-block;
	padding: .4em .9em;
	border-radius: 999px;
	background: rgba(12, 22, 17, .5);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.fk-cabecera__titulo {
	margin: .4rem 0 0;
	color: #fff;
	font-size: clamp(2.1rem, 1.3rem + 3.2vw, 3.8rem);
	line-height: 1.06;
	letter-spacing: -.02em;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .25);
}
/* Las páginas con cabecera no llevan el hueco superior de Kadence */
.content-vertical-padding-bottom .fk-cabecera + #primary .content-area,
.fk-cabecera + .content-area { margin-top: 0; }

/* Primer párrafo de las páginas con cabecera: entradilla más grande */
.fk-cabecera ~ .content-area .entry-content > p:first-child,
.single-post .entry-content > p:first-of-type { font-size: 1.15rem; color: var(--global-palette4); }

/* ── Listado de casas: formato "Ways to Stay" ─────────────────────────────── */
.fk-grid--casa-fila { display: flex; flex-direction: column; gap: clamp(3rem, 2rem + 4vw, 6rem); }
.fk-fila { display: grid; gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: center; }
@media (min-width: 900px) {
	.fk-fila { grid-template-columns: minmax(0, 11fr) minmax(0, 9fr); }
	/* la foto cambia de lado pero conserva la columna ancha */
	.fk-fila:nth-child(even) { grid-template-columns: minmax(0, 9fr) minmax(0, 11fr); }
	.fk-fila:nth-child(even) .fk-fila__media { order: 2; }
}
.fk-fila__media {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--fk-radio);
	aspect-ratio: 4 / 3;
	background: var(--global-palette7);
	box-shadow: 0 24px 50px rgba(15, 30, 22, .14);
}
.fk-fila__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.fk-fila:hover .fk-fila__media img { transform: scale(1.04); }
.fk-fila__recuadro {
	position: absolute;
	top: 0;
	left: 0;
	right: 22%;
	padding: 1.2rem 1.5rem 1.4rem;
	border-radius: 0 0 var(--fk-radio) 0;
	background: var(--global-palette1) var(--fk-textura-clara);
	color: #fff;
}
.fk-fila__recuadro .fk-kicker { margin-bottom: .35rem; }
.fk-fila__nombre { display: block; font-family: var(--fk-serif); font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); font-weight: 700; line-height: 1.1; }
.fk-fila__titulo { margin: 0 0 .8rem; font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); line-height: 1.12; }
.fk-fila__titulo a { color: var(--global-palette3); text-decoration: none; }
.fk-fila__titulo a:hover { color: var(--global-palette1); }
.fk-fila__texto > p { font-size: 1.05rem; color: var(--global-palette5); }
.fk-fila__botones { margin: 1.5rem 0 0; }

/* Servicios con icono redondo (G19: "30 AMP ELECTRIC · PARKING · FIRE RING") */
.fk-servicios { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: .75rem 1.25rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.fk-servicios li {
	display: flex;
	align-items: center;
	gap: .65rem;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--global-palette3);
}
.fk-servicios__icono {
	display: grid;
	flex: 0 0 36px;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--global-palette1);
	color: #fff;
}
.fk-servicios__icono .fk-icono { width: 20px; height: 20px; }

/* ── Entorno: formato "Attractions" (foto completa + degradado verde) ─────── */
.fk-grid--foto { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1.5rem; }
.fk-foto {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: 420px;
	overflow: hidden;
	border-radius: var(--fk-radio);
	background: var(--global-palette2);
	color: #fff;
}
.fk-foto__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.fk-foto::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(31, 58, 44, 0) 25%, rgba(31, 58, 44, .6) 55%, rgba(20, 40, 30, .95) 100%); }
.fk-foto:hover .fk-foto__img { transform: scale(1.05); }
.fk-foto__texto { padding: 1.6rem 1.6rem 1.5rem; }
.fk-foto__titulo { margin: 0 0 .5rem; font-size: 1.6rem; line-height: 1.12; }
.fk-foto__titulo a { color: #fff; text-decoration: none; }
/* Toda la tarjeta es el enlace (el titular estira su zona de clic) */
.fk-foto__titulo a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fk-foto__texto p { margin: 0 0 1rem; font-size: .98rem; color: rgba(255, 255, 255, .88); }
.fk-foto__mas { display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fk-oro); }
.fk-foto__mas .fk-icono { width: 18px; height: 18px; transition: transform .2s ease; }
.fk-foto:hover .fk-foto__mas .fk-icono { transform: translateX(4px); }

/* ── Ofertas y experiencias: formato "Special Offers" ─────────────────────── */
.fk-grid--oferta-fila { display: flex; flex-direction: column; gap: 0; }
.fk-oferta { display: grid; gap: 1.25rem 2.5rem; align-items: center; padding: 2.5rem 0; border-bottom: 1px solid var(--global-palette7); }
.fk-oferta:first-child { padding-top: 0; }
.fk-oferta:last-child { border-bottom: 0; }
@media (min-width: 800px) { .fk-oferta { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.fk-oferta__media { display: block; overflow: hidden; border-radius: var(--fk-radio); aspect-ratio: 3 / 2; background: var(--global-palette7); }
.fk-oferta__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fk-oferta__titulo { margin: 0 0 .6rem; font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem); line-height: 1.12; }
.fk-oferta__titulo a { color: var(--global-palette3); text-decoration: none; }
.fk-oferta__texto > p { color: var(--global-palette5); }
.fk-oferta__precio { display: inline-flex; align-items: center; gap: .5rem; padding: .35em .9em; border-radius: 999px; background: var(--global-palette8); color: var(--global-palette1) !important; font-weight: 700; }
.fk-oferta__precio .fk-icono { width: 18px; height: 18px; }
.fk-oferta .fk-btn .fk-icono { width: 18px; height: 18px; }

/* ── Ficha de casa: servicios con icono redondo (los PNG de siempre, en blanco) ── */
.iconos-casa:not(:has(.iconos-casa)) {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
	gap: 1rem 1.5rem !important;
}
.iconos-casa .wp-block-column { justify-content: flex-start !important; text-align: left !important; }
.iconos-casa p:has(> img) {
	position: relative;
	display: flex;
	align-items: center;
	gap: .7rem;
	min-height: 46px;
	margin: 0;
	text-align: left !important;
}
.iconos-casa p:has(> img)::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 46px;
	height: 46px;
	margin-top: -23px;
	border-radius: 50%;
	background: var(--global-palette1);
}
.iconos-casa p > img {
	position: relative;
	z-index: 1;
	width: 24px !important;
	height: 24px !important;
	margin: 0 11px !important;
	filter: brightness(0) invert(1);
}
.iconos-casa p strong {
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--global-palette3);
}

/* Ficha: galería más ancha que el texto y titulares del contenido en el estilo nuevo */
.page-template-casa-page .fk-galeria { border-radius: 22px; box-shadow: 0 24px 60px rgba(15, 30, 22, .16); }
.page-template-casa-page .entry-content h3,
.single-post .entry-content h2,
.single-post .entry-content h3 { color: var(--global-palette3); letter-spacing: -.01em; }

/* ── Preguntas frecuentes (bloque FAQ de Yoast) como en "Support & FAQ" ──── */
.schema-faq { display: grid; gap: 1rem; margin: 2rem 0; }
.schema-faq-section {
	padding: 1.4rem 1.6rem;
	border-radius: var(--fk-radio);
	background: var(--global-palette8) var(--fk-textura);
}
.schema-faq-question { display: block; margin-bottom: .5rem; font-family: var(--fk-serif); font-size: 1.3rem; color: var(--global-palette3); }
.schema-faq-answer { margin: 0; color: var(--global-palette5); }

/* ── Entradas (entorno, ofertas): columna estrecha y citas en el estilo nuevo ── */
.single-post .entry-content blockquote {
	margin: 2rem 0;
	padding: 1.5rem 1.8rem;
	border: 0;
	border-left: 4px solid var(--fk-oro);
	border-radius: 0 var(--fk-radio) var(--fk-radio) 0;
	background: var(--global-palette8);
	font-family: var(--fk-serif);
	font-size: 1.3rem;
	font-style: italic;
	color: var(--global-palette3);
}
.single-post .entry-content img { border-radius: 14px; }

@media (prefers-reduced-motion: reduce) {
	.fk-fila__media img, .fk-foto__img, .fk-foto__mas .fk-icono { transition: none; }
	.fk-fila:hover .fk-fila__media img, .fk-foto:hover .fk-foto__img { transform: none; }
}

/* El titular pasó a la cabecera: el contenedor antiguo (.title-casa) se queda vacío con su raya */
body:has(.fk-cabecera) .title-casa:not(:has(h1, h2)) { display: none; }
.fk-oferta.fk-oferta--sin-foto { grid-template-columns: 1fr; }

/* ── Motor de reservas (pasos 1-3, contacto): colores y formas del tema ──────
   reservas-v2.css define su paleta en :root; html:root manda sobre ella.
   reservas.css (antiguo) se ha pasado a var(--global-paletteN) en el propio fichero. */
html:root {
	--rv2-vino: var(--global-palette1);
	--rv2-vino-dark: var(--global-palette2);
	--rv2-oliva: #4f7a3f;
	--rv2-navy: var(--global-palette3);
	--rv2-text: var(--global-palette5);
	--rv2-text-light: #6b6b6b;
	--rv2-border: var(--global-palette7);
	--rv2-bg-soft: var(--global-palette8);
	--rv2-radius: 16px;
}

/* ==========================================================================
   FICHA DE CASA (y Piscina) CON EL ESTILO "YOSEMITE"
   Cabecera = galería de la casa a sangre con el nombre encima; el contenido de siempre
   (bloques del editor) se viste por CSS: nada que cambiar en las páginas.
   ========================================================================== */

/* ── Cabecera con galería ── */
.fk-cabecera--galeria { display: block; min-height: 0; }
.fk-cabecera--galeria::after {
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(12, 22, 17, .55) 0%, rgba(12, 22, 17, 0) 28%, rgba(12, 22, 17, 0) 50%, rgba(12, 22, 17, .78) 100%);
}
.page-template-casa-page .fk-cabecera--galeria .fk-galeria { margin: 0; border-radius: 0; box-shadow: none; background: var(--global-palette2); }
.fk-cabecera--galeria .fk-galeria .fk-galeria__slide { aspect-ratio: auto; height: clamp(460px, 78svh, 820px); }
.fk-cabecera--galeria .fk-galeria__nav,
.fk-cabecera--galeria .fk-galeria__count { z-index: 3; }
.fk-cabecera--galeria .fk-galeria__caption { display: none; }
.fk-cabecera--galeria .fk-cabecera__texto {
	position: absolute;
	left: 50%;
	bottom: 0;
	z-index: 2;
	transform: translateX(-50%);
	padding: 0 1.5rem clamp(4.5rem, 3.5rem + 3vw, 6rem);
	pointer-events: none; /* la galería se desliza "a través" del titular */
}
.fk-cabecera__sub {
	display: block;
	max-width: 40rem;
	margin: .7rem auto 0;
	font-family: var(--fk-sans);
	font-size: clamp(1rem, .9rem + .4vw, 1.2rem);
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0;
	opacity: .92;
}
.page-template-casa-page .fk-cabecera--galeria { margin-bottom: 0; }

/* ── Datos clave: tarjeta blanca que monta sobre la foto ── */
.page-template-casa-page .entry-content > .title-casa + .wp-block-columns {
	position: relative;
	z-index: 2;
	margin-top: -2.5rem !important;
	padding: 1.4rem 1.6rem;
	background: var(--global-palette9);
	border: 0;
	box-shadow: 0 20px 50px rgba(15, 30, 22, .14);
}

/* ── Franja del buscador: aire alrededor ── */
.page-template-casa-page .booking_bg { margin-top: clamp(2.5rem, 2rem + 2vw, 4rem) !important; margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem) !important; }

/* ── Miniaturas: mosaico redondeado ── */
.page-template-casa-page .entry-content .wp-block-gallery.has-nested-images { gap: .6rem; }
.page-template-casa-page .entry-content .wp-block-gallery.has-nested-images figure.wp-block-image { overflow: hidden; border-radius: 14px; }
.page-template-casa-page .entry-content .wp-block-gallery.is-cropped img { border-radius: 0; transition: transform .5s ease; }
.page-template-casa-page .entry-content .wp-block-gallery figure.wp-block-image:hover img { transform: scale(1.05); }

/* ── Entradilla (h3 > .tagline > h2): cita en serif como la de la portada ── */
.page-template-casa-page .entry-content > h3:has(.tagline) {
	max-width: 52rem;
	margin: clamp(3rem, 2rem + 3vw, 5rem) auto 2rem;
	text-align: center;
}
.page-template-casa-page .entry-content > h3:has(.tagline)::before {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin: 0 auto 1.4rem;
	border-radius: 3px;
	background: var(--fk-oro);
}
.page-template-casa-page .tagline { margin: 0; }
.page-template-casa-page .tagline h2 {
	font-family: var(--fk-serif);
	font-size: clamp(1.25rem, 1rem + 1vw, 1.7rem);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -.01em;
	color: var(--global-palette3);
}

/* ── Descripción: columna de lectura ── */
.page-template-casa-page .entry-content > p { max-width: 46rem; margin-left: auto; margin-right: auto; font-size: 1.05rem; line-height: 1.75; }

/* ── Equipamiento: tarjetas salvia, icono en círculo verde y lista con checks ── */
.page-template-casa-page .entry-content > .wp-block-columns:has(> .wp-block-column > h3 + ul) {
	gap: 1.25rem !important;
	margin: clamp(3rem, 2rem + 3vw, 5rem) 0 !important;
}
.page-template-casa-page .wp-block-column:has(> h3 + ul) {
	padding: 1.6rem 1.5rem 1.4rem;
	border-radius: var(--fk-radio);
	background: var(--global-palette8) var(--fk-textura);
}
.page-template-casa-page .wp-block-column > h3:has(+ ul) {
	position: relative;
	display: flex;
	align-items: center;
	gap: .8rem;
	min-height: 46px;
	margin: 0 0 1rem;
	font-size: 1.35rem;
	color: var(--global-palette3);
}
/* El círculo va aparte: el filtro que blanquea el icono PNG blanquearía también su fondo */
.page-template-casa-page .wp-block-column > h3:has(+ ul):has(> img)::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 46px;
	height: 46px;
	margin-top: -23px;
	border-radius: 50%;
	background: var(--global-palette1);
}
.page-template-casa-page .wp-block-column > h3:has(+ ul) > img {
	position: relative;
	z-index: 1;
	flex: 0 0 auto;
	width: 24px !important;
	height: 24px !important;
	margin: 0 11px !important;
	filter: brightness(0) invert(1);
}
.page-template-casa-page .wp-block-column > h3 + ul,
.page-template-casa-page .panel ul { margin: 0; padding: 0; list-style: none; }
.page-template-casa-page .wp-block-column > h3 + ul li,
.page-template-casa-page .panel ul li {
	position: relative;
	margin: 0;
	padding: .38rem 0 .38rem 1.9rem;
	border-top: 1px solid rgba(47, 82, 64, .1);
	color: var(--global-palette4);
	line-height: 1.45;
}
.page-template-casa-page .wp-block-column > h3 + ul li:first-child,
.page-template-casa-page .panel ul li:first-child { border-top: 0; }
.page-template-casa-page .wp-block-column > h3 + ul li::before,
.page-template-casa-page .panel ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .62rem;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--global-palette1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 64% no-repeat;
}

/* ── Precios y condiciones ── */
.page-template-casa-page .entry-content > .wp-block-columns:has(#TablaPrecios) {
	gap: 1.5rem !important;
	align-items: flex-start;
	margin: clamp(3rem, 2rem + 3vw, 5rem) 0 !important;
}
.page-template-casa-page #TablaPrecios { overflow-x: auto; }
.page-template-casa-page .precios {
	width: 100%;
	margin: 0 0 1.5rem;
	border: 0;
	border-radius: var(--fk-radio);
	box-shadow: 0 16px 40px rgba(15, 30, 22, .1);
	font-size: .95rem;
}
.page-template-casa-page .precios tr:first-child td,
.page-template-casa-page .precios tr:nth-child(2) td:not(.preciotitulo) {
	background: var(--global-palette1);
	color: #fff;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	font-size: .78rem;
	border-top-color: rgba(255, 255, 255, .15);
}
.page-template-casa-page .precios tr:first-child td.precioalta,
.page-template-casa-page .precios tr:nth-child(2) td.precioalta { background: var(--global-palette2); color: var(--fk-oro); }
.page-template-casa-page .precios tr:first-child td.preciotitulo {
	background: var(--global-palette2);
	font-family: var(--fk-serif);
	font-size: 1.15rem;
	letter-spacing: 0;
	text-transform: none;
}
.page-template-casa-page .precios td.preciotitulo { background: var(--global-palette8); font-size: .8rem; letter-spacing: .04em; color: var(--global-palette3); }
.page-template-casa-page .precios td.precioalta { background: #fbf2dc; }
.page-template-casa-page .precios tr:nth-child(n+3) td:not(.preciotitulo) { font-family: var(--fk-serif); font-size: 1.15rem; font-weight: 700; color: var(--global-palette3); }

/* Condiciones (.panel): tarjeta salvia en vez de caja con cabecera de color */
.page-template-casa-page .panel {
	border: 0;
	border-radius: var(--fk-radio);
	background: var(--global-palette8) var(--fk-textura);
	box-shadow: none;
	padding: 1.6rem 1.6rem 1.2rem;
}
.page-template-casa-page .panel .panel-heading {
	margin: 0 0 .8rem;
	padding: 0;
	background: none;
	color: var(--global-palette3);
	font-family: var(--fk-serif);
	font-size: 1.35rem;
	text-align: left !important;
}
.page-template-casa-page .panel .panel-body { padding: 0 0 .8rem; margin-bottom: .6rem; border-bottom: 1px solid rgba(47, 82, 64, .12); }
.page-template-casa-page .panel ul li { font-size: .95rem; }
.page-template-casa-page .panel a { color: var(--global-palette1); font-weight: 700; }
.page-template-casa-page .wp-block-column:has(#TablaPrecios) .wp-block-image img { max-width: 180px; height: auto; }
.page-template-casa-page .wp-block-column:has(#TablaPrecios) .has-small-font-size { color: var(--global-palette6); }

/* ── Botones del contenido (Contacto / Reservar / teléfono): los del tema ── */
.page-template-casa-page .entry-content .wp-block-buttons { gap: .75rem; flex-wrap: wrap !important; margin: 2.5rem 0 clamp(3rem, 2rem + 3vw, 5rem); }
.page-template-casa-page .entry-content .wp-block-button__link {
	padding: .95em 1.9em;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--global-palette1) !important;
	box-shadow: inset 0 0 0 2px var(--global-palette1);
	font-family: var(--fk-sans);
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	transition: background-color .2s ease, color .2s ease;
}
.page-template-casa-page .entry-content .wp-block-button__link:hover { background: var(--global-palette1) !important; color: #fff !important; }
.page-template-casa-page .entry-content .wp-block-button__link[href*="reserv"] { background: var(--fk-oro) !important; color: #1d2622 !important; box-shadow: none; }
.page-template-casa-page .entry-content .wp-block-button__link[href*="reserv"]:hover { background: var(--fk-oro-claro) !important; }

/* ── Opiniones: titular de sección ── */
.page-template-casa-page .entry-content > h4 {
	margin: clamp(3rem, 2rem + 3vw, 5rem) 0 1.5rem;
	text-align: center;
	font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.3rem);
	color: var(--global-palette3);
}
.page-template-casa-page .entry-content > h4::before {
	content: "\2605\2605\2605\2605\2605";
	display: block;
	margin-bottom: .5rem;
	font-family: var(--fk-sans);
	font-size: .9rem;
	letter-spacing: .3em;
	color: var(--fk-oro);
}
.page-template-casa-page .entry-content > p:empty { display: none; }

@media (max-width: 767px) {
	.page-template-casa-page .precios td { padding: .5em .6em; }
	.fk-cabecera--galeria .fk-galeria .fk-galeria__slide { height: clamp(420px, 70svh, 620px); }
}
@media (prefers-reduced-motion: reduce) {
	.page-template-casa-page .entry-content .wp-block-gallery img { transition: none; }
	.page-template-casa-page .entry-content .wp-block-gallery figure.wp-block-image:hover img { transform: none; }
}

/* Paso 1: el botón "Buscar" del buscador heredaba la serif de los titulares */
.rv2-buscador input[type="submit"],
.rv2-buscador button { font-family: var(--fk-sans); }

/* Franja de datos clave sin la clase .iconos-casa (Los Moros, Tío Pancho, Las dos casas,
   Piscina): mismo formato que .iconos-casa */
.page-template-casa-page .entry-content > .title-casa + .wp-block-columns:not(.iconos-casa) {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
	gap: 1rem 1.5rem !important;
	border-radius: var(--fk-radio);
}
.page-template-casa-page .entry-content > .title-casa + .wp-block-columns .wp-block-column { display: flex; align-items: center; justify-content: flex-start !important; margin: 0 !important; text-align: left !important; }
.page-template-casa-page .entry-content > .title-casa + .wp-block-columns p:has(> img) {
	position: relative;
	display: flex;
	align-items: center;
	gap: .7rem;
	min-height: 46px;
	margin: 0;
	text-align: left !important;
	color: var(--global-palette4);
}
.page-template-casa-page .entry-content > .title-casa + .wp-block-columns p:has(> img)::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 46px;
	height: 46px;
	margin-top: -23px;
	border-radius: 50%;
	background: var(--global-palette1);
}
.page-template-casa-page .entry-content > .title-casa + .wp-block-columns p > img {
	position: relative;
	z-index: 1;
	width: 24px !important;
	height: 24px !important;
	margin: 0 11px !important;
	filter: brightness(0) invert(1);
}
.page-template-casa-page .entry-content > .title-casa + .wp-block-columns p strong {
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--global-palette3);
}
/* Contador de fotos por encima de la tarjeta que monta sobre la galería */
.fk-cabecera--galeria .fk-galeria__count { bottom: 3.6rem; }
/* Entradilla en h2 (El Berrueco) igual que en h3 */
.page-template-casa-page .entry-content > h2:has(.tagline) { max-width: 52rem; margin: clamp(3rem, 2rem + 3vw, 5rem) auto 2rem; text-align: center; }
/* Piscina: listas sueltas como listas con check */
.page-template-casa-page .entry-content > ul { max-width: 46rem; margin-left: auto; margin-right: auto; padding: 0; list-style: none; }
.page-template-casa-page .entry-content > ul li { position: relative; padding: .38rem 0 .38rem 1.9rem; }
.page-template-casa-page .entry-content > ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .62rem;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--global-palette1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 64% no-repeat;
}
.page-template-casa-page .entry-content > h3:not(:has(.tagline)) { max-width: 46rem; margin: 2.5rem auto 1rem; color: var(--global-palette3); }

/* ==========================================================================
   ENTORNO: listado por cercanía, ficha rápida, índice y cierre con las casas
   ========================================================================== */

/* ── Filtros (radios + :has, sin JS) ── */
.fk-entorno { margin-top: 1rem; }
.fk-filtros { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.75rem; padding: 0; border: 0; }
.fk-filtros input { position: absolute; opacity: 0; pointer-events: none; }
.fk-filtros label {
	padding: .55em 1.1em;
	border-radius: 999px;
	background: var(--global-palette8);
	color: var(--global-palette3);
	font-size: .9rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.fk-filtros label:hover { background: var(--global-palette7); }
.fk-filtros input:checked + label { background: var(--global-palette1); color: #fff; }
.fk-filtros input:focus-visible + label { outline: 3px solid var(--fk-oro); outline-offset: 2px; }
.fk-entorno:has(#fk-filtro-cerca:checked) .fk-lugar:not([data-tags~="cerca"]),
.fk-entorno:has(#fk-filtro-historia:checked) .fk-lugar:not([data-tags~="historia"]),
.fk-entorno:has(#fk-filtro-naturaleza:checked) .fk-lugar:not([data-tags~="naturaleza"]),
.fk-entorno:has(#fk-filtro-pueblos:checked) .fk-lugar:not([data-tags~="pueblos"]) { display: none; }

/* ── Tarjeta "lugar": fila con miniatura en móvil, tarjeta con foto arriba en escritorio ── */
.fk-lugares { display: grid; gap: 1rem; }
.fk-lugar {
	position: relative;
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 1rem;
	align-items: center;
	padding: .6rem;
	border-radius: var(--fk-radio);
	background: var(--global-palette9);
	box-shadow: 0 6px 22px rgba(15, 30, 22, .08);
}
.fk-lugar__media { display: block; overflow: hidden; border-radius: 12px; aspect-ratio: 1; background: var(--global-palette7); }
.fk-lugar__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.fk-lugar:hover .fk-lugar__media img { transform: scale(1.05); }
.fk-lugar__texto { min-width: 0; }
.fk-lugar__meta { display: flex; align-items: center; gap: .35rem; margin: 0 0 .25rem; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--global-palette1); }
.fk-lugar__meta .fk-icono { flex: 0 0 auto; width: 15px; height: 15px; }
.fk-lugar__titulo { margin: 0 0 .25rem; font-size: 1.2rem; line-height: 1.15; }
.fk-lugar__titulo a { color: var(--global-palette3); text-decoration: none; }
.fk-lugar__titulo a::after { content: ""; position: absolute; inset: 0; } /* toda la tarjeta enlaza */
.fk-lugar__resumen { display: -webkit-box; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: .9rem; line-height: 1.4; color: var(--global-palette5); }
@media (min-width: 700px) {
	.fk-lugares { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem; }
	.fk-lugar { grid-template-columns: 1fr; align-items: start; gap: 0; padding: 0; overflow: hidden; }
	.fk-lugar__media { border-radius: 0; aspect-ratio: 3 / 2; }
	.fk-lugar__texto { padding: 1.1rem 1.25rem 1.3rem; }
	.fk-lugar__titulo { font-size: 1.35rem; }
}

/* ── Mapa plegado (el iframe no se descarga hasta abrirlo) ── */
.fk-mapa { margin: 2rem 0 0; border-radius: var(--fk-radio); background: var(--global-palette8); overflow: hidden; }
.fk-mapa summary {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: 1rem 1.25rem;
	font-weight: 700;
	color: var(--global-palette1);
	cursor: pointer;
	list-style: none;
}
.fk-mapa summary::-webkit-details-marker { display: none; }
.fk-mapa summary .fk-icono { width: 20px; height: 20px; }
.fk-mapa iframe { display: block; border: 0; }

/* ── Ficha rápida al principio de cada lugar ── */
.fk-datos {
	margin: 0 0 2rem;
	padding: 1.25rem 1.4rem;
	border-radius: var(--fk-radio);
	background: var(--global-palette8) var(--fk-textura);
}
.fk-datos__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: .9rem 1.25rem; margin: 0; padding: 0; list-style: none; }
.fk-datos__lista li { display: flex; align-items: center; gap: .7rem; margin: 0; line-height: 1.3; color: var(--global-palette3); font-weight: 700; font-size: .95rem; }
.fk-datos__lista small { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--global-palette6); }
.fk-datos__icono { display: grid; flex: 0 0 auto; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--global-palette1); color: #fff; }
.fk-datos__icono .fk-icono { width: 20px; height: 20px; }
.fk-datos__ruta { margin-top: 1.1rem; }
.fk-datos__ruta .fk-icono { width: 18px; height: 18px; }

/* ── Índice ("En esta página") ── */
.fk-indice { margin: 0 0 2.5rem; }
.fk-indice .fk-kicker { margin-bottom: .5rem; }
.fk-indice ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.fk-indice li { margin: 0; }
.fk-indice a { display: inline-block; padding: .45em 1em; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--global-palette7); font-size: .9rem; font-weight: 700; color: var(--global-palette1); text-decoration: none; }
.fk-indice a:hover { background: var(--global-palette8); }
.single-post .entry-content h2[id] { scroll-margin-top: 90px; }

/* ── Contenido de los lugares: fotos más contenidas ── */
.single-post .entry-content .wp-block-gallery.has-nested-images { gap: .5rem; }
.single-post .entry-content .wp-block-gallery figure.wp-block-image { overflow: hidden; border-radius: 12px; }
.single-post .entry-content .wp-block-gallery figure.wp-block-image img { border-radius: 0; }
.single-post .entry-content .wp-block-columns { gap: 1.5rem; align-items: center; }
.single-post .entry-content .wp-block-column img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.single-post .entry-content > h2 { margin-top: 3rem; }

/* ── Cierre: dónde dormir + otros planes ── */
.fk-entorno-cierre { margin: clamp(3rem, 2rem + 3vw, 5rem) 0 0; }
.fk-entorno-cierre > .fk-cabecera-seccion { margin-bottom: 1.75rem; }
.fk-entorno-cierre > .fk-cabecera-seccion ~ .fk-cabecera-seccion { margin-top: clamp(3rem, 2rem + 3vw, 5rem); }
.fk-entorno-cierre__boton { margin: 1.75rem 0 0; text-align: center; }
.single-post .fk-entorno-cierre { max-width: var(--fk-contenedor); margin-left: auto; margin-right: auto; padding: clamp(3rem, 2rem + 3vw, 5rem) 1.5rem 0; }
.fk-lugares--tres { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
@media (prefers-reduced-motion: reduce) {
	.fk-lugar__media img { transition: none; }
	.fk-lugar:hover .fk-lugar__media img { transform: none; }
}

/* Nota bajo la tabla de precios (enlace a las temporadas de Condiciones) */
.page-template-casa-page .precios-nota { margin: -.75rem 0 1.5rem; font-size: .9rem; color: var(--global-palette6); }
.page-template-casa-page .precios-nota a { color: var(--global-palette1); font-weight: 700; }

/* Rótulo de la tarjeta de lugar: texto corrido (en móvil no cabe en una línea) */
.fk-lugar__meta { display: block; line-height: 1.35; }
.fk-lugar__meta .fk-icono { display: inline-block; margin-right: .2rem; vertical-align: -2px; }

/* Cierre de Entorno en móvil: las casas en carrusel horizontal (apiladas ocupaban ~1800 px) */
@media (max-width: 699px) {
	.fk-entorno-cierre .fk-grid--casa-mini { display: flex; gap: 1rem; margin: 0 -1.5rem; padding: 0 1.5rem .75rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 1.5rem; scrollbar-width: thin; }
	.fk-entorno-cierre .fk-grid--casa-mini > * { flex: 0 0 72%; scroll-snap-align: start; }
}

/* ==========================================================================
   GALERÍAS: botón "Ver las N fotos", mosaico y visor a pantalla completa
   (assets/js/galeria.js; sustituye a Responsive Lightbox)
   ========================================================================== */

/* Carrusel: la foto se puede abrir */
.fk-galeria__slide { cursor: zoom-in; }
.fk-galeria__todas {
	position: absolute;
	left: .75rem;
	bottom: .75rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .55em 1em;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .94);
	color: var(--global-palette3);
	font-family: var(--fk-sans);
	font-size: .85rem;
	font-weight: 700;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .2);
	cursor: pointer;
}
.fk-galeria__todas:hover { background: #fff; }
.fk-galeria__todas svg { width: 16px; height: 16px; fill: currentColor; }
.fk-cabecera--galeria .fk-galeria__todas { bottom: 3.6rem; left: 1rem; }
@media (min-width: 900px) { .fk-cabecera--galeria .fk-galeria__todas { left: max(1.5rem, calc(50% - 620px)); } }

/* Mosaico: galerías del contenido con 7 fotos o más = una grande + cuatro, "+N fotos" en la
   quinta y el resto en el visor. Solo CSS (:has): sin saltos al cargar el JS. Las fotos
   ocultas (display:none, loading=lazy) no se descargan. */
.entry-content .wp-block-gallery.has-nested-images:has(> figure.wp-block-image:nth-of-type(7)) {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: clamp(110px, 12vw, 190px);
	gap: .5rem !important;
}
.entry-content .wp-block-gallery.has-nested-images:has(> figure.wp-block-image:nth-of-type(7)) > figure.wp-block-image {
	position: relative;
	width: auto !important;
	height: auto;
	margin: 0 !important;
	overflow: hidden;
	border-radius: 12px;
}
.entry-content .wp-block-gallery.has-nested-images:has(> figure.wp-block-image:nth-of-type(7)) > figure.wp-block-image:first-of-type { grid-column: span 2; grid-row: span 2; }
.entry-content .wp-block-gallery.has-nested-images:has(> figure.wp-block-image:nth-of-type(7)) > figure.wp-block-image:nth-of-type(n+6) { display: none !important; }
.entry-content .wp-block-gallery.has-nested-images:has(> figure.wp-block-image:nth-of-type(7)) > figure.wp-block-image > a,
.entry-content .wp-block-gallery.has-nested-images:has(> figure.wp-block-image:nth-of-type(7)) > figure.wp-block-image img { display: block; width: 100%; height: 100% !important; object-fit: cover; border-radius: 0; }
.entry-content .wp-block-gallery figure.wp-block-image > a { cursor: zoom-in; }
.entry-content .wp-block-gallery figure[data-mas] { cursor: pointer; }
.entry-content .wp-block-gallery figure[data-mas]::after {
	content: attr(data-mas);
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: rgba(20, 34, 27, .58);
	color: #fff;
	font-family: var(--fk-sans);
	font-size: clamp(1rem, .9rem + .5vw, 1.35rem);
	font-weight: 700;
	pointer-events: none;
}
@media (max-width: 699px) {
	.entry-content .wp-block-gallery.has-nested-images:has(> figure.wp-block-image:nth-of-type(7)) { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 34vw; }
	.entry-content .wp-block-gallery.has-nested-images:has(> figure.wp-block-image:nth-of-type(7)) > figure.wp-block-image:first-of-type { grid-row: span 1; grid-column: span 2; }
}

/* Visor */
html.fk-visor-abierto { overflow: hidden; }
.fk-visor {
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: #121a16;
	color: #fff;
	overscroll-behavior: contain;
}
.fk-visor::backdrop { background: #121a16; }
.fk-visor[open] { display: flex; flex-direction: column; }
.fk-visor__barra { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 1rem; padding: .6rem .75rem; }
.fk-visor__contador { margin: 0; font-family: var(--fk-sans); font-size: .9rem; font-variant-numeric: tabular-nums; color: rgba(255, 255, 255, .85); }
.fk-visor button { font-family: var(--fk-sans); cursor: pointer; }
.fk-visor__todas,
.fk-visor__cerrar {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	min-height: 44px;
	padding: 0 .9rem;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-size: .85rem;
	font-weight: 700;
}
.fk-visor__cerrar { width: 44px; padding: 0; justify-content: center; }
.fk-visor__todas:hover,
.fk-visor__cerrar:hover { background: rgba(255, 255, 255, .2); }
.fk-visor__todas svg { width: 16px; height: 16px; fill: currentColor; }
.fk-visor__cerrar svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.fk-visor[data-vista="rejilla"] .fk-visor__todas { visibility: hidden; }
.fk-visor button:focus-visible { outline: 3px solid var(--fk-oro); outline-offset: 2px; }

.fk-visor__rejilla {
	flex: 1 1 auto;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: 38vw;
	gap: 4px;
	align-content: start;
	padding: 0 4px 4px;
	overflow-y: auto;
	overscroll-behavior: contain;
}
@media (min-width: 900px) {
	.fk-visor__rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 22vw; max-width: 1400px; width: 100%; margin: 0 auto; gap: 8px; padding: 0 8px 8px; }
}
.fk-visor__rejilla[hidden] { display: none; }
.fk-visor__rejilla button { display: block; padding: 0; border: 0; overflow: hidden; background: #22302a; }
.fk-visor__rejilla img { display: block; width: 100%; height: 100%; object-fit: cover; transition: opacity .2s ease; }
.fk-visor__rejilla button:hover img { opacity: .85; }

.fk-visor__pase { position: relative; flex: 1 1 auto; min-height: 0; }
.fk-visor__pase[hidden] { display: none; }
.fk-visor__pista {
	display: flex;
	height: 100%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	outline: 0;
}
.fk-visor__pista::-webkit-scrollbar { display: none; }
.fk-visor__foto {
	display: flex;
	flex: 0 0 100%;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0 0 1rem;
	scroll-snap-align: center;
	scroll-snap-stop: always;
}
.fk-visor__foto img { display: block; max-width: 100%; max-height: calc(100% - 2rem); width: auto; height: auto; object-fit: contain; }
.fk-visor__foto figcaption { margin-top: .6rem; padding: 0 1rem; font-size: .9rem; color: rgba(255, 255, 255, .8); text-align: center; }
.fk-visor__nav {
	position: absolute;
	top: 50%;
	display: none;
	width: 52px;
	height: 52px;
	margin-top: -26px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	font-size: 32px;
	line-height: 1;
}
.fk-visor__nav:hover { background: rgba(255, 255, 255, .24); }
.fk-visor__nav:disabled { opacity: 0; pointer-events: none; }
.fk-visor__nav--prev { left: 1rem; }
.fk-visor__nav--next { right: 1rem; }
@media (hover: hover) and (min-width: 700px) { .fk-visor__nav:not([hidden]) { display: grid; place-items: center; } }
@media (prefers-reduced-motion: reduce) { .fk-visor__rejilla img { transition: none; } }

/* ==========================================================================
   ARREGLOS (revisión del cliente)
   ========================================================================== */

/* ── Enlaces del texto: que se vean como enlaces (antes se confundían con el texto) ── */
.entry-content :is(p, li, td, h3, h4) a:not([class]) {
	color: var(--global-palette1);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--fk-oro);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}
.entry-content :is(p, li, td, h3, h4) a:not([class]):hover { color: var(--global-palette2); text-decoration-color: currentColor; }

/* ── Tarjetas de casas dentro del contenido ([casas]) ── */
.fk-casas-contenido { margin: 1.5rem 0 2.5rem; }
.fk-casas-contenido .fk-grid--casa-mini { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }

/* ── Menú del móvil: verde de la marca, textos legibles, sin selector de idioma ── */
#mobile-drawer .drawer-inner { background: var(--global-palette2) var(--fk-textura-clara); }
#mobile-drawer .mobile-navigation ul li > a,
#mobile-drawer .mobile-navigation ul li > .drawer-nav-drop-wrap > a { color: #eef1e7; font-family: var(--fk-sans); font-weight: 700; }
#mobile-drawer .mobile-navigation ul ul li > a { font-weight: 400; }
#mobile-drawer .mobile-navigation ul li.current-menu-item > a,
#mobile-drawer .mobile-navigation ul li.current-menu-item > .drawer-nav-drop-wrap > a,
#mobile-drawer .mobile-navigation ul li > a:hover { color: var(--fk-oro); }
#mobile-drawer .mobile-navigation ul li:not(.menu-item-has-children) a,
#mobile-drawer .mobile-navigation ul li .drawer-nav-drop-wrap { border-bottom-color: rgba(255, 255, 255, .12); }
#mobile-drawer .mobile-navigation .drawer-sub-toggle { color: #fff; border-left-color: rgba(255, 255, 255, .12); }
#mobile-drawer .mobile-navigation ul ul { background: rgba(0, 0, 0, .12); }
#mobile-drawer .drawer-header .drawer-toggle { color: #fff; }
#mobile-drawer .wpml-ls-item,
#mobile-drawer .menu-item-language,
#mobile-drawer .wpml-ls { display: none !important; }
#mobile-drawer .mobile-html,
#mobile-drawer .mobile-html a { color: #fff; }
#mobile-drawer .mobile-html a { font-weight: 700; text-decoration: none; }

/* ── Aviso de cookies: compacto, con los colores del tema ── */
#cookie-notice { font-family: var(--fk-sans); }
#cookie-notice .cookie-notice-container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .6rem 1.25rem;
	padding: .9rem 1rem;
	font-size: .88rem;
	line-height: 1.4;
	text-align: left;
}
#cookie-notice .cn-text-container { flex: 1 1 320px; max-width: 44rem; margin: 0; }
#cookie-notice .cn-buttons-container { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; }
#cookie-notice .cn-button {
	margin: 0 !important;
	padding: .55em 1.2em !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-family: var(--fk-sans) !important;
	font-size: .85rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
#cookie-notice #cn-accept-cookie { background: var(--fk-oro) !important; color: #1d2622 !important; }
#cookie-notice #cn-refuse-cookie { background: transparent !important; color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .8); }
#cookie-notice #cn-more-info { padding-left: .3em !important; padding-right: .3em !important; background: none !important; color: #fff !important; text-decoration: underline; }
#cookie-notice .cn-close-icon { display: none; } /* ya hay botón "Rechazar" */
@media (max-width: 600px) {
	#cookie-notice .cookie-notice-container { padding: .75rem .9rem; font-size: .8rem; }
	#cookie-notice .cn-buttons-container { width: 100%; }
	#cookie-notice #cn-accept-cookie,
	#cookie-notice #cn-refuse-cookie { flex: 1 1 0; }
}

/* ── Entorno: cada tarjeta, un bloque con borde y fondo (que no se mezclen texto y foto de
   tarjetas distintas) ── */
.fk-lugar { background: var(--global-palette8); border: 1px solid var(--global-palette7); box-shadow: none; }
.fk-lugar:hover { border-color: var(--global-palette1); }
@media (min-width: 700px) { .fk-lugares { gap: 2rem 1.5rem; } }

/* ── Entorno: "Dónde dormir" en segundo plano (tarjetas pequeñas, sin botones) ── */
.fk-entorno-cierre .fk-cabecera-seccion { max-width: 640px; }
.fk-entorno-cierre .fk-cabecera-seccion h2 { font-size: clamp(1.35rem, 1.1rem + .9vw, 1.8rem); }
.fk-entorno-cierre--casas .fk-grid--casa-mini { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 1rem; }
.fk-entorno-cierre--casas .fk-card--casa-mini .fk-card__media { aspect-ratio: 3 / 2; }
.fk-entorno-cierre--casas .fk-card__body { padding: .7rem .8rem .85rem; }
.fk-entorno-cierre--casas .fk-card__title { margin: 0; font-size: 1rem; }
.fk-entorno-cierre--casas .fk-card__stars,
.fk-entorno-cierre--casas .fk-card__sub,
.fk-entorno-cierre--casas .fk-card .fk-btn { display: none; }
.fk-entorno-cierre--casas .fk-card { position: relative; }
.fk-entorno-cierre--casas .fk-card__title a::after { content: ""; position: absolute; inset: 0; }
.fk-entorno-cierre--casas .fk-card__badge { font-size: .72rem; }
.fk-entorno-cierre--casas .fk-entorno-cierre__boton .fk-btn { padding: .75em 1.5em; font-size: .8rem; }
@media (max-width: 699px) {
	.fk-entorno-cierre--casas .fk-grid--casa-mini > * { flex-basis: 46%; }
}

/* Cabecera con galería: sitio para "Ver las N fotos" y el contador bajo el titular */
.fk-cabecera--galeria .fk-cabecera__texto { padding-bottom: clamp(6.5rem, 5.5rem + 2vw, 7.5rem); }

/* ── Aviso en las ofertas caducadas ── */
.fk-aviso {
	margin: 0 0 2rem;
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--fk-oro);
	border-radius: 0 var(--fk-radio) var(--fk-radio) 0;
	background: var(--global-palette8);
	font-weight: 700;
	color: var(--global-palette3);
}

/* ── Asistente (sustituye a Joinchat) ── */
.fk-asistente { position: fixed; right: 1rem; bottom: 1rem; z-index: 9990; display: flex; flex-direction: column; align-items: flex-end; gap: .75rem; font-family: var(--fk-sans); }
body.cookies-not-set .fk-asistente { bottom: 9.5rem; }
@media (min-width: 601px) { body.cookies-not-set .fk-asistente { bottom: 6rem; } }
.fk-asistente__boton {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .75em 1.2em;
	border: 0;
	border-radius: 999px;
	background: var(--global-palette1);
	color: #fff;
	font-family: inherit;
	font-size: .9rem;
	font-weight: 700;
	box-shadow: 0 6px 20px rgba(15, 30, 22, .3);
	cursor: pointer;
}
.fk-asistente__boton:hover { background: var(--global-palette2); }
.fk-asistente__boton svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.fk-asistente.is-abierto .fk-asistente__boton span { display: none; }
@media (max-width: 600px) { .fk-asistente__boton span { display: none; } .fk-asistente__boton { padding: .85em; } }
.fk-asistente__panel {
	display: flex;
	flex-direction: column;
	width: min(360px, calc(100vw - 2rem));
	max-height: min(560px, 75vh);
	overflow: hidden;
	border-radius: var(--fk-radio);
	background: var(--global-palette9);
	box-shadow: 0 16px 48px rgba(15, 30, 22, .28);
}
.fk-asistente__panel[hidden] { display: none; }
.fk-asistente__cab { display: flex; align-items: center; justify-content: space-between; padding: .8rem 1rem; background: var(--global-palette2); color: #fff; }
.fk-asistente__cerrar { width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.fk-asistente__log { flex: 1 1 auto; display: flex; flex-direction: column; gap: .5rem; min-height: 80px; padding: .9rem; overflow-y: auto; font-size: .9rem; line-height: 1.45; }
.fk-asistente__msg { max-width: 88%; padding: .6rem .8rem; border-radius: 14px; }
.fk-asistente__msg--bot { align-self: flex-start; background: var(--global-palette8); color: var(--global-palette3); border-bottom-left-radius: 4px; }
.fk-asistente__msg--yo { align-self: flex-end; background: var(--global-palette1); color: #fff; border-bottom-right-radius: 4px; }
.fk-asistente__link { display: inline-block; margin-top: .35rem; font-weight: 700; color: var(--global-palette1); text-decoration: underline; text-decoration-color: var(--fk-oro); text-underline-offset: 3px; }
.fk-asistente__rapidas { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0 .9rem .7rem; }
.fk-asistente__rapidas button { padding: .4em .8em; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1.5px var(--global-palette7); color: var(--global-palette1); font-family: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; }
.fk-asistente__rapidas button:hover { background: var(--global-palette8); }
.fk-asistente__form { display: flex; gap: .4rem; padding: .7rem .9rem; border-top: 1px solid var(--global-palette7); }
.fk-asistente__form input { flex: 1 1 auto; min-width: 0; padding: .55em .8em; border: 1px solid var(--global-palette7); border-radius: 999px; font-family: inherit; font-size: .9rem; }
.fk-asistente__form button { padding: .55em 1em; border: 0; border-radius: 999px; background: var(--fk-oro); color: #1d2622; font-family: inherit; font-weight: 700; cursor: pointer; }
.fk-asistente button:focus-visible, .fk-asistente input:focus-visible { outline: 3px solid var(--fk-oro); outline-offset: 2px; }

/* Ofertas: precio tachado con contraste suficiente (antes gris claro) */
html body .rv2-ofertas .rv2-of-old { color: var(--global-palette5); }

/* Ficha: entradilla (antes un H3 con un H2 dentro; ahora un párrafo, sin romper el orden de encabezados) */
.page-template-casa-page .entry-content > p.fk-entradilla {
	max-width: 52rem;
	margin: clamp(3rem, 2rem + 3vw, 5rem) auto 2rem;
	font-family: var(--fk-serif);
	font-size: clamp(1.25rem, 1rem + 1vw, 1.7rem);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -.01em;
	text-align: center;
	color: var(--global-palette3);
}
.page-template-casa-page .entry-content > p.fk-entradilla::before {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin: 0 auto 1.4rem;
	border-radius: 3px;
	background: var(--fk-oro);
}

/* Créditos de fotos de Wikimedia Commons (licencias CC): discretos, al final de la entrada */
.entry-content .fk-creditos { font-size: .8rem; line-height: 1.5; color: var(--global-palette6); }
.entry-content .fk-creditos li { margin: 0 0 .2rem; }

/* ── Calendario de disponibilidad (inc/disponibilidad.php + assets/js/disponibilidad.js) ── */
.fk-dispo { max-width: 640px; font-family: var(--fk-sans); color: var(--global-palette4); }
.fk-dispo__aviso { margin: 0; padding: .8rem 0; color: var(--global-palette6); }
.fk-dispo__cab { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; }
.fk-dispo__ayuda { margin: 0; font-size: .9rem; text-align: center; color: var(--global-palette6); }
.fk-dispo__nav { flex: none; width: 2.4rem; height: 2.4rem; padding: 0; border: 1px solid var(--global-palette7); border-radius: 50%; background: #fff; color: var(--global-palette1); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.fk-dispo__nav:disabled { opacity: .35; cursor: default; }
.fk-dispo__meses { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.25rem; }
.fk-dispo__titulo { margin: 0 0 .4rem; font-weight: 700; text-align: center; color: var(--global-palette3); }
.fk-dispo__rejilla { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.fk-dispo__sem { padding-bottom: 2px; font-size: .72rem; text-align: center; text-transform: uppercase; color: var(--global-palette6); }
.fk-dispo__dia { min-height: 36px; aspect-ratio: 1; padding: 0; border: 0; border-radius: 6px; font: inherit; font-size: .88rem; cursor: pointer; }
.fk-dispo__dia:disabled { cursor: default; }
.fk-dispo__dia.is-libre,
.fk-dispo__muestra.is-libre { background: #fff; box-shadow: inset 0 0 0 1px var(--global-palette7); color: var(--global-palette3); }
.fk-dispo__dia.is-libre:not(:disabled):hover { box-shadow: inset 0 0 0 2px var(--global-palette1); }
.fk-dispo__dia.is-ocupado,
.fk-dispo__muestra.is-ocupado { background: #ecd0ca; color: #6d2a22; }
.fk-dispo__dia.is-cerrado,
.fk-dispo__muestra.is-cerrado { background: repeating-linear-gradient(135deg, #ebe9e3 0 4px, #d9d6ce 4px 8px); color: #5f655f; }
.fk-dispo__dia.is-sintarifa,
.fk-dispo__muestra.is-sintarifa { background: var(--global-palette8); color: #979e99; }
.fk-dispo__dia.is-pasado { background: transparent; color: #b8bdb9; }
/* Día ocupado que sí vale como salida (esa noche ya no se duerme) */
.fk-dispo__dia.is-ocupado:not(:disabled),
.fk-dispo__dia.is-cerrado:not(:disabled),
.fk-dispo__dia.is-sintarifa:not(:disabled) { box-shadow: inset 0 0 0 2px var(--global-palette1); cursor: pointer; }
.fk-dispo__dia.is-rango { background: var(--global-palette7); box-shadow: none; }
.fk-dispo__dia.is-ini,
.fk-dispo__dia.is-fin { background: var(--global-palette1); box-shadow: none; color: #fff; }
.fk-dispo__dia:focus-visible,
.fk-dispo__nav:focus-visible { outline: 2px solid var(--fk-oro); outline-offset: 2px; }
.fk-dispo__leyenda { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin: .8rem 0 0; padding: 0; list-style: none; font-size: .82rem; color: var(--global-palette6); }
.fk-dispo__leyenda li { display: flex; align-items: center; gap: .35rem; margin: 0; }
.fk-dispo__muestra { display: inline-block; width: 14px; height: 14px; border-radius: 4px; }
.fk-dispo__accion { margin: .9rem 0 0; }
/* Buscador (Litepicker): sin ninguna casa libre = tachado; en la ficha, días ocupados de esa casa = rayado */
.litepicker .container__days .day-item.is-locked { color: #b9bdb9; text-decoration: line-through; }
.litepicker .container__days .day-item.is-highlighted:not(.is-start-date):not(.is-end-date):not(.is-in-range) { background: repeating-linear-gradient(135deg, transparent 0 4px, rgba(138, 28, 43, .14) 4px 8px); color: inherit; }
.fk-lp-leyenda { display: flex; flex-wrap: wrap; gap: .3rem 1rem; padding: .5rem .8rem .7rem; background: #fff; font-size: .78rem; color: #6a716c; }
.fk-lp-leyenda__sin { text-decoration: line-through; }
.fk-lp-leyenda__propia { padding: 0 .3rem; background: repeating-linear-gradient(135deg, transparent 0 4px, rgba(138, 28, 43, .14) 4px 8px); }

/* Selector de idioma (inc/legacy.php): bandera en el menú principal; bandera y nombre en el del móvil */
.fk-idioma > a { display: inline-flex; align-items: center; gap: .55rem; }
.fk-bandera { display: inline-flex; line-height: 0; }
.fk-bandera svg { width: 24px; height: 16px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .18); }
.header-navigation .fk-idioma__nombre { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Formulario de opinión [fr_opinar] (reseñas/resenas.php, /opiniones/crear-opinion/) */
.fr-opinar { display: grid; gap: 1.1rem; max-width: 640px; margin: 1.5rem 0; }
.fr-opinar fieldset { display: grid; gap: .8rem; margin: 0; padding: 1rem 1.25rem 1.2rem; border: 1px solid var(--global-palette7); border-radius: var(--fk-radio); }
.fr-opinar legend { padding: 0 .4rem; font-weight: 700; color: var(--global-palette3); }
.fr-opinar__campo { display: grid; gap: .35rem; margin: 0; }
.fr-opinar__campo label { font-weight: 600; color: var(--global-palette3); }
.fr-opinar__campo label span, .fr-opinar__campo small, .fr-opinar__nota { font-weight: 400; font-size: .9rem; color: var(--global-palette5); }
.fr-opinar__nota { margin: 0; }
.fr-opinar input[type="email"], .fr-opinar input[type="date"], .fr-opinar input[type="text"], .fr-opinar textarea { width: 100%; }
.fr-opinar__estrellas-grupo { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: .2rem; }
.fr-opinar__estrellas input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.fr-opinar__estrellas label { font-size: 2.1rem; line-height: 1; color: var(--global-palette7); cursor: pointer; transition: color .15s ease; }
.fr-opinar__estrellas input:checked ~ label,
.fr-opinar__estrellas label:hover,
.fr-opinar__estrellas label:hover ~ label { color: #D4A017; }
.fr-opinar__estrellas input:focus-visible + label { outline: 2px solid var(--global-palette1); outline-offset: 2px; border-radius: 4px; }
.fr-opinar__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fr-opinar__consent { margin: 0; }
.fr-opinar__consent label { display: flex; gap: .6rem; align-items: flex-start; }
.fr-opinar__consent input { flex: 0 0 auto; margin-top: .3rem; }
.fr-opinar__enviar { margin: 0; }
.fr-opinar__errores { padding: .9rem 1.1rem; border-left: 4px solid #b3261e; border-radius: 6px; background: #fdecea; color: #5f1410; }
.fr-opinar__errores p { margin: 0 0 .3rem; font-weight: 700; }
.fr-opinar__errores ul { margin: 0; padding-left: 1.1rem; }
.fr-opinar__estancia { margin: 0; padding: .9rem 1.1rem; border-radius: var(--fk-radio); background: var(--global-palette8); }
.fr-opinar--ok { padding: 1.5rem 1.75rem; border-radius: var(--fk-radio); background: var(--global-palette8); }
.fr-opinar--ok p { margin: 0; }
.fr-opinar__gracias { margin-bottom: .4rem !important; font-family: var(--fk-serif); font-size: 1.4rem; color: var(--global-palette3); }

/* Proceso de reserva: botones del tema (dorado = seguir, contorno verde = atrás), en una línea.
   Los de reservas.css eran los del tema anterior (degradado dorado a todo el ancho, uno debajo de otro). */
.booking_process .block-next { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 1.5rem 0 0; }
.booking_process .block-next .modify_search { order: 1; }
.booking_process .block-next .button-book { order: 2; flex: 1 1 14rem; max-width: 22rem; margin-left: auto; }
.booking_process .block-next .button-book,
.booking_process .block-next .modify_search { position: static; display: block; width: auto; margin-top: 0; margin-bottom: 0; padding: 0; border-radius: 999px; background: none !important; box-shadow: none; }
.booking_process .block-next .button-book .fa { display: none; }
.booking_process .block-next input[type="submit"].button-input,
.booking_process .block-next .button2 {
	display: inline-flex; align-items: center; justify-content: center;
	width: 100%; min-height: 48px; height: auto; margin: 0; padding: .8em 1.8em !important;
	border: 2px solid transparent; border-radius: 999px; box-shadow: none; transform: none;
	font-family: inherit; font-size: 1rem; font-weight: 700; line-height: 1.2; letter-spacing: 0; text-transform: none; text-decoration: none;
	cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.booking_process .block-next .button-book input[type="submit"].button-input,
.booking_process .block-next .button-continue { background: var(--fk-oro) !important; color: #1d2622 !important; }
.booking_process .block-next .button-book input[type="submit"].button-input:hover,
.booking_process .block-next .button-continue:hover { background: var(--fk-oro-claro) !important; }
.booking_process .block-next .modify_search input[type="submit"].button-input,
.booking_process .block-next .button-back { background: transparent !important; border-color: var(--global-palette1) !important; color: var(--global-palette1) !important; }
.booking_process .block-next .modify_search input[type="submit"].button-input:hover,
.booking_process .block-next .button-back:hover { background: var(--global-palette1) !important; color: #fff !important; }
.booking_process .block-next .button2 { width: auto; }
.booking_process .block-next .button-continue { margin-left: auto; }
.booking_process .block-next input[type="submit"]:focus-visible,
.booking_process .block-next .button2:focus-visible { outline: 3px solid var(--fk-oro); outline-offset: 2px; }

/* Resumen de la reserva: "Finalizar Reserva" como botón dorado (en escritorio parecía texto). */
body #bookingSummary .summary-header-cta {
	display: inline-block; padding: .6em 1.3em !important; border: 0 !important; border-radius: 999px !important;
	background: var(--fk-oro) !important; color: #1d2622 !important;
	font-family: inherit; font-size: .95rem; font-weight: 700; line-height: 1.2; letter-spacing: 0; text-transform: none; text-decoration: none; cursor: pointer;
}
body #bookingSummary .summary-header-cta:hover { background: var(--fk-oro-claro) !important; }

/* Proceso de reserva: Kadence deja 80 px encima del contenido en escritorio (32 px en móvil); aquí
   quedaba como un hueco en blanco sobre la barra del paso. */
body[class*="page-template-book-"] .content-area { margin-top: 1.25rem; }

/* Tabla "¿Cuántos sois?" de la página de grupos (bloque tabla con clase fk-tabla-capacidad) */
.wp-block-table.fk-tabla-capacidad { margin: 1.5rem 0 2rem; overflow-x: auto; }
.wp-block-table.fk-tabla-capacidad table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--global-palette7); border-radius: var(--fk-radio); overflow: hidden; background: #fff; font-size: 1rem; }
.wp-block-table.fk-tabla-capacidad th,
.wp-block-table.fk-tabla-capacidad td { padding: .85rem 1rem; border: 0; border-bottom: 1px solid var(--global-palette7); text-align: left; vertical-align: middle; }
.wp-block-table.fk-tabla-capacidad thead th { background: var(--global-palette1); color: #fff; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.wp-block-table.fk-tabla-capacidad tbody tr:nth-child(even) td { background: var(--global-palette8); }
.wp-block-table.fk-tabla-capacidad tbody tr:last-child td { border-bottom: 0; }
.wp-block-table.fk-tabla-capacidad td:first-child { font-weight: 700; color: var(--global-palette3); white-space: nowrap; }
.wp-block-table.fk-tabla-capacidad td a { font-weight: 700; color: var(--global-palette1); }
.wp-block-table.fk-tabla-capacidad td:last-child { font-weight: 700; color: var(--global-palette3); white-space: nowrap; }
@media (max-width: 600px) {
	.wp-block-table.fk-tabla-capacidad th, .wp-block-table.fk-tabla-capacidad td { padding: .65rem .6rem; font-size: .9rem; }
}

/* Buscador: con 6 noches, oferta de añadir la 7.ª gratis (assets/js/litepicker-init.js) */
.fk-noche-gratis { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem .9rem; width: max-content; max-width: 100%; margin: .75rem auto 0; padding: .5rem .6rem .5rem 1.1rem; border-radius: 999px; background: #fff7e3; color: #1d2622; font-size: .95rem; font-weight: 600; box-shadow: 0 4px 14px rgba(0, 0, 0, .12); }
.fk-noche-gratis[hidden] { display: none; }
.fk-noche-gratis button { padding: .45em 1.1em; border: 0; border-radius: 999px; background: var(--fk-oro); color: #1d2622; font: inherit; font-weight: 700; cursor: pointer; }
.fk-noche-gratis button:hover { background: var(--fk-oro-claro); }
.fk-noche-gratis button:focus-visible { outline: 3px solid var(--global-palette1); outline-offset: 2px; }

/* Buscador: las fechas van dentro de un recuadro; sin el borde que Kadence pone a los campos de texto */
.input-group .input-date,
.input-group .input-date:focus { border: 0 !important; border-radius: 0; box-shadow: none !important; outline: none; background: transparent; }

/* Galerías de fotos pequeñas (clase fk-galeria-mini, p. ej. Fiestas): cada foto un tercio del ancho,
   también cuando hay menos de tres (WordPress las estira), y centradas. */
.wp-block-gallery.has-nested-images.fk-galeria-mini { justify-content: center; }
.wp-block-gallery.has-nested-images.fk-galeria-mini figure.wp-block-image { flex-grow: 0; }
/* Crédito de fotos de terceros sobre la propia foto: en estas galerías el pie de cada foto es
   "© Autor" enlazado a su ficha de Wikimedia Commons (autor, licencia y origen). */
.wp-block-gallery.has-nested-images.fk-galeria-mini figure.wp-block-image figcaption {
	top: auto; right: 0; bottom: 0; left: auto; width: auto; max-height: none; margin: 0; padding: .15rem .5rem;
	overflow: visible; border-radius: 6px 0 0 0; background: rgba(0, 0, 0, .4); box-shadow: none; text-shadow: none;
	font-size: .65rem; line-height: 1.35; text-align: right;
}
.wp-block-gallery.has-nested-images.fk-galeria-mini figure.wp-block-image:has(figcaption)::before { content: none; display: none; }
.wp-block-gallery.has-nested-images.fk-galeria-mini figure.wp-block-image figcaption a { color: #fff; opacity: .9; text-decoration: none; }
.wp-block-gallery.has-nested-images.fk-galeria-mini figure.wp-block-image figcaption a:hover,
.wp-block-gallery.has-nested-images.fk-galeria-mini figure.wp-block-image figcaption a:focus-visible { opacity: 1; text-decoration: underline; }

/* Pie: contacto, enlaces legales, redes y premio de Booking (inc/legacy.php) */
.fk-pie { display: grid; gap: .5rem; }
.fk-pie p { margin: 0; }
.fk-pie__legal { font-size: .85rem; opacity: .85; }
.fk-pie__fila { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-top: .35rem; }
.fk-pie__redes { display: flex; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.fk-pie__redes a { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; transition: background-color .2s ease, color .2s ease; }
.fk-pie__redes a:hover, .fk-pie__redes a:focus-visible { background: var(--fk-oro); color: #1d2622; }
.fk-pie__premio { display: block; width: 150px; height: auto; border-radius: 6px; }
.fk-pie__sello { display: block; line-height: 0; opacity: .95; transition: opacity .15s ease; }
.fk-pie__sello img { display: block; width: 104px; height: auto; }
.fk-pie__sello:hover, .fk-pie__sello:focus-visible { opacity: 1; }

/* Botones del motor de reservas: al pasar el ratón, el mismo verde más oscuro (como las ofertas) */
html #searchForm div.modify_search:hover { background: var(--rv2-vino-dark) !important; }
.rv2-btn.rv2-btn-primary { transition: background-color .15s ease, border-color .15s ease; }
.rv2-btn.rv2-btn-primary:hover,
.rv2-btn.rv2-btn-primary:focus-visible { background: var(--rv2-vino-dark) !important; border-color: var(--rv2-vino-dark) !important; }

/* Opinión desde la web: apartados (estrellas pequeñas), fotos y tipo de viaje */
.fr-opinar__apartados legend span { font-weight: 400; font-size: .9rem; color: var(--global-palette5); }
.fr-opinar__apartado { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .2rem 1rem; padding: .2rem 0; border-bottom: 1px solid var(--global-palette8); }
.fr-opinar__apartado:last-child { border-bottom: 0; }
.fr-opinar__apartado-nombre { font-weight: 600; color: var(--global-palette3); }
.fr-opinar__estrellas--mini label { font-size: 1.55rem; }
.fr-opinar select { width: 100%; max-width: 320px; }
.fr-opinar input[type="file"] { width: 100%; padding: .5rem; border: 1px dashed var(--global-palette7); border-radius: var(--fk-radio); background: var(--global-palette9); }

/* Paso 2: aviso de cliente habitual con email/teléfono distintos (reservas/paso-2.php) */
.rv2-contacto { max-width: 460px; width: calc(100% - 32px); padding: 1.5rem 1.6rem; border: 0; border-radius: var(--fk-radio); background: var(--global-palette9); color: var(--global-palette4); box-shadow: 0 18px 50px rgba(0,0,0,.25); }
.rv2-contacto::backdrop { background: rgba(29,38,34,.55); }
.rv2-contacto p { margin: 0 0 .8rem; }
.rv2-contacto__titulo { font-family: var(--fk-serif); font-size: 1.3rem; line-height: 1.3; color: var(--global-palette3); }
.rv2-contacto__botones { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.1rem 0 0 !important; }

/* Crédito de fotos de terceros (Wikimedia Commons) sobre la propia foto: "© Autor" enlazado a su
   ficha (autor, licencia y origen). Cabecera, imágenes sueltas del contenido y tarjetas de Entorno. */
.fk-lugar__media { position: relative; }
.fk-credito, .fk-lugar__credito { position: absolute; right: 0; bottom: 0; z-index: 2; padding: .15rem .5rem; border-radius: 6px 0 0 0; background: rgba(0, 0, 0, .4); color: #fff !important; font-size: .65rem; line-height: 1.35; text-decoration: none; opacity: .9; }
.fk-credito:hover, .fk-credito:focus-visible { opacity: 1; text-decoration: underline; }
.fk-lugar__credito { font-size: .6rem; pointer-events: none; }
.entry-content figure:has(> figcaption .fk-credito) { position: relative; }
.entry-content figure:has(> figcaption .fk-credito):not(.wp-block-gallery figure, .blocks-gallery-item figure) { width: fit-content; max-width: 100%; } /* fotos sueltas: la caja, del ancho de la foto (las galerías tienen su tamaño) */
.entry-content figure > figcaption:has(.fk-credito) { position: absolute; right: 0; bottom: 0; margin: 0; padding: 0; background: none; }
.entry-content figure > figcaption .fk-credito { position: static; display: inline-block; }
.entry-content figure:has(> figcaption .fk-credito) img,
.entry-content figure:has(> figcaption .fk-credito) > a { display: block; } /* sin el hueco de la línea bajo la foto */
.entry-content .wp-block-gallery figure > figcaption:has(.fk-credito) { left: auto; width: auto; max-height: none; overflow: visible; padding: 0; background: none; text-align: right; } /* galerías antiguas: sin el degradado de WordPress */
@media (max-width: 699px) { .fk-lugar__credito { display: none; } }

/* Entradas de Entorno: vuelta a la página Entorno (arriba) */
.fk-volver { margin: 0 0 1.1rem; font-size: .9rem; }
.fk-volver a { color: var(--global-palette1); font-weight: 600; text-decoration: none; }
.fk-volver a:hover, .fk-volver a:focus-visible { text-decoration: underline; }

/* Enlaces de interés: logo de Ávila Auténtica */
.fk-sello-enlaces { margin: .5rem 0 1rem; line-height: 0; }
.fk-sello-enlaces img { display: block; width: 215px; max-width: 100%; height: auto; }

/* Asistente: aviso del registro de preguntas */
.fk-asistente__nota { margin: 0; padding: 0 .9rem .6rem; font-size: .72rem; line-height: 1.35; color: var(--global-palette6); }
