/* =====================================================================
   Poseidonia Residences by Aston — Landing (RBK Prime)
   Sistema de diseño basado en el brandbook de RBK
   ===================================================================== */

:root{
  /* Colores de marca (brandbook RBK, pág. 3 + uso real) */
  --ink:#1d1d1b;          /* negro marca */
  --ink-warm:#231f20;     /* negro cálido */
  --near-black:#151818;   /* barras */
  --gold:#b79249;         /* oro primario */
  --gold-deep:#ae8c4f;    /* oro profundo */
  --sand:#d8c8ab;         /* arena */
  --cream:#f6f1e7;        /* crema claro derivado */
  --cream-2:#faf7f0;
  --white:#ffffff;
  --muted:#7c7768;
  --line:rgba(29,29,27,.14);

  /* Tipografía */
  --font-display:'Didot','GFS Didot','Playfair Display',Georgia,serif;
  --font-serif:'Cormorant Garamond','Playfair Display',Georgia,serif;
  --font-body:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-label:'Montserrat','Helvetica Neue',Arial,sans-serif;

  --maxw:1220px;
  --gutter:clamp(20px,5vw,64px);
  --radius:2px;
  --shadow:0 24px 60px -30px rgba(29,29,27,.45);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  font-size:17px;
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{margin:0;font-weight:400;letter-spacing:.005em;}
p{margin:0 0 1em;}
strong{font-weight:600;}
section{scroll-margin-top:80px;}

.container{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}

/* ---------- Tipografía de titulares ---------- */
.section-title{
  font-family:var(--font-display);
  font-size:clamp(2rem,4.4vw,3.4rem);
  line-height:1.08;
  letter-spacing:.01em;
}
.section-title--sm{font-size:clamp(1.6rem,3vw,2.3rem);}
.eyebrow{
  font-family:var(--font-label);
  text-transform:uppercase;
  letter-spacing:.28em;
  font-size:.72rem;
  font-weight:500;
  color:var(--gold-deep);
  margin:0 0 1.1rem;
  display:flex;align-items:center;gap:.9rem;
}
.eyebrow--light{color:var(--gold);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.6),0 2px 16px rgba(0,0,0,.55);}
.section-head{max-width:760px;margin-bottom:clamp(2.5rem,5vw,4rem);}
.section-head--sub{margin-top:clamp(3.5rem,7vw,6rem);}
.section-intro{color:var(--muted);font-size:1.08rem;max-width:60ch;}
.section-title + .section-intro{margin-top:1.1rem;}
.lead{font-family:var(--font-serif);font-size:clamp(1.35rem,2.4vw,1.7rem);line-height:1.5;color:var(--ink);font-weight:500;}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-label);
  font-size:.78rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  padding:1.05em 2.2em;
  border:1px solid transparent;border-radius:var(--radius);
  cursor:pointer;transition:.35s var(--ease);
  line-height:1;
}
.btn--gold{background:var(--gold);color:var(--white);}
.btn--gold:hover{background:var(--ink);color:var(--white);}
.btn--ghost{background:transparent;border-color:rgba(255,255,255,.55);color:var(--white);}
.btn--ghost:hover{background:var(--white);color:var(--ink);border-color:var(--white);}
.btn--block{width:100%;}

/* =====================================================================
   HEADER
   ===================================================================== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:.4s var(--ease);
}
.header-inner{
  max-width:1400px;margin:0 auto;
  padding:.7rem var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
}
.brand{display:flex;align-items:center;}
.brand-logo{height:52px;width:auto;transition:.4s var(--ease);}
.brand-logo--dark{display:none;}
.main-nav{display:flex;align-items:center;gap:2.1rem;}
.main-nav a{
  font-family:var(--font-label);
  font-size:.82rem;font-weight:400;letter-spacing:.06em;
  color:var(--white);opacity:.92;
  padding:.4rem 0;position:relative;transition:.3s;
}
.main-nav a:not(.nav-cta)::after{
  content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;
  background:var(--gold);transition:.3s var(--ease);
}
.main-nav a:not(.nav-cta):hover::after,.main-nav a.active::after{width:100%;}
.nav-cta{
  border:1px solid rgba(255,255,255,.6);
  padding:.6rem 1.3rem !important;border-radius:var(--radius);
  letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;
}
.nav-cta:hover{background:var(--gold);border-color:var(--gold);}

/* Estado scrolleado */
.site-header.scrolled{background:var(--cream-2);box-shadow:0 1px 0 var(--line);}
.site-header.scrolled .brand-logo--light{display:none;}
.site-header.scrolled .brand-logo--dark{display:block;}
.site-header.scrolled .main-nav a{color:var(--ink);}
.site-header.scrolled .nav-cta{border-color:var(--gold);color:var(--gold-deep);}
.site-header.scrolled .nav-cta:hover{color:var(--white);}
.site-header.scrolled .nav-toggle span{background:var(--ink);}

/* Toggle móvil */
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.nav-toggle span{width:26px;height:2px;background:var(--white);transition:.3s var(--ease);}

/* =====================================================================
   HERO
   ===================================================================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;color:var(--white);overflow:hidden;}
.hero-media{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;background:var(--near-black);}
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:heroFade 16s linear infinite;}
.hero-media img:nth-child(1){animation-delay:0s;}
.hero-media img:nth-child(2){animation-delay:4s;}
.hero-media img:nth-child(3){animation-delay:8s;}
.hero-media img:nth-child(4){animation-delay:12s;}
@keyframes heroFade{0%{opacity:0;}5%{opacity:1;}25%{opacity:1;}30%{opacity:0;}100%{opacity:0;}}
.hero-overlay{position:absolute;inset:0;background:
  linear-gradient(100deg,rgba(21,24,24,.78) 0%,rgba(21,24,24,.42) 45%,rgba(21,24,24,.25) 100%);}
.hero-content{
  position:relative;z-index:2;width:100%;max-width:1400px;margin:0 auto;
  padding:7rem var(--gutter) 5rem;
  display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:center;
}
.hero-copy{max-width:640px;}
.hero-brand{height:clamp(52px,8vw,84px);width:auto;margin-bottom:1.6rem;}
.hero-title{
  font-family:var(--font-display);
  font-size:clamp(2.9rem,6.2vw,5.2rem);
  line-height:1.02;font-weight:400;letter-spacing:.005em;
  margin-bottom:1.2rem;text-wrap:balance;
}
.hero-sub{font-size:1.08rem;color:rgba(255,255,255,.88);max-width:40ch;margin-bottom:2rem;font-weight:300;}
.hero-sub strong{color:var(--white);font-weight:600;}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;}

/* Formulario del hero */
.hero-form{width:100%;}
.lead-form{
  background:rgba(255,255,255,.97);color:var(--ink);
  padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow);
  border-top:3px solid var(--gold);
}
.form-title{font-family:var(--font-display);font-size:1.5rem;margin-bottom:.2rem;}
.form-note{font-size:.9rem;color:var(--muted);margin-bottom:1.4rem;}
.field{margin-bottom:1rem;}
.field label{display:block;font-family:var(--font-label);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;}
.field .opt{text-transform:none;letter-spacing:0;}
.field input,.field textarea{
  width:100%;padding:.85rem .9rem;font-family:var(--font-body);font-size:.95rem;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--white);color:var(--ink);
  transition:.25s;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(183,146,73,.14);}
.field input.invalid,.field textarea.invalid{border-color:#c0442f;box-shadow:0 0 0 3px rgba(192,68,47,.12);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;color:var(--muted);margin:.4rem 0 1.2rem;line-height:1.5;}
.consent input{margin-top:.2rem;accent-color:var(--gold);}
.consent a{color:var(--gold-deep);text-decoration:underline;}
.form-feedback{font-size:.9rem;margin:.9rem 0 0;min-height:1.2em;}
.form-feedback.ok{color:#2e7d55;}
.form-feedback.err{color:#c0442f;}

/* Scroll cue */
.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;width:26px;height:44px;border:1px solid rgba(255,255,255,.5);border-radius:14px;display:flex;justify-content:center;}
.scroll-cue span{width:3px;height:9px;background:var(--gold);border-radius:2px;margin-top:8px;animation:cue 1.8s infinite;}
@keyframes cue{0%{opacity:0;transform:translateY(-4px);}40%{opacity:1;}80%{opacity:0;transform:translateY(10px);}}

/* =====================================================================
   FACTSTRIP
   ===================================================================== */
.factstrip{background:var(--near-black);color:var(--white);}
.factstrip ul{max-width:var(--maxw);margin:0 auto;padding:2.4rem var(--gutter);list-style:none;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.5rem;}
.factstrip li{display:flex;flex-direction:column;gap:.3rem;min-width:130px;}
.fact-num{font-family:var(--font-display);font-size:1.9rem;color:var(--gold);line-height:1;}
.fact-label{font-family:var(--font-label);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.72);}

/* =====================================================================
   SECCIONES GENÉRICAS
   ===================================================================== */
.section{padding:clamp(4rem,9vw,7.5rem) 0;}
.section--light{background:var(--white);}
.section--sand{background:var(--cream);}
.section--dark{background:var(--near-black);color:var(--white);}
.section--dark .section-intro{color:rgba(255,255,255,.72);}
.section--dark .lead{color:var(--white);}

/* Concepto */
.concept{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.concept-figure img{border-radius:var(--radius);box-shadow:var(--shadow);aspect-ratio:3/2;object-fit:cover;width:100%;}

/* Feature grid */
.feature-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(3rem,6vw,4.5rem);}
.feature{background:var(--white);padding:1.8rem 1.4rem;display:flex;flex-direction:column;gap:.35rem;}
.feature-k{font-family:var(--font-display);font-size:1.5rem;color:var(--ink);}
.feature-v{font-size:.85rem;color:var(--muted);}

/* Tipologías (resumen con ejemplos visuales) */
.typo-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.typo-x{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.4s var(--ease);}
.typo-x:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent;}
.typo-x figure{margin:0;overflow:hidden;aspect-ratio:4/3;}
.typo-x img{width:100%;height:100%;object-fit:cover;transition:.8s var(--ease);}
.typo-x:hover img{transform:scale(1.07);}
.typo-x-body{padding:1.7rem;display:flex;flex-direction:column;gap:.55rem;}
.typo-x-tag{font-family:var(--font-label);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);}
.typo-x h4{font-family:var(--font-display);font-size:1.55rem;font-weight:400;margin:0;line-height:1.1;}
.typo-x p{font-size:.94rem;color:var(--muted);margin:0;}
.typo-x--ph{border-top:3px solid var(--gold);}
.fineprint{font-size:.8rem;color:var(--muted);margin-top:1.5rem;font-style:italic;}

/* Galerías */
.gallery{display:grid;gap:12px;}
.gallery--env{grid-template-columns:repeat(3,1fr);}
.gallery figure{margin:0;overflow:hidden;border-radius:var(--radius);cursor:pointer;}
.gallery figure img{aspect-ratio:16/10;object-fit:cover;width:100%;transition:.6s var(--ease);}
.gallery figure:hover img{transform:scale(1.06);}

/* Galería "feature": una imagen grande + miniaturas */
.feat-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;aspect-ratio:16/7.4;}
.feat-gallery figure{margin:0;overflow:hidden;border-radius:var(--radius);cursor:pointer;}
.feat-gallery img{width:100%;height:100%;object-fit:cover;transition:.7s var(--ease);}
.feat-gallery figure:hover img{transform:scale(1.06);}
.feat-main{grid-column:1;grid-row:1 / span 2;}

/* =====================================================================
   CARRUSELES (cross-fade + Ken Burns)
   ===================================================================== */
.carousel{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--near-black);}
.carousel-viewport{position:relative;aspect-ratio:16/10;}
.carousel--wide .carousel-viewport{aspect-ratio:16/9;}
.carousel--amen .carousel-viewport{aspect-ratio:4/3;}
.carousel-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.1s var(--ease);}
.carousel-slide.is-active{opacity:1;}
.carousel-slide img{width:100%;height:100%;object-fit:cover;}
.carousel-slide.is-active img{animation:kenburns 6.5s ease-out both;}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:46px;height:46px;border:0;border-radius:50%;background:rgba(21,24,24,.4);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:.3s var(--ease);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
.carousel:hover .carousel-arrow{opacity:1;}
.carousel-arrow:hover{background:var(--gold);}
.carousel-prev{left:14px;}
.carousel-next{right:14px;}
.carousel-dots{position:absolute;bottom:16px;left:0;right:0;z-index:3;display:flex;justify-content:center;gap:8px;}
.carousel-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer;transition:.3s var(--ease);}
.carousel-dots button.is-active{background:var(--gold);width:24px;border-radius:5px;}
@keyframes kenburns{from{transform:scale(1.001);}to{transform:scale(1.09);}}
@keyframes kenburns-slow{from{transform:scale(1);}to{transform:scale(1.12);}}

/* Proyecto: texto + carrusel */
.project-showcase{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.project-text .lead{margin-bottom:1rem;}
.project-stats{list-style:none;padding:1.4rem 0 0;margin:1.8rem 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:1.4rem 2.2rem;}
.project-stats li{font-size:.82rem;color:var(--muted);}
.project-stats b{display:block;font-family:var(--font-display);font-size:1.55rem;color:var(--ink);line-height:1.1;}

/* Tipologías y amenidades compactas dentro de #producto */
.typo-block{margin-top:clamp(3.5rem,7vw,5.5rem);}
.typo-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:2rem;}
.typo-head .eyebrow{margin-bottom:.6rem;}
.typo-head-note{color:var(--muted);max-width:32ch;margin:0;font-size:.95rem;}
.amen-block{margin-top:clamp(3.5rem,7vw,5.5rem);}
.amen-head{margin-bottom:2rem;}
.amen-cta-wrap{text-align:center;margin-top:clamp(2rem,4vw,3rem);margin-bottom:.4rem;}

/* Amenidades */
.amen-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,4vw,3.5rem);align-items:stretch;}
.amen-col{display:flex;flex-direction:column;}
.amen-cta{margin-top:auto;align-self:flex-start;}
.amen-list{list-style:none;padding:0;margin:0;columns:2;column-gap:1.5rem;}
.amen-list li{padding:.7rem 0 .7rem 1.4rem;border-bottom:1px solid var(--line);position:relative;font-size:.98rem;break-inside:avoid;}
.amen-list li::before{content:"";position:absolute;left:0;top:1.15rem;width:6px;height:6px;background:var(--gold);border-radius:50%;}
.amen-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.amen-gallery figure{margin:0;overflow:hidden;border-radius:var(--radius);cursor:pointer;}
.amen-gallery img{aspect-ratio:1/1;object-fit:cover;transition:.6s var(--ease);}
.amen-gallery figure:hover img{transform:scale(1.06);}

/* =====================================================================
   QUIÉN HAY DETRÁS
   ===================================================================== */
.partner-row{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(2rem,5vw,5rem);align-items:center;}
.partner-row + .partner-row{margin-top:clamp(3rem,6vw,5rem);}
.partner-row--reverse{grid-template-columns:1.25fr 1fr;}
.partner-row--reverse .partner-media{order:2;}
.partner-media{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(2.2rem,5vw,4rem);display:flex;align-items:center;justify-content:center;min-height:210px;}
.partner-media img{width:auto;max-width:min(280px,78%);max-height:96px;}
.partner-role{font-family:var(--font-label);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.7rem;}
.partner-info h3{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.4rem);font-weight:400;margin:0 0 1rem;line-height:1.05;}
.partner-info p{font-size:1.02rem;color:#4b473f;margin:0;}
.partner-media a{display:inline-block;transition:opacity .3s var(--ease),transform .3s var(--ease);}
.partner-media a:hover{opacity:.75;transform:translateY(-2px);}
.partner-link{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.4rem;font-family:var(--font-label);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);border-bottom:1px solid rgba(183,146,73,.4);padding-bottom:.25rem;transition:.3s var(--ease);}
.partner-link::after{content:"↗";font-size:.9rem;line-height:1;transition:transform .3s var(--ease);}
.partner-link:hover{color:var(--ink);border-bottom-color:var(--gold);}
.partner-link:hover::after{transform:translate(2px,-2px);}
.partner-stats-inline{list-style:none;padding:0;margin:1.6rem 0 0;display:flex;flex-wrap:wrap;gap:1.4rem 2.5rem;}
.partner-stats-inline li{font-size:.85rem;color:var(--muted);}
.partner-stats-inline b{display:block;font-family:var(--font-display);font-size:1.7rem;color:var(--ink);margin-bottom:.15rem;}

/* =====================================================================
   ENTORNO
   ===================================================================== */
.band-figure{margin:clamp(2.5rem,5vw,4rem) 0 0;height:clamp(320px,48vw,560px);overflow:hidden;}
.band-figure img{width:100%;height:100%;object-fit:cover;animation:kenburns-slow 24s ease-in-out infinite alternate;}
.env-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(3rem,6vw,4.5rem);}
.env-card{background:var(--white);padding:2rem;position:relative;transition:.35s var(--ease);}
.env-card::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--gold);transition:.45s var(--ease);}
.env-card:hover{background:var(--cream-2);}
.env-card:hover::after{width:100%;}
.env-card h3{font-family:var(--font-display);font-size:1.35rem;margin-bottom:.6rem;}
.env-card p{font-size:.94rem;color:var(--muted);margin:0;}
.distances{margin-top:clamp(3rem,6vw,4rem);}
.distances ul{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:2.5rem;}
.distances li{font-size:1rem;color:var(--muted);display:flex;flex-direction:column;gap:.2rem;}
.dist-num{font-family:var(--font-display);font-size:1.9rem;color:var(--gold-deep);}
.gallery--env{margin-top:clamp(3rem,6vw,4rem);}

/* =====================================================================
   FISCALIDAD
   ===================================================================== */
.fiscal{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.fiscal-main p{color:rgba(255,255,255,.82);}
.fiscal-cards{display:flex;flex-direction:column;gap:1rem;}
.fiscal-card{display:flex;align-items:baseline;gap:1.2rem;border:1px solid rgba(255,255,255,.16);border-left:3px solid var(--gold);padding:1.3rem 1.6rem;border-radius:var(--radius);}
.fiscal-pct{font-family:var(--font-display);font-size:2.1rem;color:var(--gold);min-width:5.2rem;}
.fiscal-desc{color:rgba(255,255,255,.85);font-size:.98rem;}
.fiscal-sub{font-family:var(--font-display);font-size:clamp(1.15rem,2vw,1.5rem);color:var(--gold);margin:.1rem 0 1.1rem;}
.fiscal-figures{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin:clamp(2rem,4vw,3rem) 0 0;}
.fiscal-figures .fiscal-card{flex-direction:column;align-items:flex-start;gap:.5rem;}
.fiscal-figures .fiscal-pct{min-width:0;}
.fiscal-adv-title{font-family:var(--font-display);font-weight:400;font-size:clamp(1.4rem,2.6vw,2rem);color:#fff;margin:clamp(2.6rem,5vw,3.6rem) 0 1.7rem;}
.fiscal-adv{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,3vw,2.4rem);}
.fiscal-adv-item{border-top:2px solid var(--gold);padding-top:1.1rem;}
.fiscal-adv-item h4{font-family:var(--font-display);font-weight:400;font-size:1.18rem;color:#fff;margin:0 0 .55rem;line-height:1.25;}
.fiscal-adv-item p{color:rgba(255,255,255,.72);font-size:.97rem;line-height:1.6;margin:0;}
@media (max-width:760px){.fiscal-figures,.fiscal-adv{grid-template-columns:1fr;}}
.disclaimer{margin-top:clamp(2.5rem,5vw,3.5rem);font-size:.8rem;color:rgba(255,255,255,.5);max-width:80ch;line-height:1.6;}

/* =====================================================================
   CTA BAND
   ===================================================================== */
.cta-band{position:relative;min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--white);overflow:hidden;}
.cta-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.cta-overlay{position:absolute;inset:0;background:rgba(21,24,24,.6);}
.cta-content{position:relative;z-index:2;max-width:760px;padding:4rem var(--gutter);}
.cta-quote{font-family:var(--font-display);font-size:clamp(1.5rem,3.2vw,2.4rem);font-style:italic;line-height:1.35;margin-bottom:2rem;text-wrap:balance;}

/* =====================================================================
   CONTACTO
   ===================================================================== */
.contact-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2.5rem,5vw,5rem);align-items:start;}
.contact-details{list-style:none;padding:0;margin:2rem 0 0;display:flex;flex-direction:column;gap:1.4rem;}
.contact-details li{display:flex;flex-direction:column;gap:.25rem;border-top:1px solid var(--line);padding-top:1.2rem;}
.contact-k{font-family:var(--font-label);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);}

/* --- Otros proyectos en RD --- */
.proyectos-mini{background:#f6f1e7;padding:clamp(2.8rem,5vw,4rem) 0;border-top:1px solid var(--line);}
.proyectos-mini-inner{text-align:center;}
.proyectos-mini-head h2{font-family:var(--font-display);font-weight:400;font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.15;color:var(--ink);margin:0 0 clamp(2rem,4vw,2.8rem);text-wrap:balance;}
.proyectos-mini-head h2::after{content:"";display:block;width:38px;height:1px;background:var(--gold);margin:1.1rem auto 0;}
.proyectos-grid{display:flex;justify-content:center;align-items:stretch;}
.proyecto-card{width:min(100%,285px);padding:.3rem clamp(2rem,5vw,4rem);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.proyecto-card + .proyecto-card{border-left:1px solid var(--line);}
.proyecto-nombre{display:flex;align-items:center;justify-content:center;min-height:42px;margin:0;}
.proyecto-nombre img{width:auto;height:auto;max-height:38px;max-width:190px;object-fit:contain;object-position:center;transition:opacity .3s var(--ease);}
.proyecto-card:hover .proyecto-nombre img{opacity:.72;}
.proyecto-estado{padding-top:.85rem;font-family:var(--font-label);font-size:.59rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);}
@media (max-width:620px){
  .proyectos-grid{flex-direction:column;align-items:center;}
  .proyecto-card{width:min(100%,280px);padding:1rem 1.5rem;}
  .proyecto-card + .proyecto-card{border-left:0;border-top:1px solid var(--line);margin-top:.6rem;padding-top:1.6rem;}
}

/* --- Apoyo legal (bufetes) --- */
.legal-support{margin-top:clamp(3.5rem,7vw,5.5rem);border-top:1px solid var(--line);padding-top:clamp(2.5rem,5vw,3.5rem);}
.legal-support-head{max-width:70ch;margin-bottom:clamp(2rem,4vw,2.8rem);}
.legal-support-head .section-title{margin-bottom:0;}
.legal-firms{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,2rem);}
.legal-firm{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;padding:clamp(1.6rem,3vw,2.2rem);border:1px solid var(--line);border-radius:var(--radius);background:var(--white);transition:.35s var(--ease);}
.legal-firm:hover{border-color:var(--gold);box-shadow:0 14px 34px -20px rgba(29,29,27,.5);transform:translateY(-3px);}
.legal-firm img{height:52px;width:auto;max-width:100%;object-fit:contain;object-position:left center;}
.legal-firm-role{font-size:.92rem;color:var(--muted);line-height:1.5;}
.legal-firm-cta{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-label);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);}
.legal-firm-cta::after{content:"↗";font-size:.85rem;line-height:1;transition:transform .3s var(--ease);}
.legal-firm:hover .legal-firm-cta::after{transform:translate(2px,-2px);}
@media (max-width:760px){.legal-firms{grid-template-columns:1fr;}}
.contact-details a{color:var(--ink);border-bottom:1px solid var(--gold);width:fit-content;transition:.3s;}
.contact-details a:hover{color:var(--gold-deep);}
.lead-form--panel{background:var(--cream-2);border-top:3px solid var(--gold);box-shadow:none;border:1px solid var(--line);border-top:3px solid var(--gold);}

/* =====================================================================
   FOOTER
   ===================================================================== */
.site-footer{background:var(--near-black);color:rgba(255,255,255,.7);padding:clamp(3rem,6vw,4.5rem) 0 2.5rem;}
.footer-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:2rem;padding-bottom:2.2rem;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-logo{height:70px;width:auto;}
.footer-tagline{font-family:var(--font-label);letter-spacing:.34em;text-transform:uppercase;font-size:.72rem;color:var(--gold);margin:.7rem 0 0;}
.footer-nav{display:flex;flex-wrap:wrap;gap:1.8rem;}
.footer-nav a{font-family:var(--font-label);font-size:.82rem;letter-spacing:.04em;color:rgba(255,255,255,.8);transition:.3s;}
.footer-nav a:hover{color:var(--gold);}
.footer-credits{padding-top:2rem;}
.footer-credits p{font-size:.9rem;color:rgba(255,255,255,.8);margin:0;}
.footer-credits a{color:var(--gold);border-bottom:1px solid rgba(183,146,73,.35);transition:.3s var(--ease);}
.footer-credits a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.6);}
.footer-legal{margin-top:1.5rem;}
.footer-legal p{font-size:.76rem;color:rgba(255,255,255,.42);line-height:1.6;margin:0 0 .6rem;}
.footer-copy{color:rgba(255,255,255,.55) !important;}

/* =====================================================================
   LIGHTBOX
   ===================================================================== */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(15,17,17,.94);display:none;align-items:center;justify-content:center;padding:4vw;}
.lightbox.open{display:flex;}
.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:var(--radius);box-shadow:0 30px 80px rgba(0,0,0,.6);}
.lightbox button{position:absolute;background:none;border:0;color:rgba(255,255,255,.8);cursor:pointer;transition:.3s;}
.lightbox button:hover{color:var(--gold);}
.lightbox-close{top:24px;right:32px;font-size:2.6rem;line-height:1;}
.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);font-size:3.4rem;padding:0 1.4rem;}
.lightbox-prev{left:1vw;}
.lightbox-next{right:1vw;}

/* =====================================================================
   REVEAL ANIMATION
   ===================================================================== */
html,body{overflow-x:clip;}
.reveal,[data-reveal]{opacity:0;transition:opacity 1.05s cubic-bezier(.19,1,.22,1),transform 1.05s cubic-bezier(.19,1,.22,1);}
.reveal,[data-reveal="up"]{transform:translateY(72px);}
[data-reveal="down"]{transform:translateY(-72px);}
[data-reveal="left"]{transform:translateX(-90px);}
[data-reveal="right"]{transform:translateX(90px);}
[data-reveal="zoom"]{transform:scale(.85);}
[data-reveal="fade"]{transform:none;}
.reveal.in-view,[data-reveal].in-view{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1024px){
  .hero-content{grid-template-columns:1fr;gap:2.5rem;padding-top:6rem;}
  .hero-copy{max-width:100%;}
  .hero-form{max-width:460px;}
  .partners{grid-template-columns:1fr;}
  .concept,.amen-layout,.fiscal,.contact-layout,.project-showcase{grid-template-columns:1fr;}
  .feature-grid{grid-template-columns:repeat(2,1fr);}
  .env-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:760px){
  body{font-size:16px;}
  .nav-toggle{display:flex;}
  .main-nav{
    position:fixed;inset:0 0 0 auto;width:min(80vw,320px);
    background:var(--cream-2);flex-direction:column;align-items:flex-start;justify-content:center;
    gap:1.6rem;padding:2.5rem;transform:translateX(100%);transition:.4s var(--ease);box-shadow:var(--shadow);
  }
  .main-nav.open{transform:none;}
  .main-nav a{color:var(--ink) !important;font-size:1.05rem;}
  .nav-cta{border-color:var(--gold) !important;color:var(--gold-deep) !important;}
  .gallery--env{grid-template-columns:1fr 1fr;}
  .amen-gallery{grid-template-columns:1fr 1fr;}
  .env-grid{grid-template-columns:1fr;}
  .typo-cards{grid-template-columns:1fr;}
  .partner-row,.partner-row--reverse{grid-template-columns:1fr;gap:1.5rem;}
  .partner-row--reverse .partner-media{order:0;}
  .carousel-arrow{opacity:.9;}
  .carousel--wide .carousel-viewport{aspect-ratio:4/3;}
  .feat-gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto;aspect-ratio:auto;}
  .feat-gallery figure:not(.feat-main){aspect-ratio:1/1;}
  .feat-main{grid-column:1 / -1;grid-row:auto;aspect-ratio:16/10;}
  .field-row{grid-template-columns:1fr;}
  .factstrip ul{gap:1.2rem 2rem;}
  .fact-num{font-size:1.5rem;}
  .amen-list{columns:1;}
  .lightbox-prev,.lightbox-next{font-size:2.4rem;padding:0 .5rem;}
}
@media (max-width:460px){
  .feature-grid{grid-template-columns:1fr;}
  .gallery--env,.amen-gallery{grid-template-columns:1fr;}
  .feat-gallery{grid-template-columns:1fr;}
  .lead-form{padding:1.5rem;}
}

/* =====================================================================
   CAPA PREMIUM
   ===================================================================== */

/* --- Preloader: cortina que se abre y revela el hero --- */
.preloader{position:fixed;inset:0;z-index:1000;pointer-events:none;overflow:hidden;}
.preloader-panel{position:absolute;left:-1px;right:-1px;height:calc(50% + 1px);background:var(--near-black);will-change:transform;}
.preloader-panel--top{top:0;animation:curtainTop 1.05s cubic-bezier(.76,0,.24,1) 1.7s forwards;}
.preloader-panel--bottom{bottom:0;animation:curtainBottom 1.05s cubic-bezier(.76,0,.24,1) 1.7s forwards;}
@keyframes curtainTop{to{transform:translateY(-101%);}}
@keyframes curtainBottom{to{transform:translateY(101%);}}
.preloader-inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;animation:innerOut .6s var(--ease) 1.55s forwards;}
@keyframes innerOut{to{opacity:0;transform:translateY(-12px);}}
.preloader-logo{height:clamp(46px,7vw,72px);width:auto;opacity:0;transform:translateY(12px);animation:preIn .9s var(--ease) .1s forwards;}
.preloader-line{width:min(240px,60vw);height:2px;background:rgba(255,255,255,.14);margin:1.7rem auto 1.1rem;overflow:hidden;}
.preloader-line span{display:block;height:100%;width:0;background:var(--gold);animation:preBar 1.3s var(--ease) .3s forwards;}
.preloader-sub{font-family:var(--font-label);letter-spacing:.34em;text-transform:uppercase;font-size:.64rem;color:rgba(255,255,255,.5);margin:0;opacity:0;animation:preIn .9s var(--ease) .5s forwards;}
@keyframes preIn{to{opacity:1;transform:none;}}
@keyframes preBar{to{width:100%;}}

/* --- Barra de progreso de scroll --- */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:300;background:linear-gradient(90deg,var(--gold-deep),var(--gold));box-shadow:0 0 12px rgba(183,146,73,.55);}

/* --- Cursor personalizado (solo puntero fino) --- */
.cursor{display:none;}
@media (hover:hover) and (pointer:fine){
  .cursor{display:block;position:fixed;top:0;left:0;z-index:9999;pointer-events:none;}
  .cursor-dot{position:fixed;top:0;left:0;width:7px;height:7px;border-radius:50%;background:var(--gold);transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease);}
  .cursor-ring{position:fixed;top:0;left:0;width:38px;height:38px;border:1px solid rgba(183,146,73,.65);border-radius:50%;transform:translate(-50%,-50%);
    transition:width .35s var(--ease),height .35s var(--ease),border-color .35s,background .35s,opacity .35s;}
  .cursor.is-hover .cursor-ring{width:66px;height:66px;border-color:var(--gold);background:rgba(183,146,73,.09);}
  .cursor.is-hover .cursor-dot{width:0;height:0;}
  .cursor.is-down .cursor-ring{width:30px;height:30px;}
  html.has-cursor,html.has-cursor a,html.has-cursor button,html.has-cursor *{cursor:none;}
}

/* --- Hero: grano de película + viñeta + entrada cinematográfica --- */
.hero-grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.45;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.hero-overlay{background:
  radial-gradient(130% 130% at 72% 28%,transparent 38%,rgba(21,24,24,.55) 100%),
  linear-gradient(100deg,rgba(21,24,24,.82) 0%,rgba(21,24,24,.44) 46%,rgba(21,24,24,.26) 100%);}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.08em;}
.hero-title .line-in{display:block;transform:translateY(115%);animation:lineUp 1.1s cubic-bezier(.19,1,.22,1) forwards;}
.hero-title .line:nth-child(1) .line-in{animation-delay:1.75s;}
.hero-title .line:nth-child(2) .line-in{animation-delay:1.9s;}
@keyframes lineUp{to{transform:translateY(0);}}
.hero-anim{opacity:0;transform:translateY(24px);animation:heroUp 1s var(--ease) forwards;}
.hero-copy .eyebrow.hero-anim{animation-delay:1.65s;}
.hero-brand.hero-anim{animation-delay:1.75s;}
.hero-sub.hero-anim{animation-delay:2.15s;}
.hero-actions.hero-anim{animation-delay:2.3s;}
@keyframes heroUp{to{opacity:1;transform:none;}}

/* --- Marquesina editorial --- */
.marquee{overflow:hidden;background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.5rem 0;white-space:nowrap;}
.marquee-track{display:inline-flex;align-items:center;gap:2.6rem;animation:marquee 34s linear infinite;will-change:transform;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-track span{font-family:var(--font-display);font-size:clamp(1.5rem,3.4vw,2.7rem);color:var(--ink);letter-spacing:.01em;}
.marquee-track i{color:var(--gold);font-style:normal;font-size:.9rem;transform:translateY(-.3em);}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* --- Sección masterplan 3D --- */
.masterplan{position:relative;min-height:88vh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;}
.masterplan-media{position:absolute;inset:0;overflow:hidden;}
.masterplan-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kenburns-slow 28s ease-in-out infinite alternate;}
.masterplan-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,15,17,.82) 0%,rgba(12,15,17,.6) 26%,rgba(12,15,17,.2) 52%,rgba(12,15,17,0) 68%),linear-gradient(180deg,rgba(21,24,24,.2) 0%,rgba(21,24,24,.32) 50%,rgba(21,24,24,.92) 100%);}
.masterplan-content{position:relative;z-index:2;padding-top:6rem;padding-bottom:clamp(3rem,7vw,6rem);max-width:660px;}
.masterplan-content .section-title{margin-bottom:1rem;}
.masterplan-content .section-intro{color:rgba(255,255,255,.82);margin-bottom:2rem;max-width:52ch;}
.hotspot{position:absolute;z-index:2;width:16px;height:16px;border-radius:50%;background:var(--gold);transform:translate(-50%,-50%);animation:pulse 2.6s ease-out infinite;}
.hotspot::after{content:"";position:absolute;inset:5px;border-radius:50%;background:#fff;}
.hotspot:nth-of-type(2){animation-delay:.65s;}
.hotspot:nth-of-type(3){animation-delay:1.3s;}
.hotspot:nth-of-type(4){animation-delay:1.95s;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(183,146,73,.55);}70%{box-shadow:0 0 0 24px rgba(183,146,73,0);}100%{box-shadow:0 0 0 0 rgba(183,146,73,0);}}

/* --- Botón oro: destello (sheen) --- */
.btn--gold{position:relative;overflow:hidden;}
.btn--gold::before{content:"";position:absolute;top:0;left:-130%;width:65%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);pointer-events:none;}
.btn--gold:hover::before{animation:sheen .9s var(--ease);}
@keyframes sheen{to{left:135%;}}

/* --- Tilt 3D --- */
[data-tilting]{will-change:transform;}

/* --- Reveal refinado --- */
.reveal{transition:opacity 1s cubic-bezier(.19,1,.22,1),transform 1s cubic-bezier(.19,1,.22,1);}

@media (max-width:760px){
  .masterplan{min-height:78vh;}
  .marquee-track{gap:1.8rem;}
}

/* --- Sección scroll-expand (imagen que se abre al hacer scroll) --- */
.expand{position:relative;height:200vh;background:var(--near-black);}
.expand-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.expand-frame{position:relative;width:100%;height:100%;clip-path:inset(11% 17% round 18px);-webkit-clip-path:inset(11% 17% round 18px);will-change:clip-path;}
.expand-frame img{width:100%;height:100%;object-fit:cover;}
.expand-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,24,24,.12) 0%,rgba(21,24,24,.5) 100%);}
.expand-inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:2rem;}
.expand-eyebrow{justify-content:center;margin-bottom:1rem;opacity:0;transform:translateY(18px);}
.expand-eyebrow::before{display:none;}
.expand-title{font-family:var(--font-display);font-weight:400;font-size:clamp(2.1rem,5.4vw,4.4rem);line-height:1.03;max-width:15ch;margin:0;opacity:0;transform:translateY(26px);text-wrap:balance;}
@media (max-width:760px){
  .expand{height:160vh;}
  .expand-frame{clip-path:inset(6% 6% round 14px);-webkit-clip-path:inset(6% 6% round 14px);}
}

/* Scroll-expand integrado en "El origen de Poseidonia" */
#producto{padding-top:0;}
.origin{position:relative;aspect-ratio:2000/1125;min-height:440px;overflow:hidden;display:flex;align-items:center;justify-content:center;margin-bottom:clamp(2.5rem,5vw,4.5rem);background:var(--near-black);}
.origin-media{position:absolute;inset:0;overflow:hidden;}
.origin-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:heroFade 16s linear infinite;}
.origin-media img:nth-child(1){animation-delay:0s;}
.origin-media img:nth-child(2){animation-delay:4s;}
.origin-media img:nth-child(3){animation-delay:8s;}
.origin-media img:nth-child(4){animation-delay:12s;}
.origin-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,24,24,.4) 0%,rgba(21,24,24,.3) 42%,rgba(21,24,24,.68) 100%);}
.origin-inner{position:relative;z-index:2;text-align:center;color:#fff;max-width:780px;padding:2rem;}
.origin-inner::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:135%;height:190%;background:radial-gradient(ellipse at center,rgba(9,11,13,.62) 0%,rgba(9,11,13,.4) 44%,rgba(9,11,13,0) 72%);z-index:-1;pointer-events:none;}
.origin-inner .eyebrow{justify-content:center;margin-bottom:.9rem;}
.origin-inner .eyebrow::before{display:none;}
.origin-inner .section-title{color:#fff;margin:0 0 1rem;text-wrap:balance;}
.origin-sub{color:rgba(255,255,255,.86);max-width:52ch;margin:0 auto;font-size:1.05rem;}
.expand--inline{margin-bottom:clamp(2.5rem,5vw,4rem);}
.expand-sub{font-size:1.05rem;color:rgba(255,255,255,.85);max-width:46ch;margin:1.2rem auto 0;opacity:0;transform:translateY(22px);}
.project-stats--row{justify-content:center;text-align:center;border-top:none;padding-top:0;margin:0 auto clamp(1rem,3vw,2rem);max-width:1000px;gap:1.6rem 3.4rem;}

/* --- Scroll horizontal fijado (Descubre Cana Bay) --- */
.hscroll{position:relative;height:450vh;}
.hscroll-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;}
.hscroll-track{display:flex;gap:2rem;padding:0 7vw;align-items:center;will-change:transform;}
.hpanel{position:relative;flex:0 0 min(86vw,1040px);height:74vh;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.hpanel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hpanel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,24,24,.05) 0%,rgba(21,24,24,.12) 42%,rgba(21,24,24,.85) 100%);}
.hpanel-body{position:absolute;left:0;bottom:0;z-index:2;padding:clamp(1.8rem,4vw,3.4rem);color:#fff;max-width:660px;}
.hpanel-num{font-family:var(--font-label);font-size:.72rem;letter-spacing:.26em;color:var(--gold);display:block;margin-bottom:.9rem;}
.hpanel-body h3{font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem,3.2vw,2.9rem);line-height:1.04;margin:0 0 .6rem;}
.hpanel-body p{font-size:1.02rem;color:rgba(255,255,255,.85);margin:0;max-width:48ch;}
.hscroll-foot{position:absolute;left:0;right:0;bottom:clamp(1.4rem,4vh,2.6rem);z-index:3;display:flex;align-items:center;gap:1.6rem;padding:0 7vw;}
.hscroll-label{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.26em;font-size:.66rem;color:var(--gold-deep);white-space:nowrap;}
.hscroll-progress{flex:1;height:2px;background:rgba(29,29,27,.16);border-radius:2px;position:relative;overflow:hidden;}
.hscroll-progress span{position:absolute;left:0;top:0;height:100%;width:0;background:var(--gold);}
.hscroll-count{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);white-space:nowrap;}
.hscroll-count b{color:var(--gold-deep);font-weight:400;}

/* --- Masterplan interactivo (plano + marcadores) --- */
.mplan-stage{position:relative;max-width:1280px;margin:0 auto;}
.mplan-img{width:100%;display:block;filter:drop-shadow(0 14px 26px rgba(20,24,45,.4));}
.mp-b{position:absolute;margin:-16px 0 0 -16px;width:32px;height:32px;padding:0;border-radius:50%;background:var(--near-black);color:#fff;border:2px solid transparent;font-family:var(--font-label);font-size:.78rem;font-weight:600;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.25s var(--ease);z-index:3;}
.mp-b:hover,.mp-b.is-hl,.mp-b:focus-visible{background:var(--gold);transform:scale(1.3);border-color:var(--cream);box-shadow:0 5px 16px -4px rgba(183,146,73,.85);z-index:5;outline:none;}
.mplan-stage.dim .mp-b:not(.is-hl){opacity:.3;}
.mplan-stage.dim .mp-star{opacity:.35;}
.mp-star{position:absolute;margin:-13px 0 0 -13px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:1.2rem;line-height:1;z-index:4;cursor:default;filter:drop-shadow(0 1px 2px rgba(29,29,27,.25));transition:transform .25s var(--ease),opacity .25s;}
.mp-star:hover{transform:scale(1.45);}
.mp-tip{position:absolute;transform:translate(-50%,calc(-100% - 14px));background:var(--near-black);color:#fff;padding:.5rem .85rem;border-radius:5px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:7;display:flex;flex-direction:column;gap:.1rem;}
.mp-tip.show{opacity:1;}
.mp-tip.below{transform:translate(-50%,14px);}
.mp-tip b{font-family:var(--font-display);font-weight:400;font-size:1rem;}
.mp-tip span{color:rgba(255,255,255,.72);font-size:.72rem;letter-spacing:.02em;}
.mp-tip::after{content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--near-black);}
.mp-tip.below::after{bottom:auto;top:-6px;border-top-color:transparent;border-bottom-color:var(--near-black);}
.mp-legend{display:flex;flex-wrap:wrap;gap:.55rem .8rem;justify-content:center;align-items:center;margin-top:2.2rem;}
.mp-legend-title{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.18em;font-size:.66rem;color:var(--muted);margin-right:.2rem;}
.mp-phase{font-family:var(--font-display);font-size:1rem;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--white);color:var(--muted);cursor:pointer;transition:.25s var(--ease);}
.mp-phase:hover,.mp-phase:focus-visible{border-color:var(--gold);color:var(--ink);background:var(--cream);outline:none;}
.mp-legend-star{font-size:.82rem;color:var(--muted);margin-left:.6rem;display:inline-flex;align-items:center;gap:.4rem;}
.mp-legend-star i{color:var(--gold);font-style:normal;font-size:1rem;}

/* Hotspots transparentes sobre los iconos del plano */
.mp-ico{position:absolute;transform:translate(-50%,-50%);width:3.15%;aspect-ratio:1;height:auto;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;z-index:3;transition:transform .22s var(--ease),box-shadow .22s;}
.mp-ico:hover,.mp-ico:focus-visible{transform:translate(-50%,-50%) scale(1.14);z-index:6;outline:none;box-shadow:0 0 0 2px var(--cream),0 0 0 4px var(--gold),0 7px 18px -4px rgba(183,146,73,.7);}
.mp-ico--temple{width:3.95%;z-index:4;}

/* Columnas de detalle de amenidades */
.amn-cols{display:grid;grid-template-columns:1fr 1.15fr .9fr;gap:clamp(1.6rem,4vw,3.2rem);margin-top:clamp(2.6rem,5vw,3.8rem);}
.amn-col-title{font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:.95rem;margin:0;}
.amn-col-title--rec{color:#5b78c9;}
.amn-col-title--amn{color:var(--gold-deep);}
.amn-col-title--temple{color:var(--ink);}
.amn-col-sub{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;color:var(--muted);margin:.2rem 0 1.5rem;}
.amn-items{display:grid;grid-template-columns:1fr;gap:1rem 1.4rem;}
.amn-items--two{grid-template-columns:1fr 1fr;}
.amn-item{display:flex;align-items:center;gap:.7rem;}
.amn-item img{width:40px;height:40px;flex:0 0 auto;}
.amn-item span{display:flex;flex-direction:column;line-height:1.25;font-size:.76rem;color:var(--muted);}
.amn-item b{font-size:.92rem;color:var(--ink);font-weight:600;}
.amn-temple{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem;}
.amn-temple li{display:flex;flex-direction:column;line-height:1.25;}
.amn-temple b{font-size:.95rem;color:var(--ink);font-weight:600;}
.amn-temple span{font-size:.76rem;color:var(--muted);}
@media (max-width:820px){
  .mplan-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.6rem;}
  .mplan-stage{min-width:760px;}
  .mp-b{width:28px;height:28px;margin:-14px 0 0 -14px;font-size:.72rem;}
  .amn-cols{grid-template-columns:1fr;gap:2rem;}
  .amn-items--two{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .amn-items--two{grid-template-columns:1fr;}
}

/* --- Descubre Cana Bay: carrusel arrastrable + línea de distancias --- */
.canabay{margin-top:clamp(2rem,4vw,3rem);}
.canabay-viewport{overflow:hidden;height:74vh;}
.canabay-track{display:flex;gap:2rem;padding:0 7vw;height:100%;align-items:center;will-change:transform;}
.canabay .hpanel{height:100%;}
.dline{margin-top:clamp(2.5rem,5vw,3.5rem);}
.dline-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem;}
.dline-hint{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.22em;font-size:.66rem;color:var(--gold-deep);}
.dline-count{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);white-space:nowrap;}
.dline-count b{color:var(--gold-deep);font-weight:400;}
.dline-track{position:relative;height:44px;cursor:pointer;user-select:none;-webkit-user-select:none;}
.dline-rail,.dline-fill{position:absolute;top:22px;transform:translateY(-50%);height:3px;border-radius:3px;pointer-events:none;}
.dline-rail{left:0;right:0;background:rgba(29,29,27,.16);}
.dline-fill{left:0;width:0;background:var(--gold);}
.dline-mark{position:absolute;top:22px;transform:translate(-50%,-50%);pointer-events:none;}
.dline-dot{display:block;width:11px;height:11px;border-radius:50%;background:var(--cream);border:2px solid var(--gold-deep);}
.dline-label{position:absolute;top:22px;white-space:nowrap;display:flex;flex-direction:column;gap:.05rem;left:50%;transform:translateX(-50%);}
.dline-mark--start .dline-label{left:0;transform:none;align-items:flex-start;text-align:left;}
.dline-mark--end .dline-label{left:auto;right:0;transform:none;align-items:flex-end;text-align:right;}
.dline-label b{font-family:var(--font-display);font-weight:400;font-size:1.1rem;color:var(--gold-deep);line-height:1;}
.dline-label span{font-size:.78rem;color:var(--muted);}
.dline-handle{position:absolute;top:22px;left:0;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;background:var(--gold);color:#fff;border:3px solid var(--cream);box-shadow:0 6px 18px -6px rgba(29,29,27,.55);cursor:grab;display:flex;align-items:center;justify-content:center;z-index:3;transition:box-shadow .25s,transform .12s;touch-action:none;}
.dline-handle:hover{box-shadow:0 9px 24px -6px rgba(183,146,73,.75);}
.dline-handle.is-grab,.dline-handle:active{cursor:grabbing;transform:translate(-50%,-50%) scale(1.06);}
.dline-handle:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;}
@media (max-width:900px){
  .canabay-viewport{height:auto;overflow:visible;}
  .canabay-track{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;height:auto;padding:0 5vw 1rem;gap:1rem;}
  .canabay .hpanel{flex:0 0 82vw;height:62vh;scroll-snap-align:center;}
  .dline-handle,.dline-fill{display:none;}
  .dline-track{cursor:default;height:40px;}
  .dline-label b{font-size:.98rem;}
  .dline-label span{font-size:.68rem;}
}
@media (max-width:900px){
  .hscroll{height:auto;}
  .hscroll-sticky{position:static;height:auto;overflow:visible;display:block;padding-top:.5rem;}
  .hscroll-track{transform:none !important;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:0 5vw 1.5rem;gap:1rem;}
  .hpanel{flex:0 0 82vw;height:62vh;scroll-snap-align:center;}
  .hscroll-foot{display:none;}
}
