/*
File: ficha-alojamiento.css
Plantilla: Ficha individual de alojamiento (Portfolio)
Versión: 040626-5
*/

/*---------- BASE FICHA (box-sizing) ------------*/
body .ficha-hero, body .ficha-intro, body .ficha-360, body .ficha-360-contenedor, body .ficha-comodidades, body .ficha-comodidades-contenedor, body .ficha-localizacion, body .ficha-localizacion-contenedor, body .ficha-datos-tarjeta, body .ficha-panel { box-sizing:border-box;}

/*---------- HERO GALERÍA FICHA ------------*/
body .ficha-hero { width:100%; max-width:1240px; margin:0 auto; padding:3rem 5% 0;}
body .ficha-hero-cabecera { text-align:center; max-width:780px; margin:0 auto 2.5rem;}
body .ficha-hero-marca { font-family:var(--fuente-textos); font-size:.78rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--color-olivo); margin:0 0 1em;}
body .ficha-hero-titulo { font-family:var(--fuente-titulos); font-size:clamp(2.4rem,4.5vw,3.8rem); font-weight:500; line-height:1.05; letter-spacing:-.02em; color:var(--color-texto); margin:0 0 .5em;}
body .ficha-hero-resumen { font-family:var(--fuente-textos); font-size:1.05rem; font-weight:400; line-height:1.6; color:var(--color-texto-suave); margin:0;}
body .ficha-hero-galeria { display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(2,200px); gap:.8rem; border-radius:18px; overflow:hidden;}
body .ficha-hero-foto { display:block; position:relative; overflow:hidden; cursor:pointer;}
body .ficha-hero-foto img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
body .ficha-hero-foto:hover img { transform:scale(1.05);}
body .ficha-hero-foto-principal { grid-column:span 2; grid-row:span 2;}
body .ficha-hero-foto-ultima { position:relative;}
body .ficha-hero-vertodas { position:absolute; inset:0; background:rgba(60,36,16,.55); display:flex; align-items:center; justify-content:center; color:var(--color-blanco); font-family:var(--fuente-textos); font-size:.85rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; transition:background .3s ease;}
body .ficha-hero-foto-ultima:hover .ficha-hero-vertodas { background:rgba(60,36,16,.7);}
@media only screen and (max-width:959px){
body .ficha-hero-galeria { grid-template-rows:repeat(2,160px);}
}
@media only screen and (max-width:767px){
body .ficha-hero { padding:2rem 5% 0;}
body .ficha-hero-galeria { grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(3,140px);}
body .ficha-hero-foto-principal { grid-column:span 2; grid-row:span 1;}
}

/*---------- INTRO + DATOS FICHA ------------*/
body .ficha-intro { width:100%; max-width:1240px; margin:0 auto; padding:5rem 5%; display:grid; grid-template-columns:1.7fr 1fr; gap:4rem; align-items:start;}
body .ficha-intro-texto p { font-family:var(--fuente-textos); font-size:1.05rem; font-weight:400; line-height:1.8; color:var(--color-texto-suave); margin:0 0 1.4em;}
body .ficha-intro-pretitulo { font-family:var(--fuente-textos); font-size:.78rem !important; font-weight:600 !important; letter-spacing:.18em; text-transform:uppercase; color:var(--color-olivo) !important; margin:0 0 1.2em !important; line-height:1.4 !important;}
body .ficha-intro-titulo { font-family:var(--fuente-titulos); font-size:clamp(1.8rem,3vw,2.6rem); font-weight:500; line-height:1.15; letter-spacing:-.015em; color:var(--color-texto); margin:0 0 1.2em;}
body .ficha-datos { position:sticky; top:120px;}
body .ficha-datos-tarjeta { background:var(--color-blanco); border-radius:18px; padding:2.5rem 2rem; box-shadow:0 14px 40px rgba(60,36,16,.12);}
body .ficha-datos-titulo { font-family:var(--fuente-titulos); font-size:1.4rem; font-weight:500; color:var(--color-texto); margin:0 0 1.5em;}
body .ficha-datos-lista { list-style:none; padding:0; margin:0 0 2rem; display:flex; flex-direction:column; gap:1.2rem;}
body .ficha-datos-lista li { display:grid; grid-template-columns:24px 1fr auto; align-items:center; gap:.8rem;}
body .ficha-dato-icono { width:22px; height:22px; background-color:var(--color-olivo); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain;}
body .icono-personas-dato { -webkit-mask-image:url('/imagenes/iconos/icono-personas.svg'); mask-image:url('/imagenes/iconos/icono-personas.svg');}
body .icono-cama-dato { -webkit-mask-image:url('/imagenes/iconos/icono-cama.svg'); mask-image:url('/imagenes/iconos/icono-cama.svg');}
body .icono-planta-dato { -webkit-mask-image:url('/imagenes/iconos/icono-planta.svg'); mask-image:url('/imagenes/iconos/icono-planta.svg');}
body .icono-vistas-dato { -webkit-mask-image:url('/imagenes/iconos/icono-vistas.svg'); mask-image:url('/imagenes/iconos/icono-vistas.svg');}
body .ficha-dato-label { font-family:var(--fuente-textos); font-size:.95rem; color:var(--color-texto-suave);}
body .ficha-dato-valor { font-family:var(--fuente-textos); font-size:.95rem; font-weight:600; color:var(--color-texto); text-align:right;}
body .ficha-datos-reservar { display:block; text-align:center; padding:16px 24px; border-radius:999px; background:var(--color-olivo); color:var(--color-blanco) !important; font-family:var(--fuente-textos); font-size:.9rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; text-decoration:none !important; transition:all .25s ease; box-shadow:0 4px 18px rgba(138,138,74,.3);}
body .ficha-datos-reservar:hover { background:var(--color-texto); transform:translateY(-2px); box-shadow:0 8px 26px rgba(60,36,16,.25);}
body .ficha-datos-garantia { font-family:var(--fuente-textos); font-size:.78rem; color:var(--color-texto-suave); text-align:center; margin:1rem 0 0;}
@media only screen and (max-width:959px){
body .ficha-intro { grid-template-columns:1fr; gap:2.5rem; padding:4rem 5%;}
body .ficha-datos { position:static;}
}
@media only screen and (max-width:767px){
body .ficha-intro { padding:3rem 5%;}
}

/*---------- 360 FICHA ------------*/
body .ficha-360 { background:var(--color-fondo-suave); padding:5rem 0;}
body .ficha-360-contenedor { width:100%; max-width:1100px; margin:0 auto; padding:0 5%; text-align:center;}
body .ficha-360-pretitulo { font-family:var(--fuente-textos); font-size:.78rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--color-olivo); margin:0 0 1.2em;}
body .ficha-360-titulo { font-family:var(--fuente-titulos); font-size:clamp(1.8rem,3vw,2.6rem); font-weight:500; line-height:1.15; color:var(--color-texto); margin:0 0 2rem;}
body .ficha-360-visor { position:relative; width:100%; aspect-ratio:16/9; border-radius:18px; overflow:hidden; cursor:pointer; box-shadow:0 14px 40px rgba(60,36,16,.15);}
body .ficha-360-poster { width:100%; height:100%; object-fit:cover; display:block;}
body .ficha-360-play { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; background:rgba(60,36,16,.35); border:0; cursor:pointer; transition:background .3s ease;}
body .ficha-360-play:hover { background:rgba(60,36,16,.5);}
body .ficha-360-play-icono { width:72px; height:72px; border-radius:50%; background:var(--color-blanco); -webkit-mask:none; mask:none; position:relative;}
body .ficha-360-play-icono::after { content:""; position:absolute; inset:18px; background-color:var(--color-olivo); -webkit-mask:url('/imagenes/iconos/icono-360.svg') no-repeat center / contain; mask:url('/imagenes/iconos/icono-360.svg') no-repeat center / contain;}
body .ficha-360-play:hover .ficha-360-play-icono { transform:scale(1.1);}
body .ficha-360-play-texto { color:var(--color-blanco); font-family:var(--fuente-textos); font-size:.95rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; text-shadow:0 1px 8px rgba(0,0,0,.4);}
@media only screen and (max-width:767px){
body .ficha-360 { padding:3.5rem 0;}
body .ficha-360-play-icono { width:60px; height:60px;}
body .ficha-360-play-icono::after { inset:14px;}
}

/*---------- COMODIDADES FICHA ------------*/
body .ficha-comodidades { padding:5rem 0;}
body .ficha-comodidades-contenedor { width:100%; max-width:1100px; margin:0 auto; padding:0 5%; text-align:center;}
body .ficha-comodidades-pretitulo { font-family:var(--fuente-textos); font-size:.78rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--color-olivo); margin:0 0 1.2em;}
body .ficha-comodidades-titulo { font-family:var(--fuente-titulos); font-size:clamp(1.8rem,3vw,2.6rem); font-weight:500; line-height:1.15; color:var(--color-texto); margin:0 0 2.5rem;}
body .ficha-comodidades-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; max-width:760px; margin:0 auto;}
body .ficha-comodidad { display:flex; flex-direction:column; align-items:center; gap:.8rem; padding:1.8rem 1rem; background:var(--color-blanco); border-radius:14px; box-shadow:0 8px 24px rgba(60,36,16,.06);}
body .ficha-comodidad-icono { width:36px; height:36px; background-color:var(--color-olivo); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain;}
body .icono-wifi-svc { -webkit-mask-image:url('/imagenes/iconos/icono-wifi.svg'); mask-image:url('/imagenes/iconos/icono-wifi.svg');}
body .icono-clima-svc { -webkit-mask-image:url('/imagenes/iconos/icono-clima.svg'); mask-image:url('/imagenes/iconos/icono-clima.svg');}
body .icono-tv-svc { -webkit-mask-image:url('/imagenes/iconos/icono-tv.svg'); mask-image:url('/imagenes/iconos/icono-tv.svg');}
body .icono-bano-svc { -webkit-mask-image:url('/imagenes/iconos/icono-bano.svg'); mask-image:url('/imagenes/iconos/icono-bano.svg');}
body .icono-electro-svc { -webkit-mask-image:url('/imagenes/iconos/icono-electro.svg'); mask-image:url('/imagenes/iconos/icono-electro.svg');}
body .icono-decoracion-svc { -webkit-mask-image:url('/imagenes/iconos/icono-decoracion.svg'); mask-image:url('/imagenes/iconos/icono-decoracion.svg');}
body .ficha-comodidad span:last-child { font-family:var(--fuente-textos); font-size:.92rem; font-weight:500; color:var(--color-texto);}
@media only screen and (max-width:767px){
body .ficha-comodidades { padding:3.5rem 0;}
body .ficha-comodidades-grid { grid-template-columns:repeat(2,1fr); gap:1rem;}
}

/*---------- LOCALIZACIÓN FICHA ------------*/
body .ficha-localizacion { background:var(--color-fondo-suave); padding:5rem 0;}
body .ficha-localizacion-contenedor { width:100%; max-width:1100px; margin:0 auto; padding:0 5%; text-align:center;}
body .ficha-localizacion-pretitulo { font-family:var(--fuente-textos); font-size:.78rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--color-olivo); margin:0 0 1.2em;}
body .ficha-localizacion-titulo { font-family:var(--fuente-titulos); font-size:clamp(1.8rem,3vw,2.6rem); font-weight:500; line-height:1.15; color:var(--color-texto); margin:0 0 1em;}
body .ficha-localizacion-texto { font-family:var(--fuente-textos); font-size:1.05rem; line-height:1.65; color:var(--color-texto-suave); margin:0 0 2.5rem; max-width:680px; margin-left:auto; margin-right:auto;}
@media only screen and (max-width:767px){
body .ficha-localizacion { padding:3.5rem 0;}
}

/*---------- PESTAÑAS LATERALES (DESKTOP) ------------*/
body .ficha-pestanas { position:fixed; left:0; top:50%; transform:translateY(-50%); z-index:990; display:flex; flex-direction:column; align-items:flex-start; gap:.5rem;}
body .ficha-pestana { display:flex; align-items:center; gap:10px; background:var(--color-texto); color:var(--color-blanco); border:0; cursor:pointer; padding:16px 14px; border-radius:12px 0 0 12px; writing-mode:vertical-rl; transform:rotate(180deg); transition:all .25s ease; box-shadow:2px 2px 14px rgba(0,0,0,.2);}
body .ficha-pestana:hover { background:var(--color-olivo); padding-right:20px;}
body .ficha-pestana-icono { width:20px; height:20px; background-color:currentColor; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain; transform:rotate(180deg);}
body .icono-telefono-pestana { -webkit-mask-image:url('/imagenes/iconos/icono-telefono.svg'); mask-image:url('/imagenes/iconos/icono-telefono.svg');}
body .icono-comollegar-pestana { -webkit-mask-image:url('/imagenes/iconos/icono-comollegar.svg'); mask-image:url('/imagenes/iconos/icono-comollegar.svg');}
body .icono-parking-pestana { -webkit-mask-image:url('/imagenes/iconos/icono-parking.svg'); mask-image:url('/imagenes/iconos/icono-parking.svg');}
body .icono-reservar-pestana { -webkit-mask-image:url('/imagenes/iconos/icono-reservar.svg'); mask-image:url('/imagenes/iconos/icono-reservar.svg');}
body .icono-whatsapp-pestana { -webkit-mask-image:url('/imagenes/iconos/icono-whatsapp.svg'); mask-image:url('/imagenes/iconos/icono-whatsapp.svg');}
body .ficha-pestana-texto { font-family:var(--fuente-textos); font-size:.82rem; font-weight:600; letter-spacing:.06em;}

/*---------- PANELES DESPLEGABLES ------------*/
body .ficha-panel-overlay { position:fixed; inset:0; background:rgba(60,36,16,.5); z-index:998; opacity:0; visibility:hidden; transition:all .3s ease;}
body .ficha-panel-overlay.activo { opacity:1; visibility:visible;}
body .ficha-panel { position:fixed; left:0; top:50%; transform:translateY(-50%) translateX(-110%); width:380px; max-width:90vw; background:var(--color-blanco); z-index:999; padding:2.5rem; border-radius:0 18px 18px 0; box-shadow:8px 0 40px rgba(0,0,0,.25); transition:transform .35s cubic-bezier(.16,1,.3,1);}
body .ficha-panel.activo { transform:translateY(-50%) translateX(0);}
body .ficha-panel-cerrar { position:absolute; top:1.2rem; right:1.2rem; width:32px; height:32px; min-width:32px; padding:0; flex-shrink:0; box-sizing:border-box; -webkit-appearance:none; appearance:none; line-height:1; box-shadow:none; background:var(--color-fondo); border:0; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .25s ease;}
body .ficha-panel-cerrar:hover { background:var(--color-fondo-suave);}
body .icono-cerrar-panel { position:relative; width:16px; height:16px; display:block; flex-shrink:0;}
body .icono-cerrar-panel::before, body .icono-cerrar-panel::after { content:""; position:absolute; top:50%; left:0; width:100%; height:2px; background-color:var(--color-texto); border-radius:2px;}
body .icono-cerrar-panel::before { transform:translateY(-50%) rotate(45deg);}
body .icono-cerrar-panel::after { transform:translateY(-50%) rotate(-45deg);}
body .ficha-panel-titulo { font-family:var(--fuente-titulos); font-size:1.5rem; font-weight:500; color:var(--color-texto); margin:0 0 .8em;}
body .ficha-panel-texto { font-family:var(--fuente-textos); font-size:.98rem; line-height:1.6; color:var(--color-texto-suave); margin:0 0 1.8em;}
body .ficha-panel-boton { display:flex; align-items:center; gap:12px; padding:14px 20px; border-radius:12px; background:var(--color-fondo); color:var(--color-texto) !important; font-family:var(--fuente-textos); font-size:.92rem; font-weight:600; text-decoration:none !important; margin-bottom:.8rem; transition:all .25s ease;}
body .ficha-panel-boton:hover { background:var(--color-fondo-suave); transform:translateX(4px);}
body .ficha-panel-boton-principal { background:var(--color-olivo); color:var(--color-blanco) !important;}
body .ficha-panel-boton-principal:hover { background:var(--color-texto);}
body .ficha-panel-boton-whatsapp { background:#25D366; color:var(--color-blanco) !important; justify-content:center;}
body .ficha-panel-boton-whatsapp:hover { background:#1da851;}
body .ficha-panel-boton-icono { width:20px; height:20px; background-color:currentColor; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain; flex-shrink:0;}

/*---------- BARRA INFERIOR (MÓVIL) ------------*/
body .ficha-barra-movil { display:none;}
@media only screen and (max-width:959px){
body .ficha-pestanas { display:none;}
body .ficha-barra-movil { display:grid; grid-template-columns:repeat(4,1fr); position:fixed; bottom:0; left:0; right:0; z-index:990; background:var(--color-blanco); box-shadow:0 -4px 20px rgba(60,36,16,.15); padding:.5rem; gap:.3rem;}
body .ficha-barra-boton { display:flex; flex-direction:column; align-items:center; gap:4px; padding:8px 4px; border:0; background:transparent; cursor:pointer; text-decoration:none !important; border-radius:10px; transition:background .2s ease;}
body .ficha-barra-boton:hover { background:var(--color-fondo);}
body .ficha-barra-boton-destacado { background:var(--color-olivo);}
body .ficha-barra-boton-destacado .ficha-barra-icono { background-color:var(--color-blanco);}
body .ficha-barra-boton-destacado .ficha-barra-texto { color:var(--color-blanco);}
body .ficha-barra-icono { width:24px; height:24px; background-color:var(--color-texto); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain;}
body .icono-telefono-barra { -webkit-mask-image:url('/imagenes/iconos/icono-telefono.svg'); mask-image:url('/imagenes/iconos/icono-telefono.svg');}
body .icono-reservar-barra { -webkit-mask-image:url('/imagenes/iconos/icono-reservar.svg'); mask-image:url('/imagenes/iconos/icono-reservar.svg');}
body .icono-comollegar-barra { -webkit-mask-image:url('/imagenes/iconos/icono-comollegar.svg'); mask-image:url('/imagenes/iconos/icono-comollegar.svg');}
body .icono-parking-barra { -webkit-mask-image:url('/imagenes/iconos/icono-parking.svg'); mask-image:url('/imagenes/iconos/icono-parking.svg');}
body .ficha-barra-texto { font-family:var(--fuente-textos); font-size:.68rem; font-weight:600; color:var(--color-texto);}
body.single-portfolio { padding-bottom:80px;}
}