/* Casas Blancas — diseño 2026 (v2). Se carga después de style.css y solo actúa con body.cb-v2 (ver inc/v2.php).
 * Conserva la estética original (fondo verde, Georgia en cursiva, carrusel, hojas, pie de hierba) y la refina:
 * portada equilibrada (presentación, rejilla de casas a todo el ancho y banda verde), tarjetas con datos visuales,
 * iconos de línea propios en lugar de emojis, más legibilidad y barra de contacto en el móvil. */

.cb-v2 { --cb-osc: #2B4723; --cb-ver: #698715; --cb-ver2: #557010; --cb-claro: #EDFFBF; --cb-linea: #d5e6a3; --cb-serif: Georgia, "Times New Roman", Times, serif; }
.cb-v2 .cb-ico { flex: none; width: 20px; height: 20px; color: var(--cb-ver); }

/* ---------- Legibilidad general ---------- */
.cb-v2 .der dd { font-size: 15px; line-height: 1.5; }
.cb-v2 .single, .cb-v2 .single p { font-size: 16px; line-height: 1.65; }
.cb-v2 .descriLarga { line-height: 1.6; }
.cb-v2 ul.breadcrumb li, .cb-v2 ul.breadcrumb li a { font-size: 13px; }

/* ---------- Carrusel: más aire abajo para los textos largos ---------- */
@media (min-width: 601px) {
	.cb-v2 #Carrusel .fotograma .mensaje { padding-top: 42px; }
	.cb-v2 #Carrusel .fotograma .mensaje .slidehed { font-size: 19px; line-height: 1.25; margin-bottom: 9px; color: #1f3a10; text-shadow: 0 1px 0 rgba(255, 255, 255, .22); }
	.cb-v2 #Carrusel .fotograma .mensaje p { font-size: 22px; line-height: 1.28; }
}

/* ---------- Portada: presentación a todo el ancho ---------- */
.cb-v2 #contenido.home .izq { float: none; width: auto; margin: 0; padding: 0; }
.cb-v2 .home .izq h5 { font-size: 15px; line-height: 1.65; color: var(--cb-osc); max-width: 860px; }

/* botones: solo en móvil (en escritorio ya están el menú, el teléfono y la banda verde) */
.cb-v2 .cb-botones { display: none; }
.cb-v2 .cb-btn { display: inline-block; padding: 10px 24px; border-radius: 6px; font: italic 19px/1.3 var(--cb-serif); text-decoration: none; color: #fff; background: linear-gradient(#80a21d, #5c7a12); border: 1px solid #4a6210; box-shadow: 0 2px 0 #3d520d, 0 4px 10px rgba(41, 69, 33, .25); text-shadow: 0 1px 0 rgba(0, 0, 0, .25); }
.cb-v2 .cb-btn-sec { color: var(--cb-osc); background: linear-gradient(#fff, #edffbf); border-color: #BFD488; box-shadow: 0 2px 0 #BFD488; text-shadow: none; }

/* servicios incluidos: franja compacta */
.cb-v2 ul.cb-servicios { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.cb-v2 ul.cb-servicios li { display: inline-flex; align-items: center; gap: 7px; padding: 6px 13px 6px 9px; background: rgba(255, 255, 255, .6); border: 1px solid var(--cb-linea); border-radius: 999px; font: italic 14px/1.2 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 ul.cb-servicios .cb-ico { width: 18px; height: 18px; }

/* ---------- Portada: rejilla de casas ---------- */
.cb-v2 ul.cb-casas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 26px 0 6px; padding: 0; list-style: none; }
.cb-v2 ul.cb-casas li { display: block; margin: 0; padding: 0; }
.cb-v2 a.cb-casa { display: flex; flex-direction: column; height: 100%; box-sizing: border-box; padding: 7px 7px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 1px 2px rgba(41, 69, 33, .07), 0 6px 18px rgba(41, 69, 33, .08); color: var(--cb-osc); text-decoration: none; transition: transform .2s, box-shadow .2s, border-color .2s; }
.cb-v2 a.cb-casa:hover, .cb-v2 a.cb-casa:focus-visible { transform: translateY(-3px); border-color: #bcd57c; box-shadow: 0 2px 4px rgba(41, 69, 33, .08), 0 12px 26px rgba(41, 69, 33, .16); }
.cb-v2 .cb-casa-foto { position: relative; display: block; overflow: hidden; border-radius: 3px; }
.cb-v2 .cb-casa-foto img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border: 0; border-radius: 0; transition: transform .45s; }
.cb-v2 a.cb-casa:hover .cb-casa-foto img { transform: scale(1.04); }
.cb-v2 .cb-casa-precio { position: absolute; left: 8px; bottom: 8px; padding: 6px 9px 5px; border-radius: 3px; background: rgba(36, 60, 28, .88); color: #fff; font: 700 16px/1 var(--cb-serif); letter-spacing: .01em; }
.cb-v2 .cb-casa-precio small { margin-left: 2px; font-size: 11px; font-weight: 400; font-style: italic; opacity: .85; }
.cb-v2 .cb-casa-cuerpo { display: flex; flex: 1; flex-direction: column; padding: 13px 7px 0; }
.cb-v2 .cb-casa-tit { display: block; margin: 0 0 8px; font: italic 400 20px/1.2 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-casa-plazas { display: inline-flex; align-self: flex-start; align-items: center; gap: 6px; margin-bottom: 11px; padding: 4px 11px 4px 8px; background: var(--cb-claro); border: 1px solid var(--cb-linea); border-radius: 999px; font: italic 13px/1.2 var(--cb-serif); color: var(--cb-ver2); }
.cb-v2 .cb-casa-plazas .cb-ico { width: 16px; height: 16px; }
.cb-v2 .cb-casa-dato { position: relative; display: block; margin-bottom: 6px; padding-left: 19px; font: 13.5px/1.45 var(--cb-serif); color: #3b4a2e; }
.cb-v2 .cb-casa-dato::before { content: ""; position: absolute; left: 0; top: .28em; width: 13px; height: 13px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23e3f3b8'/%3E%3Cpath d='M4.5 8.3 7 10.6l4.6-5' fill='none' stroke='%23557010' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain; }
.cb-v2 .cb-casa-ver { margin-top: auto; padding: 11px 0 12px; border-top: 1px solid #eef4dd; font: italic 15px/1.2 var(--cb-serif); color: var(--cb-ver); }
.cb-v2 .cb-casa-dato + .cb-casa-ver, .cb-v2 .cb-casa-plazas + .cb-casa-ver { margin-top: auto; }
.cb-v2 .cb-casa-cuerpo .cb-casa-dato:last-of-type { margin-bottom: 12px; }
.cb-v2 .cb-casa-ver span { display: inline-block; transition: transform .2s; }
.cb-v2 a.cb-casa:hover .cb-casa-ver { color: var(--cb-osc); }
.cb-v2 a.cb-casa:hover .cb-casa-ver span { transform: translateX(4px); }

/* última celda: consultar disponibilidad */
.cb-v2 a.cb-casa-cta { justify-content: center; padding: 26px 22px; background: linear-gradient(160deg, #84a620 0%, #5f7d13 55%, #4d660f 100%); border-color: #4a6210; color: #fff; }
.cb-v2 a.cb-casa-cta strong { font: italic 400 25px/1.2 var(--cb-serif); color: #fff; margin-bottom: 12px; text-shadow: 0 1px 0 rgba(0, 0, 0, .2); }
.cb-v2 a.cb-casa-cta > span { font: italic 15px/1.5 var(--cb-serif); color: #f1fbd8; }
.cb-v2 a.cb-casa-cta .cb-casa-ver { margin-top: 18px; padding: 12px 0 0; border-top-color: rgba(255, 255, 255, .3); font-size: 18px; color: #fff; }
.cb-v2 a.cb-casa-cta:hover .cb-casa-ver { color: #fff; }
.cb-v2 a.cb-casa-cta .cb-casa-tel { margin-top: 6px; font-size: 13px; opacity: .85; }

/* ---------- Portada: la columna verde pasa a banda de cinco bloques ---------- */
.cb-v2 #contenido.home #verde.der { float: none; clear: both; width: auto; box-sizing: border-box; margin: 26px 0 0; padding: 26px 28px 20px; border: 1px solid #dbeab3; border-radius: 6px; }
.cb-v2 #contenido.home #verde .corner { display: none; }
.cb-v2 #contenido.home #verde dl { display: grid; grid-template-columns: none; grid-auto-columns: minmax(0, 1fr); grid-template-rows: auto auto; grid-auto-flow: column; column-gap: 26px; }
.cb-v2 #contenido.home #verde dt:empty { display: none; }
.cb-v2 #contenido.home #verde dt a { display: block; font-size: 18px; line-height: 1.3; margin-bottom: 6px; }
.cb-v2 #contenido.home #verde dd { margin-bottom: 0; font-size: 14px; }
.cb-v2 #contenido.home #verde > div { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--cb-linea); font: italic 14px var(--cb-serif); color: var(--cb-ver); }

/* ---------- Ficha de casa ---------- */
/* Características: rejilla para que las etiquetas largas no se monten («Habitaciones de matrimonio») */
.cb-v2 ul.servicios { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 27px; width: auto; }
.cb-v2 ul.servicios li { float: none; width: auto; height: auto; min-height: 18px; margin-right: 0; display: flex; justify-content: space-between; gap: 8px; }
.cb-v2 ul.servicios li b { float: none; white-space: nowrap; }
.cb-v2 ul.servicios li.elemento { padding-right: 22px; }
.cb-v2 #gris { box-sizing: border-box; }
.cb-v2 ul.galeria li a img, .cb-v2 ul.galeria li a:hover img { border: 4px solid #fff; border-radius: 2px; box-shadow: 0 1px 6px rgba(41, 69, 33, .35); transition: transform .2s; }
.cb-v2 ul.galeria li a:hover img { transform: scale(1.04); }

/* ---------- Barra fija en el móvil ---------- */
.cb-barra-movil { display: none; }

/* ---------- Tableta ---------- */
@media (max-width: 900px) {
	.cb-v2 ul.cb-casas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cb-v2 #contenido.home #verde dl { display: block; }
	.cb-v2 #contenido.home #verde dd { margin-bottom: 18px; }
}

/* ---------- Móvil ---------- */
@media (max-width: 600px) {
	.cb-v2 .cb-botones { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 4px; }
	.cb-v2 .cb-btn { flex: 1 1 auto; text-align: center; }
	.cb-v2 ul.cb-servicios li { font-size: 13.5px; }
	.cb-v2 ul.cb-casas { grid-template-columns: 1fr; gap: 12px; margin-top: 20px; }
	.cb-v2 a.cb-casa { flex-direction: row; align-items: stretch; padding: 6px; }
	.cb-v2 .cb-casa-foto { flex: none; width: 41%; }
	.cb-v2 .cb-casa-foto img { height: 100%; min-height: 128px; aspect-ratio: auto; }
	.cb-v2 .cb-casa-precio { left: 5px; bottom: 5px; font-size: 14px; padding: 5px 7px 4px; }
	.cb-v2 .cb-casa-cuerpo { padding: 4px 4px 0 12px; }
	.cb-v2 .cb-casa-tit { font-size: 18px; margin-bottom: 6px; }
	.cb-v2 .cb-casa-plazas { margin-bottom: 8px; }
	.cb-v2 .cb-casa-dato { font-size: 13.5px; margin-bottom: 4px; }
	.cb-v2 .cb-casa-ver { padding: 8px 0 6px; font-size: 14px; }
	.cb-v2 a.cb-casa-cta { flex-direction: column; padding: 20px 18px; }
	.cb-v2 a.cb-casa-cta strong { font-size: 22px; }
	.cb-v2 ul.servicios { grid-template-columns: 1fr; }
	.cb-v2 #pie { padding-bottom: 100px; }
	.cb-v2 .cb-barra-movil { display: flex; position: fixed; z-index: 900; left: 0; right: 0; bottom: 0; gap: 8px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(237, 255, 191, .97); border-top: 1px solid #BFD488; box-shadow: 0 -3px 12px rgba(41, 69, 33, .18); }
	.cb-v2 .cb-barra-movil a { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 44px; border-radius: 6px; font: italic 18px var(--cb-serif); text-decoration: none; color: var(--cb-osc); background: #fff; border: 1px solid #BFD488; }
	.cb-v2 .cb-barra-movil a.cb-barra-pri { color: #fff; background: linear-gradient(#80a21d, #5c7a12); border-color: #4a6210; }
	.cb-v2 #cookielegal { bottom: 62px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.cb-v2 * { transition: none !important; }
}

/* ---------- Formularios (pre-reserva y contacto) ---------- */
.cb-v2 .wpcf7 label, .cb-v2 .wpcf7 p { font-size: 15px; color: var(--cb-osc); }
.cb-v2 input[type=text], .cb-v2 input[type=email], .cb-v2 input[type=tel], .cb-v2 input[type=date], .cb-v2 textarea, .cb-v2 .wpcf7 select { box-sizing: border-box; padding: 7px 10px; border: 1px solid #b9d07e; border-radius: 4px; background: #fff; font: 15px var(--cb-serif); color: #26301d; box-shadow: inset 0 1px 2px rgba(41, 69, 33, .08); transition: border-color .15s, box-shadow .15s; }
.cb-v2 input[type=text]:focus, .cb-v2 input[type=email]:focus, .cb-v2 input[type=tel]:focus, .cb-v2 input[type=date]:focus, .cb-v2 textarea:focus, .cb-v2 .wpcf7 select:focus { outline: 0; border-color: var(--cb-ver); box-shadow: 0 0 0 3px rgba(105, 135, 21, .18); }
.cb-v2 #contenedor input[type=submit], .cb-v2 input[type=button] { padding: 10px 30px; border: 1px solid #4a6210; border-radius: 6px; background: linear-gradient(#80a21d, #5c7a12); box-shadow: 0 2px 0 #3d520d, 0 4px 10px rgba(41, 69, 33, .22); color: #fff; font: italic 18px var(--cb-serif); text-shadow: 0 1px 0 rgba(0, 0, 0, .25); cursor: pointer; }
.cb-v2 #contenedor input[type=submit]:hover, .cb-v2 input[type=button]:hover { background: linear-gradient(#6f8f17, #4d660f); }
.cb-v2 .wpcf7 .cb-info-rgpd { font-size: 12px; }

/* ---------- Reservas: caja de disponibilidad y lista de precios ---------- */
.cb-v2 .reservaOnline { box-shadow: 0 1px 2px rgba(41, 69, 33, .07), 0 6px 18px rgba(41, 69, 33, .08); transition: transform .2s, box-shadow .2s; }
.cb-v2 .reservaOnline:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(41, 69, 33, .08), 0 12px 26px rgba(41, 69, 33, .15); }
.cb-v2 .reservaOnline small { display: block; font: italic 14px/1.45 var(--cb-serif); }
.cb-v2 #precios table { border-collapse: separate; border-spacing: 0; width: 100%; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; overflow: hidden; box-shadow: 0 4px 14px rgba(41, 69, 33, .07); }
.cb-v2 #precios th { padding: 9px 8px; font: italic 15px var(--cb-serif); background: linear-gradient(#80a21d, #698715); }
.cb-v2 #precios td { height: auto; padding: 9px 8px; border-bottom: 1px solid #eef4dd; font-size: 15px; }
.cb-v2 #precios tr:nth-child(even) td { background: #f8fdea; }
.cb-v2 #precios tr:last-child td { border-bottom: 0; }

/* ---------- Disponibilidad online: lista de casas ---------- */
.cb-v2 #reservaOnline a { border-radius: 6px; box-shadow: 0 1px 2px rgba(41, 69, 33, .06); transition: transform .2s, box-shadow .2s; }
.cb-v2 #reservaOnline a:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(41, 69, 33, .14); }
.cb-v2 #reservaOnline li a img { border: 4px solid #fff; border-radius: 2px; box-shadow: 0 1px 5px rgba(41, 69, 33, .3); }
.cb-v2 .wpcf7 input[placeholder="dd/mm/aaaa"], .cb-v2 .wpcf7 input[placeholder="tt.mm.jjjj"], .cb-v2 .wpcf7 input.hasDatepicker { width: 160px; }

/* ---------- Carrusel: foto en marco de polaroid hecho con CSS (antes, montajes de Photoshop de 355 px) ---------- */
.cb-v2 #Carrusel .cb-pola { position: relative; z-index: 0; float: right; width: 296px; margin: 34px 48px 0 0; }
.cb-v2 #Carrusel .cb-pola picture { position: relative; z-index: 2; display: block; padding: 9px 9px 10px; background: #fff; border-radius: 2px; box-shadow: 0 1px 2px rgba(0, 0, 0, .18), 0 10px 22px rgba(20, 40, 10, .38); transform: rotate(-2.5deg); transition: transform .35s ease; }
.cb-v2 #Carrusel .cb-pola img { display: block; float: none; width: 100%; max-width: none; height: auto; margin: 0; border: 0; border-radius: 0; }
/* dos fotos detrás, giradas en sentidos opuestos */
.cb-v2 #Carrusel .cb-pola::before, .cb-v2 #Carrusel .cb-pola::after { content: ""; position: absolute; inset: 0; border: 9px solid #fff; border-radius: 2px; box-shadow: 0 1px 2px rgba(0, 0, 0, .15), 0 6px 16px rgba(20, 40, 10, .3); transition: transform .35s ease; }
.cb-v2 #Carrusel .cb-pola::before { z-index: 1; border-width: 6px; background: var(--cb-pola-fondo) 85% 85% / 220% auto no-repeat, #e9ecdf; filter: saturate(.8) brightness(.9); transform: rotate(5deg) translate(14px, -6px); }
.cb-v2 #Carrusel .cb-pola::after { z-index: 0; background: #f4f4ee; transform: rotate(-8deg) translate(-12px, 8px); }
.cb-v2 #Carrusel a:hover .cb-pola picture { transform: rotate(-1deg) scale(1.02); }
.cb-v2 #Carrusel a:hover .cb-pola::before { transform: rotate(6deg) translate(17px, -7px); }
/* botón de vídeo (la primera diapositiva abre el vídeo aéreo de YouTube) */
.cb-v2 #Carrusel .cb-play { position: absolute; z-index: 3; left: 50%; top: 50%; width: 62px; height: 62px; margin: -31px 0 0 -31px; border-radius: 50%; background: rgba(20, 30, 12, .58); box-shadow: 0 0 0 3px rgba(255, 255, 255, .85); transform: rotate(-2.5deg); transition: background .2s, transform .2s; }
.cb-v2 #Carrusel .cb-play::after { content: ""; position: absolute; left: 25px; top: 19px; border-style: solid; border-width: 12px 0 12px 19px; border-color: transparent transparent transparent #fff; }
.cb-v2 #Carrusel a:hover .cb-play { background: rgba(105, 135, 21, .9); transform: rotate(-2.5deg) scale(1.08); }
@media (max-width: 600px) {
	.cb-v2 #Carrusel .cb-pola { width: 35%; margin: 16px 3% 0 0; }
	.cb-v2 #Carrusel .cb-pola picture { padding: 5px 5px 6px; }
	.cb-v2 #Carrusel .cb-pola::before, .cb-v2 #Carrusel .cb-pola::after { border-width: 5px; }
	.cb-v2 #Carrusel .cb-pola::before { transform: rotate(5deg) translate(7px, -5px); }
	.cb-v2 #Carrusel .cb-pola::after { transform: rotate(-8deg) translate(-6px, 4px); }
	.cb-v2 #Carrusel .cb-play { width: 38px; height: 38px; margin: -19px 0 0 -19px; box-shadow: 0 0 0 2px rgba(255, 255, 255, .85); }
	.cb-v2 #Carrusel .cb-play::after { left: 15px; top: 11px; border-width: 8px 0 8px 12px; }
}

/* ---------- Portada: presentación maquetada (16-oct) ---------- */
@media (min-width: 601px) {
	.cb-v2 .home .izq h5, .cb-v2 .home .izq > h1 + p { position: relative; max-width: none; margin: 4px 0 0; padding: 18px 26px 18px 30px; background: rgba(255, 255, 255, .55); border: 1px solid #dbeab3; border-left: 0; border-radius: 0 6px 6px 0; box-shadow: inset 4px 0 0 var(--cb-ver); font: italic 19px/1.6 var(--cb-serif); color: var(--cb-osc); }
}
.cb-v2 .home .izq h5 strong { font-weight: 700; color: var(--cb-ver2); }
.cb-v2 .home .izq h5 span[style*="underline"] { display: inline-block; margin: 0 2px; padding: 1px 10px 2px; border-radius: 999px; background: var(--cb-ver); text-decoration: none !important; font: 700 .72em/1.6 var(--cb-serif); letter-spacing: .06em; text-transform: uppercase; vertical-align: .12em; }
.cb-v2 .home .izq h5 span[style*="underline"] strong { color: #fff; }
.cb-v2 .home .izq h5 + p { display: none; } /* «A continuación podrá ver todas nuestras casas:» → título de sección */

/* servicios: una sola línea en escritorio */
@media (min-width: 901px) {
	.cb-v2 ul.cb-servicios { flex-wrap: nowrap; justify-content: space-between; gap: 6px; margin-top: 16px; }
	.cb-v2 ul.cb-servicios li { flex: 0 1 auto; white-space: nowrap; gap: 6px; padding: 6px 11px 6px 8px; font-size: 13.5px; }
	.cb-v2 ul.cb-servicios .cb-ico { width: 17px; height: 17px; }
}

/* título de la rejilla de casas, con filetes a los lados */
.cb-v2 #contenido h2.cb-sec { display: flex; align-items: center; gap: 18px; margin: 34px 0 0; padding: 0; border: 0; font: italic 400 26px/1.2 var(--cb-serif); color: var(--cb-osc); text-align: center; }
.cb-v2 #contenido h2.cb-sec::before, .cb-v2 #contenido h2.cb-sec::after { content: ""; flex: 1; height: 1px; margin: 0; border-radius: 0; background: linear-gradient(90deg, rgba(105, 135, 21, 0), #a9c560); }
.cb-v2 #contenido h2.cb-sec::after { background: linear-gradient(90deg, #a9c560, rgba(105, 135, 21, 0)); }
.cb-v2 ul.cb-casas { margin-top: 20px; }
@media (max-width: 600px) {
	.cb-v2 #contenido h2.cb-sec { font-size: 22px; gap: 12px; margin-top: 26px; }
}

/* ---------- Carrusel en el móvil (16-oct): foto grande arriba, que sobresale de la caja verde, y texto debajo ---------- */
@media (max-width: 600px) {
	.cb-v2 #Carrusel { margin-top: 6px; }
	.cb-v2 #Carrusel .fotograma { display: flex; flex-direction: column; padding: 0 0 4px; }
	.cb-v2 #Carrusel .fotograma > a, .cb-v2 #Carrusel .fotograma > .cb-pola { order: -1; display: block; }
	.cb-v2 #Carrusel .fotograma::before { top: 78px; border-radius: 8px; background: linear-gradient(165deg, #8fbd14 0%, #6f9a12 45%, #557a10 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25); }
	.cb-v2 #Carrusel .cb-pola { display: block; float: none; width: 72%; margin: 26px auto 10px; }
	.cb-v2 #Carrusel .cb-pola picture { padding: 7px 7px 8px; }
	.cb-v2 #Carrusel .cb-pola::before, .cb-v2 #Carrusel .cb-pola::after { border-width: 7px; }
	.cb-v2 #Carrusel .cb-pola::before { border-width: 5px; transform: rotate(5deg) translate(11px, -5px); }
	.cb-v2 #Carrusel .cb-pola::after { transform: rotate(-7deg) translate(-10px, 6px); }
	.cb-v2 #Carrusel .cb-play { width: 54px; height: 54px; margin: -27px 0 0 -27px; box-shadow: 0 0 0 3px rgba(255, 255, 255, .85); }
	.cb-v2 #Carrusel .cb-play::after { left: 21px; top: 16px; border-width: 11px 0 11px 17px; }
	.cb-v2 #Carrusel .fotograma .mensaje { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; float: none; width: auto; max-width: none; height: auto; padding: 10px 22px 20px; text-align: center; }
	.cb-v2 #Carrusel .fotograma .mensaje .slidehed { margin: 0 0 8px; font: 700 11.5px/1.35 var(--cb-serif); letter-spacing: .14em; text-transform: uppercase; color: #eaf8c4; text-shadow: none; }
	.cb-v2 #Carrusel .fotograma .mensaje p { margin: 0; font: italic 19px/1.35 var(--cb-serif); color: #fff; text-shadow: 0 1px 3px rgba(20, 40, 10, .45); }
	.cb-v2 #Carrusel .fotograma a.info { float: none; display: inline-block; margin: 14px 0 0; padding: 7px 18px; border-radius: 999px; background: #fff; box-shadow: 0 2px 6px rgba(20, 40, 10, .25); font: italic 15px/1.2 var(--cb-serif); color: var(--cb-osc); text-decoration: none; }
	.cb-v2 #Carrusel .fotograma a.info::after { content: " →"; }
}

/* =====================================================================
   Ficha de casa v2 (inc/ficha-v2.php, 16-oct-2026)
   ===================================================================== */
.cb-v2 .cb-ficha { float: none; clear: both; padding-bottom: 30px; }
.cb-v2 .cb-ficha-cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 6px 0 18px; padding-bottom: 14px; border-bottom: 5px solid var(--cb-ver); }
.cb-v2 .cb-ficha-cab h1.cb-tit { margin: 0 0 10px; padding: 0; border: 0; font-size: 34px; line-height: 1.15; color: var(--cb-osc); }
.cb-v2 .cb-ficha-cab h1.cb-tit::after { display: none; }
.cb-v2 ul.cb-ficha-datos { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cb-v2 ul.cb-ficha-datos li { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px 5px 9px; background: rgba(255, 255, 255, .65); border: 1px solid var(--cb-linea); border-radius: 999px; font: italic 14px/1.2 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 ul.cb-ficha-datos .cb-ico { width: 18px; height: 18px; }
.cb-v2 .cb-ficha-precio { flex: none; margin: 0; text-align: right; color: var(--cb-ver2); font: italic 14px/1.3 var(--cb-serif); }
.cb-v2 .cb-ficha-precio strong { display: block; font: 700 34px/1 var(--cb-serif); font-style: normal; color: var(--cb-osc); }

/* galería: foto grande + 4 miniaturas; el resto queda accesible en el visor */
.cb-v2 .cb-ficha-galeria { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; margin-bottom: 30px; }
.cb-v2 a.cb-fg { position: relative; display: block; overflow: hidden; border-radius: 4px; background: #dfe9c4; }
.cb-v2 a.cb-fg img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3 / 2; border: 0; border-radius: 0; transition: transform .5s ease, filter .3s; }
.cb-v2 a.cb-fg:hover img { transform: scale(1.04); filter: brightness(1.04); }
.cb-v2 a.cb-fg-princ { grid-row: span 2; }
.cb-v2 a.cb-fg-extra { display: none; }
.cb-v2 .cb-fg-mas { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(36, 60, 28, .55); color: #fff; font: italic 18px var(--cb-serif); text-shadow: 0 1px 2px rgba(0, 0, 0, .3); transition: background .2s; }
.cb-v2 a.cb-fg:hover .cb-fg-mas { background: rgba(36, 60, 28, .7); }

/* cuerpo: texto + lateral fijo */
.cb-v2 .cb-ficha-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; align-items: start; }
.cb-v2 .cb-ficha-intro, .cb-v2 .cb-ficha-intro h4, .cb-v2 #contenido .cb-ficha-intro h4 { margin: 0 0 18px; font: italic 21px/1.5 var(--cb-serif); color: var(--cb-ver); }
.cb-v2 .cb-ficha-desc { font: 17px/1.75 var(--cb-serif); font-style: normal; color: #26301d; }
.cb-v2 .cb-ficha-desc p { margin: 0 0 16px; }
.cb-v2 .cb-ficha-desc h3, .cb-v2 #contenido .cb-ficha-desc h3 { margin: 30px 0 10px; font: italic 24px/1.25 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-ficha-desc h3::before { content: ""; display: block; width: 44px; height: 3px; margin-bottom: 12px; border-radius: 2px; background: var(--cb-ver); }
.cb-v2 .cb-ficha-desc ul { margin: 0 0 16px; padding: 0; list-style: none; }
.cb-v2 .cb-ficha-desc ul li { position: relative; margin-bottom: 6px; padding-left: 24px; }
.cb-v2 .cb-ficha-desc ul li::before, .cb-v2 ul.cb-ficha-equipo li::before { content: ""; position: absolute; left: 0; top: .32em; width: 15px; height: 15px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23e3f3b8'/%3E%3Cpath d='M4.5 8.3 7 10.6l4.6-5' fill='none' stroke='%23557010' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain; }
.cb-v2 #contenido h2.cb-ficha-h2 { margin: 34px 0 14px; padding: 0 0 8px; border-bottom: 3px solid var(--cb-ver); font: italic 26px/1.2 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 ul.cb-ficha-equipo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 18px; margin: 0; padding: 0; list-style: none; }
.cb-v2 ul.cb-ficha-equipo li { position: relative; padding: 4px 0 4px 24px; border-bottom: 1px dotted #c9dc95; font: 15px/1.35 var(--cb-serif); color: #2f3c25; }
.cb-v2 ul.cb-ficha-equipo li::before { top: .5em; }

.cb-v2 .cb-ficha-lateral { position: sticky; top: 16px; }
.cb-v2 .cb-ficha-caja { padding: 22px 22px 18px; background: #fff; border: 1px solid #dbeab3; border-top: 4px solid var(--cb-ver); border-radius: 6px; box-shadow: 0 2px 4px rgba(41, 69, 33, .06), 0 12px 28px rgba(41, 69, 33, .1); }
.cb-v2 .cb-caja-precio { margin: 0; font: italic 16px var(--cb-serif); color: var(--cb-ver2); }
.cb-v2 .cb-caja-precio strong { font: 700 36px/1 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-caja-nota { margin: 4px 0 14px; font: italic 13px/1.4 var(--cb-serif); color: #6b7660; }
.cb-v2 ul.cb-caja-lista { margin: 0 0 16px; padding: 12px 0 0; border-top: 1px solid #eef4dd; list-style: none; }
.cb-v2 ul.cb-caja-lista li { display: flex; align-items: center; gap: 9px; padding: 4px 0; font: 15px var(--cb-serif); color: var(--cb-osc); }
.cb-v2 a.cb-btn.cb-btn-bloque { display: block; margin: 0 0 10px; padding: 12px 16px; text-align: center; font-size: 18px; }
.cb-v2 a.cb-caja-tel { display: flex; align-items: center; gap: 10px; margin-top: 6px; padding: 10px 4px 0; border-top: 1px solid #eef4dd; text-decoration: none; color: var(--cb-osc); }
.cb-v2 a.cb-caja-tel .cb-ico { width: 22px; height: 22px; }
.cb-v2 a.cb-caja-tel span { font: italic 13px/1.3 var(--cb-serif); color: #6b7660; }
.cb-v2 a.cb-caja-tel b { display: block; font: 700 18px/1.2 var(--cb-serif); font-style: normal; color: var(--cb-osc); }
.cb-v2 .cb-ficha-incluido { margin-top: 16px; padding: 16px 18px; background: var(--cb-claro); border: 1px solid var(--cb-linea); border-radius: 6px; }
.cb-v2 .cb-incl-tit { margin: 0 0 10px; font: italic 15px var(--cb-serif); color: var(--cb-ver2); }
.cb-v2 .cb-ficha-incluido ul.cb-servicios { flex-wrap: wrap; justify-content: flex-start; gap: 6px; margin: 0; }
.cb-v2 .cb-ficha-incluido ul.cb-servicios li { white-space: normal; background: #fff; font-size: 13px; }

.cb-v2 .cb-ficha-otras { margin-top: 40px; }
.cb-v2 ul.cb-casas.cb-casas-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 900px) {
	.cb-v2 .cb-ficha-cuerpo { grid-template-columns: 1fr; gap: 24px; }
	.cb-v2 .cb-ficha-lateral { position: static; }
	.cb-v2 ul.cb-ficha-equipo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cb-v2 ul.cb-casas.cb-casas-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.cb-v2 .cb-ficha-cab { flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 4px; border-bottom-width: 4px; }
	.cb-v2 .cb-ficha-cab h1.cb-tit { font-size: 27px; }
	.cb-v2 .cb-ficha-precio { text-align: left; }
	.cb-v2 .cb-ficha-precio strong { display: inline; font-size: 26px; margin-right: 6px; }
	/* galería deslizable con el dedo */
	.cb-v2 .cb-ficha-galeria { display: flex; gap: 8px; margin: 0 -5px 22px; padding: 0 5px 6px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	.cb-v2 .cb-ficha-galeria::-webkit-scrollbar { display: none; }
	.cb-v2 a.cb-fg, .cb-v2 a.cb-fg-extra { display: block; flex: 0 0 86%; scroll-snap-align: center; }
	.cb-v2 a.cb-fg-princ { grid-row: auto; }
	.cb-v2 .cb-fg-mas { display: none; }
	.cb-v2 .cb-ficha-intro, .cb-v2 .cb-ficha-intro h4, .cb-v2 #contenido .cb-ficha-intro h4 { font-size: 18px; }
	.cb-v2 .cb-ficha-desc { font-size: 16px; line-height: 1.7; }
	.cb-v2 .cb-ficha-desc h3, .cb-v2 #contenido .cb-ficha-desc h3 { font-size: 21px; }
	.cb-v2 ul.cb-ficha-equipo { grid-template-columns: 1fr 1fr; gap: 4px 12px; }
	.cb-v2 ul.cb-ficha-equipo li { font-size: 14px; }
	.cb-v2 #contenido h2.cb-ficha-h2 { font-size: 22px; }
	.cb-v2 ul.cb-casas.cb-casas-3 { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
	/* móvil/tableta: precio y reserva justo después de las fotos; «incluido» al final del texto */
	.cb-v2 .cb-ficha-lateral { display: contents; }
	.cb-v2 .cb-ficha-caja { order: -1; }
	.cb-v2 .cb-ficha-incluido { order: 2; margin-top: 0; }
}
.cb-v2 .cb-fg-pista { display: none; }
@media (max-width: 600px) {
	.cb-v2 .cb-ficha-precio { display: none; } /* en el móvil el precio va en la caja de reserva, justo debajo */
	.cb-v2 .cb-ficha-galeria { margin-bottom: 4px; }
	.cb-v2 .cb-fg-pista { display: block; margin: 0 0 18px; text-align: center; font: italic 13px var(--cb-serif); color: var(--cb-ver2); }
	.cb-v2 .cb-fg-pista::before { content: "‹ "; } .cb-v2 .cb-fg-pista::after { content: " ›"; }
}

/* ---------- Menú principal: iconos SVG (nítidos en retina) y desplegables (16-oct) ---------- */
.cb-v2 #cabecera { position: relative; z-index: 60; }
.cb-v2 #dropdown-holder { position: relative; z-index: 1000; }
.cb-v2 #dropdown-holder .sf-menu > li > a { position: relative; background-image: none !important; }
.cb-v2 #dropdown-holder .sf-menu > li > a::before { content: ""; position: absolute; left: 0; top: 1px; width: 24px; height: 24px; background-color: #294521; -webkit-mask: var(--cb-mi) center / contain no-repeat; mask: var(--cb-mi) center / contain no-repeat; }
.cb-v2 #dropdown-holder .sf-menu > li.casas > a { padding-left: 27px; --cb-mi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5 1.5 11.6h3V21h6v-6.2h3V21h6v-9.4h3z'/%3E%3C/svg%3E"); }
.cb-v2 #dropdown-holder .sf-menu > li.actividades > a { padding-left: 31px; --cb-mi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M4 7h3.3L9 4.5h6L16.7 7H20a2 2 0 0 1 2 2v9.5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2zm8 2.6a4.3 4.3 0 1 0 0 8.6 4.3 4.3 0 0 0 0-8.6zm0 2.1a2.2 2.2 0 1 1 0 4.4 2.2 2.2 0 0 1 0-4.4z'/%3E%3C/svg%3E"); }
.cb-v2 #dropdown-holder .sf-menu > li.entorno > a { padding-left: 27px; --cb-mi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.5 2.5C10 2.5 4.5 7.6 4.5 14.2c0 2 .5 3.6 1.3 4.9L3.6 21.3l1.1 1.1 2.2-2.2c1.3.9 2.9 1.3 4.7 1.3 6.4 0 9.3-7 7.9-19zM9 18.5c1.6-4 4.300-7.200 8.300-9.500-2.700 2.900-4.900 5.900-6.500 10z'/%3E%3C/svg%3E"); }
.cb-v2 #dropdown-holder .sf-menu > li.ubicacion > a { padding-left: 33px; --cb-mi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M4.6 10.6 6.4 6a2.2 2.2 0 0 1 2-1.4h7.2a2.2 2.2 0 0 1 2 1.4l1.8 4.6h.4A1.7 1.7 0 0 1 21.5 12.300V17.400h-2V19a1.600 1.600 0 0 1-3.200 0v-1.600H7.700V19a1.600 1.600 0 0 1-3.200 0v-1.600h-2v-5.100a1.700 1.700 0 0 1 1.700-1.700zm2.300 0h10.200l-1.300-3.600a.9.9 0 0 0-.800-.6H9a.9.9 0 0 0-.800.6zM6.300 12.700a1.300 1.300 0 1 0 0 2.600 1.300 1.300 0 0 0 0-2.600zm11.400 0a1.300 1.300 0 1 0 0 2.600 1.300 1.300 0 0 0 0-2.600z'/%3E%3C/svg%3E"); }
.cb-v2 #dropdown-holder .sf-menu > li.ubicacion > a::before { width: 30px; }
.cb-v2 #dropdown-holder .sf-menu > li.reservas > a { padding-left: 27px; --cb-mi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M7 1.8h2.2V4h5.600V1.800H17V4h2a2 2 0 0 1 2 2v14.200a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2zM5.200 9v11h13.600V9zm3 2.200h3.300v3.300H8.200z'/%3E%3C/svg%3E"); }
.cb-v2 #dropdown-holder .sf-menu > li.otras > a { padding-left: 33px; --cb-mi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.500 4.500 1 11h2.200v8.500h3.900v-4.700h2.800v4.700h3.900V11H16zM17.600 7.600l-1.900 1.600 2.300 2v8.300h2.600v-3.600h1.500v3.600H24V11h-1.200z'/%3E%3C/svg%3E"); }
.cb-v2 #dropdown-holder .sf-menu > li.otras > a::before { width: 30px; }
/* desplegables: tarjeta blanca con la línea verde de la web */
.cb-v2 #dropdown-holder ul.sub-menu { left: 0; width: 15.5em; padding: 6px 0; background: #fff; border: 1px solid #d6e7a6; border-top: 3px solid #698715; border-radius: 0 0 6px 6px; box-shadow: 0 10px 26px rgba(41, 69, 33, .22); }
/* solo el primer nivel baja bajo la pestaña; el tercer nivel se abre a la derecha de su opción */
.cb-v2 #dropdown-holder .sf-menu > li:hover > ul, .cb-v2 #dropdown-holder .sf-menu > li.sfHover > ul { top: 33px; }
.cb-v2 #dropdown-holder .sf-menu > li > ul::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; } /* puente: no se pierde el hover al bajar */
.cb-v2 #dropdown-holder ul.sub-menu ul.sub-menu { left: 100%; margin-left: -2px; border-radius: 0 6px 6px 6px; border-top-width: 3px; }
.cb-v2 #dropdown-holder ul.sf-menu li li ul { top: -999em; }
.cb-v2 #dropdown-holder ul.sf-menu li li:hover > ul, .cb-v2 #dropdown-holder ul.sf-menu li li.sfHover > ul { top: -9px; }
.cb-v2 #dropdown-holder ul.sub-menu li { position: relative; }
.cb-v2 #dropdown-holder ul.sub-menu li.menu-item-has-children > a::after { content: "›"; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font: 20px Georgia, serif; color: #698715; }
.cb-v2 #dropdown-holder ul.sub-menu li.menu-item-has-children > a { padding-right: 28px; }
.cb-v2 #dropdown-holder .sf-menu li li { height: auto; float: none; background: none; line-height: 1.3; }
.cb-v2 #dropdown-holder ul.sub-menu li a, .cb-v2 #dropdown-holder ul.sub-menu li a span { float: none; display: block; height: auto; padding: 0; border: 0; background: none; text-shadow: none !important; color: #2B4723; font: italic 15px/1.3 Georgia, "Times New Roman", serif !important; text-transform: none; }
.cb-v2 #dropdown-holder ul.sub-menu li a { padding: 8px 16px 8px 14px; border-left: 3px solid transparent; transition: background .15s, border-color .15s; }
.cb-v2 #dropdown-holder ul.sub-menu li a:hover, .cb-v2 #dropdown-holder ul.sub-menu li.current-menu-item > a { background: #f2fadc; border-left-color: #698715; }
.cb-v2 #dropdown-holder ul.sf-menu li li a:hover span { color: #1f3a10 !important; text-shadow: none !important; }
.cb-v2 #dropdown-holder ul.sub-menu li + li { border-top: 1px solid #f0f5e2; }

/* ---------- Teléfono de la cabecera en CSS ---------- */
.cb-v2 #cabecera a.cb-tel { float: right; display: flex; flex-direction: column; align-items: flex-end; margin-top: 14px; color: #2B4723; text-decoration: none; line-height: 1; }
.cb-v2 .cb-tel-num { font: italic 800 39px/0.95 "Barlow Condensed", "Arial Narrow", Impact, sans-serif; letter-spacing: -.005em; color: #2B4723; text-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 2px 3px rgba(41, 69, 33, .18); }
.cb-v2 .cb-tel-num small { font-size: .62em; vertical-align: .32em; }
.cb-v2 .cb-tel-txt { display: flex; align-items: center; gap: 3px; margin-top: 1px; font: italic 700 19px/1 "Barlow Condensed", "Arial Narrow", sans-serif; color: #2B4723; text-shadow: 0 1px 0 rgba(255, 255, 255, .7); }
.cb-v2 .cb-tel-txt svg { width: 17px; height: 17px; color: #4c7a1a; }
.cb-v2 #cabecera a.cb-tel:hover .cb-tel-num { color: #4d660f; }
@media (max-width: 600px) {
	.cb-v2 #cabecera a.cb-tel { clear: both; margin-top: 10px; }
	.cb-v2 .cb-tel-num { font-size: 29px; }
	.cb-v2 .cb-tel-txt { font-size: 15px; }
	.cb-v2 .cb-tel-txt svg { width: 14px; height: 14px; }
}

/* ---------- Pie de la portada: logotipos en alta resolución (16-oct; antes, recorte del sprite a 465×60) ---------- */
.cb-v2 .datos .marcas { width: 400px; height: 84px; background: url(../images/marcas-pie-2x.jpg) right center / contain no-repeat; background-image: image-set(url(../images/marcas-pie-2x.webp) type("image/webp"), url(../images/marcas-pie-2x.jpg) type("image/jpeg")); mix-blend-mode: multiply; }
@media (max-width: 600px) {
	.cb-v2 .datos .marcas { float: none; width: 100%; max-width: 360px; height: 76px; margin: 0 0 16px; background-position: left center; }
}
/* alemán: los textos del menú son más largos y el primer icono quedaba bajo el logo */
@media (min-width: 601px) {
	html[lang^="de"] .cb-v2 #dropdown-holder .sf-menu > li > a { margin-left: 6px; }
	html[lang^="de"] .cb-v2 #dropdown-holder .sf-menu > li > a b { font-size: 17px; }
	html[lang^="de"] .cb-v2 #dropdown-holder .sf-menu > li.casas > a { padding-left: 25px; }
}

/* ---------- Pre-reserva: selector de fechas de estancia (js/fechas.js) ---------- */
.cb-oculto { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; border: 0 !important; white-space: nowrap !important; }
.cb-v2 .cb-fechas { clear: both; margin: 4px 0 14px; }
.cb-v2 .cb-fechas-label { display: block; margin-bottom: 6px; font: 15px var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-fechas-label abbr { color: #a33; text-decoration: none; border: 0; cursor: default; }
.cb-v2 button.cb-fechas-btn { display: flex; align-items: center; gap: 12px; width: 100%; max-width: 470px; min-height: 52px; padding: 8px 14px; background: #fff; border: 1px solid #b9d07e; border-radius: 6px; box-shadow: inset 0 1px 2px rgba(41, 69, 33, .08); cursor: pointer; text-align: left; font: 16px var(--cb-serif); color: #6b7660; transition: border-color .15s, box-shadow .15s; }
.cb-v2 button.cb-fechas-btn:hover { border-color: var(--cb-ver); }
.cb-v2 button.cb-fechas-btn:focus-visible { outline: 0; border-color: var(--cb-ver); box-shadow: 0 0 0 3px rgba(105, 135, 21, .25); }
.cb-v2 .cb-fechas-ico { flex: none; display: flex; color: var(--cb-ver); }
.cb-v2 .cb-fechas-val { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.cb-v2 .cb-fechas-ok .cb-fechas-val { color: var(--cb-osc); }
.cb-v2 .cb-fechas-val small { display: block; font: italic 11.5px/1.2 var(--cb-serif); color: #6b7660; }
.cb-v2 .cb-fv-ent, .cb-v2 .cb-fv-sal { font-weight: 700; line-height: 1.25; }
.cb-v2 .cb-fv-flecha { color: var(--cb-ver); font-size: 18px; }
.cb-v2 .cb-fv-noches { margin-left: auto; padding: 3px 10px; background: var(--cb-claro); border: 1px solid var(--cb-linea); border-radius: 999px; font: italic 13px var(--cb-serif); color: var(--cb-ver2); }
.cb-v2 .cb-fechas-error { display: block; margin-top: 6px; font: italic 14px var(--cb-serif); color: #a3261b; }
.cb-v2 .cb-fechas-error:empty { display: none; }
.cb-v2 .cb-fechas-mal button.cb-fechas-btn { border-color: #c0392b; }

html.cb-cal-abierto { overflow: hidden; }
.cb-cal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; }
.cb-cal[hidden] { display: none; }
.cb-cal-fondo { position: absolute; inset: 0; background: rgba(25, 40, 15, .45); }
.cb-cal-caja { position: relative; width: min(680px, calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow: auto; padding: 18px 22px 16px; background: #fff; border-top: 4px solid #698715; border-radius: 8px; box-shadow: 0 20px 50px rgba(0, 0, 0, .3); font-family: Georgia, "Times New Roman", serif; color: #2B4723; }
.cb-cal-cab { display: flex; align-items: center; justify-content: space-between; }
.cb-cal-tit { margin: 0; padding: 0; border: 0; font: italic 400 24px/1.2 Georgia, serif; color: #2B4723; }
.cb-cal-tit::after { display: none; }
.cb-cal-x { width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; font-size: 28px; line-height: 1; color: #2B4723; cursor: pointer; }
.cb-cal-x:hover, .cb-cal-x:focus-visible { background: #f2fadc; outline: 0; }
.cb-cal-estado { min-height: 1.4em; margin: 4px 0 6px; font: italic 15px Georgia, serif; color: #557010; }
.cb-cal-nav { position: relative; height: 0; }
.cb-cal-nav button { position: absolute; top: 2px; width: 38px; height: 38px; border: 1px solid #d5e6a3; border-radius: 50%; background: #fff; font-size: 24px; line-height: 1; color: #2B4723; cursor: pointer; z-index: 1; }
.cb-cal-nav button:hover, .cb-cal-nav button:focus-visible { background: #f2fadc; border-color: #698715; outline: 0; }
.cb-cal-nav button:disabled { opacity: .3; cursor: default; }
.cb-cal-ant { left: 0; } .cb-cal-sig { right: 0; }
.cb-cal-meses { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 26px; }
.cb-cal-mes-tit { margin: 8px 0 10px; font: italic 18px Georgia, serif; text-align: center; color: #2B4723; }
.cb-cal table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.cb-cal th { padding: 0 0 6px; font: 12px Georgia, serif; color: #6b7660; text-align: center; background: none; }
.cb-cal td { padding: 1px 0; text-align: center; }
.cb-cal .cb-dia { width: 100%; height: 40px; border: 0; border-radius: 0; background: transparent; font: 15px Georgia, serif; color: #26301d; cursor: pointer; position: relative; }
.cb-cal .cb-dia:hover:not(:disabled) { background: #edf7d3; border-radius: 6px; }
.cb-cal .cb-dia:focus-visible { outline: 3px solid #698715; outline-offset: -3px; border-radius: 6px; z-index: 1; }
.cb-cal .cb-dia:disabled { color: #b5bba9; cursor: default; text-decoration: line-through; text-decoration-color: rgba(0, 0, 0, .15); }
.cb-cal .cb-hoy { font-weight: 700; }
.cb-cal .cb-hoy::after { content: ""; position: absolute; left: 50%; bottom: 6px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: #698715; }
.cb-cal .cb-rango, .cb-cal .cb-previa { background: #e5f3bf; border-radius: 0; }
.cb-cal .cb-previa { background: #eef8d4; }
.cb-cal .cb-ent, .cb-cal .cb-sal { background: #4d6a10 !important; color: #fff; font-weight: 700; }
.cb-cal .cb-ent { border-radius: 6px 0 0 6px; }
.cb-cal .cb-sal { border-radius: 0 6px 6px 0; }
.cb-cal .cb-ent:only-child:not(.x) { }
.cb-cal-ayuda { margin: 10px 0 0; font: italic 12.5px Georgia, serif; color: #8a927f; }
.cb-cal-pie { display: flex; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #eef4dd; }
.cb-cal-borrar { padding: 10px 14px; border: 0; background: none; font: italic 16px Georgia, serif; color: #557010; text-decoration: underline; cursor: pointer; }
.cb-cal-listo { padding: 11px 30px; border: 1px solid #4a6210; border-radius: 6px; background: linear-gradient(#80a21d, #5c7a12); color: #fff; font: italic 18px Georgia, serif; box-shadow: 0 2px 0 #3d520d; cursor: pointer; }
.cb-cal-listo:disabled { opacity: .45; cursor: default; }
.cb-cal-listo:focus-visible, .cb-cal-borrar:focus-visible { outline: 3px solid rgba(105, 135, 21, .4); outline-offset: 2px; }
@media (max-width: 699px) {
	.cb-cal { align-items: flex-end; }
	.cb-cal-caja { width: 100vw; max-height: 92vh; border-radius: 14px 14px 0 0; padding: 16px 16px calc(14px + env(safe-area-inset-bottom)); }
	.cb-cal .cb-dia { height: 44px; font-size: 16px; }
	.cb-cal-ayuda { display: none; }
	.cb-cal-listo { flex: 1; }
}
@media (prefers-reduced-motion: no-preference) {
	.cb-cal:not([hidden]) .cb-cal-caja { animation: cbCalIn .18s ease-out; }
	@keyframes cbCalIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}

/* ---------- Ficha: botón «Ver las N fotos» y galería masonry (js/galeria.js) ---------- */
.cb-v2 .cb-ficha-galeria { position: relative; }
.cb-v2 button.cb-fg-todas { display: inline-flex; align-items: center; gap: 8px; margin: -18px 0 30px; float: right; position: relative; z-index: 2; padding: 9px 16px; background: #fff; border: 1px solid #2B4723; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .18); font: italic 15px var(--cb-serif); color: #2B4723; cursor: pointer; transform: translateY(-34px); margin-right: 12px; }
.cb-v2 button.cb-fg-todas:hover, .cb-v2 button.cb-fg-todas:focus-visible { background: #f2fadc; outline: 0; }
.cb-v2 button.cb-fg-todas .cb-ico { width: 17px; height: 17px; color: #2B4723; }
.cb-v2 .cb-ficha-cuerpo { clear: both; }
.cb-v2 a.cb-fg { cursor: zoom-in; }

.cb-mas { position: fixed; inset: 0; z-index: 2147483000; overflow-y: auto; background: #f9fcef; -webkit-overflow-scrolling: touch; }
.cb-mas[hidden] { display: none; }
.cb-mas-cab { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px max(20px, calc((100vw - 1100px) / 2)); background: rgba(249, 252, 239, .96); border-bottom: 3px solid #698715; box-shadow: 0 2px 12px rgba(41, 69, 33, .08); }
.cb-mas-tit { margin: 0; padding: 0; border: 0; font: italic 400 24px/1.2 Georgia, "Times New Roman", serif; color: #2B4723; }
.cb-mas-tit::after { display: none; }
.cb-mas-tit span { margin-left: 8px; font-size: 15px; color: #557010; }
.cb-mas-x { flex: none; width: 44px; height: 44px; border: 1px solid #d5e6a3; border-radius: 50%; background: #fff; font-size: 28px; line-height: 1; color: #2B4723; cursor: pointer; }
.cb-mas-x:hover, .cb-mas-x:focus-visible { background: #f2fadc; border-color: #698715; outline: 0; }
.cb-mas-grid { max-width: 1100px; margin: 0 auto; padding: 22px 20px 50px; columns: 3 300px; column-gap: 16px; }
.cb-mas-item { break-inside: avoid; margin: 0 0 16px; padding: 7px 7px 0; background: #fff; border: 1px solid #e1edc0; border-radius: 6px; box-shadow: 0 2px 10px rgba(41, 69, 33, .07); }
.cb-mas-item a { display: block; overflow: hidden; border-radius: 3px; cursor: zoom-in; }
.cb-mas-item img { display: block; width: 100%; height: auto; border: 0; border-radius: 0; transition: transform .45s ease; }
.cb-mas-item a:hover img { transform: scale(1.03); }
.cb-mas-item a:focus-visible { outline: 3px solid #698715; outline-offset: 2px; }
.cb-mas-item figcaption { padding: 8px 4px 10px; font: italic 14px/1.35 Georgia, "Times New Roman", serif; color: #3b4a2e; }
#fancybox-overlay { z-index: 2147483100 !important; } #fancybox-wrap { z-index: 2147483101 !important; }
@media (max-width: 600px) {
	.cb-v2 button.cb-fg-todas { float: none; transform: none; margin: 0 auto 20px; display: flex; }
	.cb-v2 .cb-fg-pista { margin-bottom: 8px; }
	.cb-mas-cab { padding: 10px 14px; }
	.cb-mas-tit { font-size: 19px; }
	.cb-mas-grid { columns: 2; column-gap: 8px; padding: 12px 8px 40px; }
	.cb-mas-item { margin-bottom: 8px; padding: 4px 4px 0; }
	.cb-mas-item figcaption { font-size: 12.5px; padding: 6px 2px 7px; }
}

.cb-v2 .cb-fg-mas { display: none; } /* el botón «Ver las N fotos» ya lo indica */
html.cb-cal-abierto #rmp_menu_trigger-3232, html.cb-cal-abierto #rmp_menu_trigger-3238, html.cb-cal-abierto .rmp_menu_trigger { visibility: hidden; }

/* ---------- Galerías [gallery] en masonry (filtro post_gallery en inc/v2.php) ---------- */
.cb-v2 .cb-gal-info { margin: 6px 0 16px; font: italic 14px var(--cb-serif); color: var(--cb-ver2); }
.cb-v2 .cb-gal { columns: 4 200px; column-gap: 12px; margin: 0 0 30px; }
.cb-v2 .cb-gal-item { break-inside: avoid; margin: 0 0 12px; }
.cb-v2 .cb-gal-item a { position: relative; display: block; overflow: hidden; border-radius: 5px; background: #e3eccb; box-shadow: 0 1px 3px rgba(41, 69, 33, .12), 0 6px 16px rgba(41, 69, 33, .08); cursor: zoom-in; }
.cb-v2 .cb-gal-item img, .cb-v2 .single .cb-gal-item img { display: block; width: 100%; height: auto; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; transition: transform .5s ease, filter .3s; }
.cb-v2 .cb-gal-item a:hover img { transform: scale(1.05); filter: brightness(1.05); }
.cb-v2 .cb-gal-item a:focus-visible { outline: 3px solid var(--cb-ver); outline-offset: 2px; }
.cb-v2 .cb-gal-item figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 10px 8px; background: linear-gradient(transparent, rgba(20, 35, 12, .78)); font: italic 13.5px/1.3 var(--cb-serif); color: #fff; opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .25s; }
.cb-v2 .cb-gal-item a:hover figcaption, .cb-v2 .cb-gal-item a:focus-visible figcaption { opacity: 1; transform: none; }
@media (hover: none) { .cb-v2 .cb-gal-item figcaption { opacity: 1; transform: none; font-size: 12px; padding: 16px 8px 6px; } }
@media (max-width: 600px) { .cb-v2 .cb-gal { columns: 2; column-gap: 8px; } .cb-v2 .cb-gal-item { margin-bottom: 8px; } }

/* Imagen recortada (sin fondo) en el contenido: flota a la derecha, sin marco */
.cb-santo { float: right; width: 280px; max-width: 42%; margin: 0 0 18px 26px; text-align: center; }
.cb-santo img { display: block; width: 100%; height: auto; border: 0 !important; padding: 0 !important; background: none !important; filter: drop-shadow(0 10px 14px rgba(41, 69, 33, .28)); }
.cb-santo figcaption { margin-top: 6px; font: italic 14px Georgia, "Times New Roman", serif; color: #557010; }
@media (max-width: 600px) { .cb-santo { width: 46%; margin-left: 14px; } }

/* ---------- Páginas de ruta (Sendero de las Acequias en vídeo) ---------- */
.cb-v2 .cb-ruta-intro { font: italic 20px/1.55 var(--cb-serif); color: var(--cb-ver); margin: 0 0 20px; }
.cb-v2 ul.cb-ruta-datos { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 0 0 30px; padding: 0; list-style: none; }
.cb-v2 ul.cb-ruta-datos li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 14px; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 2px 8px rgba(41, 69, 33, .06); }
.cb-v2 ul.cb-ruta-datos svg { flex: none; width: 26px; height: 26px; fill: none; stroke: var(--cb-ver); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.cb-v2 ul.cb-ruta-datos span { font: 700 16px/1.25 var(--cb-serif); font-style: normal; color: var(--cb-osc); }
.cb-v2 ul.cb-ruta-datos small { display: block; font: italic 12.5px var(--cb-serif); color: #6b7660; }
.cb-v2 #contenido h2.cb-ruta-h2 { clear: both; margin: 34px 0 14px; padding: 0 0 8px; border-bottom: 3px solid var(--cb-ver); font: italic 26px/1.2 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 #contenido h2.cb-ruta-h2::after { display: none; }
.cb-v2 .cb-ruta-videos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cb-v2 .cb-ruta-videos figure { margin: 0; padding: 7px; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .08); }
.cb-v2 .cb-ruta-videos .yt-ligero { margin: 0; border-radius: 3px; }
.cb-v2 .cb-ruta-videos figcaption { display: flex; align-items: center; gap: 8px; padding: 9px 4px 4px; font: italic 16px var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-ruta-videos figcaption b { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--cb-ver); color: #fff; font: 700 13px var(--cb-serif); font-style: normal; }
.cb-v2 .cb-ruta-mapa { overflow: hidden; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .08); background: #fff; }
.cb-v2 .cb-ruta-mapa .flxmap-container { width: 100% !important; }
.cb-v2 .cb-ruta-kml { margin: 10px 0 0; font: italic 14px var(--cb-serif); color: #6b7660; }
.cb-v2 .cb-ruta-cols { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 34px; align-items: start; }
.cb-v2 .cb-ruta-cols p { font: 17px/1.75 var(--cb-serif); font-style: normal; color: #26301d; }
.cb-v2 .cb-ruta-consejos { padding: 0 22px 14px; background: var(--cb-claro); border: 1px solid var(--cb-linea); border-radius: 6px; }
.cb-v2 .cb-ruta-consejos h2.cb-ruta-h2 { margin-top: 18px !important; font-size: 21px !important; }
.cb-v2 .cb-ruta-consejos ul { margin: 0; padding: 0; list-style: none; }
.cb-v2 .cb-ruta-consejos li { position: relative; margin: 0 0 9px; padding-left: 24px; font: 15px/1.5 var(--cb-serif); font-style: normal; }
.cb-v2 .cb-ruta-consejos li::before { content: ""; position: absolute; left: 0; top: .3em; width: 15px; height: 15px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23fff'/%3E%3Cpath d='M4.5 8.3 7 10.6l4.6-5' fill='none' stroke='%23557010' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain; }
.cb-v2 .cb-ruta-mas ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.cb-v2 .cb-ruta-mas li { margin: 0; padding: 14px 16px; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; }
.cb-v2 .cb-ruta-mas li a { display: block; font: italic 18px/1.3 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-ruta-mas li span { display: block; margin-top: 4px; font: 14px/1.4 var(--cb-serif); font-style: normal; color: #6b7660; }
.cb-v2 .cb-ruta-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 34px 0 10px; padding: 20px 24px; background: linear-gradient(160deg, #84a620, #4d660f); border-radius: 8px; color: #fff; }
.cb-v2 .cb-ruta-cta p { margin: 0; font: italic 17px/1.5 var(--cb-serif); color: #f1fbd8; }
.cb-v2 .cb-ruta-cta strong { display: block; font-size: 21px; color: #fff; }
.cb-v2 .cb-ruta-cta .cb-btn { flex: none; display: inline-block; background: #fff; color: var(--cb-osc); border-color: #fff; box-shadow: 0 2px 0 rgba(0, 0, 0, .15); text-shadow: none; }
@media (max-width: 900px) {
	.cb-v2 ul.cb-ruta-datos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cb-v2 .cb-ruta-videos { grid-template-columns: 1fr; }
	.cb-v2 .cb-ruta-cols { grid-template-columns: 1fr; gap: 10px; }
}
@media (max-width: 600px) {
	.cb-v2 .cb-ruta-intro { font-size: 17px; }
	.cb-v2 ul.cb-ruta-datos li:last-child { grid-column: 1 / -1; }
	.cb-v2 .cb-ruta-mapa .flxmap-container { height: 380px !important; }
	.cb-v2 .cb-ruta-cta { flex-direction: column; align-items: stretch; text-align: center; }
	.cb-v2 #contenido h2.cb-ruta-h2 { font-size: 22px; }
}
.cb-v2 ul.cb-ruta-datos li, .cb-v2 .cb-ruta-consejos li, .cb-v2 .cb-ruta-mas li { list-style: none !important; background-image: none; }
.cb-v2 ul.cb-ruta-datos li::marker, .cb-v2 .cb-ruta-consejos li::marker, .cb-v2 .cb-ruta-mas li::marker { content: ""; }
.cb-v2 .single ul.cb-ruta-datos, .cb-v2 .single .cb-ruta-mas ul, .cb-v2 .single .cb-ruta-consejos ul { margin-left: 0 !important; padding-left: 0 !important; }
.cb-v2 .single .cb-ruta-consejos li, .cb-v2 .single .cb-ruta-mas li, .cb-v2 .single ul.cb-ruta-datos li { margin-left: 0 !important; }
.cb-v2 .cb-ruta-mapa .flxmap-directions, .cb-v2 .cb-ruta-mapa .flxmap-container + * { display: none; }
.cb-v2 .cb-ruta-mapa .flxmap-container { margin: 0 !important; }
.cb-v2 .cb-ruta-mapa figure.cb-mapa { margin: 0 !important; }
.cb-v2 .cb-ruta-mapa figure.cb-mapa figcaption { display: none; }
@media (max-width: 600px) { .cb-v2 .cb-ruta-mapa .cb-mapa-lienzo { height: 380px !important; } }
.cb-v2 .cb-ruta-video { overflow: hidden; padding: 7px; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .08); }
.cb-v2 .cb-ruta-video .yt-ligero { margin: 0; border-radius: 3px; }
.cb-v2 .cb-ruta-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }
.cb-v2 .cb-ruta-fotos figure { margin: 0; padding: 7px 7px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .08); }
.cb-v2 .cb-ruta-fotos a { display: block; overflow: hidden; border-radius: 3px; }
.cb-v2 .cb-ruta-fotos img, .cb-v2 .single .cb-ruta-fotos img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; margin: 0; padding: 0; border: 0; transition: transform .45s; }
.cb-v2 .cb-ruta-fotos a:hover img { transform: scale(1.04); }
.cb-v2 .cb-ruta-fotos figcaption { padding: 8px 4px 10px; font: italic 14px var(--cb-serif); color: #3b4a2e; }
.cb-v2 .cb-ruta-esquema { margin: 16px 0 6px; }
.cb-v2 .cb-ruta-esquema a { display: block; overflow: hidden; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; cursor: zoom-in; }
.cb-v2 .cb-ruta-esquema img, .cb-v2 .single .cb-ruta-esquema img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; transition: transform .4s; }
.cb-v2 .cb-ruta-esquema a:hover img { transform: scale(1.02); }
.cb-v2 .cb-ruta-esquema figcaption { margin-top: 6px; font: italic 13px var(--cb-serif); color: #6b7660; text-align: center; }

/* ---------- GR-7: ficha de etapa, tramos, navegación e índice (inc/gr7.php) ---------- */
.cb-v2 .cb-gr7-ficha { margin: 0 0 26px; padding: 20px 22px 18px; background: #fff; border: 1px solid #dbeab3; border-top: 4px solid var(--cb-ver); border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .08); font-style: normal; }
.cb-v2 .cb-gr7-kicker { margin: 0 0 4px; font: 700 12px/1.3 var(--cb-serif); letter-spacing: .12em; text-transform: uppercase; color: var(--cb-ver2); }
.cb-v2 .cb-gr7-kicker a { color: inherit; }
.cb-v2 .single p.cb-gr7-ruta, .cb-v2 .cb-gr7-ruta { margin: 0 0 14px; font: italic 26px/1.25 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-gr7-ruta span { color: var(--cb-ver); }
.cb-v2 ul.cb-gr7-datos { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; }
.cb-v2 ul.cb-gr7-datos li { box-shadow: none; background: #f8fdea; }
.cb-v2 ol.cb-gr7-tramos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; margin: 0; padding: 0; list-style: none; }
.cb-v2 .single ol.cb-gr7-tramos li { margin: 0; padding: 0; list-style: none; }
.cb-v2 .cb-gr7-pueblo b { display: inline-block; padding: 5px 11px; background: var(--cb-claro); border: 1px solid var(--cb-linea); border-radius: 999px; font: 700 14px/1.2 var(--cb-serif); color: var(--cb-osc); white-space: nowrap; }
.cb-v2 .cb-gr7-pueblo.cb-gr7-cb b { background: var(--cb-ver); border-color: var(--cb-ver); color: #fff; }
.cb-v2 .cb-gr7-tramo { display: flex; flex-direction: column; align-items: center; min-width: 74px; padding: 0 4px; }
.cb-v2 .cb-gr7-tramo::before { content: ""; display: block; width: 100%; height: 2px; margin-bottom: 3px; background: repeating-linear-gradient(90deg, var(--cb-ver) 0 6px, transparent 6px 10px); }
.cb-v2 .cb-gr7-tramo span { font: italic 12px/1.2 var(--cb-serif); color: #6b7660; white-space: nowrap; }
.cb-v2 .single p.cb-gr7-aviso, .cb-v2 .cb-gr7-aviso { margin: 16px 0 0; padding: 10px 14px; background: #f2fadc; border-left: 4px solid var(--cb-ver); border-radius: 0 6px 6px 0; font: 15px/1.5 var(--cb-serif); font-style: normal; }
.cb-v2 .single p.cb-gr7-nota, .cb-v2 .cb-gr7-nota { margin: 12px 0 0; font: italic 13px var(--cb-serif); color: #6b7660; }

/* texto de las etapas: más legible y fotos enmarcadas */
.cb-v2 .single .wp-caption { padding: 7px 7px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .1); }
.cb-v2 .single .wp-caption.alignleft { margin: 4px 22px 14px 0; }
.cb-v2 .single .wp-caption.alignright { margin: 4px 0 14px 22px; }
.cb-v2 .single .wp-caption img { display: block; max-width: 100%; height: auto; margin: 0; padding: 0; border: 0; border-radius: 3px; }
.cb-v2 .single .wp-caption-text { margin: 0; padding: 7px 4px 9px; font: italic 13.5px/1.3 var(--cb-serif); color: #3b4a2e; text-align: center; }
.cb-v2 .single ol { margin-bottom: 18px; }

.cb-v2 nav.cb-gr7-nav { clear: both; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 34px 0 0; }
.cb-v2 nav.cb-gr7-nav a { display: block; padding: 14px 18px; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; font: italic 17px/1.3 var(--cb-serif); color: var(--cb-osc); text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.cb-v2 nav.cb-gr7-nav a:hover { border-color: #bcd57c; box-shadow: 0 8px 20px rgba(41, 69, 33, .12); transform: translateY(-2px); }
.cb-v2 nav.cb-gr7-nav small { display: block; margin-bottom: 3px; font: 700 12px var(--cb-serif); letter-spacing: .08em; text-transform: uppercase; color: var(--cb-ver2); }
.cb-v2 nav.cb-gr7-nav .cb-gr7-nav-sig { text-align: right; grid-column: 2; }
.cb-v2 .single .navigation { display: none; }

.cb-v2 ol.cb-gr7-indice { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; margin: 22px 0 10px; padding: 0; list-style: none; counter-reset: none; }
.cb-v2 ol.cb-gr7-indice li { margin: 0; padding: 0; list-style: none; }
.cb-v2 ol.cb-gr7-indice a { display: flex; flex-direction: column; height: 100%; box-sizing: border-box; padding: 7px 7px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 6px 18px rgba(41, 69, 33, .08); color: var(--cb-osc); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.cb-v2 ol.cb-gr7-indice a:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(41, 69, 33, .16); }
.cb-v2 .cb-gr7-img { position: relative; display: block; overflow: hidden; border-radius: 3px; }
.cb-v2 .cb-gr7-img img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border: 0; border-radius: 0; transition: transform .45s; }
.cb-v2 ol.cb-gr7-indice a:hover .cb-gr7-img img { transform: scale(1.04); }
.cb-v2 .cb-gr7-img b { position: absolute; left: 10px; top: 10px; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: var(--cb-ver); box-shadow: 0 2px 8px rgba(0, 0, 0, .3); color: #fff; font: 700 18px var(--cb-serif); }
.cb-v2 .cb-gr7-txt { display: flex; flex-direction: column; padding: 12px 8px 14px; }
.cb-v2 .cb-gr7-txt small { font: 700 11.5px var(--cb-serif); letter-spacing: .1em; text-transform: uppercase; color: var(--cb-ver2); }
.cb-v2 .cb-gr7-txt strong { margin: 3px 0 4px; font: italic 400 21px/1.2 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-gr7-txt em { font: italic 14px/1.35 var(--cb-serif); color: #6b7660; }
.cb-v2 .cb-gr7-mini { margin-top: 10px; padding-top: 9px; border-top: 1px solid #eef4dd; font: 14px var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-gr7-mini i { color: var(--cb-ver2); }
@media (max-width: 600px) {
	.cb-v2 .cb-gr7-ficha { padding: 16px 14px 14px; }
	.cb-v2 .cb-gr7-ruta { font-size: 21px !important; }
	.cb-v2 ul.cb-gr7-datos { grid-template-columns: 1fr 1fr; }
	.cb-v2 ul.cb-gr7-datos li:last-child { grid-column: auto; }
	.cb-v2 ol.cb-gr7-tramos { flex-direction: column; align-items: flex-start; }
	.cb-v2 .cb-gr7-tramo { flex-direction: row; min-width: 0; margin-left: 14px; padding: 2px 0 2px 14px; border-left: 2px dashed var(--cb-ver); }
	.cb-v2 .cb-gr7-tramo::before { display: none; }
	.cb-v2 .single .wp-caption.alignleft, .cb-v2 .single .wp-caption.alignright { float: none; margin: 14px auto; max-width: 100%; }
	.cb-v2 nav.cb-gr7-nav { grid-template-columns: 1fr; }
	.cb-v2 nav.cb-gr7-nav .cb-gr7-nav-sig { grid-column: auto; }
}
#contenido .single ol.cb-gr7-tramos li, #contenido .single ul.cb-ruta-datos li, #contenido .single .cb-ruta-consejos li, #contenido .single .cb-ruta-mas li { list-style: none; margin-left: 0; }
#contenido .single ol.cb-gr7-tramos li { margin-bottom: 0; }
.cb-v2 .cb-gr7-ficha + p, .cb-v2 .single > p { font-size: 16px; line-height: 1.7; }
.cb-v2 #contenido > .descriLarga { max-width: 860px; font: 16px/1.7 var(--cb-serif); font-style: normal; color: #26301d; }
.cb-v2 #contenido > .descriLarga p { margin-bottom: 12px; }
@media (max-width: 600px) { .cb-v2 ul.cb-gr7-datos li:last-child { grid-column: 1 / -1; } }
@media (max-width: 600px) { .cb-v2 .cb-gr7-tramo { margin: 2px 0 2px 18px; padding: 9px 0 9px 16px; } }

/* ---------- Senderos de Alpujarra de la Sierra ---------- */
.cb-v2 .cb-sd-mapa { margin: 0 0 8px; padding: 8px 8px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 6px 18px rgba(41, 69, 33, .1); }
.cb-v2 .cb-sd-mapa a { display: block; cursor: zoom-in; }
.cb-v2 .cb-sd-mapa img, .cb-v2 .single .cb-sd-mapa img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; border-radius: 3px; }
.cb-v2 .cb-sd-mapa figcaption { padding: 8px 4px 10px; text-align: center; font: italic 14px var(--cb-serif); color: #6b7660; }
.cb-v2 ul.cb-sd-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
#contenido .single ul.cb-sd-lista li { list-style: none; margin: 0; }
.cb-v2 ul.cb-sd-lista li { position: relative; padding: 18px 20px 16px 24px; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .07); overflow: hidden; }
.cb-v2 ul.cb-sd-lista li::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--cb-sc); }
.cb-v2 .cb-sd-tipo { display: inline-block; margin-bottom: 6px; padding: 2px 9px; border-radius: 999px; background: var(--cb-sc); color: #fff; font: 700 11px/1.6 var(--cb-serif); letter-spacing: .08em; text-transform: uppercase; }
.cb-v2 #contenido ul.cb-sd-lista h3 { margin: 0 0 2px; font: italic 400 24px/1.2 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .single ul.cb-sd-lista p { margin: 0 0 8px; font: 15.5px/1.6 var(--cb-serif); font-style: normal; color: #26301d; }
.cb-v2 .single ul.cb-sd-lista p.cb-sd-zona { font: italic 14px var(--cb-serif); color: var(--cb-ver2); }
.cb-v2 a.cb-sd-mas { display: inline-block; margin-top: 4px; font: italic 15px var(--cb-serif); color: var(--cb-ver2); }
@media (max-width: 700px) { .cb-v2 ul.cb-sd-lista { grid-template-columns: 1fr; } }

/* ---------- Fiestas de la Alpujarra (inc/fiestas.php, js/fiestas.js) ---------- */
.cb-v2 .cb-fx-casa { clear: both; margin: 22px 0 18px; padding: 18px 22px; background: #fff; border: 1px solid #dbeab3; border-left: 5px solid var(--cb-ver); border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .08); font-style: normal; }
.cb-v2 .single p.cb-fx-casa-t { margin: 0 0 10px; font: italic 20px/1.3 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-fx-casa ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 22px; margin: 0; padding: 0; }
#contenido .single .cb-fx-casa li { list-style: none; margin: 0; font: 15px/1.4 var(--cb-serif); }
.cb-v2 .cb-fx-casa li span { display: block; font: italic 13.5px var(--cb-serif); color: #6b7660; }
.cb-v2 .cb-fx-barra { position: sticky; top: 0; z-index: 50; clear: both; margin: 0 -10px 10px; padding: 12px 10px 10px; background: rgba(240, 249, 214, .96); backdrop-filter: blur(4px); border-bottom: 1px solid #d5e6a3; }
.cb-v2 .cb-fx-buscar { display: flex; align-items: center; gap: 14px; }
.cb-v2 .cb-fx-buscar input { flex: 1; max-width: 460px; min-height: 44px; padding: 8px 14px 8px 40px; border: 1px solid #b9d07e; border-radius: 999px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23698715' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") 14px center / 18px no-repeat; font: 16px var(--cb-serif); }
.cb-v2 .cb-fx-buscar input:focus { outline: 0; border-color: var(--cb-ver); box-shadow: 0 0 0 3px rgba(105, 135, 21, .2); }
.cb-v2 .cb-fx-cuenta { font: italic 14px var(--cb-serif); color: var(--cb-ver2); white-space: nowrap; }
.cb-v2 .cb-fx-meses { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.cb-v2 .cb-fx-meses button { padding: 5px 11px; border: 1px solid #c9dc95; border-radius: 999px; background: #fff; font: italic 13.5px var(--cb-serif); color: var(--cb-osc); cursor: pointer; }
.cb-v2 .cb-fx-meses button:hover { border-color: var(--cb-ver); }
.cb-v2 .cb-fx-meses button[aria-pressed="true"] { background: var(--cb-ver); border-color: var(--cb-ver); color: #fff; }
.cb-v2 .cb-fx-meses button.cb-fx-hoy { box-shadow: inset 0 -3px 0 #b8d26a; }
.cb-v2 .cb-fx-meses button:focus-visible, .cb-v2 .cb-fx-abc a:focus-visible { outline: 3px solid rgba(105, 135, 21, .4); outline-offset: 2px; }
.cb-v2 nav.cb-fx-abc { display: flex; flex-wrap: wrap; gap: 2px; margin-top: 8px; }
.cb-v2 nav.cb-fx-abc a { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; border-radius: 4px; font: 700 14px var(--cb-serif); color: var(--cb-ver2); text-decoration: none; }
.cb-v2 nav.cb-fx-abc a:hover { background: #fff; }
.cb-v2 .cb-fx-ancla { display: block; scroll-margin-top: 170px; }
.cb-v2 #contenido h3.cb-fx-letra { clear: both; display: flex; align-items: center; gap: 12px; margin: 22px 0 10px; font: italic 28px/1 var(--cb-serif); color: var(--cb-ver); }
.cb-v2 #contenido h3.cb-fx-letra::after { content: ""; flex: 1; height: 1px; background: #c9dc95; }
.cb-v2 ul.cb-fx-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; margin: 0 0 6px; padding: 0; }
#contenido .single ul.cb-fx-lista > li { list-style: none; margin: 0; }
.cb-v2 li.cb-fx-pueblo { padding: 12px 14px; background: #fff; border: 1px solid #e1edc0; border-radius: 6px; font: 14px/1.45 var(--cb-serif); font-style: normal; color: #2f3c25; }
.cb-v2 li.cb-fx-pueblo[hidden], .cb-v2 ul.cb-fx-lista[hidden], .cb-v2 h3.cb-fx-letra[hidden] { display: none !important; }
.cb-v2 .cb-fx-nombre { display: block; margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px solid #eef4dd; font: italic 400 19px/1.2 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-fx-fiesta { position: relative; display: block; margin: 3px 0; padding-left: 14px; }
.cb-v2 .cb-fx-fiesta::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 50%; background: #9dbb45; }
#contenido .single li.cb-fx-pueblo ul { margin: 0; padding: 0; }
#contenido .single li.cb-fx-pueblo ul li { list-style: none; margin: 3px 0; padding-left: 14px; position: relative; }
#contenido .single li.cb-fx-pueblo ul li::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 50%; background: #9dbb45; }
.cb-v2 .cb-fx-vacio { margin: 20px 0; font: italic 16px var(--cb-serif); color: #6b7660; }
@media (max-width: 600px) {
	.cb-v2 .cb-fx-casa ul { grid-template-columns: 1fr; }
	.cb-v2 .cb-fx-buscar { flex-wrap: wrap; gap: 6px; }
	.cb-v2 .cb-fx-meses { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
	.cb-v2 .cb-fx-meses button { flex: none; }
	.cb-v2 nav.cb-fx-abc { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.cb-v2 .cb-fx-ancla { scroll-margin-top: 190px; }
}

/* ---------- Página de Mecina Bombarón ---------- */
.cb-v2 .cb-mb-hero { margin: 0 0 14px; padding: 8px 8px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 6px 18px rgba(41, 69, 33, .1); }
.cb-v2 .cb-mb-hero img, .cb-v2 .single .cb-mb-hero img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; border-radius: 3px; }
.cb-v2 .cb-mb-hero figcaption { padding: 7px 4px 9px; text-align: center; font: italic 14px var(--cb-serif); color: #6b7660; }
.cb-v2 nav.cb-mb-indice { position: sticky; top: 0; z-index: 40; display: flex; flex-wrap: wrap; gap: 6px; margin: 0 -10px 6px; padding: 10px; background: rgba(240, 249, 214, .96); backdrop-filter: blur(4px); border-bottom: 1px solid #d5e6a3; }
.cb-v2 nav.cb-mb-indice a { padding: 6px 13px; background: #fff; border: 1px solid #c9dc95; border-radius: 999px; font: italic 14px var(--cb-serif); color: var(--cb-osc); text-decoration: none; }
.cb-v2 nav.cb-mb-indice a:hover { border-color: var(--cb-ver); background: #f2fadc; }
.cb-v2 #contenido [id="que-ver"], .cb-v2 #contenido [id="historia"], .cb-v2 #contenido [id="fiestas"], .cb-v2 #contenido [id="sabores"], .cb-v2 #contenido [id="senderos"], .cb-v2 #contenido [id="servicios"], .cb-v2 #contenido [id="como-llegar"] { scroll-margin-top: 70px; }
.cb-v2 ul.cb-mb-lugares { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; }
#contenido .single ul.cb-mb-lugares > li, #contenido .single ul.cb-mb-fiestas > li, #contenido .single ul.cb-mb-servicios > li { list-style: none; margin: 0; }
.cb-v2 ul.cb-mb-lugares > li { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .07); }
.cb-v2 ul.cb-mb-lugares > li.cb-mb-sinfoto { border-top: 4px solid var(--cb-ver); }
.cb-v2 a.cb-mb-foto { display: block; overflow: hidden; cursor: zoom-in; }
.cb-v2 a.cb-mb-foto img, .cb-v2 .single a.cb-mb-foto img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; margin: 0; padding: 0; border: 0; border-radius: 0; transition: transform .5s; }
.cb-v2 a.cb-mb-foto:hover img { transform: scale(1.04); }
.cb-v2 ul.cb-mb-lugares > li > div { padding: 14px 18px 12px; }
.cb-v2 #contenido ul.cb-mb-lugares h3 { margin: 0 0 6px; font: italic 400 22px/1.2 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .single ul.cb-mb-lugares p { margin: 0; font: 15.5px/1.6 var(--cb-serif); font-style: normal; color: #26301d; }
.cb-v2 ul.cb-mb-fiestas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; }
.cb-v2 ul.cb-mb-fiestas > li { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; font: 14.5px/1.45 var(--cb-serif); font-style: normal; color: #3b4a2e; }
.cb-v2 ul.cb-mb-fiestas > li:first-child { background: linear-gradient(160deg, #f6fde3, #e9f6c6); border-color: #bcd57c; }
.cb-v2 .cb-mb-fecha { align-self: flex-start; padding: 2px 10px; border-radius: 999px; background: var(--cb-ver); color: #fff; font: 700 12.5px/1.6 var(--cb-serif); }
.cb-v2 ul.cb-mb-fiestas strong { font: italic 400 19px/1.25 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 ul.cb-mb-fiestas strong a { color: inherit; }
.cb-v2 .cb-mb-lado { margin: 0; padding: 7px 7px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .08); }
.cb-v2 .cb-mb-lado img, .cb-v2 .single .cb-mb-lado img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; border-radius: 3px; }
.cb-v2 .cb-mb-lado figcaption { padding: 7px 4px 9px; text-align: center; font: italic 13.5px var(--cb-serif); color: #6b7660; }
.cb-v2 ul.cb-mb-servicios { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 18px; margin: 0 0 8px; padding: 0; }
.cb-v2 ul.cb-mb-servicios li { position: relative; padding: 5px 0 5px 24px; border-bottom: 1px dotted #c9dc95; font: 15px/1.4 var(--cb-serif); font-style: normal; }
.cb-v2 ul.cb-mb-servicios li::before { content: ""; position: absolute; left: 0; top: .55em; width: 15px; height: 15px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23e3f3b8'/%3E%3Cpath d='M4.5 8.3 7 10.6l4.6-5' fill='none' stroke='%23557010' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain; }
.cb-v2 .cb-mb-galeria { columns: 3 220px; column-gap: 12px; }
.cb-v2 .cb-mb-galeria a { display: block; break-inside: avoid; margin: 0 0 12px; overflow: hidden; border-radius: 5px; box-shadow: 0 4px 14px rgba(41, 69, 33, .1); cursor: zoom-in; }
.cb-v2 .cb-mb-galeria img, .cb-v2 .single .cb-mb-galeria img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; transition: transform .5s; }
.cb-v2 .cb-mb-galeria a:hover img { transform: scale(1.04); }
.cb-v2 .single .gm-ligero { border-radius: 6px; }
@media (max-width: 900px) { .cb-v2 ul.cb-mb-fiestas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	.cb-v2 ul.cb-mb-lugares, .cb-v2 ul.cb-mb-fiestas, .cb-v2 ul.cb-mb-servicios { grid-template-columns: 1fr; }
	.cb-v2 nav.cb-mb-indice { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.cb-v2 nav.cb-mb-indice a { flex: none; }
	.cb-v2 .cb-mb-galeria { columns: 2; column-gap: 8px; }
}
.cb-v2 ul.cb-mb-lugares { display: block; columns: 2; column-gap: 16px; }
.cb-v2 ul.cb-mb-lugares > li { break-inside: avoid; margin: 0 0 16px !important; }
@media (max-width: 600px) { .cb-v2 ul.cb-mb-lugares { columns: 1; } }

/* Fiesta de las Castañas (632/2026, 16-oct-2026): erizo en polaroid y fotos apaisadas */
.cb-v2 .cb-castanas-erizo { float: right; width: 206px; margin: 0 0 16px 26px; padding: 10px 10px 4px; background: #fff; border: 1px solid #dbeab3; border-radius: 4px; box-shadow: 0 6px 16px rgba(41, 69, 33, .14); transform: rotate(2deg); text-align: center; }
.cb-v2 .cb-castanas-erizo img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; }
.cb-v2 .cb-castanas-erizo figcaption { padding: 6px 0 4px; font: italic 14px var(--cb-serif); color: #557010; }
.cb-v2 .cb-ruta-fotos-ancha img, .cb-v2 .single .cb-ruta-fotos-ancha img { aspect-ratio: 3 / 2; }
@media (max-width: 600px) { .cb-v2 .cb-castanas-erizo { width: 42%; margin-left: 14px; } }
.cb-v2 ul.cb-castanas-datos { clear: both; }
.cb-v2 .cb-ruta-fotos-ancha { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cb-v2 .cb-ruta-texto p { font: 17px/1.75 var(--cb-serif); font-style: normal; color: #26301d; }
@media (max-width: 600px) { .cb-v2 .cb-ruta-fotos-ancha { grid-template-columns: 1fr; } }

/* Fiestas de San Miguel (612/2051, 16-oct-2026): programa religioso en línea de tiempo y programa por días */
.cb-v2 ol.cb-sm-linea { margin: 0; padding: 0 0 0 4px; list-style: none; }
#contenido .single ol.cb-sm-linea li, .cb-v2 ol.cb-sm-linea li { position: relative; margin: 0; padding: 0 0 12px 22px; border-left: 2px solid #c5dc8a; font: 15px/1.45 var(--cb-serif); font-style: normal; list-style: none; }
.cb-v2 ol.cb-sm-linea li:last-child { border-left-color: transparent; padding-bottom: 0; }
.cb-v2 ol.cb-sm-linea li::before { content: ""; position: absolute; left: -7px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--cb-ver); }
.cb-v2 ol.cb-sm-linea b { display: block; font: italic 700 14px var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .cb-sm-religioso { padding-bottom: 18px; }
.cb-v2 .cb-sm-dias { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.cb-v2 .cb-sm-dia { background: #fff; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .08); overflow: hidden; }
.cb-v2 #contenido .cb-sm-dia h3 { display: flex; align-items: center; gap: 12px; margin: 0; padding: 12px 16px; background: linear-gradient(160deg, #84a620, #4d660f); color: #f1fbd8; font: italic 17px/1.25 var(--cb-serif); border: 0; }
.cb-v2 #contenido .cb-sm-dia h3 span { font: 700 34px/1 var(--cb-serif); font-style: normal; color: #fff; }
.cb-v2 .cb-sm-dia ul { margin: 0; padding: 8px 16px 12px; list-style: none; }
#contenido .single .cb-sm-dia li, .cb-v2 .cb-sm-dia li { display: grid; grid-template-columns: 48px 1fr; gap: 8px; margin: 0; padding: 8px 0; border-bottom: 1px dashed #dbeab3; font: 15px/1.45 var(--cb-serif); font-style: normal; list-style: none; }
.cb-v2 .cb-sm-dia li:last-child { border-bottom: 0; }
.cb-v2 .cb-sm-dia li b { font: 700 14px/1.6 var(--cb-serif); color: var(--cb-ver); }
.cb-v2 .cb-sm-dia li.cb-sm-destacado { color: var(--cb-osc); font-weight: 700; }
.cb-v2 .cb-sm-dia li::marker { content: ""; }
.cb-v2 .cb-sm-fotos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 800px) { .cb-v2 .cb-sm-dias { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .cb-v2 .cb-sm-fotos { grid-template-columns: 1fr; } }
.cb-v2 #contenido .cb-sm-texto h2.cb-ruta-h2 { clear: none; margin-top: 26px; }
.cb-v2 .cb-sm-cols { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); margin-top: 6px; }
.cb-v2 .cb-sm-virgen { margin: 0; padding: 8px 8px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 4px; box-shadow: 0 6px 16px rgba(41, 69, 33, .14); transform: rotate(-1.5deg); }
.cb-v2 .cb-sm-virgen img, .cb-v2 .single .cb-sm-virgen img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; }
.cb-v2 .cb-sm-virgen figcaption { padding: 8px 4px 10px; text-align: center; font: italic 14px var(--cb-serif); color: #557010; }
@media (max-width: 800px) { .cb-v2 .cb-sm-cols { grid-template-columns: 1fr; } .cb-v2 .cb-sm-virgen { max-width: 300px; margin: 0 auto; } }

/* La Merendica (912, 16-oct-2026): foto antigua en polaroid y juegos en etiquetas */
.cb-v2 .cb-mer-foto { float: right; width: 440px; max-width: 46%; margin: 0 0 18px 28px; padding: 10px 10px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 4px; box-shadow: 0 6px 18px rgba(41, 69, 33, .16); transform: rotate(1.5deg); }
.cb-v2 .cb-mer-foto img, .cb-v2 .single .cb-mer-foto img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; }
.cb-v2 .cb-mer-foto figcaption { padding: 8px 4px 10px; text-align: center; font: italic 14px var(--cb-serif); color: #557010; }
.cb-v2 ul.cb-mer-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; padding: 0; }
#contenido .single ul.cb-mer-chips li, .cb-v2 ul.cb-mer-chips li { margin: 0; padding: 5px 12px; background: #fff; border: 1px solid #c5dc8a; border-radius: 999px; font: italic 15px var(--cb-serif); color: var(--cb-osc); list-style: none; }
.cb-v2 ul.cb-mer-chips li::before { display: none; }
.cb-v2 .single p.cb-mer-nota, .cb-v2 p.cb-mer-nota { margin: 0; font: italic 14px/1.5 var(--cb-serif); color: #6b7660; }
@media (max-width: 600px) { .cb-v2 .cb-mer-foto { float: none; width: auto; max-width: none; margin: 0 0 18px; transform: none; } }

/* Mecina Bombarón (864/1987, 16-oct-2026): galería final en polaroids con pie y habichuelas en polaroid */
.cb-v2 .cb-mb-fotos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cb-v2 .cb-mb-fotos figure:nth-child(odd) { transform: rotate(-1deg); }
.cb-v2 .cb-mb-fotos figure:nth-child(even) { transform: rotate(1deg); }
.cb-v2 .cb-mb-fotos img { object-position: center 65%; }
.cb-v2 .cb-mb-fotos picture { display: block; }
.cb-v2 .cb-mb-polaroid { padding: 8px 8px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 4px; box-shadow: 0 6px 16px rgba(41, 69, 33, .14); transform: rotate(1.5deg); }
@media (max-width: 600px) { .cb-v2 .cb-mb-fotos { grid-template-columns: 1fr; } .cb-v2 .cb-mb-fotos figure, .cb-v2 .cb-mb-polaroid { transform: none !important; } }

/* Menú de cabecera alemán: mismo flotado que el español (16-oct-2026) */
#menu-cab .menu-menu-cabecera-aleman-container { float: left; }
html[lang^="de"] #menu-cab { width: 480px; }
@media (max-width: 1000px) { html[lang^="de"] #menu-cab { width: auto; } }

/* Zona spa (218/1727, 16-oct-2026): aviso de cierre, cartel de la sauna y pasos */
.cb-v2 .cb-spa-aviso { display: flex; gap: 14px; align-items: flex-start; margin: 0 0 22px; padding: 16px 20px; background: #fff8e6; border: 1px solid #ecd9a4; border-left: 5px solid #c9962b; border-radius: 6px; }
.cb-v2 .cb-spa-aviso svg { flex: none; width: 28px; height: 28px; fill: none; stroke: #a8771a; stroke-width: 1.8; stroke-linecap: round; }
.cb-v2 .cb-spa-aviso strong { display: block; font: italic 700 19px/1.3 var(--cb-serif); color: #7a5410; }
.cb-v2 .cb-spa-aviso p, .cb-v2 .single .cb-spa-aviso p { margin: 4px 0 0; font: 15.5px/1.55 var(--cb-serif); font-style: normal; color: #4a3d1f; }
.cb-v2 .cb-spa-sauna { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 34px; align-items: start; }
.cb-v2 .cb-spa-cartel { margin: 0; padding: 10px 10px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 4px; box-shadow: 0 6px 18px rgba(41, 69, 33, .16); transform: rotate(-1.2deg); }
.cb-v2 .cb-spa-cartel img, .cb-v2 .single .cb-spa-cartel img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; }
.cb-v2 .cb-spa-cartel figcaption { padding: 8px 4px 10px; text-align: center; font: italic 14px var(--cb-serif); color: #557010; }
.cb-v2 ol.cb-spa-pasos { counter-reset: paso; margin: 0 0 16px; padding: 0; list-style: none; }
#contenido .single ol.cb-spa-pasos li, .cb-v2 ol.cb-spa-pasos li { counter-increment: paso; position: relative; margin: 0; padding: 9px 0 9px 48px; border-bottom: 1px dashed #dbeab3; font: 16px/1.45 var(--cb-serif); font-style: normal; list-style: none; }
.cb-v2 ol.cb-spa-pasos li::before { content: counter(paso); position: absolute; left: 0; top: 6px; width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(160deg, #84a620, #4d660f); color: #fff; font: 700 15px/32px var(--cb-serif); text-align: center; }
.cb-v2 ol.cb-spa-pasos strong { color: var(--cb-osc); }
.cb-v2 ol.cb-spa-pasos span { color: #4b5640; }
.cb-v2 .single p.cb-spa-nota, .cb-v2 p.cb-spa-nota { margin: 0; padding: 14px 16px; background: var(--cb-claro); border: 1px solid var(--cb-linea); border-radius: 6px; font: italic 15px/1.55 var(--cb-serif); color: #3b4a2e; }
.cb-v2 .single p.cb-spa-tour { font: 15px/1.5 var(--cb-serif); font-style: normal; }
@media (max-width: 760px) { .cb-v2 .cb-spa-sauna { grid-template-columns: 1fr; } .cb-v2 .cb-spa-cartel { max-width: 420px; margin: 0 auto; transform: none; } }
/* la plantilla de esta página lleva columna lateral de «Imágenes»: maqueta para un texto estrecho */
.cb-v2 .cb-spa ul.cb-castanas-datos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cb-v2 .cb-spa ul.cb-castanas-datos li:last-child { grid-column: 1 / -1; }
.cb-v2 .cb-spa .cb-ruta-cols, .cb-v2 .cb-spa .cb-spa-sauna { grid-template-columns: 1fr; }
.cb-v2 .cb-spa .cb-spa-cartel { max-width: 440px; margin: 0 auto; }
.cb-v2 .cb-spa .cb-ruta-cta { flex-direction: column; align-items: stretch; text-align: center; }
.cb-v2 .cb-spa-360 { overflow: hidden; border: 1px solid #dbeab3; border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .08); background: #fff; }
.cb-v2 .cb-spa-360 iframe { display: block; width: 100%; height: 380px; border: 0; }
.cb-v2 .single p.cb-spa-360-btn, .cb-v2 p.cb-spa-360-btn { margin: 12px 0 0; text-align: center; }
@media (max-width: 600px) { .cb-v2 .cb-spa-360 iframe { height: 300px; } .cb-v2 p.cb-spa-360-btn .cb-btn { display: block; } }

/* Imágenes antiguas del contenido a ancho completo en el móvil (inc/imagenes-movil.php, 16-oct-2026) */
@media (max-width: 600px) {
	.cb-v2 .single .wp-caption:not(.cb-gal-item) { float: none !important; width: auto !important; max-width: 100% !important; margin: 16px 0 !important; }
	.cb-v2 .single picture.cb-pic-movil { display: block; }
	.cb-v2 .single :not(.cb-gal-item) > a > picture.cb-pic-movil img, .cb-v2 .single :not(.cb-gal-item) > picture.cb-pic-movil img, .cb-v2 .single .wp-caption picture.cb-pic-movil img { display: block; float: none !important; width: 100% !important; max-width: 100% !important; height: auto !important; margin: 0 0 8px !important; }
	.cb-v2 .single .cb-gal picture.cb-pic-movil img { width: 100% !important; height: auto !important; }
}

/* Información práctica (44/2013, 17-oct-2026): fichas, tablas y urgencias */
.cb-v2 ul.cb-ip-fichas { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin: 0 0 10px; padding: 0; list-style: none; }
#contenido .single ul.cb-ip-fichas > li, .cb-v2 ul.cb-ip-fichas > li { margin: 0; padding: 16px 18px 14px; list-style: none; background: #fff; border: 1px solid #dbeab3; border-top: 3px solid var(--cb-ver); border-radius: 6px; box-shadow: 0 4px 14px rgba(41, 69, 33, .07); }
.cb-v2 ul.cb-ip-fichas > li.cb-ip-destacada { grid-column: 1 / -1; background: var(--cb-claro); }
.cb-v2 #contenido .cb-ip-ficha h3 { margin: 0 0 2px; padding: 0; border: 0; font: italic 19px/1.25 var(--cb-serif); color: var(--cb-osc); }
.cb-v2 .single p.cb-ip-donde, .cb-v2 p.cb-ip-donde { margin: 0 0 8px; font: italic 13.5px/1.4 var(--cb-serif); color: #6b7660; }
.cb-v2 .single .cb-ip-ficha p, .cb-v2 .cb-ip-ficha p { margin: 0 0 8px; font: 15px/1.55 var(--cb-serif); font-style: normal; color: #26301d; }
.cb-v2 ul.cb-ip-contacto { margin: 8px 0 0; padding: 8px 0 0; border-top: 1px dashed #dbeab3; list-style: none; }
#contenido .single ul.cb-ip-contacto li, .cb-v2 ul.cb-ip-contacto li { margin: 0; padding: 2px 0; list-style: none; font: 14.5px/1.45 var(--cb-serif); font-style: normal; }
.cb-v2 ul.cb-ip-contacto li::before, .cb-v2 ul.cb-ip-fichas > li::before { display: none; }
.cb-v2 ul.cb-ip-contacto a[href^="tel:"] { font-weight: 700; white-space: nowrap; }
.cb-v2 .cb-ip-emergencia { margin: 0 0 16px; padding: 14px 18px; background: #fff1ef; border: 1px solid #f0c4bc; border-left: 5px solid #c0392b; border-radius: 6px; }
.cb-v2 .single .cb-ip-emergencia p { margin: 0; font: 16px/1.6 var(--cb-serif); font-style: normal; color: #5a1f17; }
.cb-v2 .cb-ip-emergencia a { color: #a5281b; font-weight: 700; white-space: nowrap; }
.cb-v2 .cb-ip-tabla-wrap { overflow-x: auto; margin: 0 0 12px; border: 1px solid #dbeab3; border-radius: 6px; background: #fff; }
.cb-v2 table.cb-ip-tabla { width: 100%; border-collapse: collapse; font: 15px/1.45 var(--cb-serif); }
.cb-v2 table.cb-ip-tabla th, .cb-v2 table.cb-ip-tabla td { padding: 9px 12px; border-bottom: 1px solid #eef4dd; text-align: left; vertical-align: top; }
.cb-v2 table.cb-ip-tabla thead th { background: linear-gradient(160deg, #84a620, #4d660f); color: #fff; font: italic 15px var(--cb-serif); }
.cb-v2 table.cb-ip-tabla tbody th { color: var(--cb-osc); font-weight: 700; white-space: nowrap; }
.cb-v2 table.cb-ip-tabla td:last-child { white-space: nowrap; color: #557010; }
.cb-v2 table.cb-ip-tabla tbody tr:nth-child(even) { background: #fbfdf4; }
.cb-v2 .cb-ip-foto { float: right; width: 300px; margin: 0 0 14px 22px; padding: 8px 8px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 4px; box-shadow: 0 6px 16px rgba(41, 69, 33, .14); transform: rotate(1.2deg); }
.cb-v2 .cb-ip-foto img, .cb-v2 .single .cb-ip-foto img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; }
.cb-v2 .cb-ip-foto figcaption { padding: 7px 4px 9px; text-align: center; font: italic 13.5px var(--cb-serif); color: #557010; }
.cb-v2 .cb-ip-foto + ul.cb-ip-fichas { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.cb-v2 .single p.cb-ip-nota { clear: both; margin: 26px 0 0; padding: 12px 16px; background: var(--cb-claro); border: 1px solid var(--cb-linea); border-radius: 6px; font: italic 14.5px/1.5 var(--cb-serif); color: #3b4a2e; }
@media (max-width: 760px) { .cb-v2 .cb-ip-foto { float: none; width: auto; max-width: 420px; margin: 0 auto 16px; transform: none; } .cb-v2 table.cb-ip-tabla td:last-child { white-space: normal; } }

/* Cómo llegar (27/1968, 17-oct-2026) */
.cb-v2 .single p.cb-ll-botones { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 8px; }
.cb-v2 .cb-ll-mapa { margin: 26px 0 8px; padding: 10px 10px 0; background: #fff; border: 1px solid #dbeab3; border-radius: 4px; box-shadow: 0 6px 18px rgba(41, 69, 33, .14); }
.cb-v2 .cb-ll-mapa img, .cb-v2 .single .cb-ll-mapa img { display: block; width: 100%; height: auto; margin: 0; padding: 0; border: 0; }
.cb-v2 .cb-ll-mapa figcaption { padding: 8px 4px 10px; text-align: center; font: italic 14px var(--cb-serif); color: #557010; }
.cb-v2 .cb-ll iframe { display: block; border: 1px solid #dbeab3 !important; border-radius: 6px; }
@media (max-width: 600px) { .cb-v2 .single p.cb-ll-botones .cb-btn { flex: 1 1 100%; text-align: center; } }
