/* =========================================================
   RESET / BASE
   ========================================================= */
*{margin:0;padding:0;box-sizing:border-box;}
html{font-size:62.5%;font-family:var(--ff-body);overflow-x:clip;}
body{overflow-x:clip;background-color:#ffffff;}

/* =========================================================
   VARIABLES (I)
   ========================================================= */
:root{
  --header-h   : 100px;             /* alto de la barra */
  --header-bg  : #ffffff;           /* fondo claro */
  --brand-color: #3c4d28;           /* verde/marrón corporativo */
  --shadow-hdr : 3px 3px 5px rgba(0,0,0,.7);

  --field-bg  : rgba(255,255,255,.85);
  --field-text: #3c4d28;
  --field-bord: #526344;
  --field-size: 1.55rem;

  --card-top: 12%;

  --ff-display: 'Noto Serif Display', serif;
  --ff-body   : 'Montserrat', sans-serif;

  --fs-nav: 1.6rem;
  --fs-btn: 1.5rem;
  --fw-nav: 550;

  scroll-behavior:smooth;
}

/* =========================================================
   HERO CTA
   ========================================================= */
.hero-cta{
  display:inline-block;
  margin-top:1.2rem;
  padding:.9rem 1.6rem;
  border:3px solid #fff;
  background:transparent;
  color:#fff;
  border-radius:9999px;
  text-decoration:none;
  font-family:var(--ff-body);
  font-size:1.6rem;
  font-weight:500;
  letter-spacing:.2px;
  transition:background-color .2s ease,color .2s ease,transform .06s ease,box-shadow .2s ease;
}
.hero-cta:hover{background:rgba(255,255,255,.12);box-shadow:0 6px 18px rgba(0,0,0,.25);}
.hero-cta:active{transform:scale(.98);}
.hero-cta:focus-visible{outline:3px solid #fff;outline-offset:2px;}

/* =========================================================
   HERO SECCIÓN
   ========================================================= */
.section_1{
  position:relative;
  background-image:
    linear-gradient(rgba(0,0,0,0.108), rgba(0,0,0,0.108)),
    url("/images/home.webp");
  background-position:center;
  background-repeat:no-repeat;

  /* ✅ robusto: sin 100vh clásico */
  height:auto;
  min-height:100dvh;
  background-size:cover;

  width:100%;
  z-index:0;
  display:flex;
  justify-content:center;
  align-items:center;
}
.section_1::before{
  content:"";
  position:absolute;inset:0;
  z-index:1;pointer-events:none;
}
.bg_text1{font-family:var(--ff-display);font-weight:330;color:#fff;}
.bg_text2{font-family:var(--ff-body);color:#fff;font-weight:300;}
.bg_div{
  position:absolute;top:38%;left:50%;
  transform:translate(-50%,-50%);
  z-index:2;color:#fff;padding-top:240px;
  text-align:center;
}
.bg_div :first-child{font-size:15rem;font-weight:300;animation:slideinBottom 2s ease;}
.bg_div :last-child{font-size:2.3rem;margin-top:.5rem;animation:slideinBottom 4s ease;}

@keyframes slideinBottom{
  0%{transform:translateY(50px);opacity:0;}
  100%{transform:translateX(0);opacity:1;}
}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(60px);transition:opacity .9s ease,transform .9s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}

/* =========================================================
   BLOQUE: TEXTO + IMAGEN CENTRADO
   ========================================================= */
.section-img-text{position:relative;}
.section-img-background-extend{
  position:absolute;top:0;left:0;right:0;height:430px;
  background-color:var(--brand-color);z-index:0;
}
.section-img-text > .position-relative,
.video-overlap{position:relative;z-index:1;}

.section-img-title{
  padding-top:5%;
  font-family:var(--ff-body);
  font-size:3.3rem;
  font-weight:500;
  color:#fff;

  /* ✅ centrado estable sin “estirar” de más */
  width:min(120%,70ch);
  position:relative;
  left:50%;
  transform:translateX(-50%);
  text-align:center;
}

.section-img-paragraph{
  padding-top:2%;
  font-family:var(--ff-body);
  font-size:2.2rem;
  font-weight:400;
  line-height:1.8;
  max-width:1400px;
  margin-inline:auto;
  padding-inline:1rem;
  color:#fff;
}
.section-img{max-width:100%;height:auto;border-radius:6px;}
.img-text--reverse{flex-direction:row-reverse;}

.img-text__subtitle{font-size:2.2rem;font-weight:600;margin:0 0 .8rem;color:#5C4033;}
.img-text__list{
  list-style:none;padding:0;margin:0 0 1.5rem;
  font-family:var(--ff-body);font-weight:300;font-size:2.2rem;color:#5C4033;
}

.flex{display:grid;grid-template-columns:repeat(4,1fr);column-gap:30px;justify-content:center;align-items:center;}

/* =========================================================
   SECTION SERVICES
   ========================================================= */
.section-services{background-color:var(--header-bg);}
.section-services-title{
  font-family:var(--ff-body);
  font-size:3.3rem;
  font-weight:450;
  color:var(--brand-color);
}
.section-services-paragraph{
  font-family:var(--ff-body);
  font-size:2.2rem;
  font-weight:300;
  line-height:1.75;
  color:var(--brand-color);
  max-width:1300px;
  margin-inline:auto;
  padding-inline:1rem;
}
.section-services-btn{
  font-family:var(--ff-body);
  font-size:2.4rem;
  font-weight:500;
  background:#fff;
  color:var(--brand-color);
  border:3px solid var(--brand-color);
  border-radius:50px;
  transition:all .3s ease;
  text-decoration:none;
  display:inline-block;
  padding:.5rem 1.5rem;
  cursor:pointer;
}
.section-services-btn:hover,
.section-services-btn:focus{
  background:var(--brand-color);
  color:#fff;
  border-color:var(--brand-color);
}
.section-services-btn:active{
  background:var(--brand-color);
  color:#fff;
  transform:scale(.97);
}

/* =========================================================
   INTERIOR + CARACTERÍSTICAS (BASE)
   ========================================================= */
section.interior-block{background:#f4f7f8;padding-block:4rem;}
.interior-figure{display:flex;flex:1 1 auto;margin:0;min-height:0;}
.interior-img{width:100%;height:auto;object-fit:contain;box-shadow:0 4px 14px rgba(0,0,0,.08);}

.interior-title{
  font-family:var(--ff-body);
  font-size:3.6rem;
  font-weight:500;
  color:var(--brand-color);
}
.interior-text{
  font-family:var(--ff-body);
  font-size:2.6rem;
  line-height:1.6;
  font-weight:300;
  color:#4c4c4c;
  max-width:900px;
}
.interior-icon{font-size:2.4rem;color:var(--brand-color);width:32px;height:32px;object-fit:contain;}
.interior-item{font-family:var(--ff-body);font-size:2rem;font-weight:300;color:#2f2f2f;}

/* Helpers varios */
.font{font-size:3rem;padding:2rem 1rem;}
.buy{font-size:2rem;padding:0 1rem;color:#5C4033;}
.expert{font-size:1.5rem;padding:1rem;color:#666;line-height:1.5;}
.learn_more{text-decoration:none;font-size:1.5rem;padding:2rem 1rem;font-weight:700;color:#5C4033;}

/* =========================================================
   FOOTER
   ========================================================= */
footer{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:50vh;padding-bottom:3rem;background:#2F4F4F;color:#ddd;
}
footer :nth-child(1){font-size:2rem;font-weight:700;margin-bottom:2rem;}
footer :nth-child(2){font-size:2rem;font-weight:700;line-height:1.5;text-align:center;margin-bottom:2rem;}
.footer-text1{font-size:1.8rem;line-height:1.5;font-weight:700;}

footer .legal-links{
  display:flex;flex-wrap:nowrap;gap:1.4rem;justify-content:center;align-items:baseline;
  margin:.6rem 0;font-size:1rem;font-family:Arial,Helvetica,sans-serif;
}
footer .legal-links a{
  display:inline-block;color:#fff;font-weight:400!important;text-decoration:none;line-height:1.4;
}
footer .legal-links a:hover,
footer .legal-links a:focus{text-decoration:underline;}
footer .legal-links a:link,
footer .legal-links a:visited{
  display:inline-block;color:#fff;font-weight:400!important;font-size:2rem!important;text-decoration:none;line-height:1.4;
}

/* =========================================================
   MODAL (base + overlay + honeypot)
   ========================================================= */
.modal{
  position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  visibility:hidden;opacity:0;transition:opacity .4s ease;z-index:9999;
}
.modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.hp-wrapper{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* =========================================================
   AVAILABILITY – ajustes de cabecera
   ========================================================= */
.section_1--availability::before{background:none;}
.section_1--availability .bg_div{
  top:17%;left:50%;transform:translate(-50%,-50%);
  padding-top:0;text-align:center;
}
.section_1--availability .bg_text1,
.section_1--availability .bg_text2{color:#fff;}
area:focus{outline:2px solid #2F4F4F;outline-offset:-2px;}

/* =========================================================
   AVAILABILITY – LAYOUT PLANOS
   ========================================================= */
.plan-container{position:relative;display:inline-block;margin:0 auto;}
.plan-box{max-width:500px;position:relative;display:inline-block;}
.plan-box img{width:100%;height:auto;}
.plan-box .bg_div{position:absolute;left:50%;top:15%;transform:translate(-50%,-50%);text-align:center;}
.bg_text1,.bg_text2{color:#fff;}

/* Info card (3 columnas) */
.info-card{
  display:flex;align-items:flex-start;gap:1.2rem;flex-wrap:nowrap;
  background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:4px;box-shadow:0 8px 22px rgba(0,0,0,.08);
  padding:1.4rem 1.2rem;font-family:var(--ff-body);
}
.info-card--3 > .info-card-col{flex:0 0 28%;min-width:260px;}
.info-card--3 > .pdf-preview{
  flex:1 1 44%;min-width:360px;margin-left:auto;display:grid;gap:.75rem;
}
.info-card h3{margin:0 0 .6rem;font-weight:600;font-size:2.4rem;color:var(--brand-color);}
.info-card ul{list-style:none;padding:0;margin:.6rem 0 0;}
.info-card li{margin:.25rem 0;font-size:2rem;color:#444;}
.info-card .precio{margin-top:1.2rem;color:#C08F5C;font-weight:700;font-size:2.6rem;}

/* PDF nav states */
.pdf-nav:hover{filter:brightness(.92);}
.pdf-nav:active{transform:scale(.96);}
.pdf-nav:disabled{background:#e9ecef;color:#adb5bd;cursor:not-allowed;box-shadow:none;}

/* Responsivo info-card */
@media (max-width:1100px){
  .info-card--3 > .info-card-col{flex:0 0 32%;}
  .info-card--3 > .pdf-preview{min-width:300px;}
  .pdf-canvas-wrap{height:320px;}
}
@media (max-width:900px){
  .info-card{flex-direction:column;}
  .info-card--3 > .info-card-col,
  .info-card--3 > .pdf-preview{flex:1 1 100%;min-width:auto;}
  .pdf-canvas-wrap{height:280px;}
}

/* Precio destacado (genérico) */
.precio{margin-top:.6rem;font-size:1.6rem;font-weight:700;color:#C08F5C;}

/* Honeypot button invisible */
.ghost-btn{
  position:absolute;left:-10000px;width:1px;height:1px;padding:0;margin:0;border:none;background:transparent;color:transparent;pointer-events:none;
}
.ghost-btn:hover,.ghost-btn:focus{opacity:0;}

/* =========================================================
   FOOTER TIPOS – ajustes finos
   ========================================================= */
footer,footer p,footer .footer-text1{font-family:var(--ff-body);font-weight:400;}
footer p:first-of-type{font-family:var(--ff-body);font-weight:500;}

/* =========================================================
   MÓVIL (lead-card)
   ========================================================= */
@media (max-width:900px){
  .lead-card{
    position:static;transform:none;max-width:92%;padding:2.4rem 2.6rem;margin:2rem auto 0;left:auto;
  }
}

/* =========================================================
   PROCESO: HERO IMG
   ========================================================= */
.process-hero-img{
  width:70%;max-width:1200px;height:auto;display:block;
  margin:var(--header-h) auto 4rem;
}

/* =========================================================
   FAQ
   ========================================================= */
.faq summary{
  font-family:var(--ff-display);font-size:2.5rem;font-weight:470;letter-spacing:.2px;color:#5C4033;
  cursor:pointer;padding:1.2rem 1.5rem;
}
.faq summary::-webkit-details-marker{display:none;}
.faq p{
  font-family:var(--ff-body);font-size:1.8rem;font-weight:200;color:#4c362a;
  padding:1.5rem;line-height:1.75;
}
.faq details[open] summary{background:#fff;}
.faq ul{padding-left:2.5rem;margin:0;}
.faq{
  max-width:1200px;margin:4rem auto;padding:0 1rem;
}
.faq details{border:1px solid #c08f5c8e;border-radius:4px;margin-bottom:1.2rem;}

/* =========================================================
   PROMO INFO (sobre hero)
   ========================================================= */
.promo-info{
  position:absolute;left:4%;bottom:3%;
  font-family:var(--ff-display);font-size:2.3rem;font-weight:200;line-height:1.4;color:#fff;background:transparent;z-index:10;
}
.promo-info ul{
  display:flex;flex-wrap:wrap;column-gap:3rem;row-gap:1.2rem;margin:0;padding:0;list-style:none;
}
.promo-pair{display:inline-flex;align-items:baseline;gap:.35rem;}
.promo-value{font-size:2.2em;line-height:1;}
.promo-icon{width:2.75em;height:2.75em;object-fit:contain;transform:translateY(-.05em);}
.icon-dorm{position:relative;top:.45em !important;}
.icon-plano{position:relative;top:.25em !important;}
.promo-count{font-size:2.6em;line-height:1;font-weight:400;}

/* Mapster contenedor */
.plan-wrapper canvas{pointer-events:none !important;}
.plan-wrapper{width:100% !important;margin:0 !important;}

/* Availability section container */
.section_1--availability{
  display:block;background-image:none;background-color:#fff;
  height:auto !important;min-height:110vh;padding:2rem 2vw;
}
.availability-box{width:min(95vw,2800px);max-width:2800px;margin:2rem auto;}
.map-canvas{
  width:100%;max-width:none;margin-inline:auto;
  box-shadow:0 -6px 12px rgba(0,0,0,.15), -6px 0 12px rgba(0,0,0,.15), 6px 0 12px rgba(0,0,0,.15);
}
.plan-box{max-width:none !important;width:auto !important;}

/* Viewport recorte */
.map-viewport{
  position:relative;overflow:hidden;width:100%;max-width:none;height:var(--viewportH);margin:0 auto;
}
#avail-img{display:block;width:100%;height:auto;}
.map-viewport .plan-wrapper{width:100% !important;margin-top:calc(-1 * var(--cropTop)) !important;}

/* ========= Card base unificado (#info-text) ========= */
:root{
  --card-bg:#fff;
  --card-bord:rgba(0,0,0,.08);
  --card-shadow:0 8px 22px rgba(0,0,0,.08);
}
#info-text{
  background:var(--card-bg);
  border:1px solid var(--card-bord);
  border-radius:16px;
  padding:1.25rem;
  box-shadow:var(--card-shadow);

  /* layout: 1 columna estable y centrado */
  display:grid;
  grid-template-columns:1fr;
  gap:1.25rem;
  align-items:start;
  justify-items:center;

  width:100%;
  max-width:980px;
  margin-inline:auto;
}
#info-text .info-card-head{
  grid-column:1 / -1;
  margin-bottom:.25rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  text-align:center;
}
#info-text .info-card-grid{ width:100%; }
#info-text .info-card-col{
  display:flex;
  flex-direction:column;
  min-width:0;
  width:100%;
  max-width:900px;
  margin-inline:auto;
}
#info-text .info-card-col .info-list{ margin-bottom:0; }
#info-text h3{
  font-size:2rem;font-weight:700;line-height:1.2;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem;
}
#info-text ul{list-style:none;padding-left:0;margin:0 0 .5rem;}
#info-text li{
  display:flex;justify-content:space-between;padding:.35rem .5rem;border-bottom:1px dashed rgba(0,0,0,.06);font-size:2rem;
}
#info-text li strong{font-weight:700;}
#info-text .precio{
  margin-top:.75rem;
  font-size:3.1rem;
  color:var(--brand-color);
  text-align:center;
}
#info-text .pdf-preview,
#info-text .visit-actions{
  grid-column:1 / -1;
  width:100%;
  max-width:900px;
  margin-inline:auto;
}
.badge{font-weight:800;letter-spacing:.2px;}
.badge-disponible{background:#19875488;}
.badge-reservado{background:#ffc10788;color:#212529;}
.badge-vendido{background:#b63e3e77;}
.badge-no_disponible { background:#B63E3E; border-color:#B63E3E; color:#fff; }

/* Galería PDF */
.pdf-preview{margin-top:.75rem;}
.pdf-carousel{
  position:relative;background:#ffffff00;border-radius:2px;padding:.75rem 3rem;
  box-shadow:0 4px 12px rgba(0,0,0,.04);max-width:1000px;margin-inline:auto;
}
.pdf-canvas-wrap{display:flex;align-items:center;justify-content:center;min-height:560px;}
.pdf-canvas{border-radius:2px;border:1px solid rgba(0,0,0,.06);background:#fff;}
.pdf-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:40px;height:40px;border-radius:50%;border:1px solid #ced4da;background:#3c4d28;
  display:grid;place-items:center;font-size:22px;line-height:1;
  box-shadow:0 2px 6px rgba(0,0,0,.08);
  transition:transform .15s ease,background-color .15s ease,box-shadow .15s ease;
}
.pdf-nav.prev{left:.75rem;}
.pdf-nav.next{right:.75rem;}
.pdf-nav:hover{background:#f8f9fa;transform:translateY(-50%) scale(1.05);}
.pdf-nav:active{transform:translateY(-50%) scale(.98);}
.pdf-nav:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;}
.pdf-nav:focus-visible{outline:3px solid rgba(59,77,43,.35);outline-offset:2px;}
.pdf-dots{display:flex;justify-content:center;align-items:center;gap:.5rem;padding-top:.5rem;}
.pdf-dot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--brand-color);background:transparent;opacity:.55;transition:all .15s ease;}
.pdf-dot:hover{opacity:.85;}
.pdf-dot.active{background:var(--brand-color);opacity:1;transform:scale(1.2);}
.pdf-dot:focus-visible{outline:2px solid var(--brand-color);outline-offset:2px;}
.pdf-actions{margin-top:.5rem;}
.pdf-actions .btn{
  --bs-btn-color:var(--brand-color);
  --bs-btn-border-color:var(--brand-color);
  --bs-btn-hover-bg:var(--brand-color);
  --bs-btn-hover-border-color:var(--brand-color);
}
#info-text.is-disabled{opacity:.65;pointer-events:none;filter:grayscale(.2); font-size: 4rem;}

.availability-head{text-align:center;max-width:960px;margin:2.25rem auto 1.5rem;padding:0 1rem;}
.availability-head .availability-title{
  font-family:var(--ff-body);color:var(--brand-color);font-weight:550;line-height:1.15;letter-spacing:-.02em;font-size:3.8rem;margin:0 0 .35rem;
}
.availability-head .availability-sub{
  font-family:var(--ff-body);color:var(--brand-color);font-weight:500;line-height:1.4;letter-spacing:.2px;font-size:2rem;margin:0;
}

/* Ruleta (cards) */
.ruleta-card{
  border:2px solid var(--field-bord,#526344);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;color:#232a36;min-width:280px;
}
.ruleta-card__cols{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-top:6px;}
.ruleta-card__list{margin:0;padding-left:1rem;}
.ruleta-card__bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:nowrap;}
.ruleta-card__price{min-width:0;}
.ruleta-card__price strong{color:var(--brand-color,#3b4d2b);font-weight:700;font-size:3rem;white-space:nowrap;font-family:var(--ff-body);}
.btn-ver-plano{
  display:inline-block;white-space:nowrap;text-decoration:none;
  padding:.5rem .75rem;border-radius:10px;background:var(--brand-color,#3b4d2b);color:#fff;border:1px solid var(--brand-color,#3b4d2b);
  transition:transform .06s ease,opacity .2s ease;
}
.btn-ver-plano:hover{opacity:.9;}
.btn-ver-plano:active{transform:scale(.98);}

.ruleta-card__title{font-size:3rem;}
.ruleta-card__list li{font-size:1.2rem;}
.ruleta-card__list li strong{font-size:var(--fs-spec-strong);}
.ruleta-card__price strong{font-size:var(--fs-price);}
.btn-ver-plano{font-size:1.5rem;font-family:var(--ff-body);}
.badge{font-size:var(--fs-badge);}
@media (max-width:420px){
  .ruleta-card__price strong{font-size:1.95rem;}
  .btn-ver-plano{padding:.45rem .65rem;font-size:.92rem;}
}

/* =========================================================
   VARIABLES (II) – overrides específicos de secciones
   ========================================================= */
:root{
  --brand-color:#3b4d2b;
  --f3up-radius:0;
  --f3up-minh:780px;
  --f3up-gap:0;
  --f3up-pad:24px;
  --fs-f3up-title:5rem;
  --fs-f3up-text:3rem;
}

/* =========================================================
   FEATURES 3-UP
   ========================================================= */
.features-3up{padding:0;}
.f3up-row{display:flex;gap:var(--f3up-gap);align-items:stretch;}
.f3up-card{
  position:relative;flex:1 1 0;min-height:var(--f3up-minh);
  border-radius:var(--f3up-radius);overflow:hidden;
  background:#000 center/cover no-repeat var(--bg);
  transition:flex .6s cubic-bezier(.22,1,.36,1);
  box-shadow:none;isolation:isolate;transform:translateZ(0);
}
.f3up-row:hover .f3up-card{flex:1;}
.f3up-row:hover .f3up-card:hover{flex:1.25;}

.f3up-overlay{
  position:absolute;inset:0;display:grid;place-items:center;
  padding:var(--f3up-pad);width:100%;height:100%;border:0;background:none;cursor:pointer;
}
.f3up-overlay::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(51,51,51,.55) 70%);
  z-index:-1;
}
.f3up-title{
  margin:0 0 .35rem;color:#fff;font-weight:350;font-size:var(--fs-f3up-title);
  text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.4);
}
.f3up-text{
  margin:0;color:#fff;font-size:var(--fs-f3up-text);font-weight:300;text-align:center;max-width:40ch;
  opacity:0;transform:translateY(6px);filter:blur(2px);
  transition:opacity .25s ease,transform .25s ease,filter .25s ease,max-height .25s ease;
  max-height:0;
}
.f3up-card:hover .f3up-text,
.f3up-card.is-open .f3up-text{opacity:1;transform:translateY(0);filter:blur(0);max-height:200px;}
.f3up-card:hover::after,
.f3up-card.is-open::after{content:none;}

/* Destacados: ajustes */
#destacados{
  --tt-gap:1.70rem;
  --reveal-speed:1000ms cubic-bezier(.22,.61,.36,1);
  --expand-speed:1000ms;
  --flex-hover:1.25;
  --title-width:26ch;
}
#destacados .f3up-card{transition:flex var(--expand-speed);}
#destacados .f3up-row:hover .f3up-card{flex:1;}
#destacados .f3up-row:hover .f3up-card:hover{flex:var(--flex-hover);}
#destacados .f3up-card:hover{transform:none;}
#destacados .f3up-overlay{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--tt-gap);
  padding-inline:min(4vw,40px);
}
#destacados .f3up-title{
  margin:0;line-height:1.15;text-align:center;white-space:normal !important;text-wrap:balance;hyphens:auto;max-inline-size:var(--title-width);
}
#destacados .f3up-text{
  margin:0;line-height:1.4;max-width:42ch;opacity:0;transform:translateY(6px);filter:blur(2px);max-height:0;
  transition:opacity var(--reveal-speed),transform var(--reveal-speed),filter var(--reveal-speed),max-height var(--reveal-speed);
}
#destacados .f3up-card:hover .f3up-text,
#destacados .f3up-card.is-open .f3up-text{opacity:1;transform:translateY(0);filter:blur(0);max-height:40vh;}
@media (max-width:1400px){
  #destacados{
    --fs-f3up-title:clamp(2.4rem,3.6vw,4.2rem);
    --fs-f3up-text:clamp(1.6rem,2.4vw,2.4rem);
  }
}
@media (max-width:900px){
  .f3up-row{flex-direction:column;}
  .f3up-card{min-height:380px;}
}
@media (prefers-reduced-motion:reduce){
  .f3up-card,.f3up-text{transition:none;}
}

/* CTA brochure */
.video-cta-wrap{margin-top:2rem;}
.btn-brochure{
  display:inline-block;padding:.85rem 1.4rem;border:3px solid var(--brand-color,#3b4d2b);
  color:var(--brand-color,#3b4d2b);background:#fff;border-radius:9999px;text-decoration:none;
  font-family:var(--ff-body,system-ui,sans-serif);font-weight:500;font-size:2.4rem;letter-spacing:.2px;
  transition:transform .06s ease,background-color .15s ease,color .15s ease,box-shadow .15s ease;margin-bottom:20px;
}
.btn-brochure:hover,
.btn-brochure:focus{background:var(--brand-color);color:#fff;border-color:var(--brand-color);}
.btn-brochure:active{transform:scale(.98);}
.btn-brochure:focus-visible{outline:3px solid rgba(59,77,43,.35);outline-offset:2px;}

/* Botón “Agendar visita” */
#info-text .visit-actions{margin-top:.6rem;text-align:center;}
@media (min-width:992px){#info-text .visit-actions{grid-column:1 / -1;}}
.btn-visit{
  display:inline-block;padding:.9rem 1.6rem;border-radius:9999px;background:var(--brand-color,#3b4d2b);
  color:#fff;border:2px solid var(--brand-color,#3b4d2b);
  font-family:var(--ff-body);font-size:2.6rem;font-weight:500;letter-spacing:.2px;cursor:pointer;
  transition:transform .06s ease,filter .15s ease,box-shadow .15s ease;
}
.btn-visit:hover{filter:brightness(1.05);box-shadow:0 6px 18px rgba(0,0,0,.12);}
.btn-visit:active{transform:scale(.98);}
.btn-visit:focus-visible{outline:3px solid rgba(59,77,43,.35);outline-offset:2px;}

/* Parallax hint */
.section_1.parallax-bg{background-position:50% 50%;will-change:background-position;}

/* Título localización */
.titulo-localizacion{
  font-family:var(--ff-body);font-weight:500;font-size:3.8rem;line-height:1.1;color:var(--brand-color);
}

/* --- Ruleta: base carrusel horizontal --- */
#avail-ruleta{ overflow-x:auto; padding: 10px 0 20px; }
#avail-ruleta .ruleta-track{
  display:flex;
  align-items:stretch;
  gap:12px;
  padding:0 8px;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling: touch;
  padding-block: 8px;
}
#avail-ruleta .ruleta-track::before,
#avail-ruleta .ruleta-track::after{
  content:"";
  flex:0 0 clamp(12px, 7vw, 48px);
}
.ruleta-card.is-compact .ruleta-card__body{ display:none; }
.ruleta-card{
  flex:0 0 auto;
  scroll-snap-align:center;
  width: min(82vw, 460px);
  padding: .85rem 1rem;
  box-sizing: border-box;
}

/* =========================================================
   Proceso de compra — Timeline
   ========================================================= */
.process-tl{
  --bg:    #3c4d28;
  --txt:   #ffffff;
  --brand: #3c4d28;
  --line:  #c83b32;

  --tl-height:     650px;
  --tl-pad-v:      84px;
  --tl-step-top:   11%;
  --tl-step-bottom: 8%;

  max-width: 1240px;
  margin: 2rem auto;
  padding: 20rem 1.25rem;
}
.process-tl__title{
  font-family: var(--ff-body);
  text-align: center;
  color: #fff;
  font-weight: 500;
  letter-spacing: .3px;
  margin: 0 0 1rem;
  font-size: 4rem;
}
.tl{
  position: relative;
  background: var(--bg);
  color: var(--txt);
  border-radius: 18px;
  padding: 0 28px;
  padding-top: var(--tl-pad-v);
  padding-bottom: var(--tl-pad-v);
  min-height: var(--tl-height);
  overflow: visible;
}
.tl__svg{
  position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1;
}
.tl__path{
  fill:none; stroke:var(--line); stroke-width:6; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:var(--pathLen,2600); stroke-dashoffset:var(--pathLen,2600);
}
.tl.is-loop .tl__path{
  animation: tl-draw-pause 8s ease-in-out infinite both;
  will-change: stroke-dashoffset;
}
@keyframes tl-draw-pause{
  0%{stroke-dashoffset:var(--pathLen,2600);}
  65%{stroke-dashoffset:0;}
  85%{stroke-dashoffset:0;}
  85.001%{stroke-dashoffset:var(--pathLen,2600);}
  100%{stroke-dashoffset:var(--pathLen,2600);}
}
@media (prefers-reduced-motion:reduce){
  .tl.is-loop .tl__path{ animation:none !important; }
}
.tl__step{
  position:absolute; z-index:2; left:var(--x); transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.125rem;
  background:transparent; border:0; cursor:pointer; text-align:center;
}
.tl__step.is-top    { top:    var(--tl-step-top); }
.tl__step.is-bottom { bottom: var(--tl-step-bottom); }
.tl__step img   { width:56px; height:56px; display:block; }
.tl__step span  { font-weight:400; color:var(--txt); font-size:2rem; font-family:var(--ff-body); }
.tl__step small { color:#fff; font-weight:400; font-size:2rem; font-family:var(--ff-body); }
.tl__step::before{
  content:""; position:absolute; left:50%; transform:translate(-50%,-50%);
  width:10px; height:10px; border-radius:50%; background:var(--brand);
  outline:6px solid #fff; box-shadow:0 0 0 3px var(--brand); top:calc(100% + 10px);
}
.tl__step.is-bottom::before{ top:-14px; }
.tl__step:hover img{ transform: translateY(-2px) scale(1.04); transition:.2s; }
.tl__step:focus-visible{ outline:2px dashed var(--brand); outline-offset:4px; }
.process-tl__note{ font-size:2.9rem; opacity:.75; margin:.75rem 0 0; color:#ffffff; }
@media (max-width:768px){
  .tl__svg{ display:none; }
  .tl{ display:grid; gap:14px; padding:20px 16px; min-height:initial; }
  .tl__step{
    position:relative; left:auto; transform:none; align-items:flex-start; text-align:left; padding-left:44px;
  }
  .tl__step img{ position:absolute; left:0; top:0; width:36px; height:36px; }
  .tl__step::before{ display:none; }
}

/* =========================================================
   Ajuste estético pantallas muy anchas
   ========================================================= */
@media (min-width:1600px){
  /* Recupera tu look “115%” solo en muy ancho, sin romper layouts */
  .section_1{ background-size:115% auto; }
}

/* === Parche Seguro (no cambia tu diseño) === */
img, svg, canvas, video, iframe { max-width: 100%; height: auto; display: block; }
:root { --scrollbar-comp: calc(100vw - 100%); }
.full-bleed { width: calc(100% + var(--scrollbar-comp)); margin-inline: calc(-0.5 * var(--scrollbar-comp)); }
.hero-100vh { min-height: 100dvh; }
button, input, select, textarea { max-width: 100%; }

/* Límite de la columna de números y ancho total de la lista */
#info-text .info-list--compact{
  --col-num: 9ch;          /* ancho fijo para números (ajusta 7–12ch) */
  max-width: 560px;        /* límite de la UL para que no se estire a 900px */
  margin: 0 auto;          /* centra la lista */
}

#info-text .info-list--compact li{
  display: grid !important;
  /* CLAVE: la columna del texto NO se estira; solo ocupa lo que necesita */
  grid-template-columns: auto var(--col-num);
  align-items: center;
  gap: .6rem;
  padding: .35rem .5rem;
  background: none !important;
  background-image: none !important;
}

#info-text .info-list--compact li > span{
  justify-self: start;
  text-align: left;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#info-text .info-list--compact li > strong{
  justify-self: end;
  text-align: right;
  white-space: nowrap;
  font-weight: 700;
  line-height: 1;
}

/* Por si quedara alguna pseudo-banda previa */
#info-text .info-list--compact li::before,
#info-text .info-list--compact li::after{
  content:none !important;
  display:none !important;
}

/* Opcional: más compacto en móviles */
@media (max-width:480px){
  #info-text .info-list--compact{ --col-num: 7ch; max-width: 480px; }
}

/* Sube el límite de la columna de números */
#info-text .info-list--compact{ --col-num: 14ch; } /* prueba 12–16ch según fuente */

/* Asegura que el valor no se oculte */
#info-text .info-list--compact li > strong{
  white-space: nowrap;
  overflow: visible;
}

/* Ajusta el espacio vertical entre ítems (opcional si ya usas g-3/g-4) */
.interior-grid {
  /* Si quieres un control fino además de g-3 */
  row-gap: 1.25rem; /* ~20px */
}

/* Tamaño consistente de iconos */
.interior-icon {
  width: 22px;
  height: 22px;
  object-fit: contain;
  flex-shrink: 0;
  /* Alineación óptica */
  margin-top: 2px;
}

/* Tipografía del texto del ítem (opcional) */
.interior-item {
  line-height: 1.3;
  /* font-weight: 500;  // si te gusta un pelín más marcado */
}

/* Aumenta el espacio vertical entre filas (además del g-3) */
.interior-grid { 
  row-gap: 1.25rem;          /* ~20px */
  position: static;           /* evita overlays si había position:absolute inadvertido */
}

/* Íconos consistentes */
.interior-grid .interior-icon {
  width: 22px;
  height: 22px;
  object-fit: contain;
  flex-shrink: 0;
  margin-top: 2px;            /* alineación óptica */
}

/* Texto de cada item */
.interior-grid .interior-item { 
  line-height: 1.3;
}

/* Por si algún estilo global aplicó column-count al texto del bloque */
.section-text, .interior-grid { 
  column-count: unset;
  column-gap: normal;
}
