  :root{
    /* Paleta extraída del material de marca real del hostal */
    --cream: #FEF3E4;
    --cream-deep: #F7E5C7;
    --brown: #4A342D;
    --ink: #2A1F19;
    --coral: #FF5738;
    --coral-deep: #E23820;
    --blue: #1A6E9D;
    --blue-deep: #145670;
    --magenta: #982E6F;
    --rose: #D39A87;
    --line: rgba(42,31,25,0.14);
    --radius: 6px;
    --maxw: 1160px;
    --grad-night-dawn: linear-gradient(180deg, #302B33 0%, #4B3588 22%, #5D337D 38%, #972D5B 55%, #CB0B32 70%, #E23820 84%, #E8880F 100%);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Karla', sans-serif;
    color:var(--ink);
    background:var(--cream);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces', serif;
    font-weight:600;
    line-height:1.15;
    margin:0 0 .5em;
    color:var(--brown);
  }
  p{margin:0 0 1em;}
  a{color:inherit;}
  img{display:block;max-width:100%;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
  .measure{max-width:62ch;}
  section{padding:90px 0;}
  :focus-visible{outline:3px solid var(--coral); outline-offset:3px;}

  /* ---------- Header ---------- */
  header.site{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(254,243,228,0.95);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
    transition:all 0.3s ease;
  }
  .header-inner{
    max-width:var(--maxw); margin:0 auto; padding:12px 28px;
    display:flex; align-items:center; justify-content:space-between; gap:20px;
  }
  .brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
  .brand img{height:52px; width:auto; object-fit:contain;}
  .nav-links{display:flex; align-items:center; gap:24px;}
  .nav-links a{
    text-decoration:none; font-weight:600; font-size:0.92rem; color:var(--brown);
    transition:color .2s;
  }
  .nav-links a:hover{color:var(--coral);}

  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'Karla',sans-serif; font-weight:700; font-size:.92rem;
    padding:12px 22px; border-radius:var(--radius);
    text-decoration:none; border:1px solid transparent;
    transition:transform .15s ease, filter .15s ease, box-shadow .15s ease;
    white-space:nowrap;
    cursor:pointer;
  }
  .btn:hover{transform:translateY(-1px); filter:brightness(1.06); box-shadow:0 4px 12px rgba(42,31,25,0.12);}
  .btn-primary{background:var(--blue); color:var(--cream);}
  .btn-primary:hover{background:var(--blue-deep);}
  .btn-coral{background:var(--coral); color:#fff;}
  .btn-coral:hover{background:var(--coral-deep);}
  .btn-ghost{background:transparent; color:var(--brown); border-color:var(--brown);}
  .btn-ghost:hover{background:var(--brown); color:#fff;}
  .btn svg, .btn img{width:18px;height:18px;}
  .btn-sm{padding:9px 16px; font-size:.84rem;}

  /* ---------- Hero ---------- */
  .hero{
    position:relative; padding:0; height:min(94vh, 780px); min-height:580px;
    display:flex; align-items:flex-end; overflow:hidden; margin-top:68px;
  }
  .hero-bg{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 38%;
  }
  .hero-scrim{
    position:absolute; inset:0;
    background:linear-gradient(0deg, rgba(20,10,10,.88) 0%, rgba(20,10,10,.52) 45%, rgba(20,10,10,.15) 75%);
  }
  .hero-content{position:relative; z-index:2; width:100%; padding:0 28px 72px; max-width:var(--maxw); margin:0 auto;}
  .eyebrow-line{
    display:flex; align-items:center; gap:10px; margin-bottom:18px;
    color:#F6C98D; font-size:.9rem; font-weight:600; letter-spacing:.03em; text-transform:uppercase;
  }
  .eyebrow-line::before{content:""; width:32px; height:2px; background:#F6C98D;}
  .hero h1{
    color:#fff; font-size:clamp(2.3rem, 4.5vw, 3.8rem);
    max-width:16ch; line-height:1.06; margin-bottom:16px;
    text-shadow:0 2px 10px rgba(0,0,0,0.3);
  }
  .hero-sub{
    max-width:54ch; font-size:1.15rem; color:#F7EFE6; margin-bottom:32px;
    line-height:1.55; text-shadow:0 1px 4px rgba(0,0,0,0.3);
  }
  .hero-actions{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}

  /* Badges bar */
  .badges-bar{
    background:#fff; border-bottom:1px solid var(--line); padding:22px 0;
  }
  .badges-grid{
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  }
  .badge-item{
    display:flex; align-items:center; gap:14px; opacity:0.92;
  }
  .badge-item img{height:46px; width:auto; object-fit:contain;}
  .badge-text{font-size:.82rem; line-height:1.3; color:var(--brown); font-weight:600;}

  /* ---------- Story ---------- */
  .story{background:var(--cream);}
  .story-grid{
    display:grid; grid-template-columns:1.05fr .95fr; gap:70px; align-items:center;
  }
  .kicker{
    font-family:'Karla',sans-serif; font-weight:700; font-size:.84rem;
    letter-spacing:.05em; color:var(--magenta); margin-bottom:14px; text-transform:uppercase;
  }
  .facts{
    list-style:none; padding:0; margin:28px 0 0;
    display:grid; grid-template-columns:1fr 1fr; gap:18px 24px;
  }
  .facts li{display:flex; gap:12px; align-items:flex-start; font-size:.95rem; line-height:1.45;}
  .facts svg{width:22px; height:22px; flex-shrink:0; margin-top:2px; color:var(--blue);}
  .photo-collage{position:relative; padding:10px 40px 40px 0;}
  .photo-collage .main-photo{
    border-radius:6px; box-shadow:0 18px 36px rgba(42,31,25,.18);
    aspect-ratio:4/5; object-fit:cover; width:100%;
  }
  .photo-collage .inset-photo{
    position:absolute; right:0; bottom:0; width:48%; aspect-ratio:1/1; object-fit:cover;
    border-radius:6px; border:6px solid var(--cream); box-shadow:0 16px 30px rgba(42,31,25,.25);
    transform:rotate(2.5deg);
  }

  /* ---------- Rooms ---------- */
  .rooms{background:var(--cream-deep);}
  .section-head{max-width:58ch; margin-bottom:44px;}
  .rooms-head{display:grid; grid-template-columns:1fr 260px; gap:40px; align-items:end; margin-bottom:44px;}
  .rooms-head img{border-radius:6px; aspect-ratio:4/5; object-fit:cover; box-shadow:0 14px 28px rgba(42,31,25,.16);}
  table.rooms-table{
    width:100%; border-collapse:collapse; background:var(--cream);
    border:1px solid var(--line); border-radius:6px; overflow:hidden;
    box-shadow:0 6px 18px rgba(42,31,25,0.06);
  }
  table.rooms-table th, table.rooms-table td{
    text-align:left; padding:18px 22px; border-bottom:1px solid var(--line);
    font-size:.96rem;
  }
  table.rooms-table th{
    font-family:'Fraunces', serif; font-weight:600; color:var(--brown);
    font-size:1.05rem; background:#fff; border-bottom:2px solid var(--brown);
  }
  table.rooms-table tr:hover td{background:rgba(255,255,255,0.6);}
  table.rooms-table tr:last-child td{border-bottom:none;}
  table.rooms-table td.price{font-weight:700; color:var(--coral-deep); font-size:1.05rem; white-space:nowrap;}
  .rooms-note{margin-top:20px; font-size:.92rem; color:var(--blue-deep); font-weight:600; display:flex; align-items:center; gap:8px;}
  .rooms-cards{display:none;}

  /* ---------- Services ---------- */
  .services{background:var(--cream);}
  .service-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line); border-radius:6px; overflow:hidden;
  }
  .service-item{
    background:var(--cream); padding:32px 28px; min-height:160px;
    display:flex; flex-direction:column; gap:12px; transition:background .2s;
  }
  .service-item:hover{background:#fff;}
  .service-item svg{width:28px; height:28px; color:var(--coral);}
  .service-item h3{font-size:1.08rem; margin:0;}
  .service-item p{font-size:.9rem; color:#544c3f; margin:0; line-height:1.5;}

  /* ---------- Restaurant ---------- */
  .restaurant{background:var(--coral); color:#fff; position:relative;}
  .restaurant-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center;}
  .restaurant h2{color:#fff;}
  .dish-tag{
    display:inline-block; font-family:'Fraunces', serif; font-style:italic; font-weight:600;
    font-size:1.35rem; border-bottom:2px solid rgba(255,255,255,.6); padding-bottom:3px; margin:14px 0 18px;
  }
  .hours-pill{
    display:inline-flex; gap:10px; align-items:center; background:rgba(255,255,255,.18);
    padding:10px 18px; border-radius:30px; font-size:.88rem; margin-top:14px; font-weight:600;
  }
  .restaurant-photo{width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:6px; box-shadow:0 22px 44px rgba(74,20,10,.35);}

  /* ---------- Escapada / timeline ---------- */
  .escapada{background:var(--grad-night-dawn); color:#fff;}
  .escapada h2{color:#fff;}
  .escapada .kicker{color:#F6C98D;}
  .escapada-sub{font-family:'Fraunces',serif; font-style:italic; font-weight:500; font-size:1.3rem; color:#F3E4CE; margin-bottom:10px;}
  .escapada-intro{max-width:62ch; color:#EFE1D6; font-size:1.02rem;}
  .escapada-photo{
    width:100%; max-height:420px; object-fit:cover; border-radius:6px; margin:36px 0 16px;
    box-shadow:0 22px 44px rgba(10,5,15,.4);
  }
  .timeline{margin-top:44px; display:grid; grid-template-columns:1fr 1fr; gap:48px;}
  .day{position:relative; padding-left:36px; border-left:2px solid rgba(255,255,255,.3);}
  .day .daynum{
    position:absolute; left:-10px; top:0; width:18px; height:18px; border-radius:50%;
    background:#F6C98D; border:3px solid #4B3588;
  }
  .day h3{color:#fff; font-size:1.2rem; margin-bottom:10px;}
  .day p{color:#EFE1D6; font-size:.96rem; line-height:1.55;}
  .escapada-price{
    margin-top:48px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
    gap:24px; border-top:1px solid rgba(255,255,255,.25); padding-top:36px;
  }
  .escapada-price .amount{font-family:'Fraunces',serif; font-size:2.2rem; color:#F6C98D;}
  .escapada-price .fine{font-size:.85rem; color:#DCCCC0; max-width:36ch; margin-top:4px;}

  /* ---------- Discover ---------- */
  .discover{background:var(--cream);}
  .discover-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line);}
  .discover-list li{
    display:grid; grid-template-columns:140px 1fr; gap:26px; align-items:baseline;
    padding:26px 0; border-bottom:1px solid var(--line);
  }
  .discover-list .dist{font-family:'Fraunces',serif; font-style:italic; font-weight:600; color:var(--coral-deep); font-size:1.05rem;}
  .discover-list h3{margin:0 0 6px; font-size:1.12rem;}
  .discover-list p{margin:0; font-size:.92rem; color:#544c3f; line-height:1.5;}

  /* ---------- Testimonials ---------- */
  .reviews{background:var(--cream-deep);}
  .reviews-head{display:grid; grid-template-columns:1fr 240px; gap:40px; align-items:end; margin-bottom:44px;}
  .reviews-head img{border-radius:6px; aspect-ratio:4/5; object-fit:cover; box-shadow:0 14px 28px rgba(42,31,25,.16);}
  .review-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .review-card{
    background:var(--cream); border:1px solid var(--line); padding:28px 24px; border-radius:6px;
    display:flex; flex-direction:column; box-shadow:0 4px 12px rgba(42,31,25,.04);
  }
  .review-card .stars{color:var(--coral); letter-spacing:2px; margin-bottom:14px; font-size:1rem;}
  .review-card p{font-size:.94rem; color:#3a332a; font-style:italic; flex-grow:1; line-height:1.55;}
  .review-card .who{font-style:normal; font-size:.84rem; color:#847a67; margin-top:14px; font-weight:600;}

  /* ---------- Location ---------- */
  .location{background:var(--blue-deep); color:var(--cream);}
  .location h2{color:var(--cream);}
  .loc-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:54px; align-items:start;}
  .loc-detail{display:flex; gap:16px; margin-bottom:24px;}
  .loc-detail svg{width:22px; height:22px; flex-shrink:0; margin-top:3px; color:#F6C98D;}
  .loc-detail strong{display:block; font-size:1rem; margin-bottom:2px;}
  .loc-detail span{font-size:.92rem; color:#CFE0DE; line-height:1.5;}
  .map-frame{border:1px solid rgba(254,243,228,.25); border-radius:6px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 14px 28px rgba(0,0,0,0.25);}
  .map-frame iframe{width:100%; height:100%; border:0; filter:contrast(1.05);}

  /* ---------- Final CTA ---------- */
  .final-cta{background:var(--coral); color:#fff; text-align:center;}
  .final-cta h2{color:#fff; max-width:18ch; margin:0 auto 12px; font-size:clamp(2rem, 3.5vw, 2.8rem);}
  .final-cta p{max-width:48ch; margin:0 auto 32px; color:#FFE9E1; font-size:1.05rem;}

  /* ---------- Footer ---------- */
  footer{background:var(--ink); color:#C9C2B2; padding:56px 0 32px; font-size:.88rem;}
  .foot-grid{display:flex; flex-wrap:wrap; justify-content:space-between; gap:28px; align-items:center; border-bottom:1px solid rgba(255,255,255,.1); padding-bottom:32px; margin-bottom:24px;}
  .foot-brand{display:flex; align-items:center; gap:14px;}
  .foot-brand img{height:54px; width:auto; object-fit:contain;}
  .foot-brand span{font-family:'Fraunces', serif; color:var(--cream); font-size:1.05rem; line-height:1.35;}
  .foot-links{display:flex; gap:24px; flex-wrap:wrap;}
  .foot-links a{text-decoration:none; color:#C9C2B2; transition:color .2s;}
  .foot-links a:hover{color:var(--cream);}
  .foot-bottom{display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; color:#8B8474;}

  /* ---------- Whatsapp float (mobile & desktop) ---------- */
  .wa-float{
    position:fixed; bottom:24px; right:24px; z-index:110;
    width:58px; height:58px; border-radius:50%; background:#25D366;
    display:flex; align-items:center; justify-content:center; box-shadow:0 8px 24px rgba(0,0,0,.28);
    transition:transform .2s ease, box-shadow .2s ease; text-decoration:none;
  }
  .wa-float:hover{transform:scale(1.08); box-shadow:0 10px 28px rgba(0,0,0,.35);}
  .wa-float img{width:34px; height:34px;}

  /* ---------- Responsive ---------- */
  @media (max-width:960px){
    .nav-links{display:none;}
    .story-grid, .restaurant-grid, .loc-grid{grid-template-columns:1fr;}
    .story-grid{gap:40px;}
    .photo-collage{padding:0 20px 20px 0; max-width:380px; margin:0 auto;}
    .timeline{grid-template-columns:1fr;}
    .service-grid{grid-template-columns:1fr 1fr;}
    .review-grid{grid-template-columns:1fr;}
    .discover-list li{grid-template-columns:1fr; gap:8px;}
    section{padding:68px 0;}
    .hero{height:auto; min-height:580px; padding-top:60px;}
  }
  @media (max-width:720px){
    .rooms-head{grid-template-columns:1fr; gap:20px;}
    .rooms-head img{aspect-ratio:16/9; max-height:220px;}
    table.rooms-table{display:none;}
    .rooms-cards{display:grid; gap:16px;}
    .room-card{
      background:var(--cream); border:1px solid var(--line); border-radius:var(--radius);
      padding:20px 22px; box-shadow:0 4px 10px rgba(42,31,25,0.04);
    }
    .room-card h3{font-size:1.1rem; margin-bottom:6px;}
    .room-card .dist{color:#5b5346; font-size:.92rem; margin-bottom:12px;}
    .room-card .price-row{display:flex; justify-content:space-between; align-items:center;}
    .room-card .price{font-weight:700; color:var(--coral-deep); font-size:1.1rem;}
    .badge-item{flex-basis:45%;}
  }
  @media (max-width:520px){
    .service-grid{grid-template-columns:1fr;}
    .facts{grid-template-columns:1fr;}
    .header-inner .btn-primary .label-full{display:none;}
    .badge-item{flex-basis:100%;}
  }
