/* Gavirental · formularios con etiqueta flotante */
.gv-form { margin: 18px 0 10px; }
.gv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gv-grid .gv-full { grid-column: 1 / -1; }
.gv-field { position: relative; margin: 0; }
.gv-field input, .gv-field select, .gv-field textarea {
  display: block; width: 100% !important; box-sizing: border-box; margin: 0 !important;
  height: 56px; padding: 22px 14px 6px !important; font: 400 16px/1.3 inherit; font-family: inherit;
  color: #222; background: #fff; border: 1px solid #cfcfcf !important; border-radius: 6px !important;
  box-shadow: none; outline: none; -webkit-appearance: none; appearance: none;
  transition: border-color .15s, box-shadow .15s;
}
.gv-field textarea { height: 150px; resize: vertical; padding-top: 26px !important; }
.gv-field select { padding-right: 36px !important; cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23990000' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center; }
.gv-field label {
  position: absolute; left: 15px; top: 18px; margin: 0; padding: 0; font-size: 16px; line-height: 20px;
  color: #888; pointer-events: none; transform-origin: 0 0; transition: transform .15s ease, color .15s ease;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: calc(100% - 30px);
}
.gv-field input:focus, .gv-field select:focus, .gv-field textarea:focus {
  border-color: #990000 !important; box-shadow: 0 0 0 3px rgba(153, 0, 0, .12);
}
.gv-field input:focus + label, .gv-field input:not(:placeholder-shown) + label,
.gv-field textarea:focus + label, .gv-field textarea:not(:placeholder-shown) + label,
.gv-field select:focus + label, .gv-field select:valid + label { transform: translateY(-11px) scale(.75); color: #990000; }
.gv-field input:not(:focus):not(:placeholder-shown) + label,
.gv-field textarea:not(:focus):not(:placeholder-shown) + label,
.gv-field select:not(:focus):valid + label { color: #777; }
.gv-field select:invalid { color: transparent; }
.gv-field select option { color: #222; }
.gv-field .borde-rojo, .gv-field input.borde-rojo { border-color: #d40000 !important; }

.gv-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; flex-wrap: wrap; }
.gv-actions label { margin: 0; font-size: 14px; color: #555; cursor: pointer; }
.gv-actions input[type=checkbox] { width: 18px; height: 18px; margin: 0 8px 0 0; vertical-align: -4px; accent-color: #990000; }
.gv-btn { height: 52px; padding: 0 34px; border: 0; border-radius: 6px; background: #990000; color: #fff;
  font: 700 16px/52px inherit; font-family: inherit; cursor: pointer; transition: background .15s, transform .1s; }
.gv-btn:hover { background: #b30000; } .gv-btn:active { transform: translateY(1px); }

/* Variante sobre fondo rojo ("Nosotros te llamamos") */
.nuevo-form-te-llamamos__form > div:first-of-type { display: flex; gap: 12px; flex-wrap: wrap; align-items: stretch; }
.gv-field--dark { flex: 1 1 200px; }
.gv-field--dark input { background: rgba(255,255,255,.08) !important; color: #fff !important; border-color: rgba(255,255,255,.75) !important; }
.gv-field--dark label { color: rgba(255,255,255,.85) !important; }
.gv-field--dark input:focus { border-color: #fff !important; box-shadow: 0 0 0 3px rgba(255,255,255,.25); }
.nuevo-form-te-llamamos .nuevo-form-te-llamamos__submit { flex: 0 0 200px; min-height: 56px !important; min-width: 0 !important; border-radius: 6px !important; margin: 0 !important; font-size: 16px; }
.nuevo-form-te-llamamos__checkbox-container { color: #fff !important; }

@media (max-width: 600px) {
  .gv-grid { grid-template-columns: 1fr; }
  .gv-actions { flex-direction: column; align-items: stretch; }
  .gv-btn, .nuevo-form-te-llamamos .nuevo-form-te-llamamos__submit { width: 100%; flex-basis: 100%; }
}

/* Anula el maquetado antiguo del formulario de contacto */
.contacto .estrecho .gv-form, .contacto .estrecho .gv-form div { width: auto; height: auto; float: none; margin: 0; }
.contacto .estrecho .gv-form .gv-grid { display: grid; }
.contacto .estrecho .gv-form .gv-actions { display: flex; margin-top: 16px; }
.contacto .estrecho .gv-form .gv-field label { float: none; width: auto; font-size: 16px; font-weight: 400; margin: 0; }
.contacto .gv-actions #label-acepto { float: none; width: auto; margin: 0; color: #555; font-size: 14px; }
.contacto .gv-actions #acepto-condiciones { float: none; margin: 0 8px 0 0; }
.contacto .estrecho .gv-form .errores { margin-top: 14px; }
.gv-field label { font-weight: 400; }

/* Envolturas de traducción: neutras, heredan todo del padre */
span.i18n-w { color: inherit !important; font: inherit !important; background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; display: inline !important; float: none !important; text-transform: inherit !important; }
.contacto .estrecho .gv-field select { width: 100% !important; height: 56px !important; font-size: 16px !important; }
.gv-form .gv-btn, .contacto .estrecho .gv-form .gv-btn { height: 52px !important; min-height: 52px; padding: 0 34px !important; font-size: 16px !important; line-height: 52px !important; letter-spacing: .02em; text-shadow: none; }

/* Contacto: el contenedor mide 500px con overflow:hidden; el formulario no debe pasarse */
.contacto .formContacto.estrecho { width: calc(100% - 15px) !important; box-sizing: border-box; }
/* Estudiantes / Empresas (columna "Contacta con Nosotros") */
.form .gv-form { margin-top: 10px; }
.form .gv-form .gv-actions { justify-content: flex-start; }
.gv-msg:empty { display: none; }
.gv-msg .errores { margin: 12px 0 0; }

/* Lema de cabecera: respeta los saltos de línea fijados */
a.claim { white-space: nowrap; }

/* ===== Buscador de cabecera ===== */
#busqueda { padding: 16px 0 !important; height: auto !important; }
#busqueda .sixteen.columns { display: flex; align-items: center; gap: 28px; float: none; }
#busqueda #tu-apartamento { float: none !important; margin: 0 !important; white-space: nowrap; font-size: 14px; line-height: 1; letter-spacing: .02em; }
#busqueda #tu-apartamento br { display: none; }
#busqueda #form_basico { flex: 1 1 auto; margin: 0; }
#busqueda #form_basico ul { display: flex; align-items: center; gap: 16px; margin: 0; padding: 0; list-style: none; }
#busqueda #form_basico li { float: none !important; margin: 0 !important; padding: 0 !important; width: auto !important; background: none !important; }
#busqueda #form_basico li.select-beds, #busqueda #form_basico #select-plazas { flex: 1 1 150px; }
#busqueda #form_basico #select-zona { flex: 2 1 260px; }
#busqueda #form_basico select {
  display: block; width: 100% !important; height: 42px !important; margin: 0 !important;
  padding: 0 38px 0 14px !important; font: 400 15px/42px inherit; font-family: inherit; color: #333;
  border: 0 !important; border-radius: 5px !important; cursor: pointer; -webkit-appearance: none; appearance: none;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23990000' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  position: static !important; opacity: 1 !important; box-shadow: none;
}
#busqueda #form_basico select:focus { outline: none; box-shadow: 0 0 0 3px rgba(255,255,255,.45); }
#busqueda #form_basico .li-buscar { flex: 0 0 auto; }
#busqueda #form_basico .btn-buscar {
  height: 42px !important; min-width: 150px; padding: 0 30px !important; margin: 0 !important;
  border: 0 !important; border-radius: 5px !important; background: #fff !important; color: #990000 !important;
  font: 700 14px/42px inherit; font-family: inherit; letter-spacing: .06em; text-transform: uppercase; cursor: pointer;
  transition: background .15s;
}
#busqueda #form_basico .btn-buscar:hover { background: #f1f1f1 !important; }
#busqueda #form_basico #limpiar { flex: 0 0 auto; }
#busqueda #form_basico #limpiar a, #busqueda #form_basico #limpiar strong { color: #fff; font-size: 13px; font-weight: 400; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
@media (max-width: 767px) {
  #busqueda .sixteen.columns { flex-direction: column; align-items: stretch; gap: 12px; }
  #busqueda #tu-apartamento { text-align: center; }
  #busqueda #form_basico ul { flex-wrap: wrap; gap: 10px; }
  #busqueda #form_basico li.select-beds, #busqueda #form_basico #select-plazas { flex: 1 1 calc(50% - 5px); }
  #busqueda #form_basico #select-zona, #busqueda #form_basico .li-buscar { flex: 1 1 100%; }
  #busqueda #form_basico .btn-buscar { width: 100%; }
  #busqueda #form_basico #limpiar { flex: 1 1 100%; text-align: center; }
}
#busqueda .container, #busqueda .sixteen.columns, #busqueda #form_basico, #busqueda #form_basico ul, #busqueda #form_basico li { height: auto !important; min-height: 0 !important; }
#busqueda #form_basico #limpiar { display: flex; align-items: center; }
#busqueda #form_basico li.select-beds, #busqueda #form_basico #select-plazas { flex: 1 1 130px; min-width: 130px; }
#busqueda #form_basico #select-zona { flex: 1.6 1 200px; }
#busqueda #form_basico .btn-buscar { min-width: 140px; }
@media (max-width: 767px) { #busqueda #form_basico #limpiar { justify-content: center; } #busqueda #form_basico li.select-beds, #busqueda #form_basico #select-plazas { min-width: 0; } }

/* Buscador en páginas interiores: #busqueda > .container > p + form (sin .sixteen.columns) */
#busqueda > .container { display: flex; align-items: center; gap: 28px; }
#busqueda > .container:has(> .sixteen) { display: block; }
#busqueda > .container > #tu-apartamento { flex: 0 0 auto; padding-left: 10px; }
#busqueda #tu-apartamento strong { font-weight: inherit; }
@media (max-width: 767px) {
  #busqueda > .container { flex-direction: column; align-items: stretch; gap: 12px; }
  #busqueda > .container > #tu-apartamento { padding-left: 0; }
}

/* "Ordenar por" de los listados */
#sorter { overflow: hidden; }
#sorter form { display: flex; justify-content: flex-end; margin: 0 10px 10px; }
#sorter .gv-sort { width: 300px; max-width: 100%; }
@media (max-width: 767px) { #sorter form { justify-content: stretch; } #sorter .gv-sort { width: 100%; } }
/* Título del listado a la izquierda y "Ordenar por" a la derecha, en una fila */
#sorter { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 20px 10px 10px !important; text-align: left !important; }
#sorter h1.titulo { margin: 0 !important; text-align: left !important; flex: 1 1 auto; }
#sorter form { margin: 0; flex: 0 0 300px; }
#sorter .clear { display: none; }
@media (max-width: 767px) {
  #sorter { flex-direction: column; align-items: stretch; gap: 14px; }
  #sorter form { flex-basis: auto; }
}
@media (max-width: 767px) { #sorter, #sorter h1.titulo, #sorter form { width: auto !important; max-width: none !important; float: none !important; } }

/* ===== Sobre nosotros ===== */
.sobre-nosotros #contenido { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 30px; row-gap: 24px; align-items: stretch; }
.sobre-nosotros #contenido > * { float: none !important; width: auto !important; margin: 0 !important; }
.sobre-nosotros #contenido > h1 { grid-column: 1 / -1; color: #990000; font-size: 24px; font-weight: 700; line-height: 1.2; text-transform: none; margin: 10px 0 0 !important; }
.sobre-nosotros #contenido > img { grid-column: 1 / 5; width: 100% !important; height: 100%; object-fit: cover; display: block; }
.sobre-nosotros #contenido > .cuadro-fondo-gris { grid-column: 5 / -1; padding: 24px 28px !important; box-sizing: border-box; }
.sobre-nosotros #contenido > .cuadro-fondo-gris ul { margin: 0; padding-left: 18px; }
.sobre-nosotros #contenido > .cuadro-fondo-gris li { margin-bottom: 10px; line-height: 1.55; }
.sobre-nosotros #contenido > .cuadro-fondo-gris li:last-child { margin-bottom: 0; }
.sobre-nosotros #contenido > p.pl15 { grid-column: 1 / -1; padding-left: 0 !important; font-size: 18px; color: #333; margin-top: 8px !important; }
.sobre-nosotros #contenido > ul.bullets-gavir { grid-column: span 6; padding-left: 0 !important; }
@media (max-width: 767px) {
  .sobre-nosotros #contenido { grid-template-columns: 1fr; }
  .sobre-nosotros #contenido > * { grid-column: 1 / -1 !important; }
  .sobre-nosotros #contenido > img { height: auto; }
}
.sobre-nosotros #contenido > h1 { text-align: left !important; }
.sobre-nosotros #contenido > .cuadro-fondo-gris { background: #f2f0f1 !important; height: auto !important; display: flex; align-items: center; }
.sobre-nosotros #contenido > .cuadro-fondo-gris ul.sobre-nosotros-info { background: none !important; height: auto !important; width: auto !important; max-width: none !important; padding: 0 0 0 18px !important; margin: 0 !important; }
@media (max-width: 767px) {
  .sobre-nosotros #contenido, .sobre-nosotros #contenido * { text-align: left !important; }
  .sobre-nosotros #contenido > .cuadro-fondo-gris { padding: 18px 16px !important; }
  .sobre-nosotros #contenido > ul.bullets-gavir { margin-left: 0 !important; padding-left: 0 !important; }
}

/* Titulares de página en rojo, sin mayúsculas (Cómo reservar) */
.gv-titulo, .subpag #contenido h1.gv-titulo, .como-reservar #superior h1.gv-titulo { color: #990000 !important; font-size: 24px !important; font-weight: 700; line-height: 1.2; text-transform: none !important; text-align: left; margin: 10px 0 28px !important; }

.gv-titulo { background: none !important; padding: 0 !important; }
.gv-titulo::before, .gv-titulo::after { display: none !important; content: none !important; }
.sobre-nosotros #contenido > h1.gv-titulo { margin: 10px 0 0 !important; }

/* Titular de Empresas / Estudiantes como el resto de la web */
#acordeon-apartamentos h1 { color: #990000 !important; font-size: 24px !important; font-weight: 700 !important; line-height: 1.2 !important; text-transform: none !important; margin: 5px 0 18px !important; }

/* Desplegables (acordeón) de Empresas / Estudiantes */
#acordeon-apartamentos .ampliarConten {
  display: flex; align-items: center; min-height: 52px; box-sizing: border-box; margin: 0 0 15px !important;
  padding: 0 18px !important; font-size: 15px !important; letter-spacing: .02em; color: #555;
  background: #fff !important; border: 1px solid #dcdcdc !important; border-radius: 8px !important;
  transition: border-color .15s, color .15s, background-color .15s;
}
#acordeon-apartamentos .ampliarConten.closedlanguage { background: #fff !important; color: #555 !important; border-color: #dcdcdc !important; }
#acordeon-apartamentos .ampliarConten:hover { background: #fff !important; color: #990000 !important; border-color: #990000 !important; }
#acordeon-apartamentos .ampliarConten.openlanguage { background: #990000 !important; color: #fff !important; border-color: #990000 !important; margin-bottom: 10px !important; }
#acordeon-apartamentos .ampliarConten .gv-chev--prefix { width: 6px; height: 6px; margin: 0 14px 0 2px; border-width: 2px; }
#acordeon-apartamentos .contenAmpliado { margin: 0 0 18px !important; padding-left: 18px !important; }

/* ---- Resultados de búsqueda: tarjeta en rejilla (foto | características, botón | saber más) ---- */
@media (min-width: 600px) {
  #resultados-de-busqueda .resultado {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 38%;
    grid-template-areas: "tit tit" "img car" "btn fic";
    column-gap: 20px;
    align-items: stretch;
  }
  #resultados-de-busqueda .resultado[style*="none"] { display: none; }
  .resultado > .titulo { grid-area: tit; }
  .resultado > img { grid-area: img; float: none; width: 100% !important; height: 100% !important;
    aspect-ratio: 295 / 184; object-fit: cover; display: block; border-radius: 4px; }
  .resultado > .caracteristicas { grid-area: car; float: none; width: auto; height: auto;
    margin: 0; padding: 12px 14px; border-radius: 4px; font-size: 14px; }
  .resultado > .bot-reserva { grid-area: btn; float: none; width: auto; margin: 12px 0 0; }
  .resultado > .ficha-completa { grid-area: fic; float: none; justify-self: end; align-self: center;
    margin: 12px 0 0; padding: 0; background: none; }
}
.resultado .bot-reserva a.button {
  display: flex; align-items: center; justify-content: center; box-sizing: border-box;
  width: 100% !important; height: auto !important; min-height: 44px; padding: 11px 16px;
  border-radius: 6px; margin: 0;
}

/* ---- Bloque de ofertas: notas debajo de la rejilla, no flotando al lado ---- */
.panel-apartamentos > p { clear: both; float: none; width: 100%; text-align: center; margin: 0 0 4px; }
.panel-apartamentos > .apartamento + p { padding-top: 20px; }

/* ---- Portada, ofertas: tarjetas a todo el ancho del contenedor; la impar final centrada ---- */
@media (min-width: 768px) {
  #apartamentos .panel-apartamentos { display: flex; flex-wrap: wrap; justify-content: center;
    column-gap: 30px; padding-left: 0 !important; padding-right: 0 !important; }
  #apartamentos .panel-apartamentos .apartamento { float: none; width: calc(50% - 15px);
    margin: 0 0 30px !important; overflow: hidden; }
  #apartamentos .panel-apartamentos .apartamento img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
  #apartamentos .panel-apartamentos > p { flex: 0 0 100%; }
}

/* ---- Preheader más compacto y pie con más aire ---- */
.pre-header { padding: 4px 0; }
#datos-contacto { padding: 22px 0 18px; }
#datos-contacto p { line-height: 1.6; }

/* ---- "Nosotros te llamamos": sin borde blanco, esquinas más redondeadas, aire sobre la política ---- */
.nuevo-form-te-llamamos__all { border: 0 !important; border-radius: 14px; overflow: hidden; }
.nuevo-form-te-llamamos__form > div:first-of-type { margin-bottom: 18px; }

/* ---- Barra roja "Ventajas para…" con la misma medida que los desplegables ---- */
#acordeon-apartamentos h1 + div[style] {
  display: flex; align-items: center; min-height: 52px; box-sizing: border-box;
  padding: 0 18px !important; margin: 0 0 15px !important; font-size: 15px !important;
  letter-spacing: .02em; border-radius: 8px !important;
}

/* ---- Portada, "Somos especialistas": columnas de igual anchura ---- */
@media (min-width: 768px) {
  #especialistas { display: flex; flex-wrap: wrap; align-items: flex-start; }
  #especialistas:before, #especialistas:after { display: none; }
  #especialistas > .sixteen.columns { flex: 0 0 100%; }
  #especialistas > .columns:not(.sixteen) { flex: 1 1 0; width: auto !important; min-width: 0; float: none; margin-left: 10px; margin-right: 10px; }
  #especialistas > .divider { flex: 0 0 auto; float: none; }
}
@media (min-width: 768px) {
  #especialistas > .columns:not(.sixteen) { margin-left: 4px; margin-right: 4px; }
  #especialistas p { text-wrap: pretty; font-size: 15px; }
  html[lang=fr] #especialistas p { font-size: 14px; }
}
