body {
  background-color: #F5F1E8;
  padding: 40px;
  text-align: center;
  font-family: Arial, sans-serif;
}

h1 {
  color: rgb(69, 110, 91);
  font-size: 30px;
}

h2 {
  color: rgb(8, 8, 8);
}

img {
  border-radius: 20px;
  max-width: 100%;
  height: auto;
}

p {
  font-size: 18px;
  line-height: 1.6;
}

.boton-instagram {
  background-color: rgb(80, 143, 80);
  color: white;
  padding: 12px 20px;
  border-radius: 8px;
  text-decoration: none;
  display: inline-block;
}

.boton-instagram:hover {
  background-color: #174D25;
}

.tarjeta-alojamiento {
  background-color: white;
  padding: 20px;
  border-radius: 16px;
  width: 100%;
  max-width: 400px;
  box-sizing: border-box;
}

.lista-alojamientos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
}

.tarjeta-alojamiento img {
  width: 100%;
  height: 240px;
  object-fit: cover;
}

@media (max-width: 600px) {
  body {
    padding: 20px;
  }

  h1 {
    font-size: 30px;
  }
}

#contacto {
  background-color: #E3EBDD;
  margin-top: 40px;
  padding: 32px 20px;
  border-radius: 16px;
}

.pie-pagina {
  margin-top: 40px;
  padding: 24px;
  border-top: 1px solid #D8D2C6;
  color: #5A5A5A;
}

.pie-pagina p {
  font-size: 14px;
}

.menu-principal {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-bottom: 32px;
}

.menu-principal a {
  color: #174D25;
  text-decoration: none;
  font-weight: bold;
}

.menu-principal a:hover {
  text-decoration: underline;
}

html {
  scroll-behavior: smooth;
}

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

a:focus-visible {
  outline: 3px solid #174D25;
  outline-offset: 4px;
}

.pagina-alojamiento {
  max-width: 1200px;
  margin: 0 auto;
  text-align: left;
}

.boton-volver {
  display: inline-block;
  padding: 10px 16px;
  border: 2px solid #25633B;
  border-radius: 8px;
  color: #25633B;
  text-decoration: none;
}

.boton-volver:hover {
  background-color: #E3EBDD;
}

.lista-detalles {
  max-width: none;
  margin: 24px 0;
  padding-left: 24px;
  text-align: left;
  line-height: 1.6;
}

.lista-detalles li {
  margin-bottom: 12px;
}

.pregunta {
  background-color: white;
  padding: 16px;
  margin-bottom: 12px;
  border-radius: 8px;
  text-align: left;
}

.pregunta summary {
  cursor: pointer;
  font-weight: bold;
}

.pregunta[open] {
  background-color: #E3EBDD;
}

.etiqueta {
  display: inline-block;
  background-color: #E3EBDD;
  color: #174D25;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 14px;
}

.foto-alojamiento {
  margin: 24px 0;
}

.foto-alojamiento figcaption {
  margin-top: 8px;
  font-size: 14px;
  color: #5A5A5A;
}

.pregunta a {
  color: #174D25;
  text-decoration: underline;
}

.consulta {
  margin: 32px 0;
  text-align: left;
}

.consulta label {
  display: block;
  margin-bottom: 8px;
}

.consulta input,
.consulta textarea,
.consulta select {
  width: 100%;
  box-sizing: border-box;
  padding: 12px;
  border: 1px solid #5A5A5A;
  border-radius: 8px;
  font: inherit;
  margin-bottom: 20px;
}

.consulta input:focus,
.consulta textarea:focus,
.consulta select:focus {
  outline: 3px solid #174D25;
  outline-offset: 2px;
}

button.boton-instagram {
  border: none;
  font: inherit;
  cursor: pointer;
}

#resumen {
  white-space: pre-line;
}

#resumen:not(:empty) {
  background-color: white;
  padding: 20px;
  border: 1px solid #D8D2C6;
  border-radius: 12px;
}

@media (max-width: 600px) {
  .consulta button {
    display: block;
    width: 100%;
    margin-top: 12px;
  }
}

#contador-mensaje {
  margin-top: -12px;
  margin-bottom: 20px;
  font-size: 14px;
  color: #5A5A5A;
}

#contador-mensaje.cerca-del-limite {
  color: #8A3500;
  font-weight: bold;
}

label[for="filtro-alojamientos"],
label[for="filtro-ubicacion"],
label[for="orden-alojamientos"] {
  display: block;
  margin-bottom: 8px;
  font-weight: bold;
}

#filtro-alojamientos,
#filtro-ubicacion,
#orden-alojamientos {
  width: 100%;
  max-width: 320px;
  box-sizing: border-box;
  padding: 12px;
  margin-bottom: 24px;
  border: 1px solid #5A5A5A;
  border-radius: 8px;
  background-color: white;
  font: inherit;
}

#filtro-alojamientos:focus-visible,
#filtro-ubicacion:focus-visible,
#orden-alojamientos:focus-visible {
  outline: 3px solid #174D25;
  outline-offset: 3px;
}

.panel-filtros {
  max-width: 600px;
  margin: 24px auto;
  padding: 24px;
  border: 1px solid #D8D2C6;
  border-radius: 16px;
  background-color: white;
  min-width: 0;
}

.panel-filtros legend {
  padding: 0 12px;
  color: #174D25;
  font-weight: bold;
}

label[for="buscar-alojamiento"] {
  display: block;
  margin-bottom: 8px;
  font-weight: bold;
}

#buscar-alojamiento {
  width: 100%;
  max-width: 320px;
  box-sizing: border-box;
  padding: 12px;
  margin-bottom: 24px;
  border: 1px solid #5A5A5A;
  border-radius: 8px;
  font: inherit;
}

#buscar-alojamiento:focus-visible {
  outline: 3px solid #174D25;
  outline-offset: 3px;
}

#limpiar-filtros {
  display: block;
  margin: 12px auto 0;
}

.datos-tarjeta {
  font-size: 14px;
  color: #5A5A5A;
  margin-top: 8px;
}

.tarjeta-alojamiento:not([hidden]) {
  display: flex;
  flex-direction: column;
}

.tarjeta-alojamiento .boton-instagram {
  margin-top: auto;
  align-self: center;
}

.galeria-tarjeta {
  position: relative;
}

.galeria-tarjeta img {
  display: block;
}

.flecha-foto {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.65);
  color: white;
  font-size: 22px;
  cursor: pointer;
}

.flecha-foto.anterior {
  left: 10px;
}

.flecha-foto.siguiente {
  right: 10px;
}

.flecha-foto:hover {
  background-color: rgba(0, 0, 0, 0.85);
}

.flecha-foto:focus-visible {
  outline: 3px solid white;
  outline-offset: 3px;
}

.etiquetas-tarjeta {
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  pointer-events: none;
}

.distintivo-tarjeta {
  max-width: 100%;
  box-sizing: border-box;
  padding: 6px 12px;
  border-radius: 20px;
  background-color: white;
  color: #174D25;
  font-size: 14px;
  line-height: 1.4;
  text-align: left;
  overflow-wrap: anywhere;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.distintivo-tarjeta:first-child {
  background-color: #CFF5B0;
}

.valoracion-tarjeta {
  margin: 8px 0;
  color: #795500;
  font-size: 14px;
  font-weight: bold;
}

.precio-tarjeta {
  margin: 12px 0 20px;
  color: #174D25;
  font-size: 16px;
  font-weight: bold;
}

.encabezado-tarjeta {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-top: 20px;
}

.encabezado-tarjeta h3 {
  flex: 1;
  min-width: 0;
  margin: 0;
  text-align: left;
}

.encabezado-tarjeta .valoracion-tarjeta {
  flex-shrink: 0;
  margin: 0;
  text-align: right;
}

.valoracion-tarjeta span {
  white-space: nowrap;
}

.valoracion-tarjeta small {
  display: block;
  margin-top: 4px;
  font-size: 10px;
  font-weight: normal;
  color: #5A5A5A;
}

#galeria-alojamiento {
  width: min(900px, 92vw);
  max-height: 90vh;
  box-sizing: border-box;
  padding: 20px;
  border: none;
  border-radius: 16px;
  overflow-y: auto;
  text-align: center;
}

#galeria-alojamiento::backdrop {
  background-color: rgba(0, 0, 0, 0.65);
}

#titulo-galeria {
  margin: 0 0 12px;
  font-size: 24px;
}

#galeria-alojamiento form {
  margin-bottom: 16px;
}

#imagen-galeria {
  display: block;
  width: 100%;
  height: 50vh;
  object-fit: contain;
  border-radius: 12px;
  background-color: #F5F1E8;
}

.controles-galeria {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

.controles-galeria button {
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #174D25;
  border-radius: 8px;
  background-color: white;
  color: #174D25;
  font: inherit;
  cursor: pointer;
}

.controles-galeria button:hover {
  background-color: #E3EDDF;
}

#galeria-alojamiento button:focus-visible {
  outline: 3px solid #174D25;
  outline-offset: 3px;
}

#contador-galeria {
  margin: 12px 0 0;
  font-size: 14px;
  color: #5A5A5A;
}

.datos-ficha {
  max-width: 650px;
  margin: 24px 0;
  padding: 20px;
  box-sizing: border-box;
  background-color: white;
  border: 1px solid #D8D2C6;
  border-radius: 16px;
}

.datos-ficha p {
  margin: 8px 0;
  font-size: 16px;
  color: #5A5A5A;
}

.datos-ficha #precio-ficha {
  margin-top: 16px;
  color: #174D25;
  font-size: 20px;
  font-weight: bold;
}

label[for="precio-maximo"] {
  display: block;
  margin-bottom: 8px;
  font-weight: bold;
}

#precio-maximo {
  display: block;
  width: 100%;
  max-width: 320px;
  box-sizing: border-box;
  margin: 0 auto 24px;
  padding: 12px;
  border: 1px solid #5A5A5A;
  border-radius: 8px;
  background-color: white;
  font: inherit;
}

#precio-maximo:focus-visible {
  outline: 3px solid #174D25;
  outline-offset: 3px;
}

body.pagina-inicio {
  margin: 0;
  padding: 40px;
}

.portada {
  box-sizing: border-box;
  min-height: 75vh;
  margin: -40px -40px 40px;
  padding: 28px 40px 60px;

  background-image:
    linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
    url("entrada.jpg");

  background-size: cover;
  background-position: center;
  background-color: #174D25;
  color: white;
}

.cabecera-portada {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.portada .marca {
  color: white;
  font-size: 28px;
  font-weight: bold;
  text-decoration: none;
}

.portada .menu-principal {
  margin: 0;
  flex-wrap: wrap;
  gap: 24px;
}

.portada .menu-principal a {
  color: white;
}

.portada a:focus-visible {
  outline: 3px solid white;
  outline-offset: 4px;
}

.contenido-portada {
  max-width: 850px;
  margin: 0 auto;
  padding-top: 100px;
  text-align: center;
}

.contenido-portada h1 {
  margin: 0 0 24px;
  color: white;
  font-size: clamp(32px, 4vw, 60px);
  line-height: 1.15;
}

.contenido-portada p {
  margin: 0 auto 32px;
  max-width: 650px;
  color: white;
  font-size: 20px;
  line-height: 1.6;
}

@media (max-width: 600px) {
  body.pagina-inicio {
    padding: 20px;
  }

  .portada {
    margin: -20px -20px 28px;
    padding: 24px 20px 48px;
    min-height: 65vh;
  }

  .cabecera-portada {
    justify-content: center;
  }

  .contenido-portada {
    padding-top: 60px;
  }

  .contenido-portada p {
    font-size: 18px;
  }
}

.pagina-inicio .contenido-portada {
  max-width: 1100px;
  padding-top: 70px;
}

.pagina-inicio .contenido-portada h1 {
  max-width: 1200px;
  margin: 0 auto 28px;
  font-family: "Trebuchet MS", Arial, sans-serif;
  font-size: clamp(42px, 7vw, 96px);
  font-weight: 700;
  line-height: 1.05;
  color: #E2F5C8;
  text-wrap: balance;
}

.pagina-inicio .contenido-portada p {
  max-width: 620px;
  font-size: 20px;
  color: #F4FAED;
}

.pagina-inicio .portada .menu-principal a {
  font-weight: normal;
}

@media (max-width: 1300px) {
  .pagina-inicio .contenido-portada {
    padding-top: 45px;
  }

  .pagina-inicio .contenido-portada p {
    font-size: 17px;
  }
}

.pagina-inicio .panel-filtros {
  position: relative;
  max-width: 1100px;
  box-sizing: border-box;
  margin: -80px auto 48px;
  padding: 24px;
  border: none;
  border-radius: 24px;
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.12);
  text-align: left;
}

.pagina-inicio .panel-filtros legend {
  padding: 8px 16px;
  border-radius: 12px;
  background-color: white;
  font-size: 18px;
}

.campos-filtros {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 16px;
}

.campo-filtro {
  min-width: 0;
}

.pagina-inicio .campo-filtro label {
  display: block;
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: bold;
}

.pagina-inicio .campo-filtro input,
.pagina-inicio .campo-filtro select {
  display: block;
  width: 100%;
  max-width: none;
  min-width: 0;
  height: 48px;
  box-sizing: border-box;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #C9CFC7;
  border-radius: 10px;
  background-color: white;
  font-size: 15px;
}

.extras-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-top: 20px;
}

.extras-filtros label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}

.extras-filtros input {
  margin: 0;
  accent-color: #174D25;
}

.acciones-filtros {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #E5E8E2;
}

.acciones-filtros .campo-filtro {
  max-width: 320px;
}

.pagina-inicio #limpiar-filtros,
.pagina-inicio #explorar-alojamientos {
  margin: 0;
  font-size: 14px;
}

@media (max-width: 900px) {
  .campos-filtros {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .pagina-inicio .panel-filtros {
    margin-top: -40px;
    padding: 20px;
    border-radius: 20px;
  }

  .campos-filtros {
    grid-template-columns: 1fr;
  }

  .acciones-filtros .campo-filtro {
    max-width: none;
  }
}

.pagina-inicio .campo-filtro #buscar-alojamiento,
.pagina-inicio .campo-filtro #filtro-ubicacion,
.pagina-inicio .campo-filtro #filtro-alojamientos,
.pagina-inicio .campo-filtro #precio-maximo,
.pagina-inicio .campo-filtro #orden-alojamientos {
  width: 100%;
  max-width: none;
  margin: 0;
}

.pagina-inicio .campo-filtro #precio-maximo[aria-invalid="true"] {
  border: 2px solid #A12622;
}

.boton-favorito {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: white;
  color: #174D25;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.boton-favorito:hover {
  background-color: #E3EDDF;
}

.boton-favorito:focus-visible {
  outline: 3px solid #174D25;
  outline-offset: 3px;
}

.boton-favorito[aria-pressed="true"] {
  color: #B32645;
}

/* Deja espacio para que las etiquetas no tapen el corazón. */
.galeria-tarjeta .etiquetas-tarjeta {
  right: 68px;
}

.pagina-inicio .panel-filtros legend {
  float: left;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 24px;
  padding: 0;
  border-radius: 0;
  background-color: transparent;
  text-align: left;
}

.pagina-inicio .panel-filtros .campos-filtros {
  clear: both;
}

/* Mosaico de fotos de la ficha */
.pagina-alojamiento .mosaico-fotos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: minmax(0, 1fr);
  gap: 8px;
  height: 420px;
  border-radius: 20px;
  overflow: hidden;
}

.pagina-alojamiento .mosaico-fotos img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  border-radius: 0;
}

.pagina-alojamiento .fotos-secundarias {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: 206px 206px;
  gap: 8px;
  height: 420px;
  min-width: 0;
  min-height: 0;
}

.pagina-alojamiento .fotos-secundarias img {
  width: 100%;
  height: 206px;
  max-height: 206px;
  object-fit: cover;
}

.pagina-alojamiento .fotos-secundarias img:last-child:nth-child(3) {
  grid-column: 1 / -1;
}

/* Si solo hay una foto, ocupa todo el ancho */
.pagina-alojamiento .mosaico-fotos:has(.fotos-secundarias:empty) {
  grid-template-columns: 1fr;
}

.pagina-alojamiento .fotos-secundarias:empty {
  display: none;
}

/* En móvil mostramos la foto principal */
@media (max-width: 700px) {
  .pagina-alojamiento .mosaico-fotos {
    grid-template-columns: 1fr;
    height: 300px;
  }

  .pagina-alojamiento .fotos-secundarias {
    display: none;
  }
}

.pagina-alojamiento .mosaico-fotos {
  position: relative;
}

.pagina-alojamiento #ver-fotos {
  position: absolute;
  bottom: 16px;
  right: 16px;
  z-index: 1;
  min-height: 44px;
  padding: 10px 16px;
  background-color: white;
  color: #174D25;
  border: 1px solid #174D25;
  border-radius: 8px;
  font: inherit;
  font-weight: bold;
  cursor: pointer;
}

.pagina-alojamiento #ver-fotos:hover {
  background-color: #E3EBDD;
}

.pagina-alojamiento #ver-fotos:focus-visible {
  outline: 3px solid #174D25;
  outline-offset: 3px;
}

.pagina-alojamiento .bloque-ficha {
  margin: 32px 0;
  padding: 32px;
  background-color: white;
  border: 1px solid #D8D2C6;
  border-radius: 16px;
}

.pagina-alojamiento .bloque-ficha h2 {
  margin: 0 0 16px;
}

.pagina-alojamiento .bloque-ficha p {
  margin: 0;
  max-width: 75ch;
  color: #454545;
  line-height: 1.7;
}

@media (max-width: 700px) {
  .pagina-alojamiento .bloque-ficha {
    margin: 24px 0;
    padding: 20px;
  }
}

.pagina-alojamiento .lista-servicios {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 32px;
  margin: 0;
  padding-left: 24px;
  color: #454545;
  line-height: 1.6;
}

.pagina-alojamiento .lista-servicios li {
  padding-left: 4px;
  overflow-wrap: anywhere;
}

.pagina-alojamiento .lista-servicios li::marker {
  color: #25633B;
}

@media (max-width: 700px) {
  .pagina-alojamiento .lista-servicios {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

.pagina-alojamiento .bloque-ficha .aviso-actividades {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #D8D2C6;
  font-size: 14px;
  line-height: 1.6;
  color: #5A5A5A;
}

.tarjeta-alojamiento .precio-tarjeta {
  margin-top: auto;
  padding-top: 16px;
}

.tarjeta-alojamiento .precio-tarjeta + .boton-instagram {
  margin-top: 0;
}

/* Buscador a todo el ancho en pantallas pequeñas */
@media (max-width: 600px) {
  .pagina-inicio .panel-filtros {
    width: calc(100% + 40px);
    max-width: none;
    margin: -40px -20px 32px;
    padding: 24px 20px;
    box-sizing: border-box;
    border-radius: 28px 28px 0 0;
    box-shadow: none;
  }
}

.pagina-inicio .texto-circulo {
  position: relative;
  display: inline-block;
  margin: 6px;
  padding: 2px 4px;
  font-weight: bold;
  color: #E2F5C8;
  white-space: nowrap;
}

.pagina-inicio .texto-circulo::after {
  content: "";
  position: absolute;
  inset: -5px -8px;
  border: 3px solid #f3ee61;
  border-radius: 50%;
  transform: rotate(-3deg);
  pointer-events: none;
}

/* Cuando hay una foto principal y una secundaria */
.pagina-alojamiento .fotos-secundarias:has(> img:only-child) {
  grid-template-columns: 1fr;
  grid-template-rows: 420px;
}

.pagina-alojamiento .fotos-secundarias > img:only-child {
  grid-column: 1 / -1;
  height: 420px;
  max-height: 420px;
}

.pagina-inicio .ayuda-filtro {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.5;
  color: #5A5A5A;
}

.pagina-anfitriones .opciones-tipos {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  min-width: 0;
  padding: 16px;
  border: 1px solid #D8D2C6;
  border-radius: 12px;
}

.pagina-anfitriones .opcion-tipo {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 12px;
  cursor: pointer;
}

.pagina-anfitriones .opcion-tipo input {
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
  accent-color: #25633B;
}

.pagina-anfitriones .vista-fotos:not([hidden]) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.pagina-anfitriones .vista-fotos figure {
  min-width: 0;
  margin: 0;
}

.pagina-anfitriones .vista-fotos img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
}

.pagina-anfitriones .vista-fotos figcaption {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

#acceso-anfitrion [hidden] {
  display: none !important;
}

main[hidden] {
  display: none !important;
}

/* Respeta el atributo hidden aunque el botón tenga otro display. */
#nuevo-alojamiento[hidden] {
  display: none !important;
}

/* Tarjeta de presentación del formulario de anfitriones */
.pagina-anfitriones .portada-anfitrion {
  max-width: 1000px;
  margin: 32px auto;
  padding: 40px 32px;
  box-sizing: border-box;
  background: #FFFFFF;
  border: 1px solid #E5E3DC;
  border-radius: 24px;
  box-shadow: 0 8px 24px rgba(40, 60, 40, 0.08);
  text-align: center;
}

.pagina-anfitriones .portada-anfitrion h1 {
  margin: 0 0 16px;
  color: #285C45;
  font-size: 34px;
  line-height: 1.2;
}

.pagina-anfitriones .portada-anfitrion p {
  width: 100%;
  max-width: 480px;
  box-sizing: border-box;
  margin: 0 auto;
  font-size: 14px;
  line-height: 1.6;
  color: #536256;
  text-align: center;
}

@media (max-width: 600px) {
  .pagina-anfitriones .portada-anfitrion {
    padding: 28px 20px;
    border-radius: 20px;
  }

  .pagina-anfitriones .portada-anfitrion h1 {
    font-size: 28px;
  }
}

/* Título con tipografía serif y marca rodeada en amarillo */
.pagina-anfitriones .portada-anfitrion h1 {
  max-width: 560px;
  margin: 0 auto 24px;
  font-family: "Cooper Black", Georgia, serif;
  font-weight: 900;
  font-size: 36px;
  line-height: 1.4;
  color: #285C45;
}

.pagina-anfitriones .portada-anfitrion .marca-destacada {
  position: relative;
  display: inline-block;
  padding: 2px 12px;
  white-space: nowrap;
  isolation: isolate;
}

.pagina-anfitriones .portada-anfitrion .marca-destacada::before {
  content: "";
  position: absolute;
  inset: 0 -4px;
  border: 4px solid #F2C94C;
  border-radius: 50%;
  transform: rotate(-5deg);
  z-index: -1;
  pointer-events: none;
}

.pagina-anfitriones .portada-anfitrion p {
  max-width: 560px;
  margin: 0 auto;
  font-size: 14px;
  line-height: 1.6;
  color: #536256;
}

@media (max-width: 600px) {
  .pagina-anfitriones .portada-anfitrion h1 {
    font-size: 26px;
  }

  .pagina-anfitriones .portada-anfitrion .marca-destacada {
    padding: 2px 8px;
  }
}

/* Recuadros de información de la cuenta */
.pagina-anfitriones #usuario-conectado,
.pagina-anfitriones #estado-acceso {
  display: block;
  width: fit-content;
  max-width: 100%;
  box-sizing: border-box;
  padding: 10px 16px;
  margin: 16px 0;
  background-color: #f9f9f9;
  color: #412222;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
  overflow-wrap: anywhere;
}

/* Evita un recuadro vacío cuando no hay correo */
.pagina-anfitriones #usuario-conectado:empty {
  display: none;
}

.pagina-anfitriones #panel-sesion[hidden] ~ #cerrar-sesion {
  display: none !important;
}

/* Icono junto al título de la cuenta */
.pagina-anfitriones #titulo-acceso {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 24px;
  font-size: 28px;
  line-height: 1.2;
}

.pagina-anfitriones .icono-cuenta {
  display: block;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  margin: 0;
  color: #3B5740;
}

/* Botón compacto debajo del mensaje de sesión */
.pagina-anfitriones #cerrar-sesion {
  display: inline-block;
  width: auto;
  max-width: 100%;
  padding: 12px 24px;
  margin: 0;
  border-radius: 10px;
  font-size: 16px;
  line-height: 1.4;
}

/* Campos organizados en dos columnas */
.pagina-anfitriones .rejilla-datos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.pagina-anfitriones .campo-formulario {
  min-width: 0;
}

.pagina-anfitriones .campo-formulario label {
  display: block;
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}

.pagina-anfitriones .campo-formulario input {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 0;
}

/* En móvil, un campo debajo del otro */
@media (max-width: 600px) {
  .pagina-anfitriones .rejilla-datos {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

/* Tipos de alojamiento organizados en columnas */
.pagina-anfitriones .opciones-tipos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}

.pagina-anfitriones .opciones-tipos .opcion-tipo {
  min-width: 0;
  min-height: 56px;
  box-sizing: border-box;
  padding: 12px;
  margin: 0;
  background: #FFFFFF;
  border: 1px solid #A3ADA0;
  border-radius: 10px;
  font-size: 14px;
  line-height: 1.4;
}

/* El desplegable ocupa una fila completa */
.pagina-anfitriones .mas-tipos {
  grid-column: 1 / -1;
  min-width: 0;
  width: 100%;
}

.pagina-anfitriones .mas-tipos > summary {
  padding: 14px 16px;
  background: #EDF2EC;
  color: #3B5740;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}

.pagina-anfitriones .mas-tipos > summary:focus-visible {
  outline: 3px solid #3B5740;
  outline-offset: 3px;
}

.pagina-anfitriones .tipos-adicionales {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

@media (max-width: 600px) {
  .pagina-anfitriones .opciones-tipos,
  .pagina-anfitriones .tipos-adicionales {
    grid-template-columns: 1fr;
  }
}

/* Desplegable de servicios */
.pagina-anfitriones .mas-servicios {
  margin-top: 16px;
  border: 1px solid #D8DED4;
  border-radius: 12px;
}

.pagina-anfitriones .mas-servicios > summary {
  padding: 14px 16px;
  background: #EDF2EC;
  color: #3B5740;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
}

.pagina-anfitriones .mas-servicios > summary:focus-visible {
  outline: 3px solid #3B5740;
  outline-offset: 3px;
}

.pagina-anfitriones .mas-servicios[open] > summary {
  border-bottom: 1px solid #D8DED4;
  border-radius: 12px 12px 0 0;
}

.pagina-anfitriones .servicios-adicionales {
  padding: 20px;
}

.pagina-anfitriones .campo-formulario select {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  margin-bottom: 0;
}

/* Mismo ancho para la cuenta y el formulario */
.pagina-anfitriones #acceso-anfitrion,
.pagina-anfitriones main {
  width: 100%;
  max-width: 1000px;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
}

/* Tarjeta de datos del anfitrión */
.pagina-anfitriones main > .consulta {
  margin: 24px 0;
  padding: 28px 32px;
  background: #FFFFFF;
  border: 1px solid #E5E3DC;
  border-radius: 20px;
  box-sizing: border-box;
}

.pagina-anfitriones main > .consulta > h2 {
  margin: 0 0 12px;
  color: #3B5740;
  font-size: 24px;
}

.pagina-anfitriones main > .consulta > p {
  margin: 0 0 24px;
  color: #536256;
  font-size: 15px;
  line-height: 1.6;
}

@media (max-width: 600px) {
  .pagina-anfitriones main > .consulta {
    padding: 24px 20px;
  }
}

/* Resalta los tipos seleccionados */
.pagina-anfitriones .opciones-tipos .opcion-tipo:has(input:checked) {
  background-color: #EDF2EC;
  border-color: #3B5740;
  color: #3B5740;
}

/* Facilita identificar la opción al navegar con el teclado */
.pagina-anfitriones .opciones-tipos .opcion-tipo:focus-within {
  outline: 2px solid #3B5740;
  outline-offset: 3px;
}

/* Presentación pública para anfitriones */
.pagina-anfitriones .hero-anfitriones {
  box-sizing: border-box;
  min-height: 480px;
  padding: 80px 24px;
  display: grid;
  place-items: center;
  background-color: #244632;
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)),
  url("Portada-alojamientos.jpg");
background-size: cover;
background-position: center;
background-repeat: no-repeat;
  border-radius: 24px;
  text-align: center;
  margin-top: 24px;
}

.pagina-anfitriones .hero-anfitriones-contenido {
  width: 100%;
  max-width: 850px;
}

.pagina-anfitriones .hero-anfitriones h1 {
  max-width: 800px;
  margin: 0 auto 24px;
  font-family: "Trebuchet MS", Arial, sans-serif;
  font-size: clamp(38px, 5.5vw, 76px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.025em;
  text-wrap: balance;
  color: #E2F5C8;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

.pagina-anfitriones .hero-anfitriones p {
  max-width: 600px;
  margin: 0 auto 32px;
  font-size: 18px;
  line-height: 1.6;
  color: #ffffff;
}

.pagina-anfitriones .boton-publicar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 48px;
  padding: 16px 32px;
  border-radius: 8px;
background-color: #1f3f1f;
color: #ffffff;
  font-size: 18px;
  font-weight: 600;
  text-decoration: none;
}

.pagina-anfitriones .boton-publicar:hover {
  background-color: #cce8a3;
}

.pagina-anfitriones .boton-publicar:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 4px;
}

@media (max-width: 600px) {
  .pagina-anfitriones .hero-anfitriones {
    min-height: 400px;
    padding: 56px 20px;
  }
}

/* Tarjeta de acceso para anfitriones */
.pagina-anfitriones #acceso-anfitrion {
  box-sizing: border-box;
  width: 100%;
  max-width: 760px;
  margin: 40px auto;
  padding: 40px;
  background-color: #ffffff;
  border: 1px solid #e2e6df;
  border-radius: 24px;
  scroll-margin-top: 24px;
}

.pagina-anfitriones #titulo-acceso {
  color: #244632;
}

@media (max-width: 600px) {
  .pagina-anfitriones #acceso-anfitrion {
    padding: 28px 20px;
    margin: 32px auto;
  }
}

/* Ventajas para anfitriones */
.pagina-anfitriones .ventajas-anfitriones {
  box-sizing: border-box;
  margin: 40px auto;
  padding: 48px 24px;
  max-width: 1120px;
  background-color: #f9f8f5;
  border-radius: 24px;
  text-align: center;
}

.pagina-anfitriones .ventajas-anfitriones h2 {
  margin: 0 0 24px;
  color: #244632;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 400;
  line-height: 1.15;
}

.pagina-anfitriones .ventajas-intro {
  max-width: 640px;
  margin: 0 auto 32px;
  color: #365440;
  font-size: 18px;
  line-height: 1.6;
}

.pagina-anfitriones .rejilla-ventajas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.pagina-anfitriones .tarjeta-ventaja {
  min-width: 0;
  padding: 28px;
  background-color: #ffffff;
  border: 1px solid #e2e6df;
  border-radius: 16px;
  text-align: left;
}

.pagina-anfitriones .tarjeta-ventaja h3 {
  margin: 0 0 16px;
  color: #244632;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.2;
}

.pagina-anfitriones .tarjeta-ventaja p {
  margin: 0;
  color: #365440;
  font-size: 16px;
  line-height: 1.6;
}

@media (max-width: 800px) {
  .pagina-anfitriones .rejilla-ventajas {
    grid-template-columns: 1fr;
  }

  .pagina-anfitriones .ventajas-anfitriones {
    padding: 32px 20px;
  }
}

/* Iconos de las tarjetas de ventajas */
.pagina-anfitriones .icono-ventaja {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin-bottom: 20px;
  border-radius: 50%;
  background-color: #508F50;
color: #ffffff;
}

.pagina-anfitriones .icono-ventaja svg {
  display: block;
  flex-shrink: 0;
}

/* Alinear los textos de las ventajas en ordenador */
@media (min-width: 801px) {
  .pagina-anfitriones .tarjeta-ventaja h3 {
    min-height: 3.6em;
  }
}

/* Cabecera de la página de anfitriones */
.pagina-anfitriones .cabecera-anfitriones {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  max-width: 1120px;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 16px 0;
}

.pagina-anfitriones .marca-anfitriones {
  color: #244632;
  font-size: 24px;
  font-weight: 700;
  text-decoration: none;
}

.pagina-anfitriones .menu-anfitriones {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.pagina-anfitriones .menu-anfitriones a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  box-sizing: border-box;
  color: #244632;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
}

.pagina-anfitriones .menu-anfitriones .enlace-acceso {
  padding: 12px 20px;
  border-radius: 8px;
  background-color: #244632;
  color: #ffffff;
}

.pagina-anfitriones .menu-anfitriones a:hover {
  text-decoration: underline;
}

.pagina-anfitriones .cabecera-anfitriones a:focus-visible {
  outline: 3px solid #244632;
  outline-offset: 4px;
}

@media (max-width: 600px) {
  .pagina-anfitriones .cabecera-anfitriones {
    flex-direction: column;
    gap: 12px;
  }

  .pagina-anfitriones .menu-anfitriones {
    justify-content: center;
  }
}

/* Respetar el estado oculto de la presentación */
.pagina-anfitriones .hero-anfitriones[hidden],
.pagina-anfitriones .ventajas-anfitriones[hidden] {
  display: none;
}

/* Ocultar los enlaces marcados como hidden */
.pagina-anfitriones .menu-anfitriones a[hidden] {
  display: none;
}

/* Ventajas superpuestas sobre el borde de la portada */
.pagina-anfitriones .ventajas-anfitriones {
  position: relative;
  z-index: 1;
  margin-top: -64px;
  border-radius: 48px 48px 0 0;
}

/* Ancho completo solo en la página de anfitriones */
body.pagina-anfitriones {
  margin: 0;
  padding: 0;
}

/* Foto de borde a borde, sin esquinas redondeadas */
.pagina-anfitriones .hero-anfitriones {
  width: 100%;
  max-width: none;
  margin-top: 0;
  border-radius: 0;
}

/* Fondo de ventajas a todo el ancho */
.pagina-anfitriones .ventajas-anfitriones {
  width: 100%;
  max-width: none;
}

/* Mantener las tarjetas centradas dentro del fondo */
.pagina-anfitriones .rejilla-ventajas {
  max-width: 1072px;
  margin-left: auto;
  margin-right: auto;
}

/* Conservar márgenes en la cabecera y los formularios */
.pagina-anfitriones .cabecera-anfitriones,
.pagina-anfitriones #acceso-anfitrion,
.pagina-anfitriones main {
  width: calc(100% - 40px);
}

/* Cabecera sobre la foto solo cuando la portada está visible */
body.pagina-anfitriones {
  position: relative;
}

.pagina-anfitriones:has(.hero-anfitriones:not([hidden]))
.cabecera-anfitriones {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}

.pagina-anfitriones:has(.hero-anfitriones:not([hidden]))
.marca-anfitriones,
.pagina-anfitriones:has(.hero-anfitriones:not([hidden]))
.menu-anfitriones a {
  color: #ffffff;
}

.pagina-anfitriones:has(.hero-anfitriones:not([hidden]))
.cabecera-anfitriones a:focus-visible {
  outline-color: #ffffff;
}

/* Reservar espacio para que la cabecera no tape el título */
.pagina-anfitriones .hero-anfitriones {
  min-height: 600px;
  padding-top: 180px;
  padding-bottom: 112px;
}

@media (max-width: 600px) {
  .pagina-anfitriones .hero-anfitriones {
    padding-top: 220px;
  }
}

/* Logo junto al nombre de la marca */
.pagina-anfitriones .marca-anfitriones {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.logo-glampinges {
  display: block;
  width: 40px;
  height: 40px;
  max-width: none;
  flex-shrink: 0;
  object-fit: contain;
  border-radius: 0;
}

/* Logo oscuro cuando no hay fotografía detrás */
.pagina-anfitriones:has(.hero-anfitriones[hidden])
.logo-glampinges {
  filter: brightness(0) saturate(100%) invert(24%) sepia(18%) saturate(1190%) hue-rotate(95deg) brightness(94%) contrast(89%);
}

/* Logo junto a la marca en la página principal */
.pagina-inicio .portada .marca {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

/* Sección de contacto */
.pagina-inicio #contacto.seccion-contacto {
  box-sizing: border-box;
  width: calc(100% - 40px);
  max-width: 1100px;
  margin: 72px auto;
  padding: 64px 32px 36px;
  background: #e5eddf;
  color: #214d2c;
  border: 1px solid #d4dfce;
  border-radius: 28px;
  text-align: center;
  scroll-margin-top: 24px;
}

.pagina-inicio #contacto .contacto-etiqueta {
  display: block;
  margin-bottom: 20px;
  color: #49634c;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
}

.pagina-inicio #contacto h2 {
  max-width: 720px;
  margin: 0 auto 20px;
  color: #214d2c;
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -1px;
}

.pagina-inicio #contacto .contacto-descripcion {
  max-width: 560px;
  margin: 0 auto;
  color: #526052;
  font-size: 17px;
  line-height: 1.7;
}

.pagina-inicio #contacto .contacto-acciones {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 30px 0 18px;
}

.pagina-inicio #contacto .contacto-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  box-sizing: border-box;
  min-height: 52px;
  padding: 14px 24px;
  border: 1px solid #214d2c;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.pagina-inicio #contacto .contacto-boton-principal {
  background: #214d2c;
  color: #fff;
}

.pagina-inicio #contacto .contacto-boton-principal:hover {
  background: #16371e;
}

.pagina-inicio #contacto .contacto-boton-secundario {
  background: transparent;
  color: #214d2c;
}

.pagina-inicio #contacto .contacto-boton-secundario:hover {
  background: #d6e2cf;
}

.pagina-inicio #contacto .contacto-correo {
  display: inline-block;
  color: #526052;
  font-size: 14px;
  overflow-wrap: anywhere;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.pagina-inicio #contacto .contacto-anfitriones {
  margin-top: 40px;
  padding-top: 26px;
  border-top: 1px solid #c6d4c0;
}

.pagina-inicio #contacto .contacto-anfitriones p {
  margin: 0 0 10px;
  color: #526052;
  font-size: 15px;
  line-height: 1.6;
}

.pagina-inicio #contacto .contacto-anfitriones a {
  color: #214d2c;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.pagina-inicio #contacto a:focus-visible {
  outline: 3px solid #214d2c;
  outline-offset: 5px;
}

@media (max-width: 600px) {
  .pagina-inicio #contacto.seccion-contacto {
    width: calc(100% - 32px);
    margin: 48px auto;
    padding: 42px 22px 28px;
    border-radius: 22px;
  }

  .pagina-inicio #contacto .contacto-acciones {
    flex-direction: column;
  }

  .pagina-inicio #contacto .contacto-boton {
    width: 100%;
  }
}

/* Servicios del buscador */
.pagina-inicio .mas-filtros-servicios {
  margin-top: 24px;
  padding: 18px 20px;
  background: #f2f5ee;
  border: 1px solid #d4dfce;
  border-radius: 16px;
}

.pagina-inicio .mas-filtros-servicios summary {
  color: #214d2c;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
}

.pagina-inicio .mas-filtros-servicios .ayuda-filtro {
  margin: 16px 0;
  line-height: 1.6;
}

.pagina-inicio .rejilla-filtros-servicios {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.pagina-inicio .rejilla-filtros-servicios label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  margin: 0;
  background: #fff;
  border: 1px solid #d4dfce;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  cursor: pointer;
}

.pagina-inicio .rejilla-filtros-servicios input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0;
  padding: 0;
  accent-color: #214d2c;
}

.pagina-inicio .mas-filtros-servicios summary:focus-visible {
  outline: 3px solid #214d2c;
  outline-offset: 5px;
}

@media (max-width: 900px) {
  .pagina-inicio .rejilla-filtros-servicios {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .pagina-inicio .rejilla-filtros-servicios {
    grid-template-columns: 1fr;
  }
}

/* Controles agrupados dentro de Más filtros */
.pagina-inicio .mas-filtros-servicios .extras-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin: 20px 0;
  padding-bottom: 20px;
  border-bottom: 1px solid #d4dfce;
}

.pagina-inicio .mas-filtros-servicios > .campo-filtro {
  max-width: 440px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #d4dfce;
}

/* Más filtros debajo de los campos, sin ocupar la columna del precio */
.pagina-inicio .panel-filtros .campos-filtros {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
  gap: 16px 20px;
  align-items: start;
}

.pagina-inicio .campos-filtros > .campo-filtro:last-of-type {
  grid-column: 4;
  grid-row: 1 / span 2;
}

.pagina-inicio .campos-filtros > .mas-filtros-servicios {
  grid-column: 1 / 4;
  grid-row: 2;
  min-width: 0;
  margin: 0;
}

@media (max-width: 900px) {
  .pagina-inicio .panel-filtros .campos-filtros {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pagina-inicio .campos-filtros > .campo-filtro:last-of-type {
    grid-column: auto;
    grid-row: auto;
  }

  .pagina-inicio .campos-filtros > .mas-filtros-servicios {
    grid-column: 1 / -1;
    grid-row: auto;
  }
}

@media (max-width: 600px) {
  .pagina-inicio .panel-filtros .campos-filtros {
    grid-template-columns: minmax(0, 1fr);
  }
}

.botones-filtros {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.botones-filtros .boton-instagram {
  margin: 0;
}

#titulo-alojamientos {
  scroll-margin-top: 24px;
}

.botones-filtros > .boton-instagram {
  margin: 0;
  align-self: center;
}

.pagina-inicio .botones-filtros > .boton-instagram {
  width: 160px;
  max-width: 100%;
  min-height: 44px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Buscador integrado con el fondo de la página */
.pagina-inicio .panel-filtros {
  width: calc(100% + 80px);
  max-width: none;
  margin: -48px -40px 40px;
  padding: 36px max(40px, calc((100vw - 1100px) / 2));
  background-color: #F5F1E8;
  border: none;
  border-radius: 36px 36px 0 0;
  box-shadow: none;
  position: relative;
}

/* Portada más compacta */
.pagina-inicio .portada {
  min-height: 0;
  margin-bottom: 0;
  padding-bottom: 88px;
}

.pagina-inicio .contenido-portada {
  padding-top: 36px;
}

/* Ajustes para móvil */
@media (max-width: 600px) {
  .pagina-inicio .portada {
    padding-bottom: 72px;
  }

  .pagina-inicio .contenido-portada {
    padding-top: 28px;
  }

  .pagina-inicio .panel-filtros {
    width: calc(100% + 40px);
    margin: -32px -20px 32px;
    padding: 28px 20px;
    border-radius: 28px 28px 0 0;
  }
}

.pagina-inicio .panel-filtros .introduccion-buscador {
  display: block;
  max-width: 680px;
  margin: 0 auto 28px;
  color: #5A5A5A;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: normal;
  line-height: 1.5;
  text-align: center;
  text-wrap: balance;
}

.pagina-inicio .panel-filtros .titulo-buscador {
  font-family: Georgia, "Times New Roman", serif;
font-size: clamp(26px, 3vw, 34px);
font-weight: 400;
line-height: 1.2;
letter-spacing: -0.02em;
color: #285C45;
}

.pagina-inicio .circulo-buscador {
  position: relative;
  display: inline-block;
  padding: 2px 6px;
  color: #174D25;
}

.pagina-inicio .circulo-buscador::after {
  content: "";
  position: absolute;
  inset: -4px -8px;
  border: 3px solid #A8C98C;
  border-radius: 50%;
  transform: rotate(-3deg);
  pointer-events: none;
}

@media (max-width: 600px) {
  .pagina-inicio .circulo-buscador {
    font-size: 16px;
  }
}

.pagina-inicio .separador-alojamientos {
  width: calc(100% + 80px);
  max-width: none;
  height: 0;
  margin: 0 -40px 36px;
  border: none;
  border-top: 1px solid rgba(0, 0, 0, 0.18);
}

@media (max-width: 600px) {
  .pagina-inicio .separador-alojamientos {
    width: calc(100% + 40px);
    margin: 0 -20px 28px;
  }
}

.marca > span,
.marca-anfitriones > span {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(28px, 3.5vw, 42px);
  line-height: 1.1;
  letter-spacing: 0.5px;
}

.pagina-inicio .enlace-catalogo {
  margin: 36px auto 48px;
  text-align: center;
}

.pagina-inicio .enlace-catalogo .boton-instagram {
  margin: 0;
}

@media (max-width: 600px) {
  .pagina-inicio .contenido-portada h1.titulo-escapada {
    font-size: clamp(24px, 8vw, 48px);
    line-height: 1.2;
    letter-spacing: 0;
  }

  .pagina-inicio .titulo-escapada > span {
    display: block;
    white-space: nowrap;
  }
}

.enlace-imagen-alojamiento {
  display: block;
  border-radius: 20px;
}

.enlace-imagen-alojamiento:focus-visible {
  outline: 3px solid #174D25;
  outline-offset: 4px;
}

.pagina-alojamiento .cabecera-ficha {
  display: flex;
  justify-content: center;
  padding: 12px 0 28px;
}

.pagina-alojamiento .marca-ficha {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #214D2C;
  text-decoration: none;
}

.pagina-alojamiento .marca-ficha > span {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(28px, 3.5vw, 42px);
  line-height: 1.1;
  letter-spacing: 0.5px;
}

.pagina-alojamiento .marca-ficha .logo-glampinges {
  filter: brightness(0) saturate(100%) invert(24%)
    sepia(18%) saturate(1190%) hue-rotate(95deg)
    brightness(94%) contrast(89%);
}

/* Nombre del alojamiento: estilo editorial */
.pagina-alojamiento #titulo-alojamiento {
  max-width: 1000px;
  margin: 24px 0 18px;
  color: #214D2C;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 5vw, 64px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.8px;
  text-wrap: balance;
  overflow-wrap: break-word;
}

/* Detalle verde sobre el título */
.pagina-alojamiento #titulo-alojamiento::before {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin-bottom: 20px;
  border-radius: 3px;
  background-color: #A8C98C;
}

/* Descripción breve */
.pagina-alojamiento #descripcion-alojamiento {
  max-width: 760px;
  margin: 0 0 32px;
  color: #526052;
  font-size: clamp(17px, 1.6vw, 21px);
  font-weight: 400;
  line-height: 1.65;
  text-wrap: pretty;
}

@media (max-width: 600px) {
  .pagina-alojamiento #titulo-alojamiento {
    margin-top: 16px;
    letter-spacing: -0.4px;
  }

  .pagina-alojamiento #descripcion-alojamiento {
    margin-bottom: 24px;
  }
}

.pagina-alojamiento .titulo-con-icono {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #214D2C;
}

.pagina-alojamiento .icono-seccion-ficha {
  display: block;
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}

.pagina-alojamiento .titulo-con-icono > span {
  min-width: 0;
}

@media (max-width: 600px) {
  .pagina-alojamiento .titulo-con-icono {
    gap: 10px;
  }

  .pagina-alojamiento .icono-seccion-ficha {
    width: 26px;
    height: 26px;
  }
}

/* Pie de página de GlampingEs */
.pie-pagina {
  box-sizing: border-box;
  padding: 48px 32px 24px;
  background: #214D2C;
  color: #E2F5C8;
  text-align: left;
}

/* De borde a borde en la página de inicio y el catálogo */
.pagina-inicio .pie-pagina {
  width: calc(100% + 80px);
  max-width: none;
  margin: 64px -40px -40px;
}

.pie-pagina .contenido-pie {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1.2fr;
  gap: 40px;
  max-width: 1100px;
  margin: 0 auto;
}

.pie-pagina .contenido-pie > * {
  min-width: 0;
}

.pie-pagina .marca-pie {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #FFFFFF;
  text-decoration: none;
}

.pie-pagina .marca-pie > span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.5px;
}

.pie-pagina .marca-pie .logo-glampinges {
  filter: none;
}

.pie-pagina .descripcion-pie {
  max-width: 300px;
  margin: 18px 0 0;
  color: #D1DEC9;
  font-size: 15px;
  line-height: 1.7;
}

.pie-pagina .titulo-pie {
  margin: 4px 0 20px;
  color: #E2F5C8;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.pie-pagina .navegacion-pie,
.pie-pagina .contacto-pie {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}

.pie-pagina .navegacion-pie a,
.pie-pagina .contacto-pie a {
  color: #FFFFFF;
  font-size: 15px;
  line-height: 1.5;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.pie-pagina a:hover {
  text-decoration: underline;
}

.pie-pagina a:focus-visible {
  outline: 2px solid #E2F5C8;
  outline-offset: 5px;
}

.pie-pagina .contacto-pie p {
  margin: 8px 0 0;
  color: #D1DEC9;
  font-size: 15px;
  line-height: 1.6;
}

.pie-pagina .base-pie {
  max-width: 1100px;
  margin: 40px auto 0;
  padding-top: 20px;
  border-top: 1px solid rgba(226, 245, 200, 0.25);
}

.pie-pagina .base-pie p {
  margin: 0;
  color: #D1DEC9;
  font-size: 13px;
  line-height: 1.6;
}

@media (max-width: 800px) {
  .pie-pagina .contenido-pie {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

@media (max-width: 600px) {
  .pagina-inicio .pie-pagina {
    width: calc(100% + 40px);
    margin: 48px -20px -20px;
  }

  .pie-pagina {
    padding: 36px 24px 20px;
  }
}

.pie-pagina .instagram-pie {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.pie-pagina .instagram-pie svg {
  display: block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.pie-pagina .correo-pie {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.pie-pagina .correo-pie svg {
  display: block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.pie-pagina .correo-pie span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.pie-pagina .tiktok-pie {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.pie-pagina .tiktok-pie svg {
  display: block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* Frase del buscador en una sola línea en móvil */
@media (max-width: 600px) {
  .pagina-inicio .introduccion-buscador .subtitulo-buscador {
    display: block;
    white-space: nowrap;
  }
}

/* Ventajas: estética de la tarjeta de contacto */
.pagina-anfitriones .ventajas-anfitriones {
  background-color: #f5f1e8;
}

.pagina-anfitriones .tarjeta-ventaja {
  box-sizing: border-box;
  padding: 32px 28px;
  background-color: #e5eddf;
  border: 1px solid #d4dfce;
  border-radius: 28px;
  text-align: left;
}

.pagina-anfitriones .tarjeta-ventaja h3 {
  min-height: 0;
  margin: 0 0 16px;
  color: #214d2c;
  font-family: Arial, sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.5px;
}

.pagina-anfitriones .tarjeta-ventaja p {
  color: #526052;
  font-size: 16px;
  line-height: 1.7;
}

.pagina-anfitriones .icono-ventaja {
  width: 56px;
  height: 56px;
  margin-bottom: 24px;
 background-color: #70866a;
color: #ffffff;
  border-radius: 16px;
}

.pagina-anfitriones .icono-ventaja svg {
  width: 28px;
  height: 28px;
}

.pagina-anfitriones .nota-ventajas {
  max-width: 760px;
  margin: 28px auto 0;
  color: #526052;
  font-size: 14px;
  line-height: 1.6;
}

@media (max-width: 800px) {
  .pagina-anfitriones .rejilla-ventajas {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .pagina-anfitriones .tarjeta-ventaja {
    padding: 28px 24px;
  }
}

/* Portada de anfitriones: marfil y verde bosque */

/* Título principal */
.pagina-anfitriones .hero-anfitriones #titulo-presentacion {
  color: #F5F1E8;
}

/* Texto descriptivo */
.pagina-anfitriones .hero-anfitriones p {
  color: #FAF8F3;
}

/* Botón principal: Comenzar */
.pagina-anfitriones .hero-anfitriones .boton-publicar {
  background-color: #F5F1E8;
  color: #214D2C;
}

.pagina-anfitriones .hero-anfitriones .boton-publicar:hover {
  background-color: #E6DDCD;
  color: #214D2C;
}

/* Acceder: estilo secundario sobre la fotografía */
.pagina-anfitriones:has(.hero-anfitriones:not([hidden]))
.menu-anfitriones .enlace-acceso {
  box-sizing: border-box;
  background: transparent;
  border: 1px solid #F5F1E8;
  color: #F5F1E8;
}

.pagina-anfitriones:has(.hero-anfitriones:not([hidden]))
.menu-anfitriones .enlace-acceso:hover {
  background: #F5F1E8;
  color: #214D2C;
}

/* Resaltar los botones al navegar con el teclado */
.pagina-anfitriones .hero-anfitriones .boton-publicar:focus-visible,
.pagina-anfitriones:has(.hero-anfitriones:not([hidden]))
.menu-anfitriones .enlace-acceso:focus-visible {
  outline: 3px solid #F5F1E8;
  outline-offset: 4px;
}

/* Portada más compacta en ventanas estrechas y móvil */
@media (max-width: 800px) {
  .pagina-anfitriones .hero-anfitriones {
    display: block;
    min-height: 0;
    padding-top: 180px;
    padding-bottom: 96px;
  }
}

/* Inicio: cabecera blanca sobre la fotografía */
.pagina-inicio .cabecera-portada {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.pagina-inicio .portada .marca,
.pagina-inicio .portada .menu-principal a {
  color: #FFFFFF;
}

/* Título en marfil, conservando tamaño y tipografía */
.pagina-inicio .contenido-portada h1.titulo-escapada {
  color: #F5F1E8;
}

/* Móvil: logo centrado y enlace debajo */
@media (max-width: 600px) {
  .pagina-inicio .cabecera-portada {
    flex-direction: column;
    justify-content: center;
    gap: 16px;
    text-align: center;
  }

  .pagina-inicio .cabecera-portada .menu-principal {
    margin: 0;
    justify-content: center;
  }
}

/* Enlace de anfitriones con borde blanco, sin fondo */
.pagina-inicio .portada .menu-principal .enlace-publicar{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid #FFFFFF;
  border-radius: 8px;
  background: transparent;
  color: #FFFFFF;
  text-decoration: none;
}

.pagina-inicio .portada .menu-principal .enlace-publicar:hover {
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Subtítulo de la portada */
.pagina-inicio .contenido-portada p.subtitulo-portada {
  max-width: 620px;
  margin: 0 auto;
  color: #FAF8F3;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.5;
  font-weight: 400;
  text-wrap: balance;
}

/* Encabezado sencillo del buscador */
.pagina-inicio .panel-filtros .titulo-buscador {
  display: block;
  color: #214D2C;
  font-size: clamp(22px, 2.5vw, 28px);
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
}

/* Buscador: tarjeta blanca centrada */
.pagina-inicio .panel-filtros {
  box-sizing: border-box;
  width: 100%;
  max-width: 1100px;
  margin: -32px auto 40px;
  padding: 24px;
  background-color: #FFFFFF;
  border: 1px solid #D8D5CC;
  border-radius: 20px;
  box-shadow: 0 4px 16px rgba(33, 77, 44, 0.08);
  position: relative;
}

.pagina-inicio .panel-filtros legend {
  padding: 0 8px;
  background-color: #FFFFFF;
  border-radius: 8px;
}

/* Márgenes cómodos en móvil */
@media (max-width: 600px) {
  .pagina-inicio .panel-filtros {
    width: 100%;
    margin: -24px auto 32px;
    padding: 20px;
    border-radius: 16px;
  }
}

/* Tres campos principales del buscador */
.pagina-inicio .panel-filtros .campos-filtros {
  grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
  gap: 20px;
}

/* Quitar la posición antigua reservada al precio */
.pagina-inicio .campos-filtros > .campo-filtro {
  grid-column: auto;
  grid-row: auto;
}

/* Más filtros ocupa una fila completa */
.pagina-inicio .campos-filtros > .mas-filtros-servicios {
  grid-column: 1 / -1;
  grid-row: auto;
  margin: 0;
}

/* Campos cómodos y uniformes */
.pagina-inicio .campos-filtros > .campo-filtro input,
.pagina-inicio .campos-filtros > .campo-filtro select {
  height: 52px;
  font-size: 16px;
  border-color: #D8D5CC;
  border-radius: 10px;
  color: #214D2C;
}

/* Una columna en móvil y ventanas estrechas */
@media (max-width: 800px) {
  .pagina-inicio .panel-filtros .campos-filtros {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
}

/* Botones del buscador */
.pagina-inicio .botones-filtros {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

/* Acción principal */
.pagina-inicio #explorar-alojamientos {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 52px;
  max-width: 100%;
  padding: 14px 28px;
  box-sizing: border-box;
  background: #285C45;
  color: #FAF8F3;
  border: 1px solid #285C45;
  border-radius: 10px;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
}

.pagina-inicio #explorar-alojamientos:hover {
  background: #16371E;
  border-color: #16371E;
}

/* Acción secundaria */
.pagina-inicio #limpiar-filtros {
  min-height: 44px;
  padding: 10px 16px;
  background: transparent;
  color: #526052;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
}

.pagina-inicio #limpiar-filtros:hover {
  background: #F5F1E8;
  color: #214D2C;
}

/* Navegación con teclado */
.pagina-inicio #explorar-alojamientos:focus-visible,
.pagina-inicio #limpiar-filtros:focus-visible {
  outline: 3px solid #214D2C;
  outline-offset: 3px;
}

/* Buscar a todo el ancho en móvil */
@media (max-width: 800px) {
  .pagina-inicio .botones-filtros {
    flex-direction: column;
    align-items: stretch;
  }

  .pagina-inicio #explorar-alojamientos {
    width: 100%;
  }

  .pagina-inicio #limpiar-filtros {
    align-self: center;
  }
}

/* Botones en una fila completa antes de Más filtros */
.pagina-inicio .campos-filtros > .botones-filtros {
  grid-column: 1 / -1;
  grid-row: auto;
  margin: 0;
}

/* Desplegable más ligero */
.pagina-inicio .campos-filtros > .mas-filtros-servicios {
  padding: 18px 0 0;
  background: transparent;
  border: none;
  border-top: 1px solid #D8D5CC;
  border-radius: 0;
}

.pagina-inicio .mas-filtros-servicios summary {
  min-height: 44px;
  box-sizing: border-box;
  padding: 10px 0;
  color: #214D2C;
  font-size: 16px;
}

/* Etiquetas más ligeras en los campos principales */
.pagina-inicio .campos-filtros > .campo-filtro > label {
  color: #526052;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 8px;
}

/* Botón de búsqueda sin salto de línea */
.pagina-inicio #explorar-alojamientos {
  box-sizing: border-box;
  width: auto;
  min-width: 210px;
  max-width: none;
  white-space: nowrap;
}

/* En móvil conserva todo el ancho disponible */
@media (max-width: 800px) {
  .pagina-inicio #explorar-alojamientos {
    width: 100%;
    min-width: 0;
  }
}

/* Alojamientos de la cuenta del anfitrión */
.pagina-anfitriones #mis-alojamientos {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid #e3e7e1;
}

.pagina-anfitriones #titulo-mis-alojamientos {
  margin: 0 0 12px;
  color: #244a35;
  font-size: 24px;
  line-height: 1.3;
}

.pagina-anfitriones #mis-alojamientos > p {
  margin: 0 0 16px;
  font-size: 16px;
  line-height: 1.6;
  color: #536256;
}

.pagina-anfitriones #lista-mis-alojamientos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 24px 0;
}

.pagina-anfitriones .tarjeta-mi-alojamiento {
  min-width: 0;
  padding: 24px;
  background: #fff;
  border: 1px solid #dfe5dc;
  border-radius: 20px;
  text-align: left;
  overflow-wrap: anywhere;
}

.pagina-anfitriones .estado-mi-alojamiento {
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 16px;
  background: #f3ead8;
  color: #72521c;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.pagina-anfitriones .tarjeta-mi-alojamiento h4 {
  margin: 0 0 12px;
  color: #244a35;
  font-size: 20px;
  line-height: 1.4;
}

.pagina-anfitriones .tarjeta-mi-alojamiento p {
  margin: 0 0 12px;
  font-size: 16px;
  line-height: 1.6;
  color: #536256;
}

.pagina-anfitriones .tarjeta-mi-alojamiento p:last-child {
  margin-bottom: 0;
}

@media (max-width: 700px) {
  .pagina-anfitriones #lista-mis-alojamientos {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .pagina-anfitriones .tarjeta-mi-alojamiento {
    padding: 20px;
  }
}

/* Portada de cada alojamiento en la cuenta */
.pagina-anfitriones .portada-mi-alojamiento {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin-bottom: 16px;
  overflow: hidden;
  border-radius: 14px;
  background: #f3f2ec;
  color: #536256;
  font-size: 14px;
  line-height: 1.5;
}

.pagina-anfitriones .portada-mi-alojamiento img {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: cover;
}

/* Estado de los alojamientos aprobados */
.pagina-anfitriones .estado-mi-alojamiento--aprobado {
  background: #e6f1e7;
  color: #245b32;
}

/* Oculta las tarjetas que no coinciden con el filtro */
.pagina-anfitriones .tarjeta-mi-alojamiento[hidden] {
  display: none !important;
}

/* Filtros de la cuenta de anfitrión */
.pagina-anfitriones .filtros-mis-alojamientos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 20px;
}

.pagina-anfitriones #mis-alojamientos .filtro-mi-alojamiento {
  min-height: 44px;
  margin: 0;
  padding: 10px 14px;
  border: 1px solid #c9d4c8;
  border-radius: 12px;
  background: #fff;
  color: #244a35;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
}

/* Filtro seleccionado */
.pagina-anfitriones #mis-alojamientos
.filtro-mi-alojamiento[aria-pressed="true"] {
  background: #285c45;
  border-color: #285c45;
  color: #fff;
}

/* Filtros sin seleccionar al pasar el cursor */
.pagina-anfitriones #mis-alojamientos
.filtro-mi-alojamiento[aria-pressed="false"]:hover {
  background: #edf3ed;
}

/* Resalta el botón al navegar con el teclado */
.pagina-anfitriones #mis-alojamientos
.filtro-mi-alojamiento:focus-visible {
  outline: 3px solid #285c45;
  outline-offset: 3px;
}

/* Bienvenida editorial al formulario de anfitriones */
.pagina-anfitriones .portada-anfitrion.bienvenida-anfitrion {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  margin: 32px 0;
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
  background: #F4F1E8;
  border: 1px solid #D8D2C6;
  border-radius: 20px;
  box-shadow: none;
  text-align: left;
}

.pagina-anfitriones .bienvenida-anfitrion-imagen {
  min-height: 360px;
  background-color: #244632;
  background-image: url("Portada-alojamientos.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.pagina-anfitriones .bienvenida-anfitrion-contenido {
  min-width: 0;
  align-self: center;
  padding: 40px;
  box-sizing: border-box;
  text-align: left;
}

.pagina-anfitriones .bienvenida-anfitrion p.bienvenida-anfitrion-etiqueta {
  max-width: none;
  margin: 0 0 20px;
  color: #526052;
  font-family: Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: left;
}

.pagina-anfitriones .bienvenida-anfitrion h1.bienvenida-anfitrion-titulo {
  max-width: 16ch;
  margin: 0 0 24px;
  color: #285C45;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(32px, 3.6vw, 48px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.pagina-anfitriones .bienvenida-anfitrion p.bienvenida-anfitrion-descripcion {
  max-width: 48ch;
  margin: 0;
  color: #526052;
  font-size: 16px;
  line-height: 1.7;
  text-align: left;
}

.pagina-anfitriones .bienvenida-anfitrion-guia {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 32px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid #D8D2C6;
  list-style: none;
}

.pagina-anfitriones .bienvenida-anfitrion-guia li {
  min-width: 0;
  margin: 0;
  padding: 0;
  color: #285C45;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.pagina-anfitriones .bienvenida-anfitrion-numero {
  display: block;
  margin-bottom: 8px;
  color: #526052;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

@media (max-width: 800px) {
  .pagina-anfitriones .portada-anfitrion.bienvenida-anfitrion {
    grid-template-columns: minmax(0, 1fr);
    border-radius: 16px;
  }

  .pagina-anfitriones .bienvenida-anfitrion-imagen {
    min-height: 0;
    height: 220px;
    background-position: center 45%;
  }

  .pagina-anfitriones .bienvenida-anfitrion-contenido {
    padding: 28px 24px;
  }
}

@media (max-width: 400px) {
  .pagina-anfitriones .bienvenida-anfitrion-contenido {
    padding: 24px 20px;
  }

  .pagina-anfitriones .bienvenida-anfitrion-guia {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .pagina-anfitriones .bienvenida-anfitrion-guia li {
    display: flex;
    align-items: baseline;
    gap: 12px;
  }

  .pagina-anfitriones .bienvenida-anfitrion-numero {
    flex-shrink: 0;
    margin: 0;
  }
}

/* Fotos del formulario de anfitriones */
.pagina-anfitriones .rejilla-carga-fotos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 20px 0;
}

.pagina-anfitriones .recuadro-carga-foto {
  min-width: 0;
  padding: 20px;
  box-sizing: border-box;
  background: #FFFFFF;
  border: 1px dashed #D8D2C6;
  border-radius: 16px;
}

.pagina-anfitriones .recuadro-carga-foto.foto-principal {
  grid-column: 1 / -1;
  background: #F7F5EF;
  border: 2px solid #285C45;
}

.pagina-anfitriones .recuadro-carga-foto label {
  display: block;
  margin: 0 0 8px;
  color: #285C45;
  font-size: 17px;
  font-weight: 700;
}

.pagina-anfitriones .recuadro-carga-foto p {
  margin: 0 0 12px;
  color: #536256;
  font-size: 14px;
  line-height: 1.5;
}

.pagina-anfitriones .recuadro-carga-foto input[type="file"] {
  display: block;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  color: #536256;
  font-size: 14px;
}

.pagina-anfitriones .recuadro-carga-foto input[type="file"]::file-selector-button {
  margin-right: 10px;
  padding: 10px 14px;
  background: #285C45;
  color: #FFFFFF;
  border: 0;
  border-radius: 8px;
  font: inherit;
  cursor: pointer;
}

.pagina-anfitriones .recuadro-carga-foto:focus-within {
  outline: 2px solid #285C45;
  outline-offset: 4px;
}

@media (max-width: 600px) {
  .pagina-anfitriones .rejilla-carga-fotos {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Foto principal y galería de fotos adicionales */
.pagina-anfitriones .recuadro-carga-foto.fotos-adicionales {
  grid-column: 1 / -1;
}

.pagina-anfitriones .miniaturas-carga-fotos:not([hidden]) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 130px));
  gap: 12px;
  margin-top: 16px;
}

.pagina-anfitriones .miniaturas-carga-fotos figure {
  min-width: 0;
  margin: 0;
  padding: 6px;
  background: #F7F5EF;
  border: 1px solid #D8D2C6;
  border-radius: 12px;
}

.pagina-anfitriones .miniaturas-carga-fotos img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 8px;
}

.pagina-anfitriones .miniaturas-carga-fotos figcaption {
  margin-top: 6px;
  color: #536256;
  font-size: 12px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.pagina-anfitriones #contador-fotos-adicionales {
  margin: 12px 0 0;
  color: #285C45;
  font-size: 14px;
  font-weight: 700;
}

@media (max-width: 400px) {
  .pagina-anfitriones .miniaturas-carga-fotos:not([hidden]) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Descripción de las tarjetas: máximo dos líneas */
.tarjeta-alojamiento .descripcion-tarjeta {
  display: -webkit-box;
  -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  line-height: 1.5;
}

/* Ficha de alojamiento: ancho y espacios equilibrados */
body.pagina-alojamiento {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 32px 24px;
  box-sizing: border-box;
}

.pagina-alojamiento .datos-ficha,
.pagina-alojamiento .bloque-ficha {
  width: 100%;
  max-width: 900px;
  margin: 24px auto;
  padding: 28px;
  box-sizing: border-box;
  background: #FFFFFF;
  border: 1px solid #D8D2C6;
  border-radius: 20px;
}

.pagina-alojamiento .bloque-ficha p {
  max-width: none;
}

.pagina-alojamiento .bloque-ficha h2 {
  margin: 0 0 18px;
}

@media (max-width: 700px) {
  body.pagina-alojamiento {
    padding: 20px 16px;
  }

  .pagina-alojamiento .datos-ficha,
  .pagina-alojamiento .bloque-ficha {
    margin: 20px auto;
    padding: 20px;
    border-radius: 16px;
  }
}

/* Botón para desplegar los servicios de la ficha */
.pagina-alojamiento #ver-todos-servicios {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  max-width: 100%;
  margin-top: 20px;
  padding: 12px 18px;
  box-sizing: border-box;
  background: #F7F5EF;
  color: #285C45;
  border: 1px solid #285C45;
  border-radius: 10px;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.pagina-alojamiento #ver-todos-servicios:hover {
  background: #E3EBDD;
}

.pagina-alojamiento #ver-todos-servicios:focus-visible {
  outline: 3px solid #285C45;
  outline-offset: 3px;
}

/* Descripción detallada: lectura clara y párrafos separados */
.pagina-alojamiento #sobre-alojamiento {
  margin: 0;
  color: #454545;
  font-size: 17px;
  line-height: 1.75;
  white-space: pre-line;
  overflow-wrap: break-word;
}

@media (max-width: 700px) {
  .pagina-alojamiento #sobre-alojamiento {
    font-size: 16px;
    line-height: 1.7;
  }
}

/* Enlace a la web oficial: centrado al final de la ficha */
.pagina-alojamiento #contenedor-web-oficial {
  max-width: 900px;
  margin: 28px auto 36px;
  text-align: center;
}

.pagina-alojamiento #web-oficial {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  max-width: 100%;
  padding: 14px 24px;
  box-sizing: border-box;
  border-radius: 12px;
  font-size: 17px;
  font-weight: 600;
  text-decoration: none;
}

/* Cierre de la ficha: seguir descubriendo alojamientos */
.pagina-alojamiento .bloque-ficha.cierre-descubrir {
  padding: 36px 28px;
  background: #EAF1E8;
  border-color: #D2DFCE;
  text-align: center;
}

.pagina-alojamiento .cierre-descubrir h2 {
  margin-bottom: 12px;
  color: #285C45;
  font-size: clamp(24px, 3vw, 30px);
}

.pagina-alojamiento .cierre-descubrir p {
  max-width: 52ch;
  margin: 0 auto;
  color: #526052;
  font-size: 16px;
  line-height: 1.65;
}

.pagina-alojamiento .acciones-descubrir {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px 24px;
  margin-top: 24px;
}

.pagina-alojamiento .acciones-descubrir .boton-instagram {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  max-width: 100%;
  padding: 12px 22px;
  box-sizing: border-box;
  background: #285C45;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
}

.pagina-alojamiento .acciones-descubrir .boton-instagram:hover {
  background: #214D2C;
}

.pagina-alojamiento .enlace-instagram-ficha {
  color: #285C45;
  font-size: 15px;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.pagina-alojamiento .enlace-instagram-ficha:hover {
  color: #174D25;
}

@media (max-width: 600px) {
  .pagina-alojamiento .bloque-ficha.cierre-descubrir {
    padding: 28px 20px;
  }

  .pagina-alojamiento .acciones-descubrir {
    flex-direction: column;
    gap: 18px;
  }
}

/* Preparar la escapada: tres bloques informativos */
.pagina-alojamiento .prepara-escapada h2 {
  color: #285C45;
  font-size: clamp(24px, 3vw, 30px);
}

.pagina-alojamiento .prepara-escapada .introduccion-escapada {
  margin: 0;
  color: #526052;
  font-size: 16px;
  line-height: 1.6;
}

.pagina-alojamiento .pasos-escapada {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 24px;
}

.pagina-alojamiento .paso-escapada {
  min-width: 0;
  padding: 22px 18px;
  background: #F7F5EF;
  border: 1px solid #E5E0D6;
  border-radius: 14px;
}

.pagina-alojamiento .icono-paso-escapada {
  display: block;
  margin-bottom: 16px;
  color: #285C45;
}

.pagina-alojamiento .paso-escapada h3 {
  margin: 0 0 10px;
  color: #285C45;
  font-size: 17px;
  line-height: 1.35;
}

.pagina-alojamiento .paso-escapada p {
  margin: 0;
  color: #526052;
  font-size: 15px;
  line-height: 1.65;
}

.pagina-alojamiento .prepara-escapada #contenedor-web-oficial {
  margin: 28px 0 0;
  padding-top: 24px;
  border-top: 1px solid #E5E0D6;
  text-align: center;
}

@media (max-width: 700px) {
  .pagina-alojamiento .pasos-escapada {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .pagina-alojamiento .paso-escapada {
    padding: 20px;
  }
}

/* Preguntas frecuentes de la ficha */
.pagina-alojamiento .preguntas-ficha h2 {
  color: #285C45;
  font-size: clamp(24px, 3vw, 30px);
}

.pagina-alojamiento .preguntas-ficha .introduccion-preguntas {
  margin: 0;
  color: #526052;
  font-size: 16px;
  line-height: 1.6;
}

.pagina-alojamiento .acordeon-preguntas {
  display: grid;
  gap: 12px;
  margin-top: 24px;
}

.pagina-alojamiento .pregunta-ficha {
  min-width: 0;
  background: #FFFFFF;
  border: 1px solid #E5E0D6;
  border-radius: 12px;
}

.pagina-alojamiento .pregunta-ficha summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 52px;
  padding: 16px 18px;
  box-sizing: border-box;
  color: #285C45;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  list-style: none;
  cursor: pointer;
}

.pagina-alojamiento .pregunta-ficha summary::-webkit-details-marker {
  display: none;
}

/* Indicador decorativo de apertura y cierre */
.pagina-alojamiento .pregunta-ficha summary::after {
  content: "+";
  flex-shrink: 0;
  color: #285C45;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
}

.pagina-alojamiento .pregunta-ficha[open] {
  background: #F2F6EF;
  border-color: #D2DFCE;
}

.pagina-alojamiento .pregunta-ficha[open] summary::after {
  content: "−";
}

.pagina-alojamiento .pregunta-ficha summary:hover {
  background: #F7F5EF;
  border-radius: 12px;
}

.pagina-alojamiento .pregunta-ficha summary:focus-visible {
  outline: 3px solid #285C45;
  outline-offset: 3px;
  border-radius: 12px;
}

.pagina-alojamiento .preguntas-ficha .pregunta-ficha p {
  margin: 0;
  padding: 0 18px 18px;
  color: #526052;
  font-size: 15px;
  line-height: 1.7;
}

@media (max-width: 600px) {
  .pagina-alojamiento .pregunta-ficha summary {
    padding: 16px;
    font-size: 15px;
  }

  .pagina-alojamiento .preguntas-ficha .pregunta-ficha p {
    padding: 0 16px 16px;
  }
}

/* Ficha centrada y pie de página de borde a borde */
body.pagina-alojamiento {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 32px 0 0;
  box-sizing: border-box;
}

.pagina-alojamiento > main {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

.pagina-alojamiento > .cabecera-ficha {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 12px 24px 28px;
  box-sizing: border-box;
}

.pagina-alojamiento > .pie-pagina {
  width: 100%;
  max-width: none;
  margin: 56px 0 0;
}

@media (max-width: 700px) {
  body.pagina-alojamiento {
    padding-top: 20px;
  }

  .pagina-alojamiento > main {
    padding-right: 16px;
    padding-left: 16px;
  }

  .pagina-alojamiento > .cabecera-ficha {
    padding-right: 16px;
    padding-left: 16px;
  }

  .pagina-alojamiento > .pie-pagina {
    margin-top: 40px;
  }
}

/* Aviso de consentimiento para cookies analíticas */
.aviso-cookies[hidden] {
  display: none !important;
}

.aviso-cookies {
  position: fixed;
  right: 20px;
  bottom: 20px;
  left: 20px;
  z-index: 1000;
  max-width: 760px;
  max-height: calc(100dvh - 40px);
  margin: 0 auto;
  padding: 24px;
  box-sizing: border-box;
  overflow-y: auto;
  background: #FFFFFF;
  color: #454545;
  border: 1px solid #D8D2C6;
  border-radius: 18px;
  box-shadow: 0 8px 32px rgba(33, 77, 44, 0.18);
  text-align: left;
}

.aviso-cookies h2 {
  margin: 0 0 12px;
  color: #285C45;
  font-size: 22px;
  line-height: 1.3;
}

.aviso-cookies p {
  margin: 0;
  color: #526052;
  font-size: 15px;
  line-height: 1.65;
}

.acciones-cookies {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.acciones-cookies .boton-cookies {
  min-height: 48px;
  padding: 12px 16px;
  background: #285C45;
  color: #FFFFFF;
  border: 1px solid #285C45;
  border-radius: 10px;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
}

.acciones-cookies .boton-cookies:hover {
  background: #214D2C;
}

.acciones-cookies .boton-cookies:focus-visible {
  outline: 3px solid #285C45;
  outline-offset: 3px;
}

.aviso-cookies a {
  color: #285C45;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 600px) {
  .aviso-cookies {
    right: 12px;
    bottom: 12px;
    left: 12px;
    max-height: calc(100dvh - 24px);
    padding: 20px;
    border-radius: 14px;
  }

  .aviso-cookies h2 {
    font-size: 20px;
  }
}

@media (max-width: 360px) {
  .acciones-cookies {
    grid-template-columns: 1fr;
  }
}

/* Acceso permanente a las preferencias de cookies */
.pie-pagina .configurar-cookies {
  display: inline-block;
  min-height: 44px;
  margin-top: 12px;
  padding: 8px 0;
  background: transparent;
  color: #E2F5C8;
  border: none;
  font: inherit;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}

.pie-pagina .configurar-cookies:focus-visible {
  outline: 2px solid #E2F5C8;
  outline-offset: 4px;
}

/* Información adicional del aviso de cookies */
.aviso-cookies .informacion-cookies {
  margin-top: 12px;
  font-size: 14px;
  line-height: 1.6;
}

/* Enlaces legales del pie */
.pie-pagina .enlaces-legales {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 12px;
}

.pie-pagina .enlaces-legales a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: #E2F5C8;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Portada editorial de las fichas de alojamiento */
.pagina-alojamiento .portada-editorial-ficha {
  margin: 16px 0 28px;
  padding: 24px 0 28px;
  border-bottom: 1px solid #D8D2C6;
  text-align: left;
}

.pagina-alojamiento .portada-editorial-ficha .etiqueta-editorial-ficha {
  max-width: none;
  margin: 0 0 20px;
  color: #526052;
  font-family: Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: left;
}

.pagina-alojamiento .portada-editorial-ficha #titulo-alojamiento {
  max-width: 22ch;
  margin: 0 0 20px;
  color: #285C45;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(36px, 5vw, 60px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-align: left;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

/* Quitar la rayita verde solo en esta portada */
.pagina-alojamiento .portada-editorial-ficha #titulo-alojamiento::before {
  content: none;
  display: none;
}

.pagina-alojamiento .portada-editorial-ficha #descripcion-alojamiento {
  max-width: 60ch;
  margin: 0;
  color: #526052;
  font-size: clamp(17px, 1.8vw, 20px);
  font-weight: 400;
  line-height: 1.65;
  text-align: left;
  text-wrap: pretty;
}

@media (max-width: 600px) {
  .pagina-alojamiento .portada-editorial-ficha {
    margin: 8px 0 24px;
    padding: 16px 0 24px;
  }

  .pagina-alojamiento .portada-editorial-ficha .etiqueta-editorial-ficha {
    margin-bottom: 16px;
    letter-spacing: 0.06em;
  }

  .pagina-alojamiento .portada-editorial-ficha #titulo-alojamiento {
    margin-bottom: 16px;
    font-size: clamp(34px, 8vw, 44px);
  }
}

/* Inspiración de destinos · Inicio */
.pagina-inicio .inspiracion-destinos {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  width: 100%;
  max-width: 1120px;
  margin: 64px auto;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
  background: #F4F1E8;
  border: 1px solid #D8D2C6;
  border-radius: 20px;
  text-align: left;
}

.pagina-inicio .inspiracion-destinos-foto {
  position: relative;
  min-width: 0;
  min-height: 440px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #244632;
}

.pagina-inicio .inspiracion-destinos-foto img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
  object-position: center;
}

.pagina-inicio .inspiracion-destinos-foto figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  margin: 0;
  padding: 48px 24px 24px;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
  color: #FFFFFF;
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
}

.pagina-inicio .inspiracion-destinos-contenido {
  min-width: 0;
  align-self: center;
  padding: 40px;
  box-sizing: border-box;
  text-align: left;
}

.pagina-inicio .inspiracion-destinos-etiqueta {
  max-width: none;
  margin: 0 0 20px;
  color: #526052;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: left;
}

.pagina-inicio .inspiracion-destinos #titulo-inspiracion-destinos {
  max-width: 18ch;
  margin: 0 0 24px;
  color: #285C45;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(32px, 3.6vw, 48px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.025em;
  text-align: left;
  text-wrap: balance;
}

.pagina-inicio .inspiracion-destinos-descripcion {
  max-width: 48ch;
  margin: 0;
  color: #526052;
  font-size: 16px;
  line-height: 1.7;
  text-align: left;
}

.pagina-inicio .inspiracion-destinos-opciones {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid #D8D2C6;
}

.pagina-inicio .inspiracion-destinos-opcion {
  min-width: 0;
  text-align: left;
}

.pagina-inicio .inspiracion-destinos-numero {
  display: block;
  margin-bottom: 12px;
  color: #526052;
  font-size: 14px;
  letter-spacing: 0.08em;
}

.pagina-inicio .inspiracion-destinos-opcion h3 {
  margin: 0 0 8px;
  color: #285C45;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.25;
  text-align: left;
}

.pagina-inicio .inspiracion-destinos-opcion p {
  max-width: none;
  margin: 0;
  color: #526052;
  font-size: 14px;
  line-height: 1.6;
  text-align: left;
}

@media (max-width: 800px) {
  .pagina-inicio .inspiracion-destinos {
    grid-template-columns: minmax(0, 1fr);
    margin: 40px auto;
    border-radius: 16px;
  }

  .pagina-inicio .inspiracion-destinos-foto {
    min-height: 0;
    height: 260px;
  }

  .pagina-inicio .inspiracion-destinos-contenido {
    padding: 28px 24px;
  }
}

@media (max-width: 500px) {
  .pagina-inicio .inspiracion-destinos-contenido {
    padding: 24px 20px;
  }

  .pagina-inicio .inspiracion-destinos-opciones {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .pagina-inicio .inspiracion-destinos-numero {
    margin-bottom: 8px;
  }
}

/* Alinear las descripciones cuando hay tres columnas */
@media (min-width: 501px) {
  .pagina-inicio .inspiracion-destinos-opcion h3 {
    min-height: 2.5em;
  }
}

/* Botones editoriales de tarjetas y acceso al catálogo */
.pagina-inicio .tarjeta-alojamiento .boton-instagram,
.pagina-inicio .enlace-catalogo .boton-instagram {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  max-width: 100%;
  padding: 12px 24px;
  box-sizing: border-box;
  border: 1px solid #285C45;
  border-radius: 10px;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease;
}

/* Acción principal: ver la ficha */
.pagina-inicio .tarjeta-alojamiento .boton-instagram {
  background: #285C45;
  color: #FAF8F3;
}

.pagina-inicio .tarjeta-alojamiento .boton-instagram:hover {
  background: #214D2C;
  border-color: #214D2C;
  color: #FFFFFF;
  text-decoration: none;
}

/* Acción secundaria: explorar el catálogo */
.pagina-inicio .enlace-catalogo .boton-instagram {
  padding-right: 28px;
  padding-left: 28px;
  background: transparent;
  color: #285C45;
}

.pagina-inicio .enlace-catalogo .boton-instagram:hover {
  background: #E3EBDD;
  color: #285C45;
  text-decoration: none;
}

/* Foco visible para navegación con teclado */
.pagina-inicio .tarjeta-alojamiento .boton-instagram:focus-visible,
.pagina-inicio .enlace-catalogo .boton-instagram:focus-visible {
  outline: 3px solid #285C45;
  outline-offset: 4px;
}

/* Respetar la preferencia de movimiento reducido */
@media (prefers-reduced-motion: reduce) {
  .pagina-inicio .tarjeta-alojamiento .boton-instagram,
  .pagina-inicio .enlace-catalogo .boton-instagram {
    transition: none;
  }
}

/* Encabezado editorial de los resultados */
.pagina-inicio #titulo-alojamientos {
  max-width: 1100px;
  margin: 40px auto 12px;
  color: #285C45;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-align: center;
  text-wrap: balance;
  scroll-margin-top: 24px;
}

.pagina-inicio #resultado-filtro {
  max-width: 1100px;
  margin: 0 auto 28px;
  color: #526052;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
}

@media (max-width: 600px) {
  .pagina-inicio #titulo-alojamientos {
    margin-top: 32px;
  }

  .pagina-inicio #resultado-filtro {
    margin-bottom: 24px;
  }
}

.inspiracion-destinos-opcion h3 a.enlace-entorno,
.inspiracion-destinos-opcion h3 a.enlace-entorno:visited {
  color: inherit;
  font: inherit;
  text-decoration: none;
}

.inspiracion-destinos-opcion h3 a.enlace-entorno:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}

.inspiracion-destinos-opcion h3 a.enlace-entorno:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 5px;
  border-radius: 2px;
}