@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;1,400&family=Poppins:wght@300;400;500;600&family=Lato:wght@300;400;700&display=swap');

:root{
  --grafito:#3B2A1F;       /* café espresso oscuro (antes gris casi negro) */
  --grafito-soft:#8A6E58;  /* café taupe cálido (antes gris suave) */
  --oro:#B8763E;           /* cobre (antes dorado) */
  --oro-rosa:#A9673F;      /* terracota (antes rosa polvo) */
  --crema:#FBF4EA;
  --blanco:#FFFFFF;
  --line:#E8DCCB;
  --rojo:#AE4328;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Lato', sans-serif;
  background:var(--crema);
  color:var(--grafito);
  overflow-x:hidden;
  cursor:none;
}
img,video{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
h1,h2,h3{font-family:'Lora', serif; font-weight:500; line-height:1.15;}
.eyebrow{
  font-family:'Poppins', sans-serif;
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--oro-rosa);
  font-weight:500;
}
.section-pad{ padding: 5.5rem 6vw; scroll-margin-top: 78px; }
#sin-costo, #con-costo, #municipios{ scroll-margin-top: 78px; }
@media(max-width:720px){ .section-pad{ padding: 3.5rem 6vw; } }

/* ---------- cursor halo ---------- */
#cursor-halo{
  position:fixed; top:0; left:0; width:38px; height:38px;
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(184,118,62,.55) 0%, rgba(184,118,62,.18) 45%, rgba(184,118,62,0) 72%);
  mix-blend-mode:normal;
  transition:width .25s ease, height .25s ease, background .25s ease, opacity .3s ease;
  will-change:transform;
  opacity:0;
}
#cursor-halo.active{opacity:1;}
#cursor-halo.grow{width:90px; height:90px; background:radial-gradient(circle, rgba(184,118,62,.35) 0%, rgba(184,118,62,.12) 50%, rgba(184,118,62,0) 75%);}
@media(hover:none), (pointer:coarse){
  #cursor-halo{display:none;}
  body{cursor:auto;}
}

/* ---------- nav ---------- */
#navbar{
  position:fixed; top:0; left:0; width:100%; z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem 5vw;
  background:transparent;
  transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
}
#navbar.scrolled{
  background:rgba(250,247,245,.92);
  backdrop-filter:blur(10px);
  padding:.7rem 5vw;
  box-shadow:0 1px 0 var(--line);
}
#navbar .logo-mini{height:34px; transition:filter .4s ease;}
#navbar.scrolled .logo-mini{ filter:none; }
#navbar nav{display:flex; gap:2rem;}
#navbar nav a{
  font-family:'Poppins', sans-serif; font-size:.72rem; letter-spacing:.14em;
  text-transform:uppercase; color:#fff; opacity:.88; transition:opacity .2s, color .2s;
}
#navbar.scrolled nav a{color:var(--grafito);}
#navbar nav a:hover{opacity:1; color:var(--oro);}
#navbar .nav-toggle{display:none;}
@media(max-width:860px){
  #navbar nav{position:fixed; top:0; right:0; height:100vh; width:78vw; max-width:340px;
    background:var(--grafito); flex-direction:column; justify-content:center; gap:1.6rem;
    padding:2rem; transform:translateX(100%); transition:transform .4s ease;}
  #navbar nav.open{transform:translateX(0);}
  #navbar nav a{color:#fff !important; font-size:.9rem;}
  #navbar .nav-toggle{display:block; z-index:600; background:none; border:none; cursor:pointer;}
  #navbar .nav-toggle span{display:block; width:24px; height:1.5px; background:#fff; margin:5px 0; transition:.3s;}
  #navbar.scrolled .nav-toggle span{background:var(--grafito);}
}

/* ---------- hero ---------- */
.hero{
  position:relative; height:100vh; min-height:560px; width:100%;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; background:var(--grafito);
}
.hero video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:brightness(.62) saturate(1.05);
}
.hero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(38,24,16,.35) 0%, rgba(38,24,16,.25) 40%, rgba(38,24,16,.75) 100%);
}
.hero-content{position:relative; z-index:2; text-align:center; color:#fff; padding:0 6vw; max-width:820px;}
.hero-content img.logo{width:min(230px, 46vw); margin:0 auto 1.6rem;}
.hero-content .eyebrow{color:var(--oro-rosa); margin-bottom:1rem;}
.hero-content h1{font-size:clamp(2.1rem, 5vw, 3.4rem); color:#fff; margin-bottom:.9rem;}
.hero-content h1 em{color:var(--oro-rosa); font-style:italic;}
.hero-content p.lead{font-family:'Lato'; font-size:1rem; color:#EFE4D6; max-width:560px; margin:0 auto 2.2rem; line-height:1.6;}
.hero-cta{
  display:inline-flex; align-items:center; gap:.6rem;
  border:1px solid rgba(255,255,255,.55); color:#fff;
  font-family:'Poppins'; font-size:.75rem; letter-spacing:.18em; text-transform:uppercase;
  padding:.95rem 2.1rem; border-radius:2px; transition:.3s;
}
.hero-cta:hover{background:#fff; color:var(--grafito); border-color:#fff;}
.scroll-cue{
  position:absolute; bottom:1.8rem; left:50%; transform:translateX(-50%); z-index:2;
  color:#fff; opacity:.75; font-family:'Poppins'; font-size:.65rem; letter-spacing:.2em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
}
.scroll-cue .line{width:1px; height:34px; background:rgba(255,255,255,.6); animation:scrollcue 1.8s infinite;}
@keyframes scrollcue{0%{transform:scaleY(0); transform-origin:top;} 50%{transform:scaleY(1); transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0); transform-origin:bottom;}}

/* ---------- section headers ---------- */
.section-head{text-align:center; max-width:640px; margin:0 auto 3.2rem;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.5rem); margin-top:.6rem;}
.section-head p{color:var(--grafito-soft); margin-top:.8rem; font-size:.95rem; line-height:1.6;}
.section-head.on-dark h2, .section-head.on-dark p{color:#fff;}
.section-head.on-dark p{color:#D8C9B8;}

/* ---------- sessions / pricing ---------- */
#sessions{background:var(--grafito); color:#fff; position:relative;}
.sessions-layout{ max-width:800px; margin:0 auto; }

.price-block{margin-bottom:3.2rem;}
.price-block h3{font-size:1.25rem; color:#fff; margin-bottom:.3rem;}
.price-block .sub-eyebrow{font-family:'Poppins'; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--oro-rosa); display:block; margin-bottom:.5rem;}
.price-note{font-size:.82rem; color:#C9B8A6; font-style:italic; margin-bottom:1.1rem;}
.card-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1.1rem;}
.card-grid.of3{grid-template-columns:repeat(3,1fr);}
@media(max-width:720px){ .card-grid, .card-grid.of3{grid-template-columns:1fr;} }

.price-card{
  border:1px solid rgba(255,255,255,.14); border-radius:3px; padding:1.5rem 1.4rem;
  background:rgba(255,255,255,.02);
}
.price-card.featured{background:#fff; color:var(--grafito); border-color:#fff;}
.price-card .row{display:flex; justify-content:space-between; align-items:baseline; gap:.6rem; margin-bottom:.2rem;}
.price-card .name{font-family:'Lora'; font-size:1.05rem; color:var(--oro-rosa);}
.price-card.featured .name{color:var(--oro-rosa);}
.price-card .price{font-family:'Poppins'; font-weight:600; font-size:1rem; color:var(--oro);}
.price-card.featured .price{color:#b8901f;}
.price-card .sub{font-family:'Poppins'; font-size:.62rem; letter-spacing:.14em; color:var(--oro-rosa); text-transform:uppercase; margin-bottom:.7rem; display:block;}
.price-card hr{border:none; border-top:1px solid rgba(255,255,255,.14); margin:.7rem 0;}
.price-card.featured hr{border-top-color:var(--line);}
.price-card ul{list-style:none;}
.price-card ul li{font-size:.83rem; color:#D9C9B8; padding-left:1rem; position:relative; margin-bottom:.45rem; line-height:1.4;}
.price-card.featured ul li{color:var(--grafito-soft);}
.price-card ul li::before{content:'•'; position:absolute; left:0; color:var(--oro);}

.extras-table{width:100%; border-collapse:collapse; margin-top:.5rem;}
.extras-table tr{border-bottom:1px solid rgba(255,255,255,.12);}
.extras-table td{padding:.7rem 0; font-size:.88rem;}
.extras-table tr.is-new td::after{content:'NUEVO'; font-family:'Poppins'; font-size:.55rem; letter-spacing:.1em; color:var(--grafito); background:var(--oro); padding:.15rem .4rem; border-radius:2px; margin-left:.6rem; vertical-align:middle;}

.terminos{margin-top:2.2rem; font-size:.78rem; color:#B8A791; line-height:1.7;}
.terminos li{list-style:none; padding-left:1rem; position:relative; margin-bottom:.4rem;}
.terminos li::before{content:'—'; position:absolute; left:0; color:var(--oro-rosa);}

/* ---------- how-to / interactive selector ---------- */
.how-section{background:var(--crema); text-align:center;}
.selector{display:grid; grid-template-columns:repeat(3,1fr); gap:2.6rem; max-width:1020px; margin:0 auto; text-align:left;}
@media(max-width:860px){ .selector{grid-template-columns:1fr; gap:2.6rem; max-width:460px;} }
.selector-step .num{font-family:'Lora'; font-size:1.8rem; color:var(--oro-rosa); display:block; margin-bottom:.3rem;}
.selector-step h4{font-family:'Poppins'; font-size:.92rem; font-weight:600; margin-bottom:.9rem;}

.chip-group{display:flex; flex-wrap:wrap; gap:.5rem;}
.chip{
  border:1px solid var(--line); background:#fff; color:var(--grafito-soft);
  padding:.5rem .95rem; border-radius:20px; font-family:'Poppins'; font-size:.72rem;
  cursor:pointer; transition:.2s; line-height:1.3;
}
.chip:hover{border-color:var(--oro-rosa); color:var(--grafito);}
.chip.active{background:var(--grafito); color:#fff; border-color:var(--grafito);}
.chip-cat{width:100%; font-family:'Poppins'; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--oro-rosa); margin:.6rem 0 .1rem;}
.chip-cat:first-child{margin-top:0;}

.loc-select{
  width:100%; padding:.85rem 1rem; border:1px solid var(--line); border-radius:3px;
  font-family:'Lato'; font-size:.88rem; background:#fff; color:var(--grafito); appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238A6E58'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1rem center;
}

.selector-hint{font-size:.8rem; color:var(--grafito-soft); margin-bottom:1rem; line-height:1.5; min-height:2.4em;}
.selector-hint.ready{color:var(--oro-rosa);}
.selector-send{
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--grafito); color:#fff; font-family:'Poppins'; font-weight:500;
  font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  padding:.9rem 1.7rem; border-radius:2px; opacity:.45; pointer-events:none; transition:.25s;
}
.selector-send.ready{opacity:1; pointer-events:auto; background:var(--oro);}
.selector-send.ready:hover{background:var(--grafito);}

/* ---------- final invite + vertical video ---------- */
.invite-section{
  background:var(--grafito); color:#fff; position:relative; overflow:hidden;
  padding:6rem 6vw; text-align:center;
}
.invite-inner{max-width:480px; margin:0 auto; position:relative; z-index:2;}
.invite-video{
  width:min(260px, 60vw); aspect-ratio:9/16; margin:0 auto 2.2rem; border-radius:6px; overflow:hidden;
  box-shadow:0 30px 70px -20px rgba(0,0,0,.65); border:1px solid rgba(255,255,255,.12);
}
.invite-video video{width:100%; height:100%; object-fit:cover;}
.invite-section h2{color:#fff; margin-bottom:.8rem;}
.invite-section p{color:#D8C9B8; font-size:.95rem; line-height:1.65; margin-bottom:2rem;}
.invite-wa{
  display:inline-flex; align-items:center; gap:.7rem;
  background:var(--oro); color:var(--grafito); font-family:'Poppins'; font-weight:600;
  font-size:.85rem; letter-spacing:.08em; text-transform:uppercase;
  padding:1.05rem 2.4rem; border-radius:3px; transition:.25s;
}
.invite-wa:hover{background:#fff;}

/* ---------- floating whatsapp ---------- */
#fab-wa{
  position:fixed; left:1.4rem; bottom:1.4rem; z-index:700;
  width:56px; height:56px; border-radius:50%; background:var(--oro);
  display:flex; align-items:center; justify-content:center; box-shadow:0 14px 30px -8px rgba(59,42,31,.55);
  transition:transform .25s ease, background .25s ease;
}
#fab-wa:hover{transform:scale(1.08); background:var(--grafito);}
#fab-wa svg{width:26px; height:26px; fill:#fff;}

/* ---------- location sections ---------- */
.loc-section{background:var(--crema);}
.loc-section.alt{background:#F3EEE9;}
.badge{
  display:inline-block; font-family:'Poppins'; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.35rem .7rem; border-radius:2px; background:var(--oro-rosa); color:#fff; font-weight:500;
}
.badge.dark{background:var(--grafito);}
.badge.extra{background:var(--oro); color:var(--grafito);}

.loc-grid{display:grid; grid-template-columns:1fr; gap:4rem; max-width:1180px; margin:0 auto;}

.loc-card{display:grid; grid-template-columns:1.15fr 1fr; gap:2.6rem; align-items:center;}
.loc-card:nth-child(even){grid-template-columns:1fr 1.15fr;}
.loc-card:nth-child(even) .loc-media{order:2;}
@media(max-width:900px){
  .loc-card, .loc-card:nth-child(even){grid-template-columns:1fr;}
  .loc-card:nth-child(even) .loc-media{order:0;}
}

.loc-media{
  position:relative; aspect-ratio:4/5; border-radius:3px; overflow:hidden; background:#ddd;
  box-shadow:0 24px 48px -22px rgba(59,42,31,.35);
}
.loc-media .slide{position:absolute; inset:0; opacity:0; transition:opacity .55s ease; }
.loc-media .slide.active{opacity:1;}
.loc-media img{width:100%; height:100%; object-fit:cover;}
.loc-media .arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.85);
  display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .25s, background .2s;
  font-family:'Lora'; font-size:1.1rem; color:var(--grafito);
}
.loc-media:hover .arrow{opacity:1;}
.loc-media .arrow:hover{background:#fff;}
.loc-media .arrow.prev{left:.9rem;}
.loc-media .arrow.next{right:.9rem;}
.loc-media .counter{
  position:absolute; bottom:.9rem; right:1rem; z-index:3;
  font-family:'Poppins'; font-size:.65rem; letter-spacing:.12em; color:#fff;
  background:rgba(38,24,16,.45); padding:.3rem .6rem; border-radius:2px;
}
.loc-media .top-badges{position:absolute; top:1rem; left:1rem; z-index:3; display:flex; gap:.4rem;}

.loc-info .eyebrow{margin-bottom:.5rem;}
.loc-info h3{font-size:1.7rem; margin-bottom:.6rem;}
.loc-info .zona{font-family:'Poppins'; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--oro-rosa); margin-bottom:1rem; display:block;}
.loc-info p.desc{font-size:.95rem; color:var(--grafito-soft); line-height:1.75; margin-bottom:1.1rem;}
.loc-info .costo{
  font-size:.85rem; color:var(--grafito); background:#fff; border:1px solid var(--line);
  padding:.9rem 1rem; border-radius:2px; line-height:1.55;
}
.loc-info .costo strong{color:var(--oro-rosa); font-family:'Poppins'; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; display:block; margin-bottom:.35rem;}
.loc-info .nota{font-size:.78rem; font-style:italic; color:var(--grafito-soft); margin-top:.7rem;}
.loc-info .loc-wa{
  display:inline-flex; align-items:center; gap:.5rem; margin-top:.4rem;
  font-family:'Poppins'; font-size:.75rem; letter-spacing:.06em; font-weight:500;
  color:var(--oro); border-bottom:1px solid var(--oro); padding-bottom:2px; transition:.2s;
}
.loc-info .loc-wa:hover{color:var(--grafito); border-color:var(--grafito);}

/* municipio group layout: hero + row of item cards */
.group-block{max-width:1180px; margin:0 auto 5rem;}
.group-head{display:grid; grid-template-columns:1.1fr 1fr; gap:2.6rem; align-items:center; margin-bottom:2.2rem;}
@media(max-width:900px){ .group-head{grid-template-columns:1fr;} }
.group-items{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.2rem;}
.group-item{position:relative; aspect-ratio:3/4; border-radius:3px; overflow:hidden;}
.group-item img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.group-item:hover img{transform:scale(1.06);}
.group-item .label{
  position:absolute; left:0; right:0; bottom:0; padding:.9rem .9rem 1rem;
  background:linear-gradient(0deg, rgba(38,24,16,.82), rgba(38,24,16,0));
  color:#fff; font-family:'Poppins'; font-size:.72rem; letter-spacing:.03em;
}
.group-item-card{display:flex; flex-direction:column; gap:.6rem;}
.group-item-card .loc-media.small{aspect-ratio:3/4; box-shadow:0 16px 34px -16px rgba(59,42,31,.4);}
.group-item-card .cap{font-family:'Poppins'; font-size:.72rem; color:var(--grafito); letter-spacing:.02em;}
.group-item-card .mini-costo{font-size:.72rem; color:var(--oro-rosa); font-family:'Poppins';}

/* ---------- footer ---------- */
footer{background:var(--grafito); color:#fff; padding:5rem 6vw 2.4rem; text-align:center;}
footer img.logo{width:170px; margin:0 auto 1.6rem;}
footer h2{color:#fff; font-size:1.5rem; margin-bottom:.6rem;}
footer p{color:#D8C9B8; margin-bottom:2rem; font-size:.92rem;}
.social-links{display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1.4rem; margin-bottom:2rem;}
.social-links a{font-family:'Poppins'; font-size:.78rem; letter-spacing:.08em; color:#fff; border-bottom:1px solid rgba(255,255,255,.3); padding-bottom:2px; transition:.2s;}
.social-links a:hover{color:var(--oro); border-color:var(--oro);}
.wa-btn{
  display:inline-block; margin-bottom:2.2rem; background:var(--oro); color:var(--grafito);
  font-family:'Poppins'; font-weight:600; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  padding:1rem 2.4rem; border-radius:2px;
}
footer .fine{font-size:.7rem; color:#9C8873; border-top:1px solid #55402E; padding-top:1.6rem;}

/* ---------- promo popup ---------- */
#promo{
  position:fixed; right:1.4rem; bottom:1.4rem; z-index:800; max-width:320px;
  background:#fff; border-radius:6px; box-shadow:0 24px 60px -14px rgba(0,0,0,.4);
  padding:1.4rem 1.4rem 1.3rem; transform:translateY(140%); transition:transform .55s cubic-bezier(.2,.9,.25,1);
  border-top:4px solid var(--rojo);
}
#promo.show{transform:translateY(0);}
#promo .close{position:absolute; top:.5rem; right:.7rem; border:none; background:none; font-size:1.1rem; color:var(--grafito-soft); cursor:pointer;}
#promo .off{
  display:inline-block; font-family:'Poppins'; font-weight:700; color:#fff; background:var(--rojo);
  padding:.3rem .6rem; border-radius:2px; font-size:1rem; margin-bottom:.6rem; letter-spacing:.02em;
}
#promo h4{font-size:1rem; margin-bottom:.4rem;}
#promo p{font-size:.82rem; color:var(--grafito-soft); line-height:1.5; margin-bottom:.9rem;}
#promo a{
  display:inline-block; font-family:'Poppins'; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color:#fff; background:var(--grafito); padding:.65rem 1.1rem; border-radius:2px;
}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- misc ---------- */
::selection{background:var(--oro-rosa); color:#fff;}
.divider-line{height:1px; background:var(--line); max-width:1180px; margin:0 auto;}
