/* ===========================================================================
   Ca Ferminet — sistema de diseño (tema a medida)
   Una casa de piedra entre montañas, no un portal de reservas.
   Paleta y tipografía validadas 03/09/2026. Base clara. Un solo acento verde.
   =========================================================================== */

:root{
  --verde-marca:#455D58; --verde-oscuro:#2E3E3A; --verde-hondo:#22302C;
  --verde-salvia:#9DB2A6; --sage-claro:#E7EDE6;
  --crema:#F5F0E6; --crema-hueco:#EEE7D8; --blanco:#FFFFFF;
  --tinta:#232A26; --tinta-suave:#5B635C; --linea:#E4DDCD; --on-verde:#FBF9F3;

  --ok:var(--verde-marca); --ok-fondo:#E3EBE5;
  --ocupado:#9A9184; --ocupado-fondo:#EAE4D9;
  --aviso:#8A6A1E; --aviso-fondo:#F4E7C7;
  --error:#A34A3E; --error-fondo:#F1E0DD;

  --f-titulo:'Fraunces','Iowan Old Style',Georgia,serif;
  --f-cuerpo:'Hanken Grotesk',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-acento:'Caveat','Segoe Script',cursive;

  --r-sm:10px; --r-md:18px; --r-lg:26px; --r-xl:34px; --r-full:999px;

  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-6:1.5rem;
  --s-8:2rem; --s-12:3rem; --s-16:4rem; --s-24:6rem;

  --sombra-sutil:0 1px 3px rgba(35,42,38,.06);
  --sombra-carta:0 18px 44px -20px rgba(35,42,38,.30);
  --sombra-cta:0 10px 24px -10px rgba(69,93,88,.55);
  --transicion:200ms cubic-bezier(.22,1,.36,1);

  --ancho:1120px;
  --ancho-amplio:1320px;
  --gutter:clamp(1.15rem, 5vw, 2.5rem);
  --alto-header:74px;
}

/* --- Reset ligero --------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:calc(var(--alto-header) + 1rem); }
body{
  margin:0; background:var(--crema); color:var(--tinta);
  font-family:var(--f-cuerpo); font-size:1.0625rem; line-height:1.62;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img,svg,video{ max-width:100%; height:auto; display:block; }
/* Utilidades de alineación de bloque (por si no carga el CSS de bloques de WP) */
.has-text-align-center{ text-align:center; }
.has-text-align-left{ text-align:left; }
.has-text-align-right{ text-align:right; }
a{ color:var(--verde-marca); text-underline-offset:2px; }
a:hover{ color:var(--verde-oscuro); }
::selection{ background:var(--verde-salvia); color:var(--tinta); }
:focus-visible{ outline:2px solid var(--verde-marca); outline-offset:3px; border-radius:3px; }
strong,b{ font-weight:700; }

h1,h2,h3,h4{ font-family:var(--f-titulo); font-weight:500; line-height:1.12; color:var(--tinta);
  margin:0 0 .5em; text-wrap:balance; letter-spacing:-.01em; }
h1{ font-size:clamp(2.3rem,1.5rem + 3.4vw,3.4rem); }
h2{ font-size:clamp(1.75rem,1.2rem + 2.2vw,2.5rem); }
h3{ font-size:clamp(1.3rem,1.1rem + .9vw,1.6rem); }
p{ margin:0 0 1rem; }
p:last-child{ margin-bottom:0; }
.entry-content li{ margin-bottom:.4rem; }

.cf-skip{ position:absolute; left:-9999px; top:0; background:var(--verde-marca); color:#fff;
  padding:.6rem 1rem; border-radius:0 0 var(--r-sm) 0; z-index:1000; }
.cf-skip:focus{ left:0; }

/* Eyebrow */
.cf-eyebrow{
  font-family:var(--f-cuerpo); font-size:.78rem !important; font-weight:700;
  text-transform:uppercase; letter-spacing:.14em; color:var(--verde-marca);
  margin-block:0 .6rem !important; display:flex; align-items:center; gap:.5rem;
}
.cf-eyebrow::before{ content:""; width:22px; height:2px; background:currentColor; border-radius:2px; }
.cf-acento{ font-family:var(--f-acento); font-weight:700; font-size:1.35em; color:inherit; }

/* --- Contenedores / anchos de bloque ------------------------------ */
.cf-main{ display:block; }
.cf-page{ padding:0; }
.cf-page, .cf-page__content{ width:100%; max-width:none; }
.cf-page__head{ max-width:var(--ancho); margin:var(--s-16) auto var(--s-8); padding-inline:var(--gutter); }
.cf-page__title{ font-size:clamp(2rem,1.4rem + 3vw,2.9rem); }

.cf-main > :where(:not(.alignfull):not(.wp-block-cover)),
.entry-content > :where(:not(.alignfull):not(.alignwide)){
  max-width:var(--ancho); margin-inline:auto; padding-inline:var(--gutter);
}
.entry-content > .alignwide{ max-width:var(--ancho-amplio); margin-inline:auto; padding-inline:var(--gutter); }

/* A sangre de verdad: bandas de color de borde a borde, SIN margen vertical
   (que dejaba ver franjas de fondo entre secciones) */
.cf-main > .alignfull,
.entry-content > .alignfull{
  width:auto; max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-block:0;
}
.entry-content > .cf-seccion,
.entry-content > .wp-block-cover{ margin-block:0; }

/* Caja flotante: bloque contenido, con aire y esquinas redondeadas (no a sangre).
   Se aplica con la clase .cf-hero--caja o a la cita. */
.entry-content > .alignfull.cf-hero--caja,
.entry-content > .alignfull.cf-cita-cover{
  margin-inline:auto;
  margin-block:clamp(2rem,5vw,3.5rem);
  max-width:min(var(--ancho-amplio), calc(100% - 2 * var(--gutter)));
  border-radius:var(--r-lg);
  overflow:hidden;
}
.entry-content > .alignfull.cf-hero--caja:first-child{ margin-top:clamp(1.5rem,4vw,2.5rem); }

/* Primer bloque de texto de una página con título: aire arriba
   (el checkout de reservas ya tiene su propio padding superior en
   .page-id-16 .cf-page, así que no le sumamos otro más) */
.cf-page__content > :first-child:not(.wp-block-cover):not(.cf-seccion):not(.mphb_sc_checkout-wrapper){ margin-top:var(--s-12); }

/* ===========================================================================
   BOTONES — tres tonos, bien diferenciados
   =========================================================================== */
.cf-cta,
.wp-block-button__link, .wp-element-button,
.mphb_sc_search-submit-button-wrapper input[type="submit"],
.mphb_sc_search-submit-button-wrapper button,
.mphb-book-button-wrapper .button, button.mphb-load-more-button,
button.mphb-button, input.mphb-button, .mphb-button, .mphb-book-button, .mphb-confirm-reservation,
.mphb-reserve-btn, .mphb-recommendation-reserve-button, .mphb-reserve-room-section > button,
.cf-alojamiento__reserva input[type="submit"], .cf-alojamiento__reserva button[type="submit"],
.mphb_sc_checkout-submit-wrapper input[type="submit"],
.mphb_sc_checkout-form > p.mphb_sc_checkout-submit-wrapper input{
  --_bg:var(--verde-marca); --_fg:var(--on-verde); --_bd:var(--verde-marca);
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  background:var(--_bg); color:var(--_fg); border:1.5px solid var(--_bd);
  border-radius:var(--r-full);
  font-family:var(--f-cuerpo); font-weight:600; font-size:.98rem; line-height:1;
  min-height:50px; padding:0 1.9rem; text-decoration:none; cursor:pointer;
  box-shadow:var(--sombra-cta);
  transition:transform var(--transicion), box-shadow var(--transicion), background var(--transicion);
}
.cf-cta:hover,
.wp-block-button__link:hover, .wp-element-button:hover,
.mphb_sc_search-submit-button-wrapper input[type="submit"]:hover,
.mphb-book-button-wrapper .button:hover,
button.mphb-button:hover, input.mphb-button:hover, .mphb-button:hover, .mphb-book-button:hover,
.mphb-reserve-btn:hover, .mphb-confirm-reservation:hover,
.cf-alojamiento__reserva input[type="submit"]:hover{
  background:var(--verde-oscuro); border-color:var(--verde-oscuro); color:var(--on-verde);
  transform:translateY(-2px); box-shadow:0 16px 30px -12px rgba(69,93,88,.6);
}
/* flecha en el CTA principal */
.cf-cta::after,
.wp-block-button:not(.is-style-outline) .wp-block-button__link::after{
  content:"→"; font-size:1.05em; transition:transform var(--transicion);
}
.cf-cta:hover::after,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover::after{ transform:translateX(3px); }

/* Secundario */
.wp-block-button.is-style-outline .wp-block-button__link,
.cf-cta--fantasma{
  background:var(--blanco); color:var(--verde-marca); border-color:var(--linea);
  box-shadow:var(--sombra-sutil);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.cf-cta--fantasma:hover{
  background:var(--sage-claro); border-color:var(--verde-marca); color:var(--verde-oscuro);
  transform:translateY(-2px);
}
.wp-block-button.is-style-outline .wp-block-button__link::after{ content:""; }

.cf-cta--sm{ min-height:42px; padding:0 1.2rem; font-size:.88rem; box-shadow:none; }

/* ===========================================================================
   CABECERA
   =========================================================================== */
.cf-header{
  position:sticky; top:0; z-index:100;
  background:color-mix(in srgb, var(--crema) 88%, transparent);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent; transition:border-color var(--transicion), background var(--transicion);
}
.cf-header--scroll{ border-bottom-color:var(--linea); background:color-mix(in srgb, var(--crema) 96%, transparent); }
.cf-header__inner{
  max-width:var(--ancho-amplio); margin:0 auto; padding:.7rem var(--gutter);
  display:flex; align-items:center; gap:var(--s-6); min-height:var(--alto-header);
}
.cf-header__logo{ display:flex; align-items:center; gap:.6rem; flex:0 0 auto; text-decoration:none; }
.cf-header__logo img, .cf-header__logo .custom-logo{ max-height:48px; width:auto; }
.cf-header__nombre{
  font-family:var(--f-titulo); font-weight:600; font-size:1.35rem; color:var(--tinta);
  letter-spacing:-.01em; white-space:nowrap;
}
@media (max-width:420px){ .cf-header__nombre{ font-size:1.1rem; } }

.cf-nav{ margin-left:auto; display:flex; align-items:center; gap:var(--s-6); }
.cf-nav__list{ list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:clamp(.7rem,1.8vw,1.4rem); flex-wrap:wrap; }
.cf-nav__list a{ font-family:var(--f-cuerpo); font-weight:500; font-size:.95rem; color:var(--tinta); text-decoration:none; padding:.4rem 0; display:inline-block; position:relative; }
.cf-nav__list a::after{ content:""; position:absolute; left:0; right:100%; bottom:.15rem; height:2px; background:var(--verde-marca); border-radius:2px; transition:right var(--transicion); }
.cf-nav__list a:hover::after, .cf-nav__list .current-menu-item > a::after{ right:0; }
.cf-nav__list a:hover, .cf-nav__list .current-menu-item > a{ color:var(--verde-marca); }

.cf-cta--nav{ display:none; }
.cf-nav__extra{ display:none; } /* enlace "Mi cuenta" solo para el menú móvil */
.cf-cta--header{ flex:0 0 auto; min-height:44px; padding:0 1.4rem; font-size:.9rem; box-shadow:var(--sombra-sutil); }
.cf-cta--header:hover{ box-shadow:var(--sombra-cta); }

.cf-header__acciones{ display:flex; align-items:center; gap:var(--s-2); flex:0 0 auto; }
.cf-icono{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:var(--r-full);
  border:1.5px solid var(--linea); background:var(--blanco); color:var(--verde-oscuro);
  transition:background var(--transicion), border-color var(--transicion), color var(--transicion), transform var(--transicion);
}
.cf-icono:hover{ background:var(--verde-marca); border-color:var(--verde-marca); color:#fff; transform:translateY(-1px); }
.cf-icono svg{ display:block; }

.cf-icono--carrito{ position:relative; }
.cf-icono__badge{
  position:absolute; top:-4px; right:-4px; z-index:1;
  min-width:18px; height:18px; padding:0 4px; border-radius:var(--r-full);
  background:var(--verde-marca); color:#fff; border:2px solid var(--crema);
  font-family:var(--f-cuerpo); font-size:.66rem; font-weight:700; line-height:14px; text-align:center;
  transition:transform var(--transicion), opacity var(--transicion);
}
.cf-icono--carrito:hover .cf-icono__badge{ border-color:var(--verde-marca); }
.cf-icono__badge.is-vacio{ opacity:0; transform:scale(.4); }

.cf-nav-toggle{
  display:none; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:var(--r-full);
  background:transparent; border:1.5px solid var(--linea); color:var(--tinta); cursor:pointer; padding:0;
}
.cf-nav-toggle__bars, .cf-nav-toggle__bars::before, .cf-nav-toggle__bars::after{
  content:""; display:block; width:18px; height:2px; background:currentColor; border-radius:2px;
  transition:transform var(--transicion), opacity var(--transicion);
}
.cf-nav-toggle__bars{ position:relative; }
.cf-nav-toggle__bars::before{ position:absolute; top:-6px; }
.cf-nav-toggle__bars::after{ position:absolute; top:6px; }
.cf-nav-toggle[aria-expanded="true"] .cf-nav-toggle__bars{ background:transparent; }
.cf-nav-toggle[aria-expanded="true"] .cf-nav-toggle__bars::before{ transform:translateY(6px) rotate(45deg); }
.cf-nav-toggle[aria-expanded="true"] .cf-nav-toggle__bars::after{ transform:translateY(-6px) rotate(-45deg); }
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

@media (max-width:1040px){
  /* Todo en una sola fila: logo + nombre a la izquierda, iconos + menú a la derecha.
     El menú desplegable pasa a posicionarse en absoluto para no romper la fila. */
  .cf-header__inner{ gap:.5rem; flex-wrap:nowrap; position:relative; }
  .cf-header__logo{ flex:0 1 auto; min-width:0; }
  .cf-header__nombre{ overflow:hidden; text-overflow:ellipsis; }
  .cf-nav-toggle{ display:inline-flex; flex:0 0 auto; }
  .cf-cta--header{ display:none; }
  .cf-header__acciones{ margin-left:auto; gap:.4rem; flex:0 0 auto; }
  .cf-icono{ width:42px; height:42px; }
  .cf-nav-toggle{ width:42px; height:42px; }

  .cf-nav{
    order:0; margin:0; position:absolute; top:100%; left:0; right:0; z-index:20;
    flex-direction:column; align-items:stretch; gap:0;
    max-height:0; overflow:hidden;
    background:var(--crema); border-bottom:1px solid var(--linea); box-shadow:var(--sombra-sutil);
    transition:max-height var(--transicion);
  }
  .cf-nav.is-open{ max-height:80vh; overflow:auto; padding:var(--s-3) var(--gutter) var(--s-4); }
  .cf-nav__list{ flex-direction:column; align-items:stretch; gap:0; }
  .cf-nav__list li{ border-top:1px solid var(--linea); }
  .cf-nav__list li:first-child{ border-top:0; }
  .cf-nav__list a{ padding:.9rem .25rem; }
  .cf-nav__list a::after{ display:none; }
  .cf-cta--nav{ display:inline-flex; margin-top:var(--s-4); }

  /* En móvil el icono de "Mi cuenta" se quita de la cabecera (deja sitio al
     logo) y pasa a ser un elemento más del menú desplegable. */
  .cf-header__acciones .cf-icono--cuenta{ display:none; }
  .cf-nav__extra{
    display:block; padding:.9rem .25rem; border-top:1px solid var(--linea);
    font-family:var(--f-cuerpo); font-weight:500; font-size:.95rem;
    color:var(--tinta); text-decoration:none;
  }
  .cf-nav__extra:hover{ color:var(--verde-marca); }
}
@media (max-width:360px){
  .cf-header__nombre{ font-size:1rem; }
  .cf-header__inner{ padding-inline:.9rem; }
}

/* ===========================================================================
   HERO  (core/cover con clase cf-hero)
   =========================================================================== */
.wp-block-cover.cf-hero{
  min-height:min(90vh, 660px); border-radius:0; align-items:flex-end;
  padding-block:clamp(2.5rem, 8vh, 5rem);
  padding-inline:max(var(--gutter), calc(50vw - var(--ancho) / 2));
}
.wp-block-cover.cf-hero.cf-hero--corto{ min-height:min(60vh, 480px); }
.wp-block-cover.cf-hero .wp-block-cover__inner-container{
  margin:0; padding:0; max-width:var(--ancho); width:100%;
  position:relative; z-index:3;               /* SIEMPRE por encima del velo y del slideshow */
}
/* El velo oscuro es el del propio bloque (has-background-dim). SIEMPRE por detrás del contenido. */
.wp-block-cover.cf-hero .wp-block-cover__background{ z-index:2; }
.wp-block-cover.cf-hero .wp-block-cover__image-background{ z-index:1; border-radius:0 !important; }
/* La imagen de fondo de cualquier cover nunca va redondeada (lo redondea .entry-content img) */
.wp-block-cover__image-background{ border-radius:0 !important; }
/* Degradado extra abajo, tras el contenido, para dar cuerpo al texto sobre foto clara */
.cf-hero__slides::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg, rgba(30,42,38,.5) 0%, rgba(30,42,38,0) 55%);
}

/* Slideshow del hero (capa de fotos que se cruzan, detrás de todo) */
.cf-hero__slides{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.cf-hero-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transition:opacity 1400ms ease;
}
.cf-hero-slide.is-active{ opacity:1; }
@media (prefers-reduced-motion: reduce){ .cf-hero-slide{ transition:none; } }
.wp-block-cover.cf-hero h1{ color:#fff; max-width:16ch; text-shadow:0 2px 30px rgba(0,0,0,.4); margin-bottom:.4em; }
.wp-block-cover.cf-hero p{ color:rgba(255,255,255,.95); max-width:46ch; font-size:1.18rem; }
.wp-block-cover.cf-hero .cf-eyebrow{ color:#fff; text-shadow:0 1px 12px rgba(0,0,0,.5); }
.wp-block-cover.cf-hero .cf-eyebrow::before{ background:var(--verde-salvia); }
.wp-block-cover.cf-hero .cf-acento{ text-shadow:0 2px 16px rgba(0,0,0,.55); }
.wp-block-cover.cf-hero p{ text-shadow:0 1px 14px rgba(0,0,0,.5); }
/* Vignette suave tras el texto en los heroes centrados (mejor lectura sobre foto clara) */
.wp-block-cover.cf-hero.is-position-center-center .wp-block-cover__background{
  background-image:radial-gradient(ellipse 80% 65% at 50% 55%, rgba(20,28,25,.45), rgba(20,28,25,0) 75%);
}
/* Hero con el texto alineado a la izquierda, todo al mismo margen */
.wp-block-cover.cf-hero.is-position-center-left{ align-items:center; text-align:left; }
.wp-block-cover.cf-hero.is-position-center-left .wp-block-cover__inner-container{ margin-left:0; margin-right:auto; }
.wp-block-cover.cf-hero.is-position-center-left :is(h1,p,.cf-eyebrow){ text-align:left; }
.wp-block-cover.cf-hero.is-position-center-left .cf-eyebrow{ justify-content:flex-start; }
.wp-block-cover.cf-hero.is-position-center-left .wp-block-cover__background{
  background-color:transparent !important;
  opacity:1 !important;
  background-image:linear-gradient(90deg, rgba(18,24,21,.82) 0%, rgba(18,24,21,.58) 38%, rgba(18,24,21,.36) 68%, rgba(18,24,21,.3) 100%);
}
.wp-block-cover.cf-hero.is-position-center-left h1{ margin-left:0; }
.page-id-12120 .wp-block-cover.cf-hero .wp-block-cover__image-background{ object-position:center 62%; }
.wp-block-cover.cf-hero.is-position-center-left .cf-acento-linea{ margin-top:.3rem; }

.cf-nota-promo{
  display:inline-flex; align-items:center; gap:.5rem; margin-top:var(--s-4) !important;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.4);
  border-radius:var(--r-full); padding:.45rem 1.1rem; color:#fff !important; font-size:.92rem; font-weight:500;
  backdrop-filter:blur(4px);
}
.cf-nota-promo::before{ content:"✦"; color:var(--verde-salvia); }

/* ===========================================================================
   BUSCADOR DE DISPONIBILIDAD (MotoPress · shortcode)
   =========================================================================== */
.mphb_sc_search-wrapper{
  background:#fff; border:1px solid var(--linea); border-radius:var(--r-lg);
  padding:clamp(1.1rem,2.5vw,1.7rem); box-shadow:var(--sombra-carta); margin-top:var(--s-6);
}
.cf-hero .mphb_sc_search-wrapper{ position:relative; z-index:4; background:#fff; }

.mphb_sc_search-form{ display:flex; flex-wrap:wrap; gap:.9rem 1rem; align-items:end; }
.mphb_sc_search-form > p{ margin:0; flex:1 1 170px; min-width:150px; }
.mphb_sc_search-form > p.mphb_sc_search-submit-button-wrapper{ flex:1 1 100%; margin-top:.2rem; }
/* fuera el aviso "los campos obligatorios..." — las etiquetas ya llevan * */
.mphb_sc_search-form .mphb-required-fields-tip{ display:none !important; }
.mphb_sc_search-form label{
  display:block; margin-bottom:.4rem;
  font-family:var(--f-cuerpo); font-size:.74rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.09em; color:var(--tinta-suave);
}
.mphb_sc_search-form label abbr{ border:0; text-decoration:none; color:var(--verde-marca); }
.mphb_sc_search-form br{ display:none; }
.mphb_sc_search-wrapper input:not([type="hidden"]):not([type="submit"]),
.mphb_sc_search-wrapper select{
  width:100%; min-height:50px; padding:0 .95rem; background:var(--blanco);
  border:1.5px solid var(--linea); border-radius:var(--r-sm);
  font-family:var(--f-cuerpo); font-size:1rem; color:var(--tinta); appearance:none;
}
.mphb_sc_search-wrapper input:not([type="hidden"]):not([type="submit"]):focus,
.mphb_sc_search-wrapper select:focus{ border-color:var(--verde-marca); outline:2px solid var(--verde-marca); outline-offset:1px; }
.mphb_sc_search-wrapper select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23455D58' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .8rem center; padding-right:2.4rem;
}
.mphb_sc_search-check-in-date input, .mphb_sc_search-check-out-date input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23455D58' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='3'/%3E%3Cpath d='M3 10h18M8 2v4M16 2v4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .8rem center; padding-right:2.4rem; cursor:pointer;
}
.mphb_sc_search-submit-button-wrapper input[type="submit"]{ width:100%; min-height:52px; }
.mphb-required-fields-tip, .mphbs-required-fields-tip{ flex-basis:100%; font-size:.78rem; color:var(--tinta-suave); margin:0 0 -.2rem; }

/* ===========================================================================
   DATEPICKER / CALENDARIO  (jQuery datepick + disponibilidad de MotoPress)
   Solo dos estados para el huésped: verde = se puede reservar, rojo = no
   (ocupado o bloqueado, da igual el motivo). Días pasados: gris tenue.
   Borde verde = hoy. Entrada/salida elegidas = verde oscuro.
   =========================================================================== */
:root{
  --cal-libre-bg:#D3E7D7;      --cal-libre-fg:#2E3E3A;
  --cal-no-bg:#F0CFCB;         --cal-no-fg:#8A4A3E;
  --cal-pasado-bg:#F1EEE7;     --cal-pasado-fg:#B8B4AA;
  --cal-rango-bg:#8FA797;      --cal-rango-fg:#ffffff;
  --cal-elegido-bg:#2E3E3A;    --cal-elegido-fg:#ffffff;
}

/* El popup son dos divs: .datepick-popup (posiciona) > .datepick (la tarjeta).
   datepick calcula el ancho sumando el de cada mes; si los meses van en %,
   se dispara. Por eso los meses llevan ancho fijo en rem y a la tarjeta le
   forzamos width:auto para que se ajuste al contenido. */
.datepick-popup{ max-width:calc(100vw - 1rem); z-index:99999; }
.datepick-popup > .datepick,
.datepick.datepick-popup{
  width:auto !important; max-width:calc(100vw - 1rem); box-sizing:border-box;
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  box-shadow:var(--sombra-carta); padding:1.1rem; font-family:var(--f-cuerpo);
  font-size:.9rem !important; line-height:1.35; color:var(--tinta);
}
.datepick a{ color:var(--tinta); }
.datepick .datepick-nav, .datepick .datepick-ctrl{
  background:transparent; color:var(--tinta); font-weight:600; float:none; width:auto;
  display:flex; align-items:center; justify-content:space-between; padding:.15rem .25rem;
}
.datepick .datepick-ctrl{ border-top:1px solid var(--linea); margin-top:.5rem; padding-top:.5rem; }
.datepick .datepick-cmd{
  width:auto !important; float:none !important; text-align:center;
  padding:.35rem .7rem; border-radius:var(--r-full); color:var(--verde-marca); font-weight:600;
}
.datepick .datepick-cmd:hover{ background:var(--sage-claro); color:var(--verde-oscuro); }
.datepick .datepick-cmd-current, .datepick .datepick-cmd-today{ width:auto; color:var(--tinta); }
.datepick .datepick-cmd.datepick-disabled{ color:var(--linea); background:transparent; }

/* Los dos meses, uno al lado del otro. Ancho FIJO en rem (no %) para que
   datepick no calcule un popup gigante. */
.datepick-month-row{ clear:none; display:flex; flex-wrap:nowrap; gap:1.3rem; }
.datepick .datepick-month{ float:none !important; width:15.5rem !important; flex:0 0 auto; border:0; }
.datepick .datepick-month-header,
.datepick .datepick-month-header select,
.datepick .datepick-month-header input{
  background:transparent; color:var(--tinta); font-family:var(--f-titulo);
  font-weight:500; font-size:1.05rem; text-align:center; padding-bottom:.5rem;
}
.datepick .datepick-month table{ border-collapse:separate; border-spacing:5px; width:100%; }
.datepick .datepick-month thead{ border:0; }
.datepick .datepick-month th{ border:0; padding:.2rem 0 .5rem; }
.datepick .datepick-month th, .datepick .datepick-month th a{
  background:transparent; color:var(--tinta-suave); font-size:.7rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em;
}
.datepick .datepick-month td{ background:transparent; border:0; padding:0; }
.datepick .datepick-month a,
.datepick .datepick-month span{
  display:block; border-radius:var(--r-sm); padding:.55em 0; min-height:2.4em;
  background:transparent; color:var(--tinta); font-weight:500; text-decoration:none;
  background-image:none !important; opacity:1 !important;
  transition:background 120ms ease, color 120ms ease, box-shadow 120ms ease;
}

/* --- Solo dos colores. Nada de degradados ni transparencias (MotoPress mete
       opacity:0.5 en los días reservados; por eso salían "dos rojos"). --- */

/* VERDE — cualquier día seleccionable (es un enlace) */
.datepick-popup .datepick-month td a{
  background:var(--cal-libre-bg) !important; color:var(--cal-libre-fg) !important;
}
.datepick-popup .datepick-month td a:hover{ background:var(--verde-salvia) !important; color:#fff !important; }

/* ROJO — cualquier día NO seleccionable (es un span) */
.datepick-popup .datepick-month td span{
  background:var(--cal-no-bg) !important; color:var(--cal-no-fg) !important; cursor:not-allowed;
}

/* GRIS TENUE — días pasados o fuera del rango de antelación */
.datepick-popup .datepick-month td .mphb-past-date,
.datepick-popup .datepick-month td .mphb-earlier-min-date,
.datepick-popup .datepick-month td .mphb-later-max-date,
.datepick-popup .datepick-month td .mphb-earlier-check-in-date{
  background:var(--cal-pasado-bg) !important; color:var(--cal-pasado-fg) !important; opacity:.6 !important;
}

/* Fuera del mes: no se ve */
.datepick .datepick-month td .datepick-other-month,
.datepick-popup .datepick-month td .mphb-extra-date{ visibility:hidden; }

/* Hoy: recuadro con borde verde */
.datepick-popup .datepick-month td .datepick-today{
  box-shadow:inset 0 0 0 2px var(--verde-marca) !important; color:var(--verde-marca) !important; font-weight:700;
}

/* Rango entre entrada y salida (previsualización) */
.datepick-popup .datepick-month td .datepick-highlight,
.datepick-popup .datepick-month td a.datepick-highlight,
.datepick-popup .datepick-month td .mphb-check-in-date{
  background:var(--cal-rango-bg) !important; color:#fff !important;
}

/* Entrada / salida elegidas: verde oscuro */
.datepick-popup .datepick-month td .datepick-selected,
.datepick-popup .datepick-month td a.datepick-selected{
  background:var(--cal-elegido-bg) !important; color:#fff !important; font-weight:700;
}

.datepick .datepick-status{ background:transparent; color:var(--tinta-suave); font-size:.8rem; padding:.3rem 0 .1rem; }
.datepick button.datepick-cmd{ background:var(--sage-claro); color:var(--verde-oscuro); }

/* Móvil: los meses se apilan y el popup cabe en la pantalla.
   Además el input va a 16px para que iOS NO haga zoom al enfocarlo. */
@media (max-width:640px){
  .datepick-month-row{ flex-wrap:wrap; gap:1rem; }
  .datepick .datepick-month{ width:100% !important; max-width:20rem; margin-inline:auto; float:none !important; }
  .datepick-popup{ left:.5rem !important; right:.5rem !important; max-width:calc(100vw - 1rem) !important; }
  .datepick-popup > .datepick,
  .datepick.datepick-popup{ width:100% !important; max-width:100% !important; box-sizing:border-box; }
  .datepick .datepick-month table{ border-spacing:3px; }
  .datepick .datepick-month a,
  .datepick .datepick-month span{ font-size:.9rem; }

  input.mphb-datepick,
  .mphb_sc_search-check-in-date input, .mphb_sc_search-check-out-date input,
  .mphb_sc_search-wrapper select,
  .cf-alojamiento__reserva input[type="text"], .cf-alojamiento__reserva select,
  .mphb-booking-form input, .mphb-booking-form select,
  .mphb-customer-details input, .mphb-customer-details select{
    font-size:16px !important;
  }
}

/* Leyenda (la inyecta tema.js en el popup) */
.cf-cal-leyenda{
  display:flex; flex-wrap:wrap; gap:.4rem 1.1rem; padding:0 .25rem .8rem;
  font-size:.78rem; color:var(--tinta-suave); border-bottom:1px solid var(--linea); margin-bottom:.8rem;
}
.cf-cal-leyenda span{ display:inline-flex; align-items:center; gap:.4rem; }
.cf-cal-leyenda span::before{
  content:""; width:14px; height:14px; border-radius:5px; background:var(--cal-libre-bg);
}
.cf-cal-leyenda .es-no::before{ background:var(--cal-no-bg); }
.cf-cal-leyenda .es-hoy::before{ background:transparent; box-shadow:inset 0 0 0 2px var(--verde-marca); }

/* Variables que lee el calendario de disponibilidad de MotoPress */
.mphb-calendar, .mphb_sc_availability-calendar-wrapper, .datepick, .datepick-popup{
  --mphb-available-date-bg:var(--cal-libre-bg); --mphb-available-date-color:var(--cal-libre-fg);
  --mphb-not-available-date-bg:var(--cal-no-bg); --mphb-not-available-date-color:var(--cal-no-fg);
  --mphb-booked-date-bg:var(--cal-no-bg); --mphb-booked-date-color:var(--cal-no-fg);
  --mphb-out-of-season-date-bg:var(--cal-no-bg); --mphb-out-of-season-date-color:var(--cal-no-fg);
  --mphb-selected-date-bg:var(--cal-elegido-bg); --mphb-selected-date-color:var(--cal-elegido-fg);
  --mphb-unselectable-date-color:var(--cal-no-fg);
}

/* ===========================================================================
   SECCIONES DE LA PORTADA — variedad de fondos
   =========================================================================== */
.cf-seccion{ padding-block:clamp(3.5rem,9vw,6.5rem); position:relative; }
.cf-seccion.is-layout-constrained > :where(:not(.alignfull)){ max-width:min(var(--ancho), 100% - 2 * var(--gutter)); margin-inline:auto; }
.cf-seccion--blanco{ background:var(--blanco); }
.cf-seccion--crema{ background:var(--crema-hueco); }
.cf-seccion--sage{ background:var(--sage-claro); }
.cf-seccion--verde{ background:var(--verde-marca); color:var(--on-verde); }
/* Secciones contiguas: van pegadas, el cambio lo marca el color (sin líneas ni franjas) */
.cf-seccion--verde :is(h1,h2,h3,p){ color:var(--on-verde); }
.cf-seccion--verde .cf-eyebrow{ color:#fff; }
.cf-seccion--verde .cf-eyebrow::before{ background:var(--verde-salvia); }

/* (La onda decorativa se retiró: transiciones de sección por cambio de color limpio.)
   Se mantiene la clase como alias inofensivo por si queda en algún contenido. */
.cf-seccion--onda{ margin-top:0; }

.cf-seccion .wp-block-columns{ gap:clamp(1.75rem,5vw,4.5rem); align-items:center; }
.cf-seccion .wp-block-column p{ max-width:52ch; }
.cf-foto img{
  border-radius:var(--r-lg); width:100%; aspect-ratio:4/3; object-fit:cover;
  box-shadow:var(--sombra-carta);
}
.cf-precio{
  font-family:var(--f-titulo); font-weight:600; font-size:1.55rem;
  color:var(--verde-marca) !important; margin:.2rem 0 !important;
  display:inline-flex; align-items:baseline; gap:.3rem;
}
.cf-seccion--verde .cf-precio{ color:#fff !important; }
.cf-seccion .wp-block-list{ padding-left:0; list-style:none; }
.cf-seccion .wp-block-list li{ position:relative; padding-left:1.6rem; margin-bottom:.5rem; }
.cf-seccion .wp-block-list li::before{
  content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%;
  background:var(--verde-salvia);
}
.cf-seccion--verde .wp-block-list li::before{ background:rgba(255,255,255,.6); }

.cf-seccion--verde .wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent; border-color:rgba(255,255,255,.65); color:#fff;
}
.cf-seccion--verde .wp-block-button.is-style-outline .wp-block-button__link:hover{
  background:rgba(255,255,255,.14); border-color:#fff; color:#fff;
}

/* --- Fila de 4 fotos (bloques de galería por tema) ------------- */
.cf-fila4{ margin-top:var(--s-6); gap:var(--s-4) !important; }
.cf-fila4 .wp-block-column{ margin:0 !important; }
.cf-fila4 .wp-block-image{ margin:0; }
.cf-fila4 .wp-block-image img{
  width:100%; aspect-ratio:4/5; object-fit:cover;
  border-radius:var(--r-md); box-shadow:var(--sombra-sutil); display:block;
}
@media (max-width:781px){
  .cf-fila4{ flex-wrap:wrap; }
  .cf-fila4 .wp-block-column{ flex-basis:calc(50% - var(--s-4)/2) !important; }
}
@media (max-width:480px){ .cf-fila4 .wp-block-column{ flex-basis:100% !important; } }

/* --- El entorno: galería de naturaleza -------------------------- */
.cf-entorno .wp-block-gallery.cf-galeria-entorno{ gap:var(--s-3); margin-top:var(--s-8); }
.cf-galeria-entorno .wp-block-image{ margin:0; }
.cf-galeria-entorno .wp-block-image img{
  border-radius:var(--r-md); width:100%; height:100%; aspect-ratio:1; object-fit:cover;
  box-shadow:0 12px 30px -18px rgba(0,0,0,.5);
}
.cf-entorno .wp-block-buttons{ margin-top:var(--s-8); }

/* --- Servicios extra -------------------------------------------- */
.cf-servicios__grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-6); margin-top:var(--s-8);
}
@media (max-width:820px){ .cf-servicios__grid{ grid-template-columns:1fr; max-width:32rem; margin-inline:auto; } }
.cf-servicio{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  padding:var(--s-8) var(--s-6); text-align:center;
}
.cf-servicio svg{
  width:40px; height:40px; color:var(--verde-marca); margin:0 auto var(--s-4);
}
.cf-servicio h3{ font-size:1.2rem; margin-bottom:.4rem; }
.cf-servicio p{ color:var(--tinta-suave); font-size:.95rem; margin:0; }

/* --- Titular grande (personalidad editorial) ------------------ */
.cf-titular-grande{
  font-size:clamp(2rem, 1.3rem + 3.4vw, 3.2rem) !important; font-weight:500; line-height:1.08;
}
.cf-titular-grande .cf-acento{ font-size:1.25em; }
.wp-block-cover.cf-hero .cf-titular-grande{ color:#fff; }

/* Hero centrado (páginas interiores) */
.wp-block-cover.cf-hero.is-position-center-center{ align-items:center; text-align:center; }
.wp-block-cover.cf-hero.is-position-center-center .wp-block-cover__inner-container{ margin-inline:auto; }
.cf-acento-linea{ margin-top:.2rem !important; }
.wp-block-cover.cf-hero .cf-acento{ color:var(--verde-salvia); font-size:1.9rem; }

/* --- Artículo / página de texto (El entorno) ------------------ */
.cf-articulo{ padding-block:var(--s-16) var(--s-12); }
.cf-articulo > *{ max-width:62ch; margin-inline:auto; }
.cf-lead{
  font-family:var(--f-titulo); font-size:clamp(1.3rem,1.05rem + 1vw,1.7rem) !important;
  line-height:1.4; color:var(--tinta);
}
.cf-articulo .cf-foto img{ aspect-ratio:16/9; }

/* --- Franja de datos (números grandes) ---------------------- */
.cf-datos{ padding-block:clamp(2.5rem,6vw,4rem); }
.cf-stats{
  list-style:none; margin:0; padding:0; display:grid; gap:var(--s-6);
  grid-template-columns:repeat(5,1fr); text-align:center;
}
@media (max-width:900px){ .cf-stats{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:420px){ .cf-stats{ grid-template-columns:1fr; } }
.cf-stat__n{
  display:block; font-family:var(--f-titulo); font-weight:600;
  font-size:clamp(2rem,1.4rem + 2.4vw,3rem); line-height:1; color:#fff;
}
.cf-stat__l{
  display:block; margin-top:.5rem; font-size:.85rem; line-height:1.35;
  color:color-mix(in srgb, var(--on-verde) 82%, transparent);
}

/* --- Cinta de pueblos en movimiento ------------------------ */
.cf-pueblos{ overflow:hidden; margin:var(--s-6) 0; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.cf-pueblos__track{
  display:flex; gap:1.5rem; width:max-content; align-items:baseline;
  font-family:var(--f-titulo); font-size:clamp(1.6rem,1.2rem + 2vw,2.6rem); color:var(--verde-marca);
  animation:cf-desliza 34s linear infinite;
}
.cf-pueblos__track span:nth-child(even){ color:var(--verde-salvia); font-size:.7em; }
@keyframes cf-desliza{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){
  .cf-pueblos__track{ animation:none; flex-wrap:wrap; width:auto; justify-content:center; }
  .cf-pueblos{ mask-image:none; -webkit-mask-image:none; }
}

/* --- Pet friendly: par de fotos (perrito / humana) ----------- */
.cf-par-fotos{ margin-top:var(--s-8); gap:var(--s-4) !important; }
.cf-par-fotos .cf-foto img{ aspect-ratio:4/3; object-fit:cover; border-radius:var(--r-md); }
.cf-par-fotos figcaption{
  margin-top:.6rem; text-align:center; font-family:var(--f-acento);
  font-size:1.5rem; line-height:1; color:var(--verde-marca);
}

/* --- Pet friendly: hero (foto de Alicia — encuadre y altura) - */
.page-id-12077 .wp-block-cover.cf-hero.cf-hero--corto{ min-height:min(72vh, 600px); }
.page-id-12077 .wp-block-cover.cf-hero .wp-block-cover__image-background{ object-position:center 18%; }

/* --- Pet friendly: rutas (sección con foto de fondo) --------- */
.wp-block-cover.cf-rutas--foto{
  padding-block:clamp(3.5rem,10vw,7rem); align-items:center;
}
.wp-block-cover.cf-rutas--foto .wp-block-cover__image-background{ object-position:center 72%; }
.wp-block-cover.cf-rutas--foto .wp-block-cover__inner-container{
  max-width:var(--ancho); width:100%; margin-inline:auto; padding-inline:var(--gutter); position:relative; z-index:2;
}
.cf-rutas--foto :is(h2,h3,p){ color:#fff; }
.cf-rutas--foto .cf-eyebrow{ color:#fff; }
.cf-rutas--foto .cf-eyebrow::before{ background:var(--verde-salvia); }
.cf-rutas--foto .cf-titular-grande{ text-shadow:0 2px 24px rgba(0,0,0,.45); }
/* Las tarjetas de ruta, sólidas sobre la foto */
.cf-rutas--foto .cf-ruta{ background:var(--blanco); }
.cf-rutas--foto .cf-ruta :is(h3,p){ color:var(--tinta); }
.cf-rutas--foto .cf-ruta p:last-child{ color:var(--tinta-suave); }
.cf-rutas__grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:var(--s-6); margin-top:var(--s-8);
}
@media (max-width:720px){ .cf-rutas__grid{ grid-template-columns:1fr; } }
.cf-ruta{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  padding:var(--s-6);
}
.cf-ruta__dur{
  display:inline-block; margin:0 0 .5rem !important; font-size:.75rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em; color:var(--verde-marca);
  background:var(--sage-claro); border-radius:var(--r-full); padding:.28rem .8rem;
}
.cf-ruta h3{ font-size:1.25rem; margin:0 0 .4rem; }
.cf-ruta p:last-child{ color:var(--tinta-suave); font-size:.95rem; margin:0; }

.cf-chips-fila{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:var(--s-4); }
.cf-chips-fila .cf-chip{ background:var(--sage-claro); border-color:transparent; color:var(--verde-oscuro); }

/* --- Pet friendly: límites de perros (sección verde) --------- */
.cf-pet-limites{
  display:grid; grid-template-columns:1fr 1fr; gap:var(--s-6); max-width:640px;
  margin:var(--s-8) auto 0;
}
@media (max-width:560px){ .cf-pet-limites{ grid-template-columns:1fr; } }
.cf-pet-limite{
  text-align:center; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.22);
  border-radius:var(--r-lg); padding:var(--s-8) var(--s-6);
}
.cf-pet-limite__n{
  display:block; font-family:var(--f-titulo); font-weight:600; font-size:3rem; line-height:1; color:#fff;
}
.cf-pet-limite p{ margin:.6rem 0 0; font-size:.95rem; color:color-mix(in srgb, var(--on-verde) 90%, transparent); }
.cf-pet-limite strong{ color:#fff; }

/* --- Cita sobre imagen ------------------------------------- */
.cf-cita-cover .wp-block-cover__inner-container{ max-width:900px; margin-inline:auto; padding-inline:var(--gutter); }
.cf-cita{
  color:#fff !important; font-family:var(--f-titulo); font-weight:400;
  font-size:clamp(1.4rem,1.1rem + 1.8vw,2.2rem) !important; line-height:1.35;
  text-shadow:0 2px 20px rgba(0,0,0,.4);
}

/* --- Reseñas Google (widget Trustindex) ---------------------- */
.cf-testimonios .ti-widget{ margin-top:var(--s-6); }
.cf-testimonios .ti-widget[style*="display: none"]{ display:none !important; }

/* --- Testimonios ---------------------------------------------- */
.cf-testimonios__grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-6); margin-top:var(--s-8);
}
@media (max-width:820px){ .cf-testimonios__grid{ grid-template-columns:1fr; max-width:34rem; margin-inline:auto; } }
.cf-testimonio{
  background:var(--crema-hueco); border-radius:var(--r-lg); padding:var(--s-8) var(--s-6);
  margin:0; border-left:3px solid var(--verde-salvia);
}
.cf-testimonio p{
  font-family:var(--f-titulo); font-size:1.15rem; line-height:1.4; color:var(--tinta); margin:0 0 var(--s-4);
}
.cf-testimonio cite{
  font-style:normal; font-weight:600; font-size:.85rem; text-transform:uppercase;
  letter-spacing:.06em; color:var(--tinta-suave);
}

/* Chips */
.cf-chip, .wp-block-tag-cloud a{
  display:inline-flex; align-items:center; gap:.4rem; padding:.4rem .9rem;
  border-radius:var(--r-full); background:var(--blanco); border:1px solid var(--linea);
  font-size:.82rem; font-weight:600; color:var(--tinta-suave); text-decoration:none;
}

/* ===========================================================================
   PÁGINAS
   =========================================================================== */
.entry-content > :where(:not(.cf-seccion):not(.wp-block-cover):not(.alignfull)){ margin-block:var(--s-6); }
.entry-content h2{ margin-top:var(--s-12); }
.entry-content img{ border-radius:var(--r-md); }
.entry-content ul, .entry-content ol{ max-width:62ch; }
.cf-404{ text-align:center; padding-block:var(--s-24); }

/* ===========================================================================
   PRECIOS MOTOPRESS — fuera el salmón
   =========================================================================== */
.mphb-price, .mphb-price *, .mphb-price-value, .mphb-currency, .mphb_sc_rooms-price,
.mphb-room-price, .mphb-period-price, .mphb-regular-price,
.mphb-single-room-type .mphb-price, .price .amount, ins .amount{
  color:var(--verde-marca) !important; font-family:var(--f-titulo); font-weight:600;
}
del .amount{ color:var(--tinta-suave) !important; font-family:var(--f-cuerpo); }

/* ===========================================================================
   RESULTADOS DE BÚSQUEDA
   =========================================================================== */
.page-id-14 .cf-page{ padding-block:var(--s-12) var(--s-16); }
.mphb_sc_search_results-wrapper{ display:block; }

/* Cabecera "X alojamientos disponibles..." */
.mphb_sc_search_results-info{
  font-family:var(--f-titulo); font-size:clamp(1.5rem,1.1rem + 1.6vw,2.2rem); font-weight:500;
  color:var(--tinta); margin:0 0 var(--s-3); max-width:none; line-height:1.15;
}
.mphb_sc_search_results-wrapper > .mphb_sc_search_results-info + *{ margin-top:var(--s-4); }

/* Barra de "carrito" vacío ("Elija entre alojamientos disponibles") — compacta */
.mphb-reservation-cart{ margin:0 0 var(--s-6) !important; }
.mphb-reservation-cart .mphb-reservation-details{ margin:0 !important; }
.mphb-reservation-cart.mphb-empty-cart .mphb-empty-cart-message{ margin:0 !important; color:var(--tinta-suave); font-size:.95rem; }
.mphb-reservation-cart.mphb-empty-cart .mphb-cart-message,
.mphb-reservation-cart.mphb-empty-cart .mphb-cart-total-price,
.mphb-reservation-cart.mphb-empty-cart [type="submit"],
.mphb-reservation-cart.mphb-empty-cart button{ display:none !important; }

/* Bloque "Recomendado" — oculto de momento (pendiente decisión de Andrea) */
.mphb-recommendation, .mphb-recommendation-title{ display:none !important; }
/* El carrito / "Confirmar reserva" los controla MotoPress: NO los tocamos. */

/* El «(+%s impuestos y cargos)» roto lo fija el filtro gettext a « + impuestos y cargos» */

/* Lista de tarjetas */
.mphb_sc_search_results-wrapper{ display:flex; flex-direction:column; gap:var(--s-6); }

/* Tarjeta: foto (imagen destacada, sin carrusel) | contenido */
.mphb-room-type{
  display:grid; grid-template-columns:minmax(0,36%) 1fr; align-items:stretch;
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  overflow:hidden; box-shadow:var(--sombra-sutil); margin:0 !important;
  transition:box-shadow var(--transicion), transform var(--transicion);
}
.mphb-room-type:hover{ box-shadow:var(--sombra-carta); transform:translateY(-2px); }
.mphb-room-type:not(:has(.mphb-loop-room-thumbnail)):not(:has(.mphb-room-type-images)){ grid-template-columns:1fr; }

/* Columna de la foto */
.mphb-loop-room-thumbnail, .mphb-room-type-images{
  margin:0 !important; padding:0 !important; position:relative; overflow:hidden;
  background:var(--sage-claro); min-height:220px;
}
.mphb-loop-room-thumbnail img, .mphb-room-type-images img{
  width:100% !important; height:100% !important; position:absolute; inset:0;
  object-fit:cover; display:block; border-radius:0;
}

/* Columna de contenido */
.cf-room__body{
  padding:clamp(1.4rem,2.5vw,1.9rem); display:flex; flex-direction:column; gap:.6rem;
  align-items:flex-start; min-width:0;
}
.cf-room__body > *{ margin:0 !important; max-width:100%; }
.mphb-room-type-title{ font-size:1.45rem !important; font-family:var(--f-titulo); font-weight:500; line-height:1.15; }
.mphb-room-type-title a{ color:var(--tinta); text-decoration:none; }
.mphb-room-type-title a:hover{ color:var(--verde-marca); }
.mphb-loop-room-type-excerpt, .cf-room__body > .mphb-excerpt{ color:var(--tinta-suave); font-size:.95rem; }

/* Títulos de sección y etiquetas internas de MotoPress — fuera */
.mphb-room-type-details-title,
.mphb-loop-room-type-attributes .mphb-attribute-title{ display:none !important; }
/* Datos largos o redundantes — fuera de la tarjeta */
.mphb-loop-room-type-attributes .mphb-room-type-bed-type,
.mphb-loop-room-type-attributes .mphb-room-type-adults-capacity,
.mphb-loop-room-type-attributes .mphb-room-type-children-capacity{ display:none; }

.mphb-loop-room-type-attributes{
  list-style:none; display:flex; flex-wrap:wrap; gap:.45rem; padding:0 !important; margin:.1rem 0 !important;
}
.mphb-loop-room-type-attributes > li{
  background:var(--sage-claro); border-radius:var(--r-full); padding:.32rem .85rem;
  font-size:.8rem; font-weight:600; color:var(--verde-oscuro); line-height:1.3;
}
.mphb-loop-room-type-attributes .mphb-attribute-value{ font-weight:600; }
.mphb-room-type-total-capacity .mphb-attribute-value::after{ content:" huéspedes"; font-weight:400; }

.cf-room__body .mphb-regular-price{
  font-size:.9rem; margin-top:.3rem !important; color:var(--tinta-suave);
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.35rem;
}
.cf-room__body .mphb-regular-price > strong{ font-weight:600; color:var(--tinta-suave); font-size:.85rem; }
.cf-room__body .mphb-price{
  font-family:var(--f-titulo); font-weight:600; font-size:1.6rem; color:var(--verde-marca);
}
.mphb-price-period,
.mphb-tax-information{ font-family:var(--f-cuerpo); font-weight:400; font-size:.85rem; color:var(--tinta-suave); }
.mphb-tax-information{ display:inline !important; }

/* Botones de la tarjeta */
.mphb-view-details-button-wrapper{ margin-top:.5rem !important; }
.mphb-view-details-button-wrapper a{
  display:inline-flex; align-items:center; min-height:50px; padding:0 1.5rem;
  background:var(--blanco); color:var(--verde-marca); border:1.5px solid var(--linea);
  border-radius:var(--r-full); font-weight:600; font-size:.95rem; text-decoration:none;
}
.mphb-view-details-button-wrapper a:hover{ background:var(--sage-claro); border-color:var(--verde-marca); }

/* Sección "Reservar" (grid results) — fila de: [cantidad] [Reservar] */
.mphb-reserve-room-section{
  display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; margin-top:.6rem !important;
}
/* La visibilidad de Reservar / Confirmar reserva la controla MotoPress con su JS.
   No la tocamos: solo damos estilo a los botones (arriba, en el bloque de botones). */
.mphb-rooms-quantity-wrapper{ display:inline-flex; align-items:center; gap:.5rem; font-size:.9rem; color:var(--tinta-suave); }
.mphb-rooms-quantity-wrapper select{ min-height:50px; width:auto; }

@media (max-width:760px){
  .mphb-room-type{ grid-template-columns:1fr; }
  /* Foto arriba, texto debajo. La imagen en flujo normal (no absoluta) con su
     propio aspect-ratio: iOS Safari no calcula bien el 100% de altura sobre un
     aspect-ratio del contenedor, así que la miniatura no se veía. */
  .mphb-loop-room-thumbnail, .mphb-room-type-images{
    min-height:0 !important; aspect-ratio:auto !important; background:transparent;
  }
  .mphb-loop-room-thumbnail > a{ display:block; }
  .mphb-loop-room-thumbnail img, .mphb-room-type-images img{
    position:static !important; width:100% !important; height:auto !important;
    aspect-ratio:16/10; object-fit:cover; border-radius:0;
  }
  .cf-room__body{ padding:1.1rem 1.1rem 1.3rem; }
}
@media (max-width:600px){
  .page-id-14 .cf-page{ padding-block:var(--s-8) var(--s-12); }
  .mphb_sc_search_results-info{ font-size:1.3rem; }
  .mphb-reservation-cart{ margin-bottom:var(--s-4) !important; }
  .mphb_sc_search_results-wrapper{ gap:var(--s-4); }
}

/* Sin disponibilidad */
.mphb-errors-wrapper{
  background:var(--aviso-fondo); border:1px solid color-mix(in srgb, var(--aviso) 35%, transparent);
  border-radius:var(--r-md); padding:var(--s-6); color:var(--tinta); font-size:1.05rem; max-width:none;
}
.mphb-errors-wrapper p{ margin:0; }

/* ===========================================================================
   CHECKOUT / CONFIRMACIÓN DE RESERVA  (página 16)
   =========================================================================== */
/* Cabecera reducida: solo el logo, sin menú ni distracciones */
.page-id-16 .cf-nav,
.page-id-16 .cf-header__acciones,
.page-id-16 .cf-cta--header,
.page-id-16 .cf-barra-movil,
.page-id-16 .cf-page__head{ display:none !important; }
.page-id-16 .cf-header__inner{ justify-content:center; }
.page-id-16 .cf-page{ padding-block:var(--s-12) var(--s-16); background:var(--crema); }

.mphb_sc_checkout-wrapper{ max-width:900px; margin-inline:auto; }
.mphb_sc_checkout-form{ display:flex; flex-direction:column; gap:var(--s-6); }
/* El plugin trae de fábrica 4em de separación entre cada sección del
   checkout (Detalles de reserva, Cupón, Desglose, Su información, Pago);
   la anulamos y dejamos que sea solo el "gap" de arriba el que las separe. */
.mphb_sc_checkout-form > .mphb-checkout-section:not(:first-of-type){ margin-top:0 !important; }

.mphb-checkout-section{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  padding:clamp(1.3rem,3vw,1.8rem);
}
/* Móvil: quitar aire lateral en el checkout para que el texto no quede
   apretado en una columna estrecha (petición de Andrea, sept 2026). */
@media (max-width:600px){
  .page-id-16 .cf-page{ padding-block:var(--s-8) var(--s-12); padding-inline:.5rem; }
  .page-id-16 .entry-content > .mphb_sc_checkout-wrapper,
  .page-id-16 .cf-page__content,
  .page-id-16 .entry-content,
  .mphb_sc_checkout-wrapper{ padding-inline:0 !important; }
  .mphb-checkout-section{ padding:1rem .85rem; border-radius:var(--r-md); }
  .mphb-booking-details{ padding:1rem .85rem; }
  .mphb-room-details, .mphb-room-details-wrapper, .mphb-rooms-details{ padding:0; }
  .cf-servicios, .cf-servicios__lista{ padding-inline:0 !important; }
  .mphb_sc_checkout-form{ gap:var(--s-4); }
}

/* Casilla de activar un servicio — un pelín más grande, pero menor que el icono */
.cf-servicios__lista .cf-servicio{ grid-template-columns:20px 34px 1fr auto; }
.cf-servicio__check{ padding-top:.1rem; }
.cf-servicio__check input[type="checkbox"]{
  width:18px; height:18px; min-height:0; margin:0; flex:0 0 auto;
  accent-color:var(--verde-marca); cursor:pointer;
}
@media (max-width:640px){
  .cf-servicios__lista .cf-servicio{ grid-template-columns:20px 34px 1fr; }
}
.mphb-checkout-section > h3,
.mphb-checkout-section > h4,
.mphb-booking-details-title,
.mphb-customer-details-title,
.mphb-gateway-chooser-title,
.mphb-coupon-code-title{
  font-family:var(--f-titulo); font-size:1.25rem; font-weight:500; margin:0 0 var(--s-4);
}

/* Elegir servicios adicionales — icono + título + precio en una línea y,
   a la derecha del todo, la cantidad (solo activa si lo marcas). En móvil
   no caben las 4 columnas, así que el check y el icono pasan a su propia
   fila arriba y el título/descripción/cantidad bajan a una fila entera
   debajo (si no, el título sale muy cortado). Descripciones largas se
   pliegan en un "ver detalle" nativo (<details>). */
.mphb-services-details-title{ margin-top:var(--s-6); }
/* .entry-content ul{ max-width:62ch } la encogía a ~590px — la misma
   trampa que ya pasó con la cuadrícula de la tienda. */
.cf-servicios__lista{
  list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.65rem;
  width:100%; max-width:none !important;
}
.cf-servicios__lista .cf-servicio{
  display:grid;
  grid-template-columns:22px 34px 1fr auto;
  grid-template-areas:"check icono cuerpo cantidad";
  column-gap:.85rem; row-gap:.6rem; align-items:start;
  padding:1rem 1.1rem; border:1px solid var(--linea); border-radius:var(--r-md); background:var(--blanco);
  transition:background var(--transicion), border-color var(--transicion);
}
.cf-servicios__lista .cf-servicio:has(input:checked){ background:var(--ok-fondo); border-color:var(--verde-marca); }
.cf-servicio__check{ grid-area:check; padding-top:.2rem; }
.cf-servicio__check input{ width:auto; min-height:0; margin:0; accent-color:var(--verde-marca); }
.cf-servicio__icono{
  grid-area:icono;
  width:34px; height:34px; border-radius:var(--r-full); background:var(--sage-claro);
  display:grid; place-content:center; font-size:1rem; flex:0 0 auto;
}
.cf-servicio__cuerpo{ grid-area:cuerpo; min-width:0; text-align:left; }
.cf-servicio__titulo-linea{
  display:flex; flex-wrap:wrap; align-items:baseline; justify-content:flex-start; gap:.55rem;
  cursor:pointer; margin:0; font-weight:600; text-align:left; width:100%;
}
.cf-servicio__titulo{ font-size:1rem; }
.cf-servicio__precio{
  font-style:normal; font-size:.76rem; font-weight:600; color:var(--verde-marca);
  background:var(--sage-claro); border-radius:var(--r-full); padding:.1rem .55rem; white-space:nowrap;
}
.cf-servicio__desc, .cf-servicio__detalle summary{
  display:block; width:100%; text-align:left; margin:.3rem 0 0; font-size:.86rem; color:var(--tinta-suave);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.cf-servicio__detalle{ margin:.3rem 0 0; font-size:.86rem; color:var(--tinta-suave); }
.cf-servicio__detalle summary{ cursor:pointer; list-style:none; }
.cf-servicio__detalle summary::-webkit-details-marker{ display:none; }
.cf-servicio__detalle summary::after{ content:" · ver detalle"; color:var(--verde-marca); font-weight:600; }
.cf-servicio__detalle[open] summary::after{ content:" · ocultar"; }
.cf-servicio__detalle[open] summary{ white-space:normal; overflow:visible; text-overflow:clip; }
.cf-servicio__detalle p{ margin:.35rem 0 0; white-space:normal; }
.cf-servicio__cantidad{
  grid-area:cantidad; align-self:center;
  display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; opacity:.35; pointer-events:none;
  transition:opacity var(--transicion);
}
.cf-servicio:has(input:checked) .cf-servicio__cantidad{ opacity:1; pointer-events:auto; }

/* Móvil: check + icono arriba a la izquierda; título, descripción y
   cantidad ocupan cada uno una fila entera debajo. */
@media (max-width:640px){
  .cf-servicios__lista .cf-servicio{
    grid-template-columns:22px 34px 1fr;
    grid-template-areas:
      "check icono ."
      "cuerpo cuerpo cuerpo"
      "cantidad cantidad cantidad";
  }
  .cf-servicio__cantidad{ align-self:start; }
}
/* Los dos controles (personas y días) al mismo tamaño. El input[type=number]
   necesita más especificidad para ganarle a la regla genérica de formularios
   (input[type="number"]{ min-height:48px }). */
.cf-servicio__cantidad .cf-mini-select,
.cf-servicio__cantidad input.cf-veces__input{
  font-family:var(--f-cuerpo); font-size:.82rem; color:var(--tinta); line-height:1.2;
  border:1.5px solid var(--linea); border-radius:var(--r-full); background:var(--blanco);
  padding:.34rem .55rem; min-height:0;
}
.cf-servicio__cantidad .cf-mini-select{ width:auto; }
.cf-servicio__cantidad input.cf-veces__input{ width:3.4rem; text-align:center; }
.cf-veces{ display:flex; align-items:center; gap:.4rem; }
.cf-veces__etq{ font-size:.78rem; color:var(--tinta-suave); white-space:nowrap; }

/* Resumen de la reserva — destacado en verde salvia */
.mphb-booking-details{ background:var(--sage-claro); border-color:transparent; }
.mphb-room-details{ display:flex; flex-direction:column; gap:.3rem; }
.mphb-room-number{ font-weight:600; }
.mphb-room-price-breakdown-wrapper table{ width:100%; border-collapse:collapse; font-size:.95rem; }
.mphb-room-price-breakdown-wrapper td{ padding:.35rem 0; }
.mphb-room-price-breakdown-wrapper tr:last-child td,
.mphb-price-total td, tr.mphb-total td{
  border-top:1px solid var(--linea); font-family:var(--f-titulo); font-weight:600; font-size:1.1rem; padding-top:.6rem;
}
.mphb-deposit-amount, .mphb-deposit-amount-field{
  margin-top:.5rem; font-weight:600; color:var(--verde-marca);
}

/* "¿Ya has reservado con nosotros?" + formulario de acceso desplegable */
.mphb-login-form-wrap{ text-align:center; font-size:.95rem; color:var(--tinta-suave); }
.mphb-login-form-wrap > p{ margin:0; }
.mphb-login-form-wrap a{ font-weight:600; color:var(--verde-marca); }
.mphb-login-form{
  max-width:420px; margin:var(--s-4) auto 0; padding:var(--s-6); background:var(--blanco);
  border:1px solid var(--linea); border-radius:var(--r-lg); text-align:left;
}
.mphb-login-form #loginform{ margin:0; }
.mphb-login-form #loginform p{ margin:0 0 var(--s-3); }
.mphb-login-form #loginform label{
  display:block; margin-bottom:.3rem; font-size:.82rem; font-weight:600; color:var(--tinta);
}
.mphb-login-form #loginform input.input,
.mphb-login-form #loginform input[type="text"],
.mphb-login-form #loginform input[type="password"]{ width:100%; }
.mphb-login-form #loginform .login-remember label{
  display:flex; align-items:center; gap:.5rem; font-weight:400; font-size:.9rem; margin:0;
}
.mphb-login-form #loginform .login-remember input{ width:auto; min-height:0; accent-color:var(--verde-marca); }
.mphb-login-form #loginform .login-submit{ margin-bottom:0; }
.mphb-login-form #loginform #wp-submit{
  width:100%; min-height:48px; border:none; border-radius:var(--r-full); cursor:pointer;
  background:var(--verde-marca); color:var(--on-verde); font-family:var(--f-cuerpo);
  font-size:.95rem; font-weight:600; box-shadow:var(--sombra-cta);
  transition:background var(--transicion);
}
.mphb-login-form #loginform #wp-submit:hover{ background:var(--verde-oscuro); }
.mphb-login-form > a{
  display:inline-block; margin-top:var(--s-3); font-size:.88rem; font-weight:600; color:var(--verde-marca);
}

/* Formulario de datos */
.mphb-required-fields-tip{ font-size:.8rem; color:var(--tinta-suave); margin:0 0 var(--s-3); }
.mphb-customer-details p[class*="mphb-customer-"],
.mphb-customer-details .mphb-text-control,
.mphb-customer-details .mphb-email-control,
.mphb-customer-details .mphb-country-control{ margin:0 0 var(--s-3); }
.mphb-customer-details label{ display:block; margin-bottom:.35rem; font-size:.82rem; font-weight:600; }
.mphb-customer-details br{ display:none; }
.mphb-customer-details input,
.mphb-customer-details select,
.mphb-customer-details textarea{ width:100%; }
.mphb-customer-details abbr, .mphb-checkout-terms-wrapper abbr{ border:0; text-decoration:none; color:var(--verde-marca); }
@media (min-width:560px){
  .mphb-customer-details{ display:grid; grid-template-columns:1fr 1fr; column-gap:var(--s-4); }
  .mphb-customer-details > :not(.mphb-customer-first-name):not(.mphb-customer-last-name):not(.mphb-customer-dni):not(.mphb-customer-city):not(.mphb-customer-zip){ grid-column:1 / -1; }
}

/* Pasarelas de pago */
.mphb-gateways-list{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.mphb-gateway{
  border:1.5px solid var(--linea); border-radius:var(--r-md); padding:.9rem 1.1rem;
  transition:border-color var(--transicion), background var(--transicion);
}
.mphb-gateway:has(input:checked){ border-color:var(--verde-marca); background:var(--ok-fondo); }
.mphb-gateway-title{ display:flex; align-items:center; gap:.6rem; font-weight:600; cursor:pointer; margin:0; }
.mphb-gateway input[type="radio"],
.mphb-checkout-terms-wrapper input[type="checkbox"],
.mphb-customer-create-account input[type="checkbox"]{
  width:auto; min-height:0; accent-color:var(--verde-marca); flex:0 0 auto;
}
.mphb-gateway-description{ font-size:.85rem; color:var(--tinta-suave); margin:.45rem 0 0 1.75rem; }

/* Cupón */
.mphb-coupon-code-wrapper{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:stretch; }
.mphb-coupon-code-wrapper > *{ margin:0 !important; }
.mphb-coupon-code-wrapper input[type="text"]{ flex:1 1 150px; min-width:0; }
.mphb-apply-coupon-code-button,
.mphb-coupon-code-wrapper button,
.mphb-coupon-code-wrapper input[type="submit"]{
  flex:0 0 auto; min-height:48px; padding:0 1.4rem;
  background:var(--sage-claro); color:var(--verde-oscuro); border:1.5px solid transparent;
  border-radius:var(--r-full); font-weight:600; font-size:.95rem; box-shadow:none; cursor:pointer;
  white-space:nowrap;
}
.mphb-apply-coupon-code-button:hover,
.mphb-coupon-code-wrapper button:hover{ background:var(--verde-marca); color:var(--on-verde); }
.mphb-coupon-message{ flex-basis:100%; font-size:.85rem; margin:0; }

/* Términos + botón final */
.mphb-checkout-terms-wrapper .mphb-terms-and-conditions-accept label{
  display:flex; gap:.6rem; align-items:flex-start; font-size:.92rem; font-weight:400;
}
.mphb_sc_checkout-submit-wrapper{ margin:0 !important; }
.mphb_sc_checkout-submit-wrapper input[type="submit"]{
  width:100%; min-height:56px; font-size:1.05rem; box-shadow:var(--sombra-cta);
}

/* Errores del checkout */
.page-id-16 .mphb-errors-wrapper{
  background:var(--error-fondo); border:1px solid color-mix(in srgb, var(--error) 40%, transparent);
  border-radius:var(--r-md); padding:var(--s-4) var(--s-6); color:var(--tinta); font-size:.95rem;
  margin-bottom:var(--s-4);
}

/* ===========================================================================
   Ficha de alojamiento (single room type)
   =========================================================================== */
.mphb-single-room-type .mphb-room-gallery img, .wp-block-image img{ border-radius:var(--r-md); }
.mphb-room-details, .mphb-booking-form-wrapper{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); padding:var(--s-6);
}

.cf-alojamiento{ margin-block:0; }

/* ---- HERO con foto de fondo, texto a la izquierda y reserva a la derecha ---- */
.cf-alojamiento__hero{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--verde-oscuro);
  min-height:min(84vh, 660px);
  display:flex; align-items:center;
  padding-block:clamp(3rem, 8vh, 5rem);
  padding-inline:max(var(--gutter), calc(50vw - var(--ancho) / 2));
}
.cf-alojamiento__hero::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background-image:var(--hero-img, none); background-size:cover; background-position:center;
}
.cf-alojamiento__hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg, rgba(18,24,21,.8) 0%, rgba(18,24,21,.52) 44%, rgba(18,24,21,.3) 78%, rgba(18,24,21,.24) 100%);
}
.cf-alojamiento__hero-inner{
  width:100%; max-width:var(--ancho); margin-inline:auto;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(330px, 380px);
  gap:clamp(2rem, 5vw, 4.5rem); align-items:center;
}
@media (max-width:920px){
  .cf-alojamiento__hero{ min-height:0; }
  .cf-alojamiento__hero-inner{ grid-template-columns:1fr; gap:var(--s-8); }
}

.cf-alojamiento__hero-texto{ color:#fff; }
.cf-alojamiento__hero-texto .cf-eyebrow{ color:#fff; }
.cf-alojamiento__hero-texto .cf-eyebrow::before{ background:var(--verde-salvia); }
.cf-alojamiento__hero-texto h1{ color:#fff; margin:.15em 0 .3em; text-shadow:0 2px 26px rgba(0,0,0,.5); }
.cf-alojamiento__hero-texto .cf-acento-linea{ margin:0; }
.cf-alojamiento__hero-texto .cf-acento{ color:var(--verde-salvia); text-shadow:0 2px 16px rgba(0,0,0,.5); }

/* Tarjeta de reserva dentro del hero */
.cf-alojamiento__reserva{
  background:var(--blanco); border-radius:var(--r-lg);
  padding:clamp(1.5rem, 3vw, 2.1rem);
  box-shadow:0 40px 80px -26px rgba(0,0,0,.55);
  display:flex; flex-direction:column; gap:var(--s-3);
}
.cf-alojamiento__reserva-tit{
  font-family:var(--f-titulo); font-size:1.3rem; font-weight:500; margin:0; color:var(--tinta);
}
.cf-alojamiento__precio{ margin:0 0 .2rem; }
.cf-alojamiento__precio .mphb-price{
  font-family:var(--f-titulo); font-weight:600; font-size:1.7rem; color:var(--verde-marca);
}
.cf-alojamiento__precio .mphb-price-period,
.cf-alojamiento__precio .mphb-tax-information{ font-size:.85rem; color:var(--tinta-suave); }
.cf-alojamiento__reserva .mphb-booking-form > p,
.cf-alojamiento__reserva .mphb-booking-form > div{ margin:0; }
.cf-alojamiento__reserva .mphb-required-fields-tip{ font-size:.78rem; color:var(--tinta-suave); margin-bottom:.2rem; }
.cf-alojamiento__reserva label{ display:block; margin-bottom:.3rem; font-size:.8rem; font-weight:700; }
.cf-alojamiento__reserva input[type="text"],
.cf-alojamiento__reserva select{ width:100%; }
.cf-alojamiento__reserva .mphb-check-in-date-wrapper,
.cf-alojamiento__reserva .mphb-check-out-date-wrapper{ margin-bottom:var(--s-3); }
.cf-alojamiento__reserva input[type="submit"],
.cf-alojamiento__reserva .button,
.cf-alojamiento__reserva button.mphb-button{ width:100%; margin-top:.4rem; }

/* ---- Contenido bajo el hero: izquierda info, derecha galería ---- */
.cf-alojamiento__contenido{
  max-width:var(--ancho); margin:0 auto;
  padding:clamp(3rem, 7vw, 5.5rem) var(--gutter);
  display:grid; grid-template-columns:minmax(0,0.82fr) minmax(0,1.18fr);
  gap:clamp(2rem, 5vw, 4rem); align-items:start;
}
@media (max-width:900px){
  .cf-alojamiento__contenido{ grid-template-columns:1fr; gap:var(--s-12); }
}
.cf-alojamiento__info{
  display:flex; flex-direction:column; gap:var(--s-8); min-width:0;
  position:sticky; top:calc(var(--alto-header) + 1.5rem);
}
@media (max-width:900px){ .cf-alojamiento__info{ position:static; gap:var(--s-8); } }

/* Galería propia (columna derecha) */
.cf-alojamiento__galeria{
  display:grid; grid-template-columns:repeat(2,1fr); gap:var(--s-3); min-width:0;
}
@media (max-width:480px){ .cf-alojamiento__galeria{ grid-template-columns:1fr; } }
.cf-alojamiento__galeria figure{ margin:0; }
.cf-alojamiento__galeria img{
  width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r-md);
  box-shadow:0 12px 30px -18px rgba(0,0,0,.4); display:block;
}

/* Descripción — todo al ancho de la columna, sin sangrados heredados */
.cf-alojamiento__desc :is(h2,h3){ font-family:var(--f-titulo); font-weight:500; }
.cf-alojamiento__desc h3{ font-size:1.3rem; margin:var(--s-6) 0 var(--s-3); }
.cf-alojamiento__desc :is(p,ul,h2,h3){ max-width:none; margin-inline:0; padding-inline:0; }
.cf-alojamiento__desc > p{ color:var(--tinta-suave); }
.cf-alojamiento__desc a{ color:var(--verde-marca); font-weight:600; }
.cf-alojamiento__desc ul{ list-style:none; padding:0; margin:var(--s-4) 0 0; display:grid; gap:.55rem; }
.cf-alojamiento__desc ul li{ position:relative; padding-left:1.5rem; }
.cf-alojamiento__desc ul li::before{
  content:""; position:absolute; left:.1rem; top:.55rem;
  width:.5rem; height:.5rem; border-radius:var(--r-full); background:var(--verde-salvia);
}

/* Detalles / atributos de MotoPress: lista limpia tipo ficha técnica */
.cf-alojamiento__atributos .mphb-details-title,
.cf-alojamiento__atributos .mphb-room-type-details-title,
.cf-alojamiento__atributos .mphb-attributes-title{
  font-family:var(--f-titulo); font-weight:500; font-size:1.4rem; margin:0 0 var(--s-4);
}
.cf-alojamiento__atributos .mphb-single-room-type-attributes{
  list-style:none; margin:0; padding:0;
  border-top:1px solid var(--linea);
}
.cf-alojamiento__atributos .mphb-single-room-type-attributes > li{
  display:grid; grid-template-columns:minmax(90px,34%) 1fr; gap:.3rem 1.25rem;
  padding:var(--s-4) 0; border-bottom:1px solid var(--linea); align-items:baseline;
}
@media (max-width:400px){
  .cf-alojamiento__atributos .mphb-single-room-type-attributes > li{ grid-template-columns:1fr; gap:.15rem; }
}
.cf-alojamiento__atributos .mphb-attribute-title{
  font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--tinta-suave);
}
.cf-alojamiento__atributos .mphb-attribute-value{
  font-size:.98rem; color:var(--tinta); line-height:1.45;
}
.cf-alojamiento__atributos .mphb-attribute-value a{ color:var(--verde-marca); text-decoration:none; }
.cf-alojamiento__atributos .mphb-attribute-value a:hover{ text-decoration:underline; }
.cf-alojamiento__atributos .mphb-room-type-total-capacity .mphb-attribute-value::after{ content:" huéspedes"; color:var(--tinta-suave); }

/* Reseñas */
.cf-alojamiento__resenas{ margin-top:0; }
.cf-alojamiento__resenas-inner{
  max-width:var(--ancho); margin:0 auto; padding-inline:var(--gutter); text-align:center;
}
.cf-alojamiento__resenas-inner .cf-eyebrow{ justify-content:center; }
.cf-alojamiento__resenas-inner h2{ text-align:center; margin-inline:auto; }
.cf-alojamiento__resenas .ti-widget{ margin-top:var(--s-6); }

/* ===========================================================================
   PROMOCIONES
   =========================================================================== */
.cf-promos{
  display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.25rem,3vw,2rem);
  margin-top:var(--s-8);
}
@media (max-width:780px){ .cf-promos{ grid-template-columns:1fr; max-width:34rem; margin-inline:auto; } }
.cf-promo{
  display:flex; flex-direction:column; background:var(--blanco);
  border:1px solid var(--linea); border-radius:var(--r-lg); overflow:hidden;
  transition:box-shadow var(--transicion), transform var(--transicion);
}
.cf-promo:hover{ box-shadow:var(--sombra-carta); transform:translateY(-3px); }
.cf-promo__foto{ margin:0; aspect-ratio:3/2; overflow:hidden; }
.cf-promo__foto img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:0; }
.cf-promo__cuerpo{ padding:clamp(1.4rem,3vw,2rem); display:flex; flex-direction:column; gap:.6rem; flex:1; }
.cf-promo__cuerpo .cf-eyebrow{ margin:0; }
.cf-promo h3{ font-family:var(--f-titulo); font-weight:500; font-size:1.5rem; line-height:1.12; margin:0; }
.cf-promo p{ color:var(--tinta-suave); font-size:.98rem; margin:0; }
.cf-promo .cf-cta{ margin-top:auto; align-self:flex-start; }

/* Pasos numerados (p.ej. «cómo usar tu bono») */
.cf-pasos{
  counter-reset:cf-paso; list-style:none; margin:var(--s-6) 0 0; padding:0;
  display:grid; gap:var(--s-6); max-width:44rem;
}
.cf-pasos li{ position:relative; padding-left:3.2rem; color:var(--tinta); }
.cf-pasos li::before{
  counter-increment:cf-paso; content:counter(cf-paso);
  position:absolute; left:0; top:-.1rem; width:2.3rem; height:2.3rem; border-radius:var(--r-full);
  background:var(--verde-marca); color:#fff; display:flex; align-items:center; justify-content:center;
  font-family:var(--f-titulo); font-weight:600; font-size:1.05rem;
}

/* Rejilla de productos incrustada dentro de una página de contenido.
   El shortcode [products] mete su propio <div class="woocommerce columns-3">
   dentro; sin un ancho explícito puede quedarse en su anchura de contenido
   en vez de ocupar la caja entera. Se lo forzamos. */
.cf-tienda-embed{ margin-top:var(--s-8); width:100%; }
.cf-tienda-embed, .cf-tienda-embed > .woocommerce{ display:block; width:100%; float:none; }

/* Foto decorativa + bono destacado, en fila a dos columnas.
   La tarjeta destacada usa exactamente el mismo diseño que el resto de la
   tienda (sin caja ni fondo aparte): solo se limita a una columna. */
.cf-destacado-fila{
  margin-top:var(--s-12); display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(2rem,4vw,2.75rem); align-items:start;
}
@media (max-width:680px){ .cf-destacado-fila{ grid-template-columns:1fr; } }
.cf-destacado-fila__foto{ margin:0; }
.cf-destacado-fila__foto img{
  width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--r-lg);
  box-shadow:0 16px 34px -18px rgba(35,42,38,.4); display:block;
}
.cf-destacado__etiqueta{
  margin:0 0 var(--s-4); font-family:var(--f-cuerpo); font-weight:700; font-size:.85rem;
  text-transform:uppercase; letter-spacing:.14em; color:var(--verde-marca);
}
.cf-destacado-fila__producto{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.cf-destacado-fila .cf-tienda-embed{ margin-top:0; max-width:22rem; margin-inline:auto; }
.cf-destacado-fila .cf-tienda-embed ul.products{ grid-template-columns:1fr !important; }
.cf-destacado-fila .cf-tienda-embed .cf-producto__info{ align-items:center; text-align:center; }

/* Formularios genéricos */
input[type="text"],input[type="email"],input[type="tel"],input[type="number"],
input[type="date"],input[type="password"],select,textarea{
  background:var(--blanco); border:1.5px solid var(--linea); border-radius:var(--r-sm);
  padding:.65rem .95rem; font-family:var(--f-cuerpo); color:var(--tinta); min-height:48px;
}
/* En móvil TODO campo a 16px: iOS hace zoom en la página al enfocar un campo
   con letra < 16px (cupón, nombre, email…). Con 16px se queda como está. */
@media (max-width:768px){
  input[type="text"],input[type="email"],input[type="tel"],input[type="number"],
  input[type="date"],input[type="password"],input[type="search"],input[type="url"],
  select,textarea,
  .woocommerce form .input-text,.woocommerce form select,
  .mphb-coupon-code-wrapper input,.mphb_sc_checkout-form input,
  .cf-form input,.cf-form textarea{
    font-size:16px !important;
  }
}
input:focus,select:focus,textarea:focus{ border-color:var(--verde-marca); outline:2px solid var(--verde-marca); outline-offset:1px; }
label{ font-weight:600; }
.mphb-required-mark{ color:var(--error); }

.mphb-notice, .woocommerce-info, .woocommerce-message{
  background:var(--ok-fondo); border:1px solid color-mix(in srgb, var(--verde-marca) 30%, transparent);
  border-radius:var(--r-md); color:var(--tinta);
}
.mphb-error, .woocommerce-error{
  background:var(--error-fondo); border:1px solid color-mix(in srgb, var(--error) 40%, transparent);
  border-radius:var(--r-md); color:var(--tinta);
}

/* ===========================================================================
   CONTACTO
   =========================================================================== */
.cf-contacto{
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,0.75fr);
  gap:clamp(2rem,5vw,4rem); align-items:start; margin-top:var(--s-8);
}
@media (max-width:880px){
  .cf-contacto{ grid-template-columns:1fr; gap:var(--s-12); }
}

/* Columna 1: datos + formulario */
.cf-contacto__principal{ display:flex; flex-direction:column; gap:var(--s-8); min-width:0; }

/* Columna 2: foto + redes */
.cf-contacto__lado{ display:flex; flex-direction:column; gap:var(--s-6); }
@media (max-width:880px){
  .cf-contacto__lado{ align-items:center; text-align:center; }
}

.cf-datos-lista{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--s-6); }
.cf-dato{ display:grid; grid-template-columns:2.75rem 1fr; column-gap:1rem; row-gap:.15rem; align-items:start; }
.cf-dato__icono{
  grid-row:1 / span 2; width:2.75rem; height:2.75rem; border-radius:var(--r-full);
  background:var(--sage-claro); display:flex; align-items:center; justify-content:center; color:var(--verde-oscuro);
}
.cf-dato__icono svg{ width:1.2rem; height:1.2rem; }
.cf-dato__k{ font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--tinta-suave); }
.cf-dato__v{ font-family:var(--f-titulo); font-size:1.2rem; line-height:1.35; color:var(--tinta); }
.cf-dato__v a{ color:inherit; text-decoration:none; }
.cf-dato__v a:hover{ color:var(--verde-marca); }

.cf-contacto__foto{ margin:0; width:100%; }
.cf-contacto__foto img{
  width:100%; max-width:360px; border-radius:var(--r-lg);
  box-shadow:var(--sombra-sutil); display:block;
}
.cf-contacto__foto figcaption{
  font-family:var(--f-acento); font-size:1.35rem; color:var(--verde-marca);
  margin-top:.5rem; max-width:360px; text-align:center;
}
@media (max-width:880px){
  .cf-contacto__foto img,
  .cf-contacto__foto figcaption{ margin-inline:auto; }
}

.cf-redes{ display:flex; flex-wrap:wrap; gap:.7rem; }
.cf-redes a{
  display:inline-flex; align-items:center; gap:.5rem; padding:.5rem 1rem; border-radius:var(--r-full);
  background:var(--blanco); border:1px solid var(--linea); font-size:.88rem; font-weight:600;
  color:var(--tinta-suave); text-decoration:none; transition:border-color var(--transicion), color var(--transicion);
}
.cf-redes a:hover{ border-color:var(--verde-marca); color:var(--verde-oscuro); }
.cf-redes svg{ width:1.05rem; height:1.05rem; }

/* --- Formulario propio -------------------------------------------------- */
.cf-form{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  padding:clamp(1.5rem,4vw,2.4rem); display:flex; flex-direction:column; gap:var(--s-6);
  box-shadow:var(--sombra-sutil);
}
.cf-seccion--crema .cf-form,
.cf-seccion--sage .cf-form{ background:var(--blanco); }
.cf-form__fila{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s-4); }
@media (max-width:560px){ .cf-form__fila{ grid-template-columns:1fr; } }
.cf-form__campo{ display:flex; flex-direction:column; gap:.4rem; font-weight:400; }
.cf-form__campo > span{ font-size:.82rem; font-weight:700; color:var(--tinta); }
.cf-form__req{ color:var(--verde-marca); }
.cf-form__campo input,
.cf-form__campo textarea{ width:100%; }
.cf-form__campo textarea{ resize:vertical; min-height:8rem; line-height:1.5; }
.cf-form__acepto{ display:flex; gap:.7rem; align-items:flex-start; font-size:.9rem; color:var(--tinta-suave); }
.cf-form__acepto input{ width:auto; min-height:0; margin-top:.15rem; accent-color:var(--verde-marca); flex:0 0 auto; }
.cf-form__acepto a{ color:var(--verde-marca); font-weight:600; }
.cf-form .cf-cta{ align-self:flex-start; }
.cf-form__hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

.cf-form__aviso{
  border-radius:var(--r-md); padding:var(--s-4) var(--s-6); font-size:.95rem; margin:0 0 var(--s-2);
}
.cf-form__aviso--ok{ background:var(--ok-fondo); border:1px solid color-mix(in srgb, var(--verde-marca) 30%, transparent); }
.cf-form__aviso--err{ background:var(--error-fondo); border:1px solid color-mix(in srgb, var(--error) 40%, transparent); }

/* --- Mapa -------------------------------------------------------------- */
.cf-mapa{
  margin-top:var(--s-8); border-radius:var(--r-lg); overflow:hidden;
  border:1px solid var(--linea); box-shadow:var(--sombra-sutil); background:var(--sage-claro);
}
.cf-mapa iframe{ display:block; width:100%; height:clamp(280px,42vw,440px); border:0; }
.cf-mapa__enlace{ margin-top:var(--s-3); font-size:.9rem; }
.cf-mapa__enlace a{ font-weight:600; color:var(--verde-marca); }
.cf-contacto__form{ min-width:0; scroll-margin-top:calc(var(--alto-header) + 1rem); }

/* ===========================================================================
   LA CASA
   =========================================================================== */
/* Las tres formas de alojarse */
.cf-estancias{
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-6); margin-top:var(--s-8);
}
@media (max-width:900px){ .cf-estancias{ grid-template-columns:1fr; max-width:34rem; margin-inline:auto; } }
.cf-estancia{
  display:flex; flex-direction:column; background:var(--blanco);
  border:1px solid var(--linea); border-radius:var(--r-lg); overflow:hidden;
  transition:box-shadow var(--transicion), transform var(--transicion);
}
.cf-estancia:hover{ box-shadow:var(--sombra-carta); transform:translateY(-3px); }
.cf-estancia__foto{ margin:0; aspect-ratio:4/3; overflow:hidden; }
.cf-estancia__foto img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:0; }
.cf-estancia__cuerpo{ padding:var(--s-6); display:flex; flex-direction:column; gap:.5rem; flex:1; }
.cf-estancia__cuerpo .cf-eyebrow{ margin:0; }
.cf-estancia h3{ font-family:var(--f-titulo); font-weight:500; font-size:1.45rem; line-height:1.15; margin:0; }
.cf-estancia p{ color:var(--tinta-suave); font-size:.95rem; margin:0; }
.cf-estancia .wp-block-button,
.cf-estancia .wp-block-buttons{ margin-top:auto; padding-top:var(--s-4); }
.cf-estancia .wp-block-button__link{ width:100%; }

/* Ficha de la casa entera */
.cf-ficha-casa{
  list-style:none; margin:var(--s-8) 0 0; padding:0;
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-4);
}
@media (max-width:760px){ .cf-ficha-casa{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:440px){ .cf-ficha-casa{ grid-template-columns:1fr; } }
.cf-ficha-casa li{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-md);
  padding:var(--s-6); display:flex; flex-direction:column; gap:.3rem;
}
.cf-ficha-casa b{
  font-family:var(--f-titulo); font-weight:600; font-size:2rem; color:var(--verde-marca); line-height:1.15;
}
.cf-ficha-casa span{ font-size:.92rem; color:var(--tinta-suave); line-height:1.4; }

.cf-ficha-extra{
  list-style:none; margin:var(--s-6) 0 0; padding:0;
  display:flex; flex-wrap:wrap; gap:.7rem 1.75rem;
}
.cf-ficha-extra li{
  position:relative; padding-left:1.6rem; font-size:.95rem; color:var(--tinta);
}
.cf-ficha-extra li::before{
  content:""; position:absolute; left:.15rem; top:.5rem;
  width:.5rem; height:.5rem; border-radius:var(--r-full); background:var(--verde-salvia);
}
.cf-ficha-nota{
  margin-top:var(--s-6); font-size:.95rem; color:var(--tinta-suave);
}
.cf-ficha-nota a{ color:var(--verde-marca); font-weight:600; }

/* Galería de la casa */
.wp-block-gallery.cf-galeria-casa{ gap:var(--s-3); margin-top:var(--s-8); }
.cf-galeria-casa .wp-block-image{ margin:0; }
.cf-galeria-casa .wp-block-image img{
  border-radius:var(--r-md); width:100%; height:100%; aspect-ratio:4/3; object-fit:cover;
  box-shadow:0 12px 30px -18px rgba(0,0,0,.45);
}

/* ===========================================================================
   TIENDA (WooCommerce)
   =========================================================================== */
.cf-tienda{ padding:0; }
.cf-tienda__head{ max-width:var(--ancho); margin:var(--s-16) auto var(--s-8); padding-inline:var(--gutter); }
.cf-tienda__contenido{
  max-width:var(--ancho); margin:0 auto var(--s-24); padding-inline:var(--gutter);
}
.cf-tienda .woocommerce-notices-wrapper:empty{ display:none; }

/* Botones WooCommerce -> estilo del tema */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce .button.alt,
.woocommerce a.added_to_cart, .wc-block-components-button{
  --_bg:var(--verde-marca); --_fg:var(--on-verde);
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  background:var(--verde-marca) !important; color:var(--on-verde) !important;
  border:1.5px solid var(--verde-marca); border-radius:var(--r-full);
  font-family:var(--f-cuerpo); font-weight:600; font-size:.95rem; line-height:1;
  min-height:48px; padding:0 1.6rem; text-decoration:none; cursor:pointer;
  box-shadow:var(--sombra-cta); transition:transform var(--transicion), box-shadow var(--transicion), background var(--transicion);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce .button.alt:hover, .woocommerce #respond input#submit:hover{
  background:var(--verde-oscuro) !important; border-color:var(--verde-oscuro);
  transform:translateY(-2px); box-shadow:0 16px 30px -12px rgba(69,93,88,.6);
}
.woocommerce .button.disabled, .woocommerce button.button:disabled{ opacity:.5; box-shadow:none; }
.woocommerce a.button.wc-forward, .woocommerce .added_to_cart{ background:var(--blanco) !important; color:var(--verde-marca) !important; border-color:var(--linea); box-shadow:var(--sombra-sutil); }

/* ===========================================================================
   MI CUENTA — acceso, recuperar contraseña y panel con sesión iniciada
   (.cf-cuenta es clase de <body>; la página se maqueta con page.php)
   =========================================================================== */
.cf-cuenta .cf-page__content{ max-width:var(--ancho); margin-inline:auto; padding-inline:var(--gutter); }
.cf-cuenta .cf-page__content > .woocommerce{ margin-top:var(--s-8); }

/* Acceso / recuperar contraseña: todo centrado en la página (título incluido)
   y la tarjeta de verdad centrada, no dentro de una columna descentrada. */
.cf-cuenta--acceso .cf-page__head{ text-align:center; margin-bottom:var(--s-6); }
.cf-cuenta--acceso .cf-page__content{ max-width:520px; }

/* El h2 "Acceder" sobra, ya lo dice el título de la página. */
.cf-cuenta .woocommerce > h2{ display:none; }
/* Más especificidad que la regla de fábrica de WooCommerce
   (.woocommerce form.login{ border-radius:5px }), que dejaba la tarjeta casi cuadrada. */
.cf-cuenta .woocommerce form.woocommerce-form-login,
.cf-cuenta .woocommerce form.woocommerce-ResetPassword{
  max-width:460px; margin:0 auto; padding:var(--s-8);
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  box-shadow:var(--sombra-carta);
}
.cf-cuenta .woocommerce-ResetPassword > p:first-child{ margin-top:0; font-size:.92rem; color:var(--tinta-suave); }

/* Filas de formulario: etiqueta encima, campo a ancho completo */
.cf-cuenta .woocommerce-form-row,
.cf-cuenta .woocommerce form .form-row{ display:flex; flex-direction:column; margin:0 0 var(--s-4); }
.cf-cuenta .woocommerce-form-row > label,
.cf-cuenta .woocommerce form .form-row > label{
  margin-bottom:.35rem; font-size:.82rem; font-weight:600; color:var(--tinta);
}
.cf-cuenta .required{ color:var(--verde-marca); border:0; text-decoration:none; }
.cf-cuenta .woocommerce-Input.input-text,
.cf-cuenta .woocommerce form .input-text,
.cf-cuenta .woocommerce form input[type="email"],
.cf-cuenta .woocommerce form input[type="tel"]{ width:100%; }

.cf-cuenta .woocommerce-form-login__rememberme{
  display:flex; align-items:center; gap:.5rem; font-weight:400; font-size:.9rem; margin:0 0 var(--s-4);
}
.cf-cuenta .woocommerce-form-login__rememberme input{ width:auto; min-height:0; accent-color:var(--verde-marca); }
.cf-cuenta .woocommerce-form-login__submit,
.cf-cuenta .woocommerce-ResetPassword button{ width:100%; }
.cf-cuenta .woocommerce-LostPassword{ margin:var(--s-3) 0 0; font-size:.88rem; text-align:center; }
.cf-cuenta .woocommerce-LostPassword a{ font-weight:600; }

/* Con sesión: navegación lateral (izquierda) + contenido (derecha, más ancho).
   WooCommerce mete un clearfix .woocommerce::before/::after{display:table} que,
   al poner el contenedor en grid, cuenta como dos celdas más y descuadraba
   todo (mismo fallo que ya tuvimos con la cuadrícula de la tienda). */
.cf-cuenta--panel .cf-page__content > .woocommerce{
  display:grid; grid-template-columns:230px minmax(0,1fr); gap:var(--s-8); align-items:start;
}
.cf-cuenta--panel .cf-page__content > .woocommerce::before,
.cf-cuenta--panel .cf-page__content > .woocommerce::after{ content:none; display:none; }
.cf-cuenta .woocommerce-MyAccount-navigation,
.cf-cuenta .woocommerce-MyAccount-content{ float:none; width:auto; }
.woocommerce-MyAccount-navigation ul{
  list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.15rem; max-width:none;
}
.woocommerce-MyAccount-navigation li a{
  display:block; padding:.6rem .85rem; border-radius:var(--r-sm); color:var(--tinta);
  text-decoration:none; font-weight:500; transition:background var(--transicion), color var(--transicion);
}
.woocommerce-MyAccount-navigation li a:hover{ background:var(--sage-claro); }
.woocommerce-MyAccount-navigation li.is-active a{ background:var(--verde-marca); color:var(--on-verde); }
.woocommerce-MyAccount-navigation li--customer-logout a{ color:var(--tinta-suave); }

.woocommerce-MyAccount-content{ min-width:0; }
.woocommerce-MyAccount-content > p:first-child{ margin-top:0; }
.woocommerce-MyAccount-content .woocommerce-Address,
.woocommerce-MyAccount-content .woocommerce-address-fields,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-md); padding:var(--s-6);
}

/* Direcciones: dos tarjetas en fila. WooCommerce las flota con .col-1/.col-2
   y mete otro clearfix ::before/::after en .col2-set: lo anulamos. */
.cf-cuenta .woocommerce-Addresses{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--s-6); margin:0;
}
.cf-cuenta .woocommerce-Addresses::before,
.cf-cuenta .woocommerce-Addresses::after{ content:none; display:none; }
.cf-cuenta .woocommerce-Addresses .col-1,
.cf-cuenta .woocommerce-Addresses .col-2,
.cf-cuenta .woocommerce-Address{ float:none; width:auto; }
.cf-cuenta .woocommerce-Address-title{
  display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap;
}
.cf-cuenta .woocommerce-Address-title h2,
.cf-cuenta .woocommerce-Address-title h3{ font-size:1.15rem; margin:0; }
.cf-cuenta .woocommerce-Address-title .edit{ font-size:.85rem; font-weight:600; white-space:nowrap; }
.cf-cuenta .woocommerce-Address address{ font-style:normal; color:var(--tinta-suave); line-height:1.7; margin-top:.6rem; }
@media (max-width:640px){ .cf-cuenta .woocommerce-Addresses{ grid-template-columns:1fr; } }

/* Pestaña "Mis reservas" — misma tabla que "Pedidos" */
.cf-cuenta-reservas table.mphb-account-bookings{
  width:100%; border-collapse:separate; border-spacing:0;
  border:1px solid var(--linea); border-radius:var(--r-lg); overflow:hidden; font-size:.95rem;
}
.cf-cuenta-reservas .mphb-account-bookings th{
  background:var(--crema-hueco); font-family:var(--f-cuerpo); font-weight:700; font-size:.8rem;
  text-transform:uppercase; letter-spacing:.04em; text-align:left; padding:var(--s-4) var(--s-6);
}
.cf-cuenta-reservas .mphb-account-bookings td{
  padding:var(--s-4) var(--s-6); border-top:1px solid var(--linea); vertical-align:middle;
}
.cf-cuenta-reservas .mphb-account-bookings .booking-status{
  display:inline-block; margin-top:.25rem; font-size:.78rem; font-weight:600;
  color:var(--verde-marca); background:var(--ok-fondo); border-radius:var(--r-full); padding:.1rem .55rem;
}
.cf-cuenta-reservas .mphb-account-bookings .booking-actions a{ font-weight:600; }
.cf-cuenta-reservas > p{ color:var(--tinta-suave); }
@media (max-width:600px){
  .cf-cuenta-reservas .mphb-account-bookings,
  .cf-cuenta-reservas .mphb-account-bookings thead,
  .cf-cuenta-reservas .mphb-account-bookings tbody,
  .cf-cuenta-reservas .mphb-account-bookings tr,
  .cf-cuenta-reservas .mphb-account-bookings td{ display:block; width:100%; }
  .cf-cuenta-reservas .mphb-account-bookings thead{ display:none; }
  .cf-cuenta-reservas .mphb-account-bookings tr{ border-top:1px solid var(--linea); padding:.4rem 0; }
  .cf-cuenta-reservas .mphb-account-bookings td{ border:0; padding:.35rem var(--s-4); }
  .cf-cuenta-reservas .mphb-account-bookings td::before{
    content:attr(data-title) ": "; font-weight:700; color:var(--tinta-suave);
  }
}

@media (max-width:820px){
  .cf-cuenta--panel .cf-page__content > .woocommerce{ grid-template-columns:1fr; gap:var(--s-4); }
  .woocommerce-MyAccount-navigation ul{ flex-flow:row wrap; }
  .woocommerce-MyAccount-navigation li a{ background:var(--crema-hueco); }
  .woocommerce-MyAccount-navigation li.is-active a{ background:var(--verde-marca); }
}

/* Barra de orden / recuento — a lo ancho, encima de la rejilla, sin flotantes */
.cf-tienda .woocommerce-result-count,
.cf-tienda .woocommerce-ordering{
  float:none !important; clear:both !important; display:block !important;
  width:100% !important; margin:0 !important;
}
.cf-tienda .woocommerce-ordering{
  margin-bottom:var(--s-3) !important; padding-bottom:var(--s-4) !important;
  border-bottom:1px solid var(--linea);
}
.cf-tienda .woocommerce-ordering select{ min-height:44px; max-width:20rem; }
.cf-tienda .woocommerce-result-count{ color:var(--tinta-suave); font-size:.88rem; margin:0 0 var(--s-8) !important; }

/* --- Rejilla de la tienda ---
   ENCONTRADO con el inspector: WooCommerce añade un ::before/::after de
   "clearfix" (content:" "; display:table) a ul.products para su maquetación
   antigua con flotantes. Con display:grid, ese pseudo-elemento pasa a contar
   como una casilla más de la rejilla (por eso el primer producto se desplazaba
   un puesto). Ya no hace falta el clearfix sin flotantes: lo desactivamos. */
.woocommerce ul.products::before, .woocommerce ul.products::after,
.cf-tienda ul.products::before, .cf-tienda ul.products::after{
  content:none !important; display:none !important;
}
.cf-tienda ul.products, .woocommerce ul.products{
  clear:both !important;
  display:grid !important; grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  gap:clamp(2rem,4vw,2.75rem) var(--s-6) !important;
  margin:0 !important; padding:0 !important; list-style:none !important; float:none !important;
  width:100% !important; max-width:none !important; /* .entry-content ul{max-width:62ch} la encogía */
}
@media (max-width:820px){ .cf-tienda ul.products, .woocommerce ul.products{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; } }
@media (max-width:520px){ .cf-tienda ul.products, .woocommerce ul.products{ grid-template-columns:minmax(0,1fr) !important; } }
/* Cualquier cosa que no sea una tarjeta de producto no debe ocupar hueco en la rejilla. */
.cf-tienda ul.products > *:not(li.product){ display:none !important; }

/* Tarjeta "flotante": foto cuadrada suelta (con el botón flotando dentro,
   centrado, visible solo al pasar el ratón) + texto sin caja debajo */
.woocommerce ul.products li.product,
.woocommerce ul.products li.cf-producto{
  position:relative; min-width:0; width:auto !important; margin:0 !important; float:none !important; clear:none !important;
  text-align:left; background:transparent; border:0; border-radius:0; box-shadow:none;
  display:flex; flex-direction:column; gap:1rem;
}
.woocommerce ul.products li.product:hover{ box-shadow:none; transform:none; }

.cf-producto__foto{ position:relative; min-width:0; }
.cf-producto__foto .woocommerce-LoopProduct-link{ display:block; }
.cf-producto__foto img{
  margin:0; border-radius:var(--r-lg); aspect-ratio:1/1; object-fit:cover; width:100%; height:auto; display:block;
  box-shadow:0 16px 34px -18px rgba(35,42,38,.4); transition:transform var(--transicion), box-shadow var(--transicion);
}
.cf-producto__foto:hover img{ transform:translateY(-4px); box-shadow:0 22px 40px -16px rgba(35,42,38,.5); }
.cf-producto__foto .onsale{
  position:absolute; margin:0; top:.8rem; left:.8rem; z-index:2;
  background:var(--aviso); color:#fff; min-height:0; padding:.3rem .8rem; border-radius:var(--r-full);
  font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; line-height:1.4;
  box-shadow:0 6px 14px -6px rgba(0,0,0,.35);
}
/* Etiqueta "Agotado" sobre la tarjeta */
.cf-producto__agotado{
  position:absolute; top:.8rem; right:.8rem; z-index:3;
  background:var(--tinta); color:var(--on-verde);
  padding:.32rem .8rem; border-radius:var(--r-full);
  font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; line-height:1.4;
  box-shadow:0 6px 14px -6px rgba(0,0,0,.4);
}
.cf-producto:has(.cf-producto__agotado) .cf-producto__foto img{ opacity:.72; filter:saturate(.7); }
.cf-producto:has(.cf-producto__agotado) .cf-producto__foto:hover img{ transform:none; }
/* En la ficha del producto: texto de stock visible */
.woocommerce div.product p.stock.out-of-stock,
.woocommerce div.product .stock.out-of-stock{
  display:inline-block; margin:0 0 var(--s-4); padding:.4rem .9rem; border-radius:var(--r-full);
  background:var(--tinta); color:var(--on-verde);
  font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
}
/* Botón centrado DENTRO de la foto, oculto hasta pasar el ratón por encima */
.cf-producto__foto > a.button,
.cf-producto__foto > a.added_to_cart{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) scale(.94);
  margin:0 !important; z-index:3; white-space:nowrap;
  box-shadow:0 10px 24px -6px rgba(0,0,0,.5);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--transicion), transform var(--transicion), visibility var(--transicion), background var(--transicion);
  /* Centrado del texto reforzado, por si acaso, independiente del flex heredado */
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  text-align:center; line-height:1.15 !important; padding:.85rem 1.6rem !important;
}
.cf-producto__foto:hover > a.button,
.cf-producto__foto:focus-within > a.button,
.cf-producto__foto > a.button:focus{
  opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,-50%) scale(1);
}

.cf-producto__info{
  display:flex; flex-direction:column; gap:.3rem; text-decoration:none; color:inherit;
}
.cf-producto__info .woocommerce-loop-product__title{
  font-family:var(--f-titulo); font-weight:500; font-size:1.2rem; line-height:1.25;
  padding:0; margin:0; color:var(--tinta); background:none;
}
.cf-producto__info .price{
  padding:0; margin:0; background:none;
  color:var(--verde-marca); font-family:var(--f-titulo); font-weight:600; font-size:1.05rem;
}
.cf-producto__info .price del{ color:var(--tinta-suave); font-weight:400; opacity:1; }
.cf-producto__info .price ins{ text-decoration:none; }

/* ===========================================================================
   FICHA DE PRODUCTO — plantilla común a todos: imagen 1:1, miniaturas en
   carruselito de 3, caja de totales y descripción con el estilo del sitio.
   =========================================================================== */
.woocommerce div.product{
  display:grid; grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr); gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
@media (max-width:860px){ .woocommerce div.product{ grid-template-columns:1fr; } }

/* --- Galería: imagen principal cuadrada --- */
.woocommerce div.product .woocommerce-product-gallery{ width:100% !important; margin:0; float:none; position:relative; }
.woocommerce div.product .woocommerce-product-gallery .flex-viewport,
.woocommerce div.product .woocommerce-product-gallery__wrapper,
.woocommerce div.product .woocommerce-product-gallery__image{ aspect-ratio:1/1; border-radius:var(--r-lg); overflow:hidden; }
.woocommerce div.product .woocommerce-product-gallery__image{ margin:0; }
.woocommerce div.product .woocommerce-product-gallery__image a{ display:block; height:100%; }
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product .woocommerce-product-gallery img{
  width:100% !important; height:100% !important; object-fit:cover; border-radius:var(--r-lg); display:block;
  image-orientation:from-image;
}
.woocommerce div.product .woocommerce-product-gallery__trigger{ top:1rem; right:1rem; }

/* --- Miniaturas: carrusel deslizable, con flechas si hay más de 3 --- */
.woocommerce div.product .cf-thumbs-carrusel{ position:relative; margin-top:1.1rem; }
.woocommerce div.product .flex-control-thumbs{
  display:flex !important; flex-wrap:nowrap; gap:.7rem; list-style:none;
  margin:0 !important; padding:0 0 .5rem;
  overflow-x:auto; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
  scrollbar-width:thin; scrollbar-color:var(--verde-salvia) transparent;
}
.woocommerce div.product .flex-control-thumbs::-webkit-scrollbar{ height:5px; }
.woocommerce div.product .flex-control-thumbs::-webkit-scrollbar-thumb{ background:var(--verde-salvia); border-radius:99px; }
/* que asome un trocito de la 4ª → se ve que hay más */
.woocommerce div.product .flex-control-thumbs li{
  flex:0 0 calc((100% - 2.1rem) / 3.35); width:calc((100% - 2.1rem) / 3.35) !important; margin:0; scroll-snap-align:start;
}
/* si no hay carrusel (3 fotos o menos), 3 exactas sin recorte */
.woocommerce div.product .flex-control-thumbs:not([data-cf-carousel]) li{ flex-basis:calc((100% - 1.4rem) / 3); width:calc((100% - 1.4rem) / 3) !important; }
.woocommerce div.product .flex-control-thumbs img{
  width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--r-md);
  opacity:.55; cursor:pointer; transition:opacity var(--transicion);
}
.woocommerce div.product .flex-control-thumbs img:hover{ opacity:.85; }
.woocommerce div.product .flex-control-thumbs img.flex-active{ opacity:1; outline:2px solid var(--verde-marca); outline-offset:-2px; }
.woocommerce div.product .cf-thumbs-flecha{
  position:absolute; top:calc(50% - .5rem); transform:translateY(-50%); z-index:3;
  width:34px; height:34px; border-radius:var(--r-full); border:1px solid var(--linea);
  background:var(--blanco); color:var(--verde-marca); font-size:1.3rem; line-height:1; cursor:pointer;
  box-shadow:var(--sombra-sutil); display:grid; place-content:center; transition:opacity var(--transicion);
}
.woocommerce div.product .cf-thumbs-flecha--prev{ left:-8px; }
.woocommerce div.product .cf-thumbs-flecha--next{ right:-8px; }
.woocommerce div.product .cf-thumbs-carrusel.is-inicio .cf-thumbs-flecha--prev,
.woocommerce div.product .cf-thumbs-carrusel.is-fin .cf-thumbs-flecha--next{ opacity:.25; pointer-events:none; }

/* --- Columna de info --- */
.woocommerce div.product div.summary{ width:100% !important; margin:0 !important; float:none !important; }
.woocommerce div.product .product_title{ font-family:var(--f-titulo); font-weight:500; font-size:clamp(1.8rem,1.3rem+2vw,2.6rem); margin:0 0 .3em; }
.woocommerce div.product p.price, .woocommerce div.product span.price{ color:var(--verde-marca); font-family:var(--f-titulo); font-weight:600; font-size:1.6rem; margin:0 0 var(--s-4); }
.woocommerce div.product .woocommerce-product-details__short-description{ color:var(--tinta-suave); }
.woocommerce div.product form.cart{ margin:var(--s-6) 0 0; }
.woocommerce div.product form.cart .quantity input{ min-height:48px; width:5rem; text-align:center; }
.woocommerce div.product form.variations_form .variations{ margin-bottom:var(--s-4); }
.woocommerce div.product form.variations_form .variations th{ font-weight:700; font-size:.85rem; padding:.5rem .8rem .5rem 0; }
.woocommerce div.product form.variations_form .variations td select{ min-height:48px; width:100%; }
.woocommerce div.product .single_add_to_cart_button{ min-height:52px; padding-inline:2rem; }
/* "Categoría / SKU / etiquetas" bajo el botón: fuera */
.woocommerce div.product .product_meta{ display:none; }

/* --- Add-ons YITH: tarjetas limpias --- */
.woocommerce div.product .yith-wapo-container{ margin:var(--s-4) 0 0; display:flex; flex-direction:column; gap:.7rem; }
.woocommerce div.product .yith-wapo-addon{ border:1px solid var(--linea); border-radius:var(--r-md); padding:var(--s-4); background:var(--blanco); }
.woocommerce div.product .yith-wapo-addon-title{ font-family:var(--f-cuerpo); font-weight:700; font-size:.92rem; margin:0 0 .5rem; letter-spacing:.01em; }
.woocommerce div.product .yith-wapo-addon .description, .woocommerce div.product .yith-wapo-addon .addon-description{ color:var(--tinta-suave); font-size:.86rem; margin:0 0 .6rem; }
.woocommerce div.product .yith-wapo-addon select{ min-height:46px; width:100%; }
.woocommerce div.product .yith-wapo-addon input[type="text"]{ width:100%; }

/* --- Caja de totales YITH: se integra con el sitio --- */
.woocommerce div.product #wapo-total-price-table{
  margin:var(--s-6) 0 var(--s-6);
  background:var(--crema-hueco); border:1px solid var(--linea); border-radius:var(--r-lg); overflow:hidden;
}
.woocommerce div.product #wapo-total-price-table table,
.woocommerce div.product #wapo-total-price-table table.all{
  width:100%; margin:0; border:0 !important; border-collapse:collapse; background:transparent !important;
}
.woocommerce div.product #wapo-total-price-table tr,
.woocommerce div.product #wapo-total-price-table th,
.woocommerce div.product #wapo-total-price-table td{
  border:0 !important; background:transparent; font-size:.92rem; color:var(--tinta-suave);
  padding:.65rem var(--s-4);
}
.woocommerce div.product #wapo-total-price-table th{ text-align:left; font-weight:500; }
.woocommerce div.product #wapo-total-price-table td{ text-align:right; font-variant-numeric:tabular-nums; }
.woocommerce div.product #wapo-total-price-table tr.wapo-total-order th,
.woocommerce div.product #wapo-total-price-table tr.wapo-total-order td{
  background:var(--verde-marca) !important; color:var(--on-verde) !important;
  font-family:var(--f-titulo); font-weight:600; font-size:1.05rem; padding-block:.9rem;
}
.woocommerce div.product #wapo-total-price-table tr.wapo-total-order .amount,
.woocommerce div.product #wapo-total-price-table tr.wapo-total-order .woocommerce-Price-currencySymbol{ color:var(--on-verde) !important; }
/* separación entre la caja y el bloque de cantidad + añadir al carrito */
.woocommerce div.product form.cart .quantity,
.woocommerce div.product form.cart .single_add_to_cart_button{ margin-top:0; }
.woocommerce div.product #wapo-total-price-table + .quantity{ margin-top:0; }

/* --- Pestañas y descripción: TODA la sección en una tarjeta blanca --- */
.woocommerce-tabs{
  grid-column:1 / -1; margin-top:var(--s-16);
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  padding:clamp(1.4rem,3.5vw,2.6rem);
}
.woocommerce-tabs ul.tabs{
  padding:0 !important; border-bottom:1px solid var(--linea); display:flex; flex-wrap:wrap;
  gap:1.8rem; margin:0 0 var(--s-6);
}
.woocommerce-tabs ul.tabs::before{ display:none; }
.woocommerce-tabs ul.tabs li{ background:none !important; border:0 !important; margin:0 !important; padding:0 !important; border-radius:0 !important; }
.woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after{ display:none !important; }
.woocommerce-tabs ul.tabs li a{
  padding:.7rem 0 !important; font-family:var(--f-cuerpo); font-weight:600; font-size:.8rem;
  text-transform:uppercase; letter-spacing:.1em; color:var(--tinta-suave);
}
.woocommerce-tabs ul.tabs li.active a{ color:var(--verde-marca); box-shadow:inset 0 -2px 0 var(--verde-marca); }

/* Se anulan las reglas globales de .entry-content (que sangraban los <p> con el
   gutter y no las <ul>). */
.woocommerce-tabs .woocommerce-Tabs-panel{ max-width:80ch; }
.woocommerce-tabs .woocommerce-Tabs-panel > *{
  max-width:none !important; margin-inline:0 !important; padding-inline:0 !important;
}
.woocommerce-tabs .woocommerce-Tabs-panel > h2:first-child{
  font-family:var(--f-titulo); font-weight:500; font-size:clamp(1.4rem,1.15rem+1.2vw,1.85rem); margin:0 0 var(--s-4) !important;
}
.woocommerce-tabs .woocommerce-Tabs-panel h3,
.woocommerce-tabs .woocommerce-Tabs-panel h4{ font-family:var(--f-titulo); font-weight:500; margin:var(--s-6) 0 var(--s-3) !important; }
.woocommerce-tabs .woocommerce-Tabs-panel p{ margin:0 0 1rem !important; line-height:1.7; }
.woocommerce-tabs .woocommerce-Tabs-panel ul{
  list-style:disc; padding-left:1.35rem !important; margin:0 0 1.3rem !important;
}
.woocommerce-tabs .woocommerce-Tabs-panel ul li{ margin-bottom:.45rem; line-height:1.6; }
.woocommerce-tabs .woocommerce-Tabs-panel ul li::marker{ color:var(--verde-salvia); }
.woocommerce-tabs .woocommerce-Tabs-panel strong{ color:var(--tinta); }

/* --- Productos relacionados --- */
.woocommerce .related.products, .woocommerce .up-sells{ grid-column:1 / -1; margin-top:var(--s-16); }
.woocommerce .related.products > h2, .woocommerce .up-sells > h2, .woocommerce .cross-sells > h2{
  font-family:var(--f-titulo); font-weight:500; font-size:clamp(1.5rem,1.2rem+1.4vw,2rem); margin:0 0 var(--s-6);
}

/* ===========================================================================
   CARRITO Y FINALIZAR COMPRA — más contraste, tablas sobre blanco
   (carrito/checkout se sirven por page.php: body.woocommerce-cart / -checkout)
   =========================================================================== */
/* Mismo ancho y misma sangría que el título de la página (.cf-page__head) */
.woocommerce-cart .cf-page__content,
.woocommerce-checkout .cf-page__content{ max-width:var(--ancho); margin-inline:auto; padding-inline:var(--gutter); }
/* La regla .entry-content ul{max-width:62ch} recorta payment_methods, order_details… */
.woocommerce-cart .cf-page__content ul,
.woocommerce-checkout .cf-page__content ul{ max-width:none; }

/* Tablas (carrito y resumen del pedido) sobre blanco, filas bien separadas */
.woocommerce table.shop_table{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  border-collapse:separate; border-spacing:0; overflow:hidden; width:100%;
}
.woocommerce table.shop_table th{
  background:var(--verde-marca); color:var(--on-verde);
  font-family:var(--f-cuerpo); font-weight:700; font-size:.78rem;
  text-transform:uppercase; letter-spacing:.08em; text-align:left;
}
.woocommerce table.shop_table td, .woocommerce table.shop_table th{ padding:var(--s-4) var(--s-6); vertical-align:middle; }
.woocommerce table.shop_table tbody td{ border-top:1px solid var(--linea); color:var(--tinta); }
.woocommerce table.shop_table tbody tr:first-child td{ border-top:0; }
.woocommerce table.shop_table .product-name a{ font-weight:600; color:var(--tinta); }
.woocommerce table.shop_table .product-thumbnail img{ width:64px; height:64px; object-fit:cover; border-radius:var(--r-sm); }
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table .order-total td,
.woocommerce table.shop_table .cart-subtotal th{
  background:var(--crema-hueco); color:var(--tinta); font-family:var(--f-titulo); font-weight:600;
}
.woocommerce table.shop_table .order-total .amount{ font-size:1.15rem; color:var(--verde-marca); }
.woocommerce a.remove{ color:var(--error) !important; font-weight:700; }
.woocommerce a.remove:hover{ background:var(--error) !important; color:#fff !important; }

/* Selector de cantidad del carrito: que se vea el número (padding lo tapaba) */
.woocommerce .cart .quantity input.qty,
.woocommerce-cart .quantity input.qty,
.woocommerce td.product-quantity .quantity input.qty{
  width:4.4rem; min-height:44px; padding:.4rem .3rem; text-align:center;
  font-size:.95rem; font-weight:600; color:var(--tinta); background:var(--blanco);
  border:1.5px solid var(--linea); border-radius:var(--r-sm); -moz-appearance:textfield;
}
.woocommerce .cart .quantity{ display:inline-flex; align-items:center; }

/* Cupón */
.woocommerce-cart .coupon{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; margin-bottom:var(--s-6); }
.woocommerce-cart .coupon input#coupon_code{ flex:1 1 200px; min-height:48px; }

/* Acciones del carrito */
.woocommerce .cart-collaterals{ display:grid; grid-template-columns:1fr; gap:var(--s-6); max-width:24rem; margin-left:auto; }
.woocommerce .cart-collaterals .cart_totals{ float:none; width:100%; }
.woocommerce .cart_totals > h2{ font-family:var(--f-titulo); font-weight:500; font-size:1.3rem; margin:0 0 var(--s-3); }
.woocommerce .wc-proceed-to-checkout{ padding-top:var(--s-4); }
.woocommerce .wc-proceed-to-checkout a.checkout-button{ width:100%; min-height:56px; font-size:1.05rem; }
.woocommerce button[name="update_cart"]{ background:var(--blanco) !important; color:var(--verde-marca) !important; border:1.5px solid var(--linea); box-shadow:none; }

/* --- Finalizar compra --- */
.woocommerce-checkout .col2-set, .woocommerce-checkout #customer_details{ display:grid; grid-template-columns:1fr; gap:var(--s-6); }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2{ width:auto; float:none; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); padding:var(--s-6);
}
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading{
  font-family:var(--f-titulo); font-weight:500; font-size:1.3rem; margin:0 0 var(--s-4);
}
.woocommerce form .form-row{ padding:0; margin:0 0 var(--s-4); }
.woocommerce form .form-row label{ font-size:.82rem; font-weight:700; margin-bottom:.35rem; display:block; color:var(--tinta); }
.woocommerce form .form-row .required{ color:var(--verde-marca); border:0; text-decoration:none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single{ width:100%; min-height:48px; }
.woocommerce-checkout #order_review, .woocommerce-checkout #order_review_heading{ width:100%; float:none; }

/* Pago: tarjeta blanca, método elegido resaltado */
.woocommerce #payment{ background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); padding:var(--s-6); margin-top:var(--s-4); }
.woocommerce #payment ul.payment_methods{ border:0; padding:0; margin:0; list-style:none; display:grid; gap:.6rem; }
.woocommerce #payment ul.payment_methods li{
  border:1.5px solid var(--linea); border-radius:var(--r-md); padding:.9rem 1.1rem; margin:0; background:var(--blanco);
}
.woocommerce #payment ul.payment_methods li:has(input:checked){ border-color:var(--verde-marca); background:var(--ok-fondo); }
.woocommerce #payment ul.payment_methods li label{ font-weight:600; color:var(--tinta); display:inline; margin:0; }
.woocommerce #payment ul.payment_methods li input[type="radio"]{ width:auto; min-height:0; accent-color:var(--verde-marca); margin-right:.5rem; }
.woocommerce #payment div.payment_box{ background:var(--crema-hueco); border-radius:var(--r-md); color:var(--tinta); margin:.6rem 0 0; }
.woocommerce #payment div.payment_box::before{ border-bottom-color:var(--crema-hueco) !important; }
.woocommerce #payment .woocommerce-terms-and-conditions-wrapper{ margin:var(--s-4) 0; }
.woocommerce #payment #place_order{ width:100%; min-height:56px; font-size:1.05rem; }

/* --- Avisos WooCommerce --- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews{
  border-radius:var(--r-md); border-left-width:3px;
}
.woocommerce-message{ border-left-color:var(--verde-marca); background:var(--ok-fondo); }

/* ===========================================================================
   PIE
   =========================================================================== */
.cf-footer{ background:var(--verde-hondo); color:var(--crema); margin-top:0; }
.cf-footer a{ color:var(--crema); }
.cf-footer a:hover{ color:#fff; }
.cf-footer__inner{
  max-width:var(--ancho-amplio); margin:0 auto; padding:var(--s-16) var(--gutter) var(--s-8);
  display:grid; gap:var(--s-8); grid-template-columns:1.6fr 1fr 1fr 1fr;
}
.cf-footer__name{ font-family:var(--f-titulo); font-size:1.35rem; font-weight:600; margin-bottom:.5rem; }
.cf-footer__titulo{
  font-family:var(--f-cuerpo); font-size:.72rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.12em; color:color-mix(in srgb, var(--crema) 62%, transparent); margin:0 0 var(--s-3);
}
.cf-footer p{ font-size:.94rem; line-height:1.7; color:color-mix(in srgb, var(--crema) 84%, transparent); }
.cf-footer__list{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; font-size:.94rem; }
.cf-footer__list a{ text-decoration:none; }
.cf-footer__list a:hover{ text-decoration:underline; }
.cf-footer__bottom{
  border-top:1px solid rgba(255,255,255,.12); padding:var(--s-6) var(--gutter);
  text-align:center; font-size:.83rem; color:color-mix(in srgb, var(--crema) 68%, transparent);
}
@media (max-width:900px){ .cf-footer__inner{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .cf-footer__inner{ grid-template-columns:1fr; } }

/* ===========================================================================
   BARRA FIJA MÓVIL
   =========================================================================== */
.cf-barra-movil{ display:none; }
@media (max-width:1040px){
  .cf-barra-movil{
    display:flex; gap:var(--s-3); position:fixed; left:0; right:0; bottom:0; z-index:200;
    padding:.7rem var(--gutter); background:var(--blanco);
    border-top:1px solid var(--linea); box-shadow:0 -10px 30px -16px rgba(35,42,38,.35);
  }
  .cf-barra-movil a{
    flex:1; display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
    min-height:50px; border-radius:var(--r-full); font-weight:600; text-decoration:none; font-size:.95rem;
  }
  .cf-barra-movil__cta{ background:var(--verde-marca); color:var(--on-verde); box-shadow:var(--sombra-cta); }
  .cf-barra-movil__wa{ background:var(--sage-claro); color:var(--verde-oscuro); border:1.5px solid var(--linea); }
  body{ padding-bottom:82px; }
}

/* ===========================================================================
   ACCESIBILIDAD
   =========================================================================== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
@media (max-width:1040px){
  button,.cf-cta,a.button,input[type="submit"],select,.wp-block-button__link{ min-height:48px; }
}

.editor-styles-wrapper{ background:var(--crema); font-family:var(--f-cuerpo); }

/* ===========================================================================
   BLOG — "El cuaderno de la casa" (home.php · single.php)
   =========================================================================== */
.cf-blog{ padding-bottom:clamp(3rem,7vw,5rem); }
.cf-blog__head{ text-align:center; max-width:var(--ancho); margin:clamp(3rem,7vw,5rem) auto clamp(2rem,5vw,3rem); padding-inline:var(--gutter); }
.cf-blog__head .cf-eyebrow{ justify-content:center; }
.cf-blog__head .cf-eyebrow::after{ content:""; width:22px; height:2px; background:currentColor; border-radius:2px; }
.cf-blog__intro{ max-width:52ch; margin:.4rem auto 0; color:var(--tinta-suave); font-size:1.1rem; }
.cf-blog__wrap{ max-width:var(--ancho); margin:0 auto; padding-inline:var(--gutter); }

/* Meta (categoría + fecha) */
.cf-blog-meta{ font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; color:var(--verde-marca);
  font-weight:600; margin:0 0 .7rem; display:flex; gap:.6rem; align-items:center; justify-content:center; flex-wrap:wrap; }
.cf-blog-meta__cat{ background:var(--sage-claro); color:var(--verde-oscuro); padding:.2rem .6rem; border-radius:var(--r-full); letter-spacing:.06em; }

.cf-blog-leer{ display:inline-flex; align-items:center; gap:.45rem; font-weight:600; text-decoration:none; margin-top:.3rem; }
.cf-blog-leer::after{ content:"→"; transition:transform var(--transicion); }
.cf-blog-leer:hover::after{ transform:translateX(4px); }

/* Entrada destacada */
.cf-blog-destacada{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3rem); align-items:center;
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--sombra-sutil); margin-bottom:clamp(2.5rem,6vw,4rem); }
.cf-blog-destacada__foto{ display:block; aspect-ratio:4/3; overflow:hidden; }
.cf-blog-destacada__foto img{ width:100%; height:100%; object-fit:cover; transition:transform 500ms var(--transicion); }
.cf-blog-destacada:hover .cf-blog-destacada__foto img{ transform:scale(1.03); }
.cf-blog-destacada__cuerpo{ padding:clamp(1.5rem,4vw,2.6rem) clamp(1.5rem,4vw,2.6rem) clamp(1.5rem,4vw,2.6rem) 0; }
.cf-blog-destacada__cuerpo .cf-blog-meta{ justify-content:flex-start; }
.cf-blog-destacada h2{ margin:.1rem 0 .5rem; font-size:clamp(1.6rem,1.2rem + 1.6vw,2.1rem); }
.cf-blog-destacada h2 a{ text-decoration:none; color:inherit; }
.cf-blog-destacada__extracto{ color:var(--tinta-suave); margin-bottom:.6rem; }
@media (max-width:820px){
  .cf-blog-destacada{ grid-template-columns:1fr; }
  .cf-blog-destacada__foto{ aspect-ratio:16/9; }
  .cf-blog-destacada__cuerpo{ padding:1.4rem 1.4rem 1.8rem; }
  .cf-blog-destacada__cuerpo .cf-blog-meta{ justify-content:center; }
}

/* Rejilla de cartas */
.cf-blog-rejilla{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,3vw,2rem); }
@media (max-width:900px){ .cf-blog-rejilla{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .cf-blog-rejilla{ grid-template-columns:1fr; } }

.cf-blog-carta{ background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-md); overflow:hidden;
  display:flex; flex-direction:column; transition:transform var(--transicion), box-shadow var(--transicion); }
.cf-blog-carta:hover{ transform:translateY(-4px); box-shadow:var(--sombra-carta); }
.cf-blog-carta__foto{ display:block; aspect-ratio:3/2; overflow:hidden; background:var(--crema-hueco); }
.cf-blog-carta__foto img{ width:100%; height:100%; object-fit:cover; }
.cf-blog-carta__cuerpo{ padding:1.15rem 1.2rem 1.3rem; display:flex; flex-direction:column; flex:1; }
.cf-blog-carta__fecha{ font-size:.78rem; text-transform:uppercase; letter-spacing:.09em; color:var(--tinta-suave); margin:0 0 .4rem; }
.cf-blog-carta h3{ font-size:1.16rem; margin:0 0 .5rem; }
.cf-blog-carta h3 a{ text-decoration:none; color:inherit; }
.cf-blog-carta__extracto{ font-size:.94rem; color:var(--tinta-suave); margin:0 0 1rem; }
.cf-blog-carta .cf-blog-leer{ margin-top:auto; font-size:.9rem; }

/* Paginación */
.cf-blog .cf-blog-paginacion, .cf-blog nav.pagination{ margin:clamp(2.5rem,6vw,4rem) 0 0; }
.cf-blog .pagination .nav-links{ display:flex; justify-content:center; gap:.5rem; flex-wrap:wrap; }
.cf-blog .pagination a, .cf-blog .pagination span{ min-width:42px; height:42px; display:grid; place-items:center;
  border-radius:var(--r-full); border:1px solid var(--linea); background:var(--blanco); text-decoration:none;
  font-weight:600; font-size:.92rem; color:var(--tinta); }
.cf-blog .pagination .current{ background:var(--verde-marca); color:var(--on-verde); border-color:var(--verde-marca); }

/* CTA de cierre */
.cf-blog-cta{ margin:clamp(3rem,7vw,5rem) 0 0; background:var(--verde-marca); color:var(--on-verde);
  border-radius:var(--r-lg); padding:clamp(2rem,5vw,3.4rem); text-align:center; }
.cf-blog-cta h2{ color:var(--on-verde); margin-bottom:.4rem; }
.cf-blog-cta p{ color:rgba(251,249,243,.85); max-width:46ch; margin:0 auto 1.4rem; }
.cf-blog-cta .cf-cta{ background:var(--on-verde); color:var(--verde-oscuro); }
.cf-blog-cta .cf-cta:hover{ background:#fff; }

/* --------------------------------------------------------------------------
   Entrada individual
   -------------------------------------------------------------------------- */
.cf-entrada-single{ padding-bottom:clamp(3rem,7vw,5rem); }
.cf-entrada__head{ text-align:center; max-width:760px; margin:clamp(2.5rem,6vw,4rem) auto clamp(1.5rem,4vw,2.2rem); padding-inline:var(--gutter); }
.cf-entrada__head .cf-page__title{ margin:.3rem 0 .5rem; }
.cf-entrada__firma{ color:var(--tinta-suave); font-size:.95rem; margin:0; }
.cf-entrada__hero{ max-width:1000px; margin:0 auto clamp(2rem,5vw,3rem); padding-inline:var(--gutter); }
.cf-entrada__hero img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--r-lg); display:block; }

.cf-entrada__cuerpo{ max-width:760px !important; margin-inline:auto; font-size:1.1rem; }
.cf-entrada__cuerpo > *{ max-width:none; }
.cf-entrada__cuerpo p{ margin:0 0 1.4rem; }
.cf-entrada__cuerpo h2{ margin:2.2rem 0 .6rem; }
.cf-entrada__cuerpo h3{ margin:1.8rem 0 .5rem; }
.cf-entrada__cuerpo img{ border-radius:var(--r-md); margin:1.8rem auto; }
.cf-entrada__cuerpo figure{ margin:1.8rem 0; }
.cf-entrada__cuerpo figure img{ margin:0; }
.cf-entrada__cuerpo .wp-block-gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.8rem; margin:1.8rem 0; }
.cf-entrada__cuerpo .wp-block-gallery img{ margin:0; aspect-ratio:1; object-fit:cover; width:100%; }
.cf-entrada__cuerpo blockquote{ margin:2rem 0; padding:.4rem 0 .4rem 1.4rem; border-left:3px solid var(--verde-salvia);
  font-family:var(--f-titulo); font-size:1.3rem; line-height:1.35; color:var(--verde-oscuro); }
.cf-entrada__cuerpo ul, .cf-entrada__cuerpo ol{ margin:0 0 1.4rem; padding-left:1.3rem; }

.cf-entrada__nav{ max-width:760px; margin:clamp(3rem,7vw,4.5rem) auto 0; padding:clamp(1.4rem,4vw,2.2rem) var(--gutter) 0;
  border-top:1px solid var(--linea); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.cf-entrada__nav a{ text-decoration:none; font-weight:600; font-size:.95rem; }
.cf-entrada__nav-vol{ color:var(--tinta-suave); }

.cf-entrada__relacionadas{ max-width:var(--ancho); margin:clamp(3rem,7vw,4.5rem) auto 0; padding-inline:var(--gutter); }
.cf-entrada__relacionadas h2{ text-align:center; font-size:1.7rem; margin-bottom:1.6rem; }
.cf-entrada__cuerpo .cf-boton{ margin:1.8rem 0; }
.cf-entrada__cuerpo .cf-boton .cf-cta{ text-decoration:none; }

/* ===========================================================================
   FAQ (bloques <details>) — usado en la landing de Agroturismo y otras
   =========================================================================== */
.cf-faq{ max-width:760px; margin-inline:auto; display:flex; flex-direction:column; gap:.7rem; }
.cf-faq details{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-md);
  padding:.2rem 1.2rem; transition:border-color var(--transicion);
}
.cf-faq details[open]{ border-color:var(--verde-salvia); }
.cf-faq summary{
  cursor:pointer; list-style:none; padding:1rem 0; font-family:var(--f-titulo);
  font-size:1.08rem; color:var(--tinta); display:flex; justify-content:space-between; gap:1rem; align-items:center;
}
.cf-faq summary::-webkit-details-marker{ display:none; }
.cf-faq summary::after{ content:"+"; font-size:1.4rem; color:var(--verde-marca); line-height:1; flex:0 0 auto; }
.cf-faq details[open] summary::after{ content:"–"; }
.cf-faq details > p{ margin:0 0 1rem; color:var(--tinta-suave); }

/* Sección con formulario al lado de una foto (landing de experiencia) */
.cf-form-foto{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3.2rem); align-items:center; }
.cf-form-foto .cf-form-foto__media img{ border-radius:var(--r-lg); aspect-ratio:4/5; object-fit:cover; width:100%; }
@media (max-width:820px){
  .cf-form-foto{ grid-template-columns:1fr; }
  .cf-form-foto .cf-form-foto__media{ order:-1; }
  .cf-form-foto .cf-form-foto__media img{ aspect-ratio:16/10; }
}
.cf-lista-centrada{ max-width:34rem; margin-inline:auto; list-style:none; padding:0; display:flex; flex-direction:column; gap:.55rem; }
.cf-lista-centrada li{ position:relative; padding-left:1.6rem; }
.cf-lista-centrada li::before{ content:"✔"; position:absolute; left:0; color:var(--verde-marca); font-weight:700; }
.cf-seccion--sage .cf-lista-centrada li::before{ color:var(--verde-oscuro); }
/* Botón "Reservar la experiencia" en la descripción corta del producto */
.woocommerce div.product .woocommerce-product-details__short-description .cf-boton-producto{ margin:1.1rem 0 0; }
.woocommerce div.product .cf-boton-producto .cf-cta{ text-decoration:none; }
/* Banner de ayuda LEADER (obligatorio por la subvención) en la landing de Agroturismo */
.cf-leader .wp-block-image{ margin-inline:auto; max-width:640px; }
.cf-leader .wp-block-image img{ border:1px solid var(--linea); border-radius:var(--r-sm); }
.cf-leader__texto{ max-width:60ch; margin-inline:auto; margin-top:var(--s-4); font-size:.82rem; color:var(--tinta-suave); }

/* ===========================================================================
   ARCHIVO DE ALOJAMIENTOS (archive-mphb_room_type.php)
   Reutiliza la tarjeta .mphb-room-type de los resultados de búsqueda.
   =========================================================================== */
.cf-archivo-alo{ padding-bottom:clamp(3rem,7vw,5rem); }
.cf-archivo-alo__head{ text-align:center; max-width:var(--ancho); margin:clamp(3rem,7vw,5rem) auto clamp(2rem,5vw,3rem); padding-inline:var(--gutter); }
.cf-archivo-alo__head .cf-eyebrow{ justify-content:center; }
.cf-archivo-alo__head .cf-eyebrow::after{ content:""; width:22px; height:2px; background:currentColor; border-radius:2px; }
.cf-archivo-alo__intro{ max-width:54ch; margin:.4rem auto 0; color:var(--tinta-suave); font-size:1.1rem; }
.cf-archivo-alo__lista{ max-width:var(--ancho); margin:0 auto; padding-inline:var(--gutter); }

.cf-archivo-alo__lista .mphb_sc_rooms-wrapper{ display:flex; flex-direction:column; gap:var(--s-6); }

/* MPHB imprime los hijos "planos" (foto, título, extracto, precio, botón) sin
   envoltorio. Patrón robusto: la card reserva un carril izquierdo con
   padding-left y la foto se posiciona en absoluto sobre ese carril; el texto
   fluye normal en el resto. */
.cf-archivo-alo__lista .mphb-room-type{
  position:relative; padding:clamp(1.4rem,3.5vw,2.1rem) clamp(1.4rem,3.5vw,2.1rem) clamp(1.4rem,3.5vw,2.1rem) calc(38% + clamp(1.3rem,3vw,2.2rem));
  min-height:clamp(210px,24vw,270px);
  display:flex; flex-direction:column; justify-content:center; gap:.55rem;
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--r-lg);
  overflow:hidden; box-shadow:var(--sombra-sutil); margin:0 !important;
  transition:box-shadow var(--transicion), transform var(--transicion);
}
.cf-archivo-alo__lista .mphb-room-type:hover{ box-shadow:var(--sombra-carta); transform:translateY(-2px); }

.cf-archivo-alo__lista .mphb-room-type > .mphb-loop-room-thumbnail{
  position:absolute; left:0; top:0; bottom:0; width:38%;
  margin:0 !important; padding:0 !important; background:var(--sage-claro); overflow:hidden;
}
.cf-archivo-alo__lista .mphb-room-type > .mphb-loop-room-thumbnail a{ display:block; width:100%; height:100%; }
.cf-archivo-alo__lista .mphb-room-type > .mphb-loop-room-thumbnail img{
  width:100% !important; height:100% !important; object-fit:cover; display:block;
}
.cf-archivo-alo__lista .mphb-room-type > :not(.mphb-loop-room-thumbnail){ margin:0 !important; }

.cf-archivo-alo__lista .mphb-room-type-title{ font-size:1.4rem !important; font-family:var(--f-titulo); font-weight:500; line-height:1.15; }
.cf-archivo-alo__lista .mphb-room-type-title,
.cf-archivo-alo__lista h2.mphb-room-type-title a{ color:var(--tinta); text-decoration:none; }
.cf-archivo-alo__lista h2.mphb-room-type-title a:hover{ color:var(--verde-marca); }
.cf-archivo-alo__lista .mphb-room-type > p:not([class]){ color:var(--tinta-suave); }
.cf-archivo-alo__lista .mphb-regular-price{ font-size:.92rem; color:var(--tinta-suave); }
.cf-archivo-alo__lista .mphb-regular-price .mphb-price{ font-weight:700; color:var(--verde-marca); }
.cf-archivo-alo__lista .mphb-view-details-button-wrapper{ margin-top:.3rem !important; }
.cf-archivo-alo__lista .mphb-view-details-button-wrapper a{
  display:inline-flex; align-items:center; gap:.4rem; padding:.62rem 1.3rem; border-radius:var(--r-full);
  background:var(--sage-claro); color:var(--verde-oscuro) !important; font-weight:600; font-size:.9rem; text-decoration:none;
  border:1px solid transparent; min-height:0;
}
.cf-archivo-alo__lista .mphb-view-details-button-wrapper a:hover{ background:var(--verde-marca); color:var(--on-verde) !important; }

@media (max-width:720px){
  .cf-archivo-alo__lista .mphb-room-type{
    display:block; padding:0 0 clamp(1.2rem,4vw,1.7rem); min-height:0;
  }
  .cf-archivo-alo__lista .mphb-room-type > .mphb-loop-room-thumbnail{
    position:static; width:100%; aspect-ratio:auto; margin:0 0 clamp(1rem,3vw,1.3rem) !important;
  }
  .cf-archivo-alo__lista .mphb-room-type > .mphb-loop-room-thumbnail a,
  .cf-archivo-alo__lista .mphb-room-type > .mphb-loop-room-thumbnail img{
    position:static !important; width:100% !important; height:auto !important;
    aspect-ratio:16/10; object-fit:cover; display:block;
  }
  .cf-archivo-alo__lista .mphb-room-type > :not(.mphb-loop-room-thumbnail){ padding-inline:clamp(1.1rem,4vw,1.6rem); }
  .cf-archivo-alo__lista .mphb-room-type > .mphb-room-type-title{ padding-top:clamp(1.1rem,4vw,1.5rem); }
}

.cf-archivo-alo__cta{ text-align:center; margin:clamp(2.5rem,6vw,4rem) auto 0; max-width:var(--ancho); padding-inline:var(--gutter); }
.cf-archivo-alo__cta p{ font-family:var(--f-titulo); font-size:1.3rem; margin-bottom:1rem; }

/* Páginas legales */
.cf-legal{ font-size:.98rem; }
.cf-legal p{ margin:0 0 1rem; }
.cf-legal h2{ font-size:1.3rem; margin:2rem 0 .6rem; }
.cf-legal h3{ font-size:1.1rem; margin:1.6rem 0 .5rem; }
.cf-legal ul{ margin:0 0 1rem; padding-left:1.3rem; }
.cf-legal__fecha{ margin-top:var(--s-8); font-size:.85rem; color:var(--tinta-suave); font-style:italic; }

/* Calendario visual de disponibilidad */
.cf-calendario-visual{ overflow-x:auto; }
.cf-calendario-visual .mphb-group-availability-calendar,
.cf-calendario-visual table{ margin-inline:auto; }

/* Menú de eventos (landing Fiestas y eventos) */
.cf-eventos-menu{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:var(--s-6); }
.cf-eventos-menu a{
  display:inline-flex; align-items:center; gap:.55rem; padding:.7rem 1.2rem;
  background:var(--crema-hueco); border:1px solid var(--linea); border-radius:var(--r-full);
  font-weight:600; font-size:.95rem; color:var(--tinta); text-decoration:none;
  transition:background var(--transicion), color var(--transicion), transform var(--transicion);
}
.cf-eventos-menu a span{ font-size:1.15rem; line-height:1; }
.cf-eventos-menu a:hover{ background:var(--verde-marca); color:var(--on-verde); transform:translateY(-2px); }

/* Selector + calendario visual de disponibilidad ([cf_calendario_disponibilidad]) */
.cf-dispo{ max-width:760px; margin-inline:auto; }
.cf-dispo__label{ display:block; font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--verde-marca); margin-bottom:.5rem; }
.cf-dispo__select{ width:100%; max-width:420px; }
.cf-dispo__leyenda{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; margin:1.4rem 0; font-size:.85rem; color:var(--tinta-suave); }
.cf-dispo__dot{ width:14px; height:14px; border-radius:4px; display:inline-block; margin-right:.35rem; vertical-align:-2px; }
.cf-dispo__dot--libre{ background:#D3E7D7; border:1px solid #A9CDB0; }
.cf-dispo__dot--ocupado{ background:#F0CFCB; border:1px solid #DDA9A2; }
.cf-dispo__dot--hoy{ background:#2E3E3A; }
.cf-dispo__calendarios{ margin-top:.5rem; }
.cf-dispo__cal{ overflow-x:auto; }
.cf-dispo__cal .mphb-calendar-wrapper, .cf-dispo__cal table{ margin-inline:auto; }
