/* =========================================================
   La Pradera del Arenal — propuesta de rediseño
   Paleta: dosel (verde), ceniza (carbón), ascua de volcán,
   oro de pradera, piedra cálida.
   Tipografía: Fraunces (display) + Work Sans (cuerpo/labels)
   ========================================================= */

:root{
  --canopy: #16302A;      /* verde dosel, fondo oscuro principal */
  --canopy-2: #0F221D;    /* verde más oscuro, para profundidad */
  --ember: #C1502E;       /* ascua de volcán, acento de acción */
  --ember-dark:#A23F22;
  --gold: #C9A227;        /* oro de pradera, detalle/línea */
  --stone: #F3EEE1;       /* piedra cálida, fondo claro */
  --stone-2:#EAE2CC;
  --charcoal:#241F1B;     /* texto sobre claro */
  --mist: rgba(243,238,225,0.75);

  --display: "Fraunces", "Iowan Old Style", serif;
  --body: "Work Sans", -apple-system, "Segoe UI", sans-serif;

  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--body);
  color:var(--charcoal);
  background:var(--stone);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--display);font-weight:600;margin:0 0 .4em;letter-spacing:-0.01em;}
.eyebrow{
  font-family:var(--body);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  font-weight:600;
  color:var(--ember);
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
section{position:relative;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* ---------- header / nav ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 32px;
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
.site-header.solid{
  background:var(--canopy);
  padding:12px 32px;
  box-shadow:0 6px 24px rgba(0,0,0,.18);
}
.brand{
  font-family:var(--display);
  font-size:1.4rem;
  color:var(--stone);
  letter-spacing:.01em;
  display:flex;align-items:baseline;gap:.4em;
}
.brand em{color:var(--gold);font-style:italic;font-weight:600;}
.main-nav{display:flex;align-items:center;gap:34px;}
.main-nav a{
  color:var(--mist);
  font-size:.85rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:6px 0;
  border-bottom:1px solid transparent;
  transition:color .2s, border-color .2s;
}
.main-nav a:hover, .main-nav a.active{color:var(--stone);border-color:var(--gold);}
.btn{
  display:inline-block;
  font-family:var(--body);
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:600;
  padding:13px 26px;
  border-radius:2px;
  background:var(--ember);
  color:var(--stone);
  transition:background .2s ease, transform .2s ease;
}
.btn:hover{background:var(--ember-dark);transform:translateY(-1px);}
.btn.ghost{background:transparent;border:1px solid var(--stone);color:var(--stone);}
.btn.ghost:hover{background:var(--stone);color:var(--canopy);}
.nav-cta{display:none;}
.hamburger{display:none;}

/* ---------- hero slider ---------- */
.hero{
  position:relative;height:100vh;min-height:560px;
  overflow:hidden;background:var(--canopy-2);
}
.hero-slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.4s ease;
}
.hero-slide.active{opacity:1;}
.hero-slide::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(15,34,29,.55) 0%, rgba(15,34,29,.35) 45%, rgba(15,34,29,.85) 100%);
}
.hero-content{
  position:relative;z-index:2;height:100%;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 28px 130px;max-width:var(--maxw);margin:0 auto;
}
.hero-eyebrow{color:var(--gold);font-family:var(--body);text-transform:uppercase;letter-spacing:.25em;font-size:.78rem;margin-bottom:18px;}
.hero-title{
  color:var(--stone);
  font-size:clamp(2.6rem, 7vw, 5.4rem);
  line-height:1;
  margin-bottom:22px;
  max-width:760px;
}
.hero-title .italic{font-style:italic;color:var(--gold);}
.hero-sub{color:var(--mist);max-width:480px;font-size:1.05rem;margin-bottom:32px;}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;}

.hero-dots{
  position:absolute;bottom:44px;left:50%;transform:translateX(-50%);
  z-index:3;display:flex;gap:10px;
}
.hero-dots button{
  width:34px;height:3px;border:none;background:rgba(243,238,225,.35);cursor:pointer;padding:0;
  transition:background .3s;
}
.hero-dots button.active{background:var(--gold);}

/* ---------- grass-blade divider (signature element) ---------- */
.grass-divider{display:block;width:100%;height:64px;color:var(--stone);margin-top:-2px;}
.grass-divider.flip{transform:rotate(180deg);color:var(--canopy);}
.grass-divider path{fill:currentColor;}
.section-canopy .grass-divider{color:var(--canopy);}

/* ---------- intro / essence section ---------- */
.essence{background:var(--stone);padding:110px 0 90px;}
.essence-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;
}
.essence-text p{font-size:1.05rem;color:#4a443c;max-width:480px;}
.essence-text h2{font-size:clamp(1.9rem,3.4vw,2.6rem);max-width:460px;}
.essence-collage{position:relative;height:420px;}
.essence-collage img{
  position:absolute;border-radius:3px;box-shadow:0 22px 44px rgba(22,48,42,.25);
  object-fit:cover;
}
.essence-collage .img-a{width:64%;height:78%;top:0;left:0;z-index:2;}
.essence-collage .img-b{width:46%;height:52%;bottom:0;right:0;z-index:3;border:6px solid var(--stone);}

/* ---------- pillars strip ---------- */
.pillars{background:var(--canopy);color:var(--stone);padding:70px 0;}
.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.pillar{padding:0 34px;border-left:1px solid rgba(243,238,225,.15);}
.pillar:first-child{border-left:none;padding-left:0;}
.pillar svg{width:30px;height:30px;color:var(--gold);margin-bottom:18px;}
.pillar h3{font-size:1.15rem;color:var(--stone);}
.pillar p{color:var(--mist);font-size:.95rem;margin:0;}

/* ---------- rooms preview / grid (shared) ---------- */
.rooms-section{padding:100px 0;background:var(--stone);}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px;flex-wrap:wrap;}
.section-head h2{font-size:clamp(2rem,3.6vw,2.8rem);max-width:560px;}
.rooms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.room-card{
  background:#fff;border-radius:4px;overflow:hidden;
  box-shadow:0 14px 32px rgba(36,31,27,.08);
  transition:transform .35s ease, box-shadow .35s ease;
}
.room-card:hover{transform:translateY(-6px);box-shadow:0 24px 44px rgba(36,31,27,.16);}
.room-card .room-photo{height:230px;overflow:hidden;}
.room-card .room-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.room-card:hover .room-photo img{transform:scale(1.06);}
.room-card .room-body{padding:24px 26px 28px;}
.room-card .eyebrow{display:block;margin-bottom:8px;}
.room-card h3{font-size:1.3rem;margin-bottom:10px;}
.room-card p{font-size:.92rem;color:#5a534a;margin-bottom:18px;}
.amenities{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.amenities span{
  font-size:.72rem;letter-spacing:.03em;text-transform:uppercase;
  color:var(--canopy);border:1px solid var(--stone-2);background:var(--stone-2);
  padding:5px 10px;border-radius:20px;
}
.room-card .btn{width:100%;text-align:center;font-size:.78rem;}

.rooms-cta-row{text-align:center;margin-top:52px;}

/* ---------- rooms page hero (interior banner) ---------- */
.page-banner{
  position:relative;height:56vh;min-height:380px;
  background-size:cover;background-position:center;
  display:flex;align-items:flex-end;
}
.page-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(15,34,29,.45), rgba(15,34,29,.92));}
.page-banner-content{position:relative;z-index:2;padding:0 28px 64px;max-width:var(--maxw);margin:0 auto;width:100%;}
.page-banner-content .eyebrow{color:var(--gold);}
.page-banner-content h1{color:var(--stone);font-size:clamp(2.4rem,5vw,3.8rem);}
.breadcrumb{color:var(--mist);font-size:.85rem;margin-top:10px;}
.breadcrumb a{color:var(--gold);}

.rooms-intro{padding:80px 0 20px;background:var(--stone);}
.rooms-intro p{max-width:680px;font-size:1.05rem;color:#4a443c;}

.rooms-grid.full{grid-template-columns:repeat(2,1fr);}
.rooms-grid.full .room-card{display:grid;grid-template-columns:1fr 1fr;}
.rooms-grid.full .room-photo{height:100%;}
.rooms-grid.full .room-body{display:flex;flex-direction:column;justify-content:center;}

.amenity-strip{background:var(--canopy-2);color:var(--stone);padding:44px 0;}
.amenity-strip .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;}
.amenity-strip .item{display:flex;align-items:center;gap:12px;font-size:.92rem;color:var(--mist);}
.amenity-strip svg{width:22px;height:22px;color:var(--gold);flex-shrink:0;}

/* ---------- cta band ---------- */
.cta-band{
  background:var(--canopy);color:var(--stone);
  padding:110px 0;text-align:center;position:relative;overflow:hidden;
}
.cta-band h2{font-size:clamp(2.2rem,4.6vw,3.6rem);max-width:760px;margin:0 auto 26px;}
.cta-band p{color:var(--mist);max-width:520px;margin:0 auto 36px;}

/* ---------- footer ---------- */
footer{background:var(--canopy-2);color:var(--mist);padding:70px 0 30px;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:50px;margin-bottom:50px;}
.footer-brand .brand{margin-bottom:16px;}
.footer-brand p{font-size:.92rem;max-width:320px;}
footer h4{color:var(--stone);font-family:var(--body);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px;}
footer ul{list-style:none;padding:0;margin:0;}
footer li{margin-bottom:10px;font-size:.92rem;}
footer a:hover{color:var(--gold);}
.footer-map iframe{width:100%;height:100%;min-height:180px;border:0;border-radius:3px;filter:grayscale(.3) sepia(.15);}
.footer-bottom{
  border-top:1px solid rgba(243,238,225,.12);
  padding-top:24px;display:flex;justify-content:space-between;
  font-size:.8rem;color:rgba(243,238,225,.5);flex-wrap:wrap;gap:12px;
}

/* ---------- responsive ---------- */
@media (max-width: 980px){
  .essence-grid{grid-template-columns:1fr;gap:44px;}
  .essence-collage{height:320px;}
  .pillars-grid{grid-template-columns:1fr;gap:36px;}
  .pillar{border-left:none;padding-left:0;border-top:1px solid rgba(243,238,225,.15);padding-top:30px;}
  .pillar:first-child{border-top:none;padding-top:0;}
  .rooms-grid{grid-template-columns:1fr 1fr;}
  .rooms-grid.full{grid-template-columns:1fr;}
  .rooms-grid.full .room-card{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 720px){
  .main-nav{
    position:fixed;top:0;right:0;height:100vh;width:78%;max-width:320px;
    background:var(--canopy);flex-direction:column;align-items:flex-start;
    justify-content:center;gap:26px;padding:40px;
    transform:translateX(100%);transition:transform .35s ease;
  }
  .main-nav.open{transform:translateX(0);}
  .hamburger{
    display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;z-index:200;
    padding:6px;
  }
  .hamburger span{width:24px;height:2px;background:var(--stone);}
  .rooms-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:36px;}
  .essence-collage{height:280px;}
}
