/* HF_DESIGN_V3 — inspiración editorial, sin alterar FNSBooking. */
:root { --hf-v3-ink:#273630; --hf-v3-gold:#a5835e; --hf-v3-cream:#f7f4ef; }
body { font-family:'Barlow', Arial, sans-serif; font-size:16px; line-height:1.7; }
h1,h2,h3,.hf-review-card blockquote { font-family:'Gilda Display', Georgia, serif; font-weight:400; }
.hf-header .hf-navigation a { font-family:'Barlow',Arial,sans-serif; }
.hf-hero { background-image:linear-gradient(90deg,rgba(14,28,24,.61),rgba(14,28,24,.24) 52%,rgba(14,28,24,.06)),url('fachada.jpg'); }
.hf-hero h1 { font-size:clamp(56px,6.6vw,100px); line-height:1.06; }
.hf-hero .hf-eyebrow { color:#ffebd4; }
.hf-hero .hf-hero-content>p { font-size:19px; line-height:1.6; text-shadow:0 1px 10px rgba(0,0,0,.34); }
.hf-intro h2 { letter-spacing:-.018em; line-height:1.13; }
.hf-intro p { font-size:18px; }
.hf-grid .hf-card h3 { letter-spacing:-.02em; }
.hf-menu-toggle { display:none; border:1px solid #d8d4cf; background:#fff; color:var(--hf-v3-ink); cursor:pointer; padding:8px 13px; align-items:center; gap:10px; font:600 12px 'Barlow',sans-serif; text-transform:uppercase; letter-spacing:.12em; }
.hf-menu-toggle>span:first-child { width:19px; height:12px; display:block; border-top:2px solid currentColor; border-bottom:2px solid currentColor; position:relative; }
.hf-menu-toggle>span:first-child:after { content:""; position:absolute; top:4px; left:0; right:0; border-top:2px solid currentColor; }
.hf-menu-toggle:focus-visible,.hf-reviews-controls button:focus-visible { outline:3px solid #946d48; outline-offset:3px; }

/* Reseñas: sección editorial con carrusel nativo, scroll táctil y progresivo. */
.hf-reviews { background:var(--hf-v3-cream); padding:104px 0 88px; color:var(--hf-v3-ink); }
.hf-reviews-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:37px; }
.hf-reviews-heading-copy { max-width:760px; }
.hf-reviews-eyebrow { margin:0 0 14px; font-size:11px; font-weight:600; letter-spacing:.30em; color:#846a4f; }
.hf-reviews h2 { font-size:clamp(37px,4.7vw,64px); line-height:1.14; letter-spacing:-.015em; margin:0 0 14px; }
.hf-reviews-heading-copy>p:last-child { font-size:17px; margin:0; }
.hf-reviews-controls { display:flex; gap:10px; flex:none; }
.hf-reviews-controls button { border:1px solid #a9a49c; background:transparent; color:var(--hf-v3-ink); width:48px; height:48px; border-radius:0; font-size:24px; line-height:1; cursor:pointer; }
.hf-reviews-controls button:hover:not(:disabled) { background:var(--hf-v3-ink); color:white; }
.hf-reviews-controls button:disabled { opacity:.32; cursor:default; }
.hf-reviews-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 22px) / 2); gap:22px; overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#bbb1a5 transparent; padding:0 0 10px; }
.hf-review-card { scroll-snap-align:start; min-width:0; min-height:318px; display:flex; flex-direction:column; background:white; border:1px solid #ece7e1; padding:38px 39px 30px; }
.hf-review-stars { color:#a9844e; font-size:17px; letter-spacing:4px; line-height:1; margin-bottom:22px; }
.hf-review-card blockquote { font-size:clamp(21px,2vw,27px); line-height:1.43; margin:0 0 24px; }
.hf-review-note { font-size:13px; line-height:1.5; color:#716f6a; margin:-4px 0 23px; }
.hf-review-bottom { display:flex; align-items:center; gap:14px; margin-top:auto; padding-top:17px; border-top:1px solid #eee8df; }
.hf-review-avatar { width:41px; height:41px; display:grid; place-items:center; flex:none; border-radius:50%; background:#e9e1d5; color:#725d49; font-family:'Gilda Display',Georgia,serif; font-size:21px; }
.hf-review-bottom strong { display:block; font-size:14px; line-height:1.3; font-weight:600; }
.hf-review-bottom div>span { display:block; font-size:12px; color:#77746e; margin-top:3px; }
.hf-reviews-foot { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:15px 25px; margin-top:26px; }
.hf-reviews-foot p { color:#726b62; font-size:12px; margin:0; max-width:560px; }
.hf-reviews-foot a { font-size:13px; text-decoration:none; font-weight:600; letter-spacing:.04em; border-bottom:1px solid #967f66; padding-bottom:4px; }
.hf-reviews-foot a:hover { color:#986d47; }

@media(max-width:850px) {
  .hf-header-inner { flex-direction:row; align-items:center; justify-content:space-between; flex-wrap:wrap; }
  .hf-menu-toggle { display:inline-flex; }
  .hf-navigation { width:100%; padding:8px 0 12px; }
  body.hf-mobile-nav-ready .hf-navigation { display:none; }
  body.hf-mobile-nav-ready .hf-navigation.is-open { display:flex; flex-direction:column; align-items:stretch; gap:15px; }
  .hf-navigation .hf-menu { flex-direction:column; align-items:flex-start; gap:0; width:100%; }
  .hf-navigation .hf-menu li { width:100%; }
  .hf-navigation .hf-menu a { display:block; font-size:13px; padding:9px 0; }
  .hf-navigation .hf-reservar { display:block; align-self:flex-start; }
  .hf-logo { max-width:190px; }
  .hf-hero { background-position:42% center; }
  .hf-reviews { padding:70px 0 60px; }
  .hf-reviews-heading { align-items:flex-end; }
  .hf-review-card { padding:31px 28px 26px; min-height:310px; }
}
@media(max-width:640px) {
  .hf-reviews-heading { align-items:flex-start; flex-direction:column; gap:20px; }
  .hf-reviews-track { grid-auto-columns:100%; }
  .hf-review-card blockquote { font-size:23px; }
  .hf-reviews-foot { display:block; }
  .hf-reviews-foot a { display:inline-block; margin-top:15px; }
  .hf-hero h1 { font-size:clamp(52px,11.5vw,72px); }
}
@media(prefers-reduced-motion:reduce) {
  .hf-reviews-track { scroll-behavior:auto; }
}
