/* global React, Icon, useT */
/* ============== TESTIMONIOS ============== */
/* Reseñas reales recogidas de Booking y Airbnb.
EDITAR el array `quotes` cuando lleguen reseñas nuevas. */
function Testimonios() {
const { t, lang } = useT();
const labels = {
es: { eyebrow:'Quienes han pasado por aquí', h:'Pequeñas notas de huéspedes.',
source:'desde', dot:'·' },
en: { eyebrow:'People who have stayed', h:'Small notes from our guests.',
source:'from', dot:'·' },
fr: { eyebrow:'Ceux qui sont passés ici', h:'Quelques mots de nos hôtes.',
source:'sur', dot:'·' },
}[lang] || {};
/* Reseñas reales de Booking y Airbnb. Actualizar manualmente. */
const quotes = {
es: [
{ q:'¡Qué hostal más bonito! Elegante y moderno, con dos zonas comunes muy bien acondicionadas. Increíblemente limpio y bien mantenido. Los dueños, muy amables. La nevera estaba llena de pan, mantequilla, mermelada y leche.',
who:'Kayla', country:'US', month:'mayo 2026', src:'Booking' },
{ q:'Un espacio muy lindo y bien pensado. Muy limpio y amable. Las piezas son lindas, limpias. Todo se ve nuevo. Excelente lugar.',
who:'Ezequiel', country:'CL', month:'mayo 2026', src:'Booking' },
{ q:'Un establecimiento nuevo, bien amueblado y decorado, que fomenta la convivencia gracias a sus zonas comunes.',
who:'Marc', country:'FR', month:'abril 2026', src:'Booking' },
{ q:'Desde el primer momento, nos sorprendió la limpieza impecable y el diseño cuidado y con estilo. La zona común es muy acogedora y está equipada con todo lo necesario.',
who:'Marta', country:'ES', month:'abril 2026', src:'Airbnb' },
{ q:'De los mejores alojamientos en los que me he quedado. Simplemente perfecto. Todo limpio, cuidando hasta el mínimo detalle, y la mejor hospitalidad.',
who:'Ara', country:'MX', month:'abril 2026', src:'Airbnb' },
],
en: [
{ q:'What a beautiful hostel! Elegant and modern, with two very well-appointed common areas. Incredibly clean and well kept. The owners were very kind. The fridge was full of bread, butter, jam and milk.',
who:'Kayla', country:'US', month:'May 2026', src:'Booking' },
{ q:'A really lovely, thoughtful space. Very clean and friendly. The rooms are pretty and spotless. Everything looks brand new. Excellent place.',
who:'Ezequiel', country:'CL', month:'May 2026', src:'Booking' },
{ q:'A new building, beautifully furnished and decorated. The shared areas encourage you to meet other guests.',
who:'Marc', country:'FR', month:'April 2026', src:'Booking' },
{ q:'From the very first moment, the impeccable cleanliness and the careful, stylish design surprised us. The shared area is very welcoming and equipped with everything you need.',
who:'Marta', country:'ES', month:'April 2026', src:'Airbnb' },
{ q:'One of the best places I\u2019ve ever stayed. Simply perfect. Everything spotless, attention to every detail, and the best hospitality.',
who:'Ara', country:'MX', month:'April 2026', src:'Airbnb' },
],
fr: [
{ q:'Quelle belle auberge ! Élégante et moderne, avec deux espaces communs très bien aménagés. Incroyablement propre et bien entretenue. Les propriétaires, très aimables. Le frigo était rempli de pain, de beurre, de confiture et de lait.',
who:'Kayla', country:'US', month:'mai 2026', src:'Booking' },
{ q:'Un espace très joli et bien pensé. Très propre et accueillant. Les chambres sont jolies et impeccables. Tout a l\u2019air neuf. Excellent endroit.',
who:'Ezequiel', country:'CL', month:'mai 2026', src:'Booking' },
{ q:'Un établissement neuf, joliment meublé et décoré, qui favorise la convivialité grâce à ses espaces communs.',
who:'Marc', country:'FR', month:'avril 2026', src:'Booking' },
{ q:'Dès le premier instant, la propreté impeccable et le design soigné et élégant nous ont surpris. L\u2019espace commun est très accueillant et équipé de tout le nécessaire.',
who:'Marta', country:'ES', month:'avril 2026', src:'Airbnb' },
{ q:'L\u2019un des meilleurs hébergements où j\u2019ai séjourné. Tout simplement parfait. Tout est propre, soigné dans les moindres détails, et la meilleure hospitalité.',
who:'Ara', country:'MX', month:'avril 2026', src:'Airbnb' },
],
}[lang] || [];
return (
);
}
const TS = {
wrap:{ padding:'70px 0', background:'#FAFAFA' },
inner:{ maxWidth:1280, margin:'0 auto', padding:'0 28px' },
head:{ marginBottom:36, maxWidth:680 },
eyebrow:{ fontFamily:'Montserrat, sans-serif', fontWeight:700, fontSize:11,
letterSpacing:'.22em', textTransform:'uppercase', color:'#6B6B6B' },
h2:{ fontFamily:'Montserrat, sans-serif', fontWeight:900, fontSize:'clamp(26px,2.8vw,38px)',
lineHeight:1.1, letterSpacing:'-0.01em', margin:'10px 0 0', color:'#1A1A1A' },
scrollOuter:{ marginRight:-28, overflow:'hidden' },
grid:{ display:'flex', gap:14, overflowX:'auto', scrollSnapType:'x mandatory',
paddingRight:28, paddingBottom:8, scrollbarWidth:'thin' },
card:{ flex:'0 0 320px', scrollSnapAlign:'start',
background:'#fff', borderRadius:14, padding:'20px 20px 16px',
border:'1px solid #ECECEC', margin:0 },
quote:{ fontFamily:'Inter, sans-serif', fontSize:14, color:'#1A1A1A',
lineHeight:1.55, margin:'0 0 12px', fontStyle:'italic' },
cap:{ display:'flex', flexWrap:'wrap', alignItems:'center', gap:'2px 6px',
fontFamily:'ui-monospace, monospace', fontSize:11, color:'#6B6B6B' },
who:{ fontWeight:700, color:'#1A1A1A' },
dot:{ opacity:.45 },
country:{},
month:{},
src:{ background:'#FFFBEA', color:'#8B6F00', padding:'1px 7px', borderRadius:999,
fontWeight:700, fontSize:10, letterSpacing:'.05em' },
};
/* ============== PARA QUIÉN ES / NO ES ============== */
function ParaQuien() {
const { lang } = useT();
const data = {
es: {
eyebrow:'Honestidad',
h:'Antes de reservar.',
p:'No es para todo el mundo, y eso está bien. Lee esto, así nadie se lleva sorpresas.',
ideal:'Ideal si',
noIdeal:'Quizá no es para ti si',
yes:[
'Buscas descanso o un sitio tranquilo para trabajar.',
'Viajas con un grupo y queréis el edificio entero.',
'Valoras el diseño cuidado y la privacidad.',
'Estás haciendo el Camino de Santiago.',
'Te organizas bien con check-in autónomo y código.',
],
no:[
'Buscas ambiente de fiesta o bar dentro del alojamiento.',
'Necesitas recepción 24/7 atendida en persona.',
'Esperas habitaciones grandes con mucho espacio para vivir.',
'Vienes con mascotas (no se admiten).',
],
},
en: {
eyebrow:'Honest fit',
h:'Before you book.',
p:'Not for everyone, and that\u2019s fine. Read this so nobody has surprises on arrival.',
ideal:'Ideal if',
noIdeal:'Maybe not for you if',
yes:[
'You want rest or a quiet place to work.',
'You\u2019re travelling with a group and want the whole building.',
'You value careful design and privacy.',
'You\u2019re walking the Camino de Santiago.',
'You\u2019re comfortable with self check-in via code.',
],
no:[
'You\u2019re looking for a party vibe inside the stay.',
'You need 24/7 staffed reception.',
'You expect large rooms with lots of living space.',
'You\u2019re travelling with pets (not allowed).',
],
},
}[lang] || {};
return (
{data.eyebrow}
{data.h}
{data.p}
{data.ideal}
{data.yes && data.yes.map((it,i) =>
{it}
)}
{data.noIdeal}
{data.no && data.no.map((it,i) =>
{it}
)}
);
}
const PQ = {
wrap:{ padding:'70px 0', background:'#fff' },
inner:{ maxWidth:1100, margin:'0 auto', padding:'0 28px' },
head:{ maxWidth:640, marginBottom:32 },
eyebrow:{ fontFamily:'Montserrat, sans-serif', fontWeight:700, fontSize:11,
letterSpacing:'.22em', textTransform:'uppercase', color:'#6B6B6B' },
h2:{ fontFamily:'Montserrat, sans-serif', fontWeight:900, fontSize:'clamp(28px,3.2vw,44px)',
lineHeight:1.05, letterSpacing:'-0.02em', margin:'10px 0 14px',
textTransform:'uppercase', color:'#1A1A1A' },
p:{ fontFamily:'Inter, sans-serif', fontSize:16, color:'#2B2B2B', lineHeight:1.55, margin:0 },
cols:{ display:'grid', gridTemplateColumns:'1fr 1fr', gap:18 },
col:{ borderRadius:16, padding:'22px 22px 24px', border:'1px solid #ECECEC' },
colYes:{ background:'#F6FBF5', borderColor:'#D4ECCB' },
colNo:{ background:'#FFF8F5', borderColor:'#F2D6CB' },
colLbl:{ display:'inline-flex', alignItems:'center', gap:8,
fontFamily:'Montserrat, sans-serif', fontWeight:800, fontSize:12,
letterSpacing:'.18em', textTransform:'uppercase', color:'#1A1A1A',
marginBottom:14 },
ul:{ listStyle:'none', padding:0, margin:0, display:'flex', flexDirection:'column', gap:10 },
li:{ fontFamily:'Inter, sans-serif', fontSize:14.5, color:'#2B2B2B', lineHeight:1.55,
paddingLeft:14, position:'relative' },
};
/* ============== CAMINO DE SANTIAGO ============== */
function Camino() {
const { lang } = useT();
const data = {
es: {
eyebrow:'Camino Francés',
h_a:'En el Camino,',
h_b:'sin desviarte.',
p:'El Santo está en la calle Juan de Austria, dentro del trazado oficial del Camino Francés a su paso por Burgos. La etapa hasta nosotros la cierras directamente; al día siguiente, el albergue está pensado para una salida temprana y autónoma.',
etapaH:'Tu etapa',
prev:'Etapa anterior',
here:'Aquí',
next:'Siguiente etapa',
prevName:'Atapuerca → Burgos',
hereName:'El Santo Hostel',
nextName:'Burgos → Hornillos del Camino',
prevKm:'21 km',
nextKm:'21 km',
hereKm:'Etapa 12',
svcH:'Servicios para peregrinos',
svc:[
['🛏', 'Habitación 01 adaptada', 'Acceso a nivel desde la calle. Baño accesible.'],
['🧺', 'Lavandería gratuita', 'Lavadora y secadora de uso libre 24h.'],
['🔑', 'Salida temprana sin recepción', 'Cerradura inteligente. Vete a la hora que necesites.'],
['☕', 'Café de cortesía', 'Cafetera lista en la cocina común desde el amanecer.'],
['🅿️', 'Bicis seguras', 'Patio interior con cámaras y enchufes para cargar.'],
],
mileH:'Distancias',
mile:[
['Santiago de Compostela','480 km'],
['Saint-Jean-Pied-de-Port (inicio)','316 km'],
['León (siguiente capital)','180 km'],
],
},
en: {
eyebrow:'French Way',
h_a:'On the Way,',
h_b:'no detours.',
p:'El Santo sits on Calle Juan de Austria, within the official trace of the Camino Francés as it crosses Burgos. You finish the stage right at our door; the building is built for an autonomous early departure the next morning.',
etapaH:'Your stage',
prev:'Previous stage',
here:'You are here',
next:'Next stage',
prevName:'Atapuerca → Burgos',
hereName:'El Santo Hostel',
nextName:'Burgos → Hornillos del Camino',
prevKm:'21 km',
nextKm:'21 km',
hereKm:'Stage 12',
svcH:'For pilgrims',
svc:[
['🛏', 'Accessible Room 01', 'Step-free access from the street. Adapted bathroom.'],
['🧺', 'Free laundry', 'Washer and dryer available 24/7.'],
['🔑', 'Early departure, no reception', 'Smart lock. Leave whenever you need to.'],
['☕', 'Complimentary coffee', 'Espresso machine ready in the shared kitchen from dawn.'],
['🅿️', 'Secure bikes', 'Inner courtyard with cameras and outlets.'],
],
mileH:'Distances',
mile:[
['Santiago de Compostela','480 km'],
['Saint-Jean-Pied-de-Port (start)','316 km'],
['León (next capital)','180 km'],
],
},
}[lang] || {};
return (