Alojamiento
Habitaciones pensadas para tu descanso
Tres tipos de apartamentos para cada forma de viajar, desde la pareja que busca privacidad hasta el grupo que comparte la estancia. Todos con aire acondicionado, wifi de alta velocidad y la tranquilidad que necesitas tras un día entero en la ciudad. Sin lujos innecesarios, sin cargos ocultos: solo la comodidad que importa, en la mejor zona de Florianópolis.
RESERVA DIRECTAMENTE · MEJOR PRECIO
12 % de descuento al reservar a través de nuestra página web
En la página web oficial del Hotel Farol da Ilha, la tarifa flexible ya incluye un descuento del 12 %, sin necesidad de cupón. Elige las fechas, consulta el precio y confirma tu reserva online, con la atención directa de nuestro equipo.
Reserva directamente en la web y ahorra
El mejor precio garantizado, confirmación inmediata y sin gastos adicionales.
';
for(var d=1; d <= dim; d++){
var dt=new Date(y, m, d);
var cls='cal-day';
if(dt
state.ci&&dt'+d+' ';
}
dEl.innerHTML = html;
}
function renderCal() {
renderMonth(view, $('fbw-cal-t0'), $('fbw-cal-d0'));
renderMonth(addMonths(view, 1), $('fbw-cal-t1'), $('fbw-cal-d1'));
$('fbw-cal-prev').disabled = (view.getFullYear() === today.getFullYear() && view.getMonth() === today.getMonth());
var sum = $('fbw-cal-sum'), ap = $('fbw-cal-apply');
if (state.ci && state.co) {
var n = nights();
sum.innerHTML = '
'+n+(n===1?' noche':' noches')+' · '+state.ci.getDate()+' '+MONTHS_S[state.ci.getMonth()]+' → '+state.co.getDate()+' '+MONTHS_S[state.co.getMonth()];
ap.disabled=false;
}else if(state.ci){
sum.innerHTML='Entrada
'+state.ci.getDate()+' '+MONTHS_S[state.ci.getMonth()]+' · «Elige la fecha de salida»;
ap.disabled=true;
}else{
sum.textContent='Selecciona la fecha de entrada';
ap.disabled=true;
}
}
function onDay(e){
var el=e.target.closest('.cal-day');
if(!el||el.classList.contains('empty')||el.classList.contains('disabled'))return;
var p = el.getAttribute('data-d').split('-');
var dt = new Date(+p[0], +p[1] - 1, +p[2]);
if(state.picking==='ci'||!state.ci||(state.ci&&state.co)){
state.ci=dt; state.co=null; state.picking='co';
}else{
if(dt<=state.ci){ state.ci=dt; state.co=null; state.picking='co'; }
else { state.co=dt; state.picking='ci'; }
}
renderCal();
refreshFields();
}
/* ---------- campos ---------- */
function setField(which){
var dv=$(which==='ci'?'fbw-ci-dv':'fbw-co-dv');
var dt = which === 'ci' ? state.ci : state.co;
if (dt) {
dv.innerHTML = dt.getDate() + ' ' + MONTHS_S[dt.getMonth()] + ' ' + dt.getFullYear() + '
'+WD[dt.getDay()]+(which==='co'&&nights()>0?' · '+nights()+(nights()===1?' noche':' noches'):'')+'';
}else{
dv.innerHTML='
'+(which==='ci'?'Seleccionar':'Seleccionar')+'';
}
}
función refreshFields(){ setField('ci'); setField('co'); }
/* ---------- ventana emergente ---------- */
función position(btn){
si(window.innerWidth < 560){
cal.style.top = ''; cal.style.left = ''; cal.style.marginLeft = '';
return;
}
cal.style.marginLeft = '0';
var top = btn.offsetTop + btn.offsetHeight + 10;
var left = btn.offsetLeft + 48;
var maxLeft = fbw.clientWidth - cal.offsetWidth - 2;
if(left > maxLeft) left = Math.max(2, maxLeft);
cal.style.top = top + 'px';
cal.style.left = left + 'px';
}
function openCal() {
if (cal.classList.contains('open')) { closeCal(); return; }
closeAllSel();
if (!state.ci) state.picking = 'ci';
else if(!state.co) state.picking='co';
else state.picking='ci';
if(state.ci){ view=startOfMonth(state.ci); if(view