/* ===================================================
   ELSA MASCAREÑAS — PUERTO ESCONDIDO
   Cinematic Boho-Chic Luxury
   =================================================== */

:root {
  --arena:        #F5F0E8;
  --arena-deep:   #EDE7DB;
  --arena-warm:   #E8E0D2;
  --carbon:       #2B2B2B;
  --carbon-soft:  rgba(43,43,43,.55);
  --navy:         #0C2340;
  --navy-mid:     #1A3A5C;
  --dorado:       #C9A84C;
  --dorado-dark:  #B8963F;
  --azul:         #85B7EB;
  --white:        #FFFFFF;

  --ff-display: 'Playfair Display', Georgia, serif;
  --ff-body:    'Lato', 'Helvetica Neue', Arial, sans-serif;
  --ff-script:  'WindSong', 'Better Saturday', cursive;

  --ease-out:   cubic-bezier(.22,1,.36,1);
  --ease-snap:  cubic-bezier(.5,0,0,1);

  --gutter:     clamp(20px, 5vw, 80px);
  --max-w:      1200px;
}

/* ─── RESET ─── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{
  font-family:var(--ff-body);
  font-weight:300;
  font-size:16px;
  line-height:1.75;
  color:var(--carbon);
  background:var(--arena);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
ul{list-style:none}
img{max-width:100%;height:auto;display:block}
button{font-family:inherit}

/* ─── UTILITY ─── */
.container{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
}

/* ─── TYPOGRAPHY ─── */
h1,h2,h3{
  font-family:var(--ff-display);
  color:var(--navy);
  font-weight:500;
  line-height:1.15;
}

/* ─── SECTION COMMON ─── */
.section{
  padding:clamp(80px,12vw,160px) 0;
  position:relative;
}

.section-eyebrow{
  display:block;
  font-family:var(--ff-body);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--dorado);
  margin-bottom:16px;
}
.section-eyebrow--light{color:var(--dorado)}
.section-eyebrow--center{text-align:center}

.section-title{
  font-size:clamp(2rem,4.5vw,3.4rem);
  margin-bottom:20px;
  letter-spacing:-0.02em;
}
.section-title--light{color:var(--arena)}
.section-title--center{text-align:center}

.section-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:60px;
}
.section-header--center{
  flex-direction:column;
  align-items:center;
  text-align:center;
  margin-bottom:72px;
}

.section-desc{
  max-width:400px;
  font-size:.95rem;
  color:var(--carbon-soft);
  line-height:1.7;
}

/* ─── BUTTONS ─── */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--ff-body);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  padding:18px 36px;
  border:none;
  border-radius:40px;
  cursor:pointer;
  transition:all .4s var(--ease-out);
  position:relative;
  overflow:hidden;
}
.btn svg{transition:transform .3s var(--ease-out)}
.btn:hover svg{transform:translateX(4px)}

.btn-gold{
  background:var(--dorado);
  color:var(--white);
}
.btn-gold::after{
  content:'';
  position:absolute;
  inset:0;
  background:var(--navy);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .5s var(--ease-snap);
  z-index:0;
}
.btn-gold:hover::after{
  transform:scaleX(1);
  transform-origin:left;
}
.btn-gold>*{position:relative;z-index:1}

.btn-outline{
  background:transparent;
  border:1px solid var(--navy);
  color:var(--navy);
}
.btn-outline:hover{
  background:var(--navy);
  color:var(--white);
}

.btn-whatsapp{
  background:#25D366;
  color:var(--white);
  margin-top:32px;
}
.btn-whatsapp:hover{
  background:#1EBE5A;
}
.btn-whatsapp::after{display:none}

.btn-full{width:100%;justify-content:center}

/* ─── HEADER ─── */
.header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  height:100px;
  transition:all .5s var(--ease-out);
}
.header.scrolled{
  height:70px;
  background:rgba(245,240,232,.92);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  box-shadow:0 1px 0 rgba(12,35,64,.06);
}
.header-inner{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--gutter);
  height:100%;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:32px;
}

.header-logo{
  display:flex;
  flex-direction:column;
  align-items:center;
  line-height:1;
  text-align:center;
  transition:transform .5s var(--ease-out);
}
.header.scrolled .header-logo{transform:scale(.85)}

.logo-name{
  font-family:var(--ff-script);
  font-size:2.4rem;
  font-weight:400;
  color:var(--navy);
  letter-spacing:0;
  line-height:1;
  white-space:nowrap;
}
.logo-tagline{
  font-family:var(--ff-body);
  font-size:.6rem;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--dorado);
  font-weight:700;
  margin-top:4px;
}

.nav{display:flex;align-items:center}
.nav-left{justify-content:flex-end}
.nav-right{justify-content:flex-start}

.nav-list{
  display:flex;
  gap:32px;
}
.nav-link{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--carbon-soft);
  position:relative;
  transition:color .3s;
}
.nav-link::after{
  content:'';
  position:absolute;
  bottom:-6px;left:50%;
  width:0;height:1px;
  background:var(--dorado);
  transition:all .4s var(--ease-out);
  transform:translateX(-50%);
}
.nav-link:hover,
.nav-link.active{color:var(--navy)}
.nav-link:hover::after,
.nav-link.active::after{width:20px}

/* Mobile drawer */
.nav-mobile{
  position:fixed;
  top:0;right:-100%;
  width:85%;max-width:340px;
  height:100vh;height:100dvh;
  background:var(--arena);
  padding:120px var(--gutter) 40px;
  transition:right .5s var(--ease-out);
  box-shadow:-20px 0 60px rgba(0,0,0,.1);
  z-index:999;
  display:flex;
  flex-direction:column;
  gap:32px;
}
.nav-mobile.open{right:0}
.nav-mobile-list{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.nav-mobile-list .nav-link{
  font-size:1rem;
  letter-spacing:2px;
}

/* Hamburger */
.nav-toggle{
  display:none;
  flex-direction:column;
  gap:6px;
  background:none;border:none;cursor:pointer;
  padding:4px;
  z-index:1001;
  position:absolute;
  right:var(--gutter);
  top:50%;
  transform:translateY(-50%);
}
.nav-toggle span{
  display:block;width:26px;height:1.5px;
  background:var(--navy);
  transition:all .4s var(--ease-out);
  transform-origin:center;
}
.nav-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5.5px,5.5px)}
.nav-toggle.active span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(5.5px,-5.5px)}

/* ─── LANGUAGE TOGGLE ─── */
.lang-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  font-weight:600;
  letter-spacing:1px;
  color:rgba(255,255,255,.7);
  cursor:pointer;
  padding:6px 12px;
  border:none;
  background:none;
  border-radius:4px;
  transition:color .3s var(--ease-out);
  margin-left:12px;
}
.lang-toggle:hover{color:var(--white)}
.lang-active{color:var(--dorado)}
.lang-divider{opacity:.3}
.lang-inactive{opacity:.5}
.header.scrolled .lang-toggle{color:rgba(43,43,43,.55)}
.header.scrolled .lang-toggle:hover{color:var(--carbon)}
.header.scrolled .lang-active{color:var(--dorado)}

/* ─── HERO ─── */
.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  position:relative;
  overflow:hidden;
  background:var(--navy);
  isolation:isolate;
}

/* Fallback gradient for when there's no video */
.hero:not(.hero--video){
  background:
    radial-gradient(ellipse 80% 60% at 50% 40%, rgba(201,168,76,.04) 0%, transparent 70%),
    radial-gradient(ellipse 60% 50% at 80% 80%, rgba(133,183,235,.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--arena) 0%, var(--arena-deep) 100%);
}

/* Video background */
.hero-video-wrap{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero-video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hero-video-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(12,35,64,.55) 0%, rgba(12,35,64,.35) 40%, rgba(12,35,64,.6) 100%),
    radial-gradient(ellipse at center, transparent 0%, rgba(12,35,64,.2) 100%);
}

/* When video hero: light text */
.hero--video .hero-eyebrow-text{color:var(--dorado)}
.hero--video .hero-eyebrow-line{background:var(--dorado);opacity:.5}
.hero--video .hero-title{color:var(--arena)}
.hero--video .hero-title-italic em{color:var(--dorado)}
.hero--video .hero-subtitle{color:rgba(245,240,232,.7)}
.hero--video .btn-outline{
  border-color:rgba(245,240,232,.4);
  color:var(--arena);
}
.hero--video .btn-outline:hover{
  background:var(--arena);
  color:var(--navy);
  border-color:var(--arena);
}
.hero--video .scroll-text{color:rgba(245,240,232,.4)}
.hero--video .scroll-line{background:linear-gradient(to bottom, var(--dorado), transparent)}

/* Header on video hero: light until scrolled */
.header:not(.scrolled) .logo-name{color:var(--arena)}
.header:not(.scrolled) .logo-tagline{color:rgba(245,240,232,.5)}
.header:not(.scrolled) .logo-divider{background:var(--dorado);opacity:.4}
.header:not(.scrolled) .nav-link{color:rgba(245,240,232,.6)}
.header:not(.scrolled) .nav-link:hover,
.header:not(.scrolled) .nav-link.active{color:var(--arena)}
.header:not(.scrolled) .header-cta{color:var(--arena)}
.header:not(.scrolled) .header-cta-icon{border-color:rgba(245,240,232,.3)}
.header:not(.scrolled) .header-cta-icon svg{stroke:var(--arena)}
.header:not(.scrolled) .nav-toggle span{background:var(--arena)}

/* Decorative elements */
.hero-deco{
  position:absolute;inset:0;
  pointer-events:none;
  overflow:hidden;
  z-index:1;
}
.hero-circle{
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(201,168,76,.15);
}
.hero--video .hero-circle{border-color:rgba(245,240,232,.06)}

.hero-circle--1{
  width:clamp(300px,45vw,700px);
  height:clamp(300px,45vw,700px);
  top:-10%;right:-8%;
  animation:heroFloat 20s ease-in-out infinite;
}
.hero-circle--2{
  width:clamp(200px,30vw,500px);
  height:clamp(200px,30vw,500px);
  bottom:-5%;left:-5%;
  border-color:rgba(133,183,235,.08);
  animation:heroFloat 25s ease-in-out infinite reverse;
}
.hero--video .hero-circle--2{border-color:rgba(245,240,232,.04)}

.hero-line{
  position:absolute;
  background:var(--dorado);
  opacity:.1;
}
.hero--video .hero-line{background:rgba(245,240,232,.15);opacity:.15}

.hero-line--1{
  width:1px;height:120px;
  top:15%;left:12%;
  animation:heroFade 4s ease-in-out infinite;
}
.hero-line--2{
  width:80px;height:1px;
  bottom:20%;right:10%;
  animation:heroFade 5s ease-in-out 1s infinite;
}

@keyframes heroFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(20px,-20px) scale(1.03)}
}
@keyframes heroFade{
  0%,100%{opacity:.08}
  50%{opacity:.2}
}

.hero-content{
  position:relative;z-index:2;
  max-width:800px;
  padding:0 var(--gutter);
}

.hero-eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin-bottom:32px;
}
.hero-eyebrow-text{
  font-size:.7rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--dorado);
  white-space:nowrap;
}
.hero-eyebrow-line{
  width:48px;height:1px;
  background:var(--dorado);
  opacity:.35;
}

.hero-title{
  font-size:clamp(2.2rem,5.5vw,4rem);
  font-weight:500;
  line-height:1.15;
  color:var(--navy);
  margin-bottom:32px;
  letter-spacing:-0.02em;
}
.hero-title-line{display:block}
.hero-title-italic em{
  color:var(--dorado);
  font-weight:400;
}

.hero-subtitle{
  font-size:clamp(.95rem,1.3vw,1.15rem);
  color:var(--carbon-soft);
  max-width:580px;
  margin:0 auto 48px;
  line-height:1.8;
}

.hero-actions{
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
}

/* Scroll hint */
.hero-scroll-hint{
  position:absolute;
  bottom:40px;left:50%;
  transform:translateX(-50%);
  display:flex;flex-direction:column;
  align-items:center;gap:12px;
  z-index:2;
}
.scroll-line{
  width:1px;height:48px;
  background:linear-gradient(to bottom, var(--dorado), transparent);
  animation:scrollPulse 2s ease-in-out infinite;
}
.scroll-text{
  font-size:.6rem;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--carbon-soft);
}
@keyframes scrollPulse{
  0%,100%{opacity:.3;transform:scaleY(1)}
  50%{opacity:.8;transform:scaleY(1.15)}
}

/* ─── SOUND TOGGLE ─── */
#oceanAudio{display:none !important;width:0;height:0}

.hero-sound-toggle{
  position:fixed !important;
  bottom:28px;
  left:28px;
  z-index:9999;
  width:48px;
  height:48px;
  padding:0;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(12,35,64,.45);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  border:1px solid rgba(245,240,232,.3);
  border-radius:50%;
  color:rgba(245,240,232,.9);
  cursor:pointer;
  transition:background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
  box-shadow:0 4px 16px rgba(0,0,0,.2);
}
.hero-sound-toggle:hover{
  background:rgba(12,35,64,.65);
  color:#fff;
  border-color:var(--dorado);
  transform:translateY(-2px);
}
.hero-sound-toggle svg{display:block;pointer-events:none}
.hero-sound-toggle .icon-sound-on{display:none}
.hero-sound-toggle.active .icon-sound-off{display:none}
.hero-sound-toggle.active .icon-sound-on{display:block}
.hero-sound-toggle.active{
  color:var(--dorado);
  border-color:var(--dorado);
  background:rgba(12,35,64,.6);
}

/* ─── PROPERTIES (Jade Mills editorial) ─── */
.section-propiedades{
  background:var(--arena);
}

.propiedades-header{
  text-align:center;
  max-width:720px;
  margin:0 auto 80px;
}
.propiedades-header .section-eyebrow{
  display:inline-block;
  margin-bottom:20px;
}
.propiedades-header .section-title{
  margin-bottom:24px;
}
.propiedades-header .section-desc{
  font-size:.95rem;
  color:var(--carbon-soft);
  line-height:1.8;
  max-width:560px;
  margin:0 auto;
}

.propiedades-carousel{
  position:relative;
  margin:0 -24px;
}
.propiedades-grid{
  display:flex;
  gap:40px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:20px 24px 40px;
  scrollbar-width:none;
}
.propiedades-grid::-webkit-scrollbar{display:none}
.propiedades-grid > .propiedad-card{
  flex:0 0 calc((100% - 80px)/3);
  min-width:0;
  scroll-snap-align:start;
}
.carousel-arrow{
  position:absolute;
  top:calc(50% - 60px);
  transform:translateY(-50%);
  width:76px;height:76px;
  background:transparent;
  border:none;
  color:var(--navy);
  cursor:pointer;
  z-index:3;
  display:flex;align-items:center;justify-content:center;
}
.carousel-arrow .arrow-chevron{
  position:relative;
  z-index:2;
}
.carousel-arrow .arrow-circle{
  position:absolute;
  inset:0;
  transform:rotate(-90deg);
  overflow:visible;
}
.carousel-arrow .arrow-circle circle{
  stroke-dasharray:236;
  stroke-dashoffset:236;
  transition:stroke-dashoffset .8s var(--ease-out);
}
.propiedades-carousel:hover .arrow-circle circle{
  stroke-dashoffset:0;
}
.carousel-arrow:disabled{opacity:.25;cursor:default}
.propiedades-carousel:hover .carousel-arrow:disabled .arrow-circle circle{stroke-dashoffset:236}
.carousel-prev{left:-90px}
.carousel-next{right:-90px}

/* Property Card — editorial */
.propiedad-card{
  display:block;
  position:relative;
  color:inherit;
  text-decoration:none;
  transition:transform .6s var(--ease-out);
}
.propiedad-card:hover{transform:translateY(-4px)}

.propiedad-img{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:var(--arena-deep);
  margin-bottom:28px;
}
.propiedad-img img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform 1.4s var(--ease-out);
}
.propiedad-card:hover .propiedad-img img{transform:scale(1.05)}

.propiedad-img-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(12,35,64,0) 55%, rgba(12,35,64,.25) 100%);
  opacity:0;
  transition:opacity .6s var(--ease-out);
  pointer-events:none;
}
.propiedad-card:hover .propiedad-img-overlay{opacity:1}

.propiedad-content{
  text-align:center;
  padding:0 8px;
}
.propiedad-tipo{
  display:inline-block;
  font-size:.62rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--dorado);
  margin-bottom:14px;
}
.propiedad-titulo{
  font-family:var(--ff-display);
  font-size:1.7rem;font-weight:400;
  color:var(--navy);
  margin-bottom:10px;
  letter-spacing:-0.01em;
  line-height:1.2;
}
.propiedad-ubicacion{
  font-size:.78rem;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--carbon-soft);
  margin-bottom:22px;
}

.propiedad-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  padding-top:22px;
  border-top:1px solid rgba(12,35,64,.12);
}
.propiedad-precio{
  font-family:var(--ff-display);
  font-size:1.1rem;font-weight:500;
  color:var(--navy);
  font-style:italic;
}
.propiedad-cta{
  font-size:.65rem;font-weight:700;
  letter-spacing:2.5px;text-transform:uppercase;
  color:var(--dorado);
  display:inline-flex;align-items:center;gap:8px;
  transition:gap .4s var(--ease-out);
}
.propiedad-card:hover .propiedad-cta{gap:14px}

/* ─── SECTION DIVIDER ─── */
.section-divider{padding:0}
.divider-inner{
  display:flex;
  align-items:center;
  gap:20px;
}
.divider-line{
  flex:1;
  height:1px;
  background:var(--arena-deep);
}
.divider-diamond{
  color:var(--dorado);
  font-size:.7rem;
  opacity:.5;
}

/* ─── DESTINO (Puerto Escondido) ─── */
.section-destino{
  background:var(--navy-mid);
  overflow:hidden;
}
.destino-deco{
  position:absolute;inset:0;
  pointer-events:none;
}
.destino-circle{
  position:absolute;
  width:clamp(400px,50vw,800px);
  height:clamp(400px,50vw,800px);
  border-radius:50%;
  border:1px solid rgba(245,240,232,.04);
  top:50%;right:-15%;
  transform:translateY(-50%);
}

.destino-feature{
  position:relative;
  margin-top:20px;
}
.destino-stage{
  position:relative;
  width:100%;
  height:clamp(360px,58vh,640px);
  overflow:hidden;
  border:1px solid rgba(245,240,232,.08);
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  background-color:var(--navy);
}
.destino-stage-img{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transform:scale(1.06);
  transition:opacity 1.1s var(--ease-out), transform 6s var(--ease-out);
}
.destino-stage-img.active{
  opacity:1;
  transform:scale(1);
}
.destino-stage-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,20,35,.15) 0%, rgba(10,20,35,.55) 100%);
  pointer-events:none;
}
.destino-stage-label{
  position:absolute;
  left:clamp(24px,4vw,48px);
  bottom:clamp(24px,4vw,44px);
  font-family:var(--ff-display);
  font-size:clamp(1.8rem,4vw,3.2rem);
  font-weight:400;
  color:var(--arena);
  letter-spacing:.01em;
  line-height:1;
  z-index:2;
  transition:opacity .4s var(--ease-out), transform .6s var(--ease-out);
}

.destino-carousel-wrap{
  position:relative;
  margin-top:40px;
}
.destino-carousel{
  display:flex;
  gap:clamp(20px,2.5vw,40px);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -ms-overflow-style:none;
  scroll-behavior:smooth;
}
.destino-carousel::-webkit-scrollbar{display:none}
.destino-carousel > .destino-item{
  flex:0 0 calc((100% - clamp(20px,2.5vw,40px)) / 2);
  scroll-snap-align:start;
}
.destino-item{
  background:transparent;
  border:none;
  padding:0;
  text-align:left;
  color:inherit;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  gap:16px;
  opacity:.55;
  transition:opacity .5s var(--ease-out);
  font-family:inherit;
}
.destino-item:hover,
.destino-item.active{
  opacity:1;
}
.destino-item-img{
  position:relative;
  width:100%;
  aspect-ratio:4/5;
  overflow:hidden;
}
.destino-item-img img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform 1.2s var(--ease-out);
}
.destino-item:hover .destino-item-img img,
.destino-item.active .destino-item-img img{
  transform:scale(1.06);
}
.destino-item-img::after{
  content:'';
  position:absolute;inset:0;
  border:1px solid transparent;
  transition:border-color .5s var(--ease-out);
}
.destino-item.active .destino-item-img::after{
  border-color:var(--dorado);
}
.destino-item-num{
  font-family:var(--ff-display);
  font-size:.85rem;
  color:var(--dorado);
  letter-spacing:.15em;
  opacity:.7;
  margin-top:4px;
}
.destino-item h3{
  font-family:var(--ff-display);
  font-size:1.1rem;
  color:var(--arena);
  font-weight:500;
  line-height:1.3;
}
.destino-item p{
  font-size:.82rem;
  color:var(--arena);
  opacity:.55;
  line-height:1.7;
}
.destino-bullets{
  list-style:none;
  padding:0;
  margin:8px 0 0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.destino-bullets li{
  font-size:.78rem;
  color:var(--arena);
  opacity:.5;
  line-height:1.6;
  padding-left:14px;
  position:relative;
}
.destino-bullets li::before{
  content:'';
  position:absolute;
  left:0;top:8px;
  width:4px;height:4px;
  border-radius:50%;
  background:var(--dorado);
  opacity:.6;
}
.destino-bullets li strong{
  color:var(--arena);
  opacity:.8;
}

.destino-prev,.destino-next{
  color:var(--arena);
}
.destino-prev{left:-90px}
.destino-next{right:-90px}
.destino-feature:hover .destino-prev .arrow-circle circle,
.destino-feature:hover .destino-next .arrow-circle circle{
  stroke-dashoffset:0;
}

@media (max-width:960px){
  .destino-carousel > .destino-item{flex-basis:calc((100% - clamp(20px,2.5vw,40px)) / 2)}
  .destino-prev{left:8px}
  .destino-next{right:8px}
}
@media (max-width:560px){
  .destino-carousel > .destino-item{flex-basis:100%}
}

/* ─── ABOUT ─── */
.section-sobre{
  background:var(--white);
}
.sobre-layout{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(40px,8vw,100px);
  align-items:center;
}

.sobre-visual{position:relative}
.sobre-img-frame{
  position:relative;
  overflow:hidden;
}
.sobre-img-frame::before{
  content:'';
  position:absolute;
  top:-12px;left:-12px;
  width:100%;height:100%;
  border:1px solid var(--dorado);
  opacity:.2;
  z-index:0;
}
.sobre-img-placeholder{
  position:relative;z-index:1;
  width:100%;
  aspect-ratio:3/4;
  max-height:540px;
  background:
    linear-gradient(135deg,var(--arena) 0%,var(--arena-deep) 50%,var(--arena-warm) 100%);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  color:var(--navy);opacity:.35;gap:12px;
}
.sobre-img-placeholder span{
  font-size:.7rem;letter-spacing:2px;text-transform:uppercase;
}
.sobre-img-frame img{
  position:relative;z-index:1;
  width:100%;aspect-ratio:3/4;
  max-height:540px;object-fit:cover;
}

.sobre-accent-box{
  position:absolute;
  bottom:-20px;right:-20px;
  background:var(--dorado);
  color:var(--white);
  padding:24px 28px;
  z-index:3;
  display:flex;align-items:center;gap:12px;
}
.sobre-accent-number{
  font-family:var(--ff-display);
  font-size:2.4rem;font-weight:600;
  line-height:1;
}
.sobre-accent-label{
  font-size:.65rem;
  letter-spacing:1px;
  text-transform:uppercase;
  line-height:1.5;
  opacity:.85;
}

.sobre-content .section-title{margin-bottom:28px}
.sobre-text p{
  font-size:1rem;
  line-height:1.85;
  color:var(--carbon);
  margin-bottom:16px;
}
.sobre-text p:last-child{margin-bottom:0}

.sobre-stats{
  display:flex;gap:40px;
  margin:36px 0;
}
.sobre-stat{
  display:flex;align-items:flex-start;gap:16px;
}
.sobre-stat-line{
  width:1px;height:40px;
  background:var(--dorado);
  opacity:.35;
  flex-shrink:0;
  margin-top:4px;
}
.sobre-stat-value{
  display:block;
  font-family:var(--ff-display);
  font-size:1.1rem;font-weight:600;
  color:var(--navy);
  margin-bottom:2px;
}
.sobre-stat-label{
  font-size:.72rem;
  color:var(--carbon-soft);
  letter-spacing:0.5px;
}

/* ─── TESTIMONIALS ─── */
.section-testimonios{
  background:var(--arena);
}
.testimonios-inner{
  max-width:720px;
  margin:0 auto;
  text-align:center;
}

.testimonios-carousel{
  position:relative;
  min-height:200px;
  margin-bottom:48px;
}
.testimonio{
  display:none;
  animation:testimonioIn .6s var(--ease-out);
}
.testimonio.active{display:block}

@keyframes testimonioIn{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}

.testimonio-quote{
  color:var(--dorado);
  margin:0 auto 24px;
  display:block;
}

.testimonio blockquote p{
  font-family:var(--ff-display);
  font-size:clamp(1.15rem,2.2vw,1.5rem);
  font-style:italic;
  font-weight:400;
  color:var(--navy);
  line-height:1.65;
  margin-bottom:28px;
}

.testimonio-autor{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
}
.testimonio-dash{
  width:24px;height:1px;
  background:var(--dorado);
  opacity:.4;
}
.autor-nombre{
  font-weight:700;
  font-size:1.05rem;
  color:var(--carbon);
}
.autor-detalle{
  font-size:.75rem;
  color:var(--carbon-soft);
  margin-left:8px;
}

.testimonios-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
}
.testimonios-btn{
  width:44px;height:44px;
  border:1px solid var(--arena-deep);
  background:transparent;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  color:var(--navy);
  transition:all .3s var(--ease-out);
}
.testimonios-btn:hover{
  border-color:var(--dorado);
  color:var(--dorado);
}
.testimonios-dots{display:flex;gap:8px}
.testimonios-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--arena-deep);
  cursor:pointer;
  transition:all .3s;
}
.testimonios-dot.active{
  background:var(--dorado);
  transform:scale(1.3);
}

/* ─── CONTACT ─── */
.section-contacto{
  background:var(--white);
}
.contacto-layout{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:clamp(40px,8vw,100px);
  align-items:start;
}

.contacto-intro{
  font-size:1rem;
  color:var(--carbon-soft);
  line-height:1.75;
  margin-bottom:8px;
}

.contacto-datos{
  display:flex;flex-direction:column;
  gap:16px;
  margin-top:36px;
}
.contacto-dato{
  display:flex;align-items:center;
  gap:14px;
  transition:color .3s;
}
a.contacto-dato:hover{color:var(--dorado)}

.contacto-dato-icon{
  width:40px;height:40px;
  border:1px solid var(--arena-deep);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  color:var(--dorado);
  transition:all .3s var(--ease-out);
}
a.contacto-dato:hover .contacto-dato-icon{
  background:var(--dorado);
  border-color:var(--dorado);
  color:var(--white);
}
.contacto-dato-text{
  font-size:.9rem;
  color:var(--carbon);
}

/* Form */
.contacto-form-wrapper{
  background:var(--arena);
  padding:clamp(28px,4vw,48px);
}
.contacto-form{
  display:flex;flex-direction:column;
  gap:20px;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.form-group{display:flex;flex-direction:column;gap:8px}
.form-group label{
  font-size:.68rem;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--carbon);
}
.form-group input,
.form-group select,
.form-group textarea{
  font-family:var(--ff-body);
  font-size:.9rem;font-weight:300;
  padding:14px 16px;
  border:1px solid var(--arena-deep);
  background:var(--white);
  color:var(--carbon);
  outline:none;
  transition:border-color .3s;
  -webkit-appearance:none;
  border-radius:0;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  border-color:var(--dorado);
}
.form-group input::placeholder,
.form-group textarea::placeholder{
  color:var(--carbon-soft);
  font-weight:300;
}
.form-group textarea{resize:vertical}
.form-group select{cursor:pointer}

.form-status{
  display:none;
  padding:14px 18px;
  font-size:.85rem;
  text-align:center;
}
.form-status.success{
  background:rgba(201,168,76,.1);
  color:var(--dorado-dark);
  display:block;
}
.form-status.error{
  background:rgba(200,50,50,.08);
  color:#9B3030;
  display:block;
}
.spinner{animation:spin 1s linear infinite}
.btn-loading{display:inline-flex;align-items:center;gap:8px}
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ─── FOOTER ─── */
.footer{
  background:var(--navy);
  padding:clamp(48px,8vw,80px) 0 32px;
}
.footer-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:48px;
  padding-bottom:clamp(36px,5vw,56px);
  border-bottom:1px solid rgba(245,240,232,.06);
}

.footer-logo-name{
  font-family:var(--ff-display);
  font-size:1.3rem;font-weight:600;
  color:var(--arena);
  display:block;
  margin-bottom:4px;
}
.footer-logo-tag{
  font-size:.65rem;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--dorado);
  display:block;
  margin-bottom:16px;
}
.footer-desc{
  font-size:.88rem;
  color:var(--arena);
  opacity:.4;
  max-width:320px;
  line-height:1.6;
}

.footer-nav{
  display:flex;gap:64px;
}
.footer-col h4{
  font-family:var(--ff-body);
  font-size:.65rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--dorado);
  margin-bottom:20px;
}
.footer-col a{
  display:block;
  font-size:.85rem;
  color:var(--arena);
  opacity:.4;
  padding:5px 0;
  transition:all .3s;
}
.footer-col a:hover{
  opacity:1;color:var(--dorado);
}

.footer-bottom{
  padding-top:24px;
  text-align:center;
}
.footer-bottom p{
  font-size:.72rem;
  color:var(--arena);
  opacity:.35;
  letter-spacing:.5px;
  margin:4px 0;
}
.footer-bottom .footer-credit{
  opacity:.9;
  color:var(--arena);
}
.footer-credit a{
  color:var(--dorado);
  text-decoration:none;
  font-weight:700;
  transition:opacity .3s var(--ease-out);
}
.footer-credit a:hover{opacity:.75}

/* ─── LEGAL PAGES ─── */
.body-legal{background:var(--arena)}
.legal-header{
  padding:160px 0 60px;
  background:var(--navy);
  color:var(--arena);
  text-align:center;
}
.legal-header .section-eyebrow{color:var(--dorado)}
.legal-header h1{
  font-family:var(--ff-display);
  font-size:clamp(2rem,4.5vw,3.4rem);
  font-weight:400;
  margin:16px 0 12px;
}
.legal-header .legal-updated{
  font-size:.82rem;
  opacity:.6;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.legal-content{padding:80px 0 120px;color:var(--carbon)}
.legal-container{max-width:820px;margin:0 auto}
.legal-content h2{
  font-family:var(--ff-display);
  font-size:1.5rem;
  font-weight:500;
  margin:40px 0 16px;
  color:var(--navy);
}
.legal-content h3{
  font-family:var(--ff-display);
  font-size:1.15rem;
  font-weight:500;
  margin:24px 0 12px;
  color:var(--navy);
}
.legal-content p,
.legal-content li{
  font-size:.95rem;
  line-height:1.8;
  color:var(--carbon);
  opacity:.85;
  margin-bottom:14px;
}
.legal-content ul{
  padding-left:22px;
  margin-bottom:18px;
}
.legal-content a{
  color:var(--dorado-dark,var(--navy));
  text-decoration:underline;
}

/* ─── WHATSAPP FLOAT ─── */
.wa-float{
  position:fixed;
  bottom:28px;right:28px;
  width:54px;height:54px;
  background:#25D366;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 24px rgba(37,211,102,.3);
  z-index:999;
  transition:all .4s var(--ease-out);
}
.wa-float:hover{
  transform:scale(1.1) translateY(-2px);
  box-shadow:0 8px 32px rgba(37,211,102,.4);
}

/* ─── ANIMATIONS ─── */

/* Hero staggered reveal */
.anim-reveal{
  opacity:0;
  transform:translateY(40px);
  transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);
}
.anim-reveal.visible{
  opacity:1;
  transform:translateY(0);
}
.anim-reveal[data-delay="1"]{transition-delay:.15s}
.anim-reveal[data-delay="2"]{transition-delay:.3s}
.anim-reveal[data-delay="3"]{transition-delay:.45s}
.anim-reveal[data-delay="4"]{transition-delay:.6s}

/* Scroll reveal */
.reveal-up{
  opacity:0;
  transform:translateY(50px);
  transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);
}
.reveal-up.visible{
  opacity:1;
  transform:translateY(0);
}

/* Stagger children */
.destino-item:nth-child(2){transition-delay:.08s}
.destino-item:nth-child(3){transition-delay:.16s}
.destino-item:nth-child(4){transition-delay:.24s}

/* Property card entrance — slide from side like Jade Mills */
.propiedad-card{
  opacity:0;
  transform:translateX(80px);
  transition:opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.propiedad-card.card-visible{
  opacity:1;
  transform:translateX(0);
}
.propiedad-card:nth-child(1){transition-delay:0s}
.propiedad-card:nth-child(2){transition-delay:.15s}
.propiedad-card:nth-child(3){transition-delay:.3s}
.propiedad-card:nth-child(4){transition-delay:.45s}
.propiedad-card:nth-child(5){transition-delay:.6s}
.propiedad-card:nth-child(6){transition-delay:.75s}
.propiedad-card:hover{transform:translateY(-4px)}
.propiedad-card.card-visible:hover{transform:translateY(-6px)}

/* ─── RESPONSIVE ─── */

@media(max-width:1024px){
  .section-header{
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
  }
  .section-desc{max-width:100%}

  .sobre-layout{
    grid-template-columns:1fr;
    gap:48px;
  }
  .sobre-img-placeholder,
  .sobre-img-frame img{
    max-height:400px;
    aspect-ratio:4/3;
  }
  .contacto-layout{
    grid-template-columns:1fr;
    gap:48px;
  }
  .propiedades-grid > .propiedad-card{flex:0 0 calc((100% - 40px)/2)}
}

@media(max-width:768px){
  /* Header */
  .header-inner{grid-template-columns:1fr;justify-items:center;padding-top:28px}
  .nav-left,.nav-right{display:none}
  .logo-name{font-size:1.9rem}
  .nav-toggle{display:flex}
  .lang-toggle{position:absolute;top:6px;left:var(--gutter);margin-left:0;padding:4px 8px;font-size:10px;letter-spacing:.5px}
  .header-cta{display:none}
  .nav-mobile-list{
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:28px;
    padding:0;margin:0;
  }
  .nav-mobile-list .nav-link{
    font-size:1rem;
    letter-spacing:2px;
  }

  /* Mobile overlay */
  .nav-overlay{
    display:none;
    position:fixed;inset:0;
    background:rgba(12,35,64,.3);
    z-index:998;
    backdrop-filter:blur(4px);
  }
  .nav-overlay.active{display:block}

  /* Hero */
  .hero{
    min-height:100vh;min-height:100dvh;
    padding:120px 0 60px;
    align-items:flex-start;
  }
  .hero-content{padding-top:20px}
  .hero-eyebrow{margin-bottom:20px;gap:12px}
  .hero-eyebrow-text{font-size:.6rem;letter-spacing:2px;white-space:normal}
  .hero-eyebrow-line{width:20px}
  .hero-title{font-size:clamp(1.7rem,6.5vw,2.4rem);margin-bottom:22px;line-height:1.2}
  .hero-subtitle{font-size:.88rem;line-height:1.7;margin-bottom:28px}
  .hero-actions{flex-direction:column;align-items:center}
  .hero-actions .btn{width:100%;max-width:300px;justify-content:center}
  .hero-scroll-hint{display:none}
  .hero-dot-grid{display:none}

  /* Properties */
  .propiedades-grid{gap:24px;padding:20px 20px 32px}
  .propiedades-grid > .propiedad-card{flex:0 0 82%}
  .carousel-arrow{display:none}
  .propiedades-header{margin-bottom:56px}
  .propiedad-titulo{font-size:1.5rem}

  /* Destino */
  .destino-stage{height:56vh}

  /* About */
  .sobre-accent-box{
    bottom:-16px;right:auto;left:20px;
    padding:18px 22px;
  }
  .sobre-accent-number{font-size:1.8rem}

  /* Contact */
  .form-row{grid-template-columns:1fr}
  .contacto-form-wrapper{padding:24px}

  /* Footer */
  .footer-top{
    flex-direction:column;
    gap:36px;
  }
  .footer-nav{gap:40px}
}

@media(max-width:420px){
  .hero-title{font-size:1.7rem}
  .btn{padding:16px 28px;font-size:.72rem}
  .footer-nav{
    flex-direction:column;
    gap:28px;
  }
}

/* ═══════════════════════════════════════════════════
   PROPERTY DETAIL PAGE
   ═══════════════════════════════════════════════════ */

.body-detail{background:var(--arena)}

.header--solid{
  background:rgba(245,240,232,.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(12,35,64,.08);
}
.header--solid .nav-link{color:var(--carbon-soft)}
.header--solid .nav-link:hover,
.header--solid .nav-link.active{color:var(--navy)}
.header--solid .logo-name{color:var(--navy)}

#propDetail{padding-top:100px}

.prop-loading{
  min-height:60vh;
  display:flex;align-items:center;justify-content:center;
  color:var(--carbon-soft);
  font-size:.8rem;letter-spacing:2px;text-transform:uppercase;
}

/* ─── Gallery ─── */
.prop-hero{
  background:var(--navy);
  padding:0;
}
.prop-hero-main{
  position:relative;
  width:100%;
  height:min(82vh,820px);
  overflow:hidden;
  background:var(--navy);
  display:flex;
  align-items:center;
  justify-content:center;
}
.prop-hero-main::before{
  content:'';
  position:absolute;inset:0;
  background-image:var(--hero-bg, none);
  background-size:cover;
  background-position:center;
  filter:blur(40px) brightness(.55);
  transform:scale(1.1);
  z-index:0;
}
.prop-hero-main img,
.prop-hero-main video{
  position:relative;
  z-index:1;
  max-width:100%;
  max-height:100%;
  width:auto;height:auto;
  object-fit:contain;
  display:block;
  animation:fadeIn .6s var(--ease-out);
  box-shadow:0 30px 80px -20px rgba(0,0,0,.5);
}
.gal-thumb--video .gal-thumb-play{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--white);
  background:rgba(12,35,64,.3);
  pointer-events:none;
  z-index:2;
}
.gal-thumb--video .gal-thumb-play svg{
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.5));
}
@keyframes fadeIn{from{opacity:.3}to{opacity:1}}

.gal-arrow{
  position:absolute;
  top:50%;transform:translateY(-50%);
  width:86px;height:86px;
  background:transparent;
  border:none;
  color:var(--arena);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  z-index:3;
}
.gal-arrow .arrow-chevron{
  position:relative;
  z-index:2;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.5));
}
.gal-arrow .arrow-circle{
  position:absolute;
  inset:0;
  transform:rotate(-90deg);
  overflow:visible;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.35));
}
.gal-arrow .arrow-circle circle{
  stroke-dasharray:267;
  stroke-dashoffset:267;
  transition:stroke-dashoffset .9s var(--ease-out);
}
.prop-hero-main:hover .arrow-circle circle{
  stroke-dashoffset:0;
}
.gal-prev{left:32px}
.gal-next{right:32px}

.gal-counter{
  position:absolute;
  bottom:24px;right:24px;
  background:rgba(12,35,64,.7);
  color:var(--arena);
  padding:8px 16px;
  font-size:.72rem;letter-spacing:2px;
  font-family:var(--ff-body);
  z-index:2;
}

.prop-hero-thumbs{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:2px;
  background:var(--navy);
  max-width:1400px;
  margin:0 auto;
}
.gal-thumb{
  position:relative;
  aspect-ratio:4/3;
  border:none;
  padding:0;
  cursor:pointer;
  overflow:hidden;
  background:var(--navy);
}
.gal-thumb img{
  width:100%;height:100%;
  object-fit:cover;
  opacity:.55;
  transition:opacity .4s;
}
.gal-thumb:hover img{opacity:.85}
.gal-thumb.active img{opacity:1}
.gal-thumb.active::after{
  content:'';
  position:absolute;
  inset:0;
  border:2px solid var(--dorado);
  pointer-events:none;
}

/* ─── Intro ─── */
.prop-intro{
  padding:80px 0 40px;
}
.prop-intro-inner{
  max-width:760px;
  margin:0 auto;
  text-align:center;
}
.prop-back{
  display:inline-flex;
  align-items:center;gap:10px;
  font-size:.68rem;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--carbon-soft);
  margin-bottom:32px;
  text-align:left;
  transition:all .3s;
}
.prop-back:hover{color:var(--dorado);gap:14px}

.prop-eyebrow{
  display:block;
  font-size:.7rem;font-weight:700;
  letter-spacing:4px;text-transform:uppercase;
  color:var(--dorado);
  margin-bottom:12px;
  text-align:center;
}
.prop-title{
  font-family:var(--ff-display);
  font-size:clamp(2.4rem,5vw,3.8rem);
  font-weight:400;
  color:var(--navy);
  letter-spacing:-0.02em;
  line-height:1.1;
  margin-bottom:16px;
}
.prop-location{
  font-size:.82rem;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--carbon-soft);
  margin-bottom:48px;
}

.prop-keyfacts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid rgba(12,35,64,.12);
  border-bottom:1px solid rgba(12,35,64,.12);
  padding:32px 0;
  margin-top:8px;
}
.prop-keyfact{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  padding:0 16px;
  border-right:1px solid rgba(12,35,64,.12);
}
.prop-keyfact:last-child{border-right:none}
.kf-label{
  font-size:.6rem;font-weight:700;
  letter-spacing:2.5px;text-transform:uppercase;
  color:var(--dorado);
}
.kf-value{
  font-family:var(--ff-display);
  font-size:1.15rem;font-weight:500;
  color:var(--navy);
  font-style:italic;
}

/* ─── Body ─── */
.prop-body{padding:80px 0 100px}
.prop-body-grid{
  display:grid;
  grid-template-columns:1fr 380px;
  gap:80px;
  align-items:start;
}
.prop-section-title{
  font-family:var(--ff-display);
  font-size:1.6rem;font-weight:500;
  color:var(--navy);
  margin-bottom:24px;
  letter-spacing:-0.01em;
}
.prop-section-title--center{text-align:center;margin-bottom:8px}

.prop-description-text p{
  font-size:1rem;
  line-height:1.9;
  color:#1a1a1a;
  margin-bottom:20px;
}
.prop-description-text p:last-child{margin-bottom:48px}

.ficha-beneficios-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px 32px;
  list-style:none;
  padding:0;
  margin:0;
}
.ficha-beneficio{
  display:flex;
  align-items:center;
  gap:14px;
  font-size:.88rem;
  color:var(--carbon);
  padding:14px 0;
  border-bottom:1px solid rgba(12,35,64,.08);
}
.ficha-beneficio svg{
  flex-shrink:0;
  color:var(--dorado);
}

/* ─── Sidebar contact card ─── */
.prop-sidebar{
  position:sticky;
  top:120px;
}
.prop-contact-card{
  background:var(--white);
  padding:40px 36px;
  border:1px solid rgba(12,35,64,.08);
  box-shadow:0 20px 60px -30px rgba(12,35,64,.15);
}
.prop-sidebar-eyebrow{
  display:block;
  font-size:.62rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--dorado);
  margin-bottom:12px;
}
.prop-sidebar-title{
  font-family:var(--ff-display);
  font-size:1.4rem;font-weight:500;
  color:var(--navy);
  margin-bottom:14px;
  line-height:1.25;
}
.prop-sidebar-desc{
  font-size:.85rem;
  color:var(--carbon-soft);
  line-height:1.7;
  margin-bottom:24px;
}
.btn-block{
  width:100%;
  justify-content:center;
  margin-bottom:12px;
}
.btn-outline-dark{
  background:transparent;
  border:1px solid rgba(12,35,64,.25);
  color:var(--navy);
  padding:18px 32px;
  font-size:.68rem;font-weight:700;
  letter-spacing:2.5px;text-transform:uppercase;
  display:inline-flex;align-items:center;justify-content:center;
  gap:10px;
  transition:all .4s var(--ease-out);
  cursor:pointer;
}
.btn-outline-dark:hover{
  background:var(--navy);
  color:var(--arena);
  border-color:var(--navy);
}
.prop-sidebar-divider{
  height:1px;
  background:rgba(12,35,64,.1);
  margin:28px 0 24px;
}
.prop-sidebar-elsa{
  font-size:.8rem;
  color:var(--carbon-soft);
  line-height:1.7;
}
.prop-sidebar-elsa strong{
  color:var(--navy);
  font-family:var(--ff-display);
  font-size:1rem;
  font-weight:500;
  display:block;
  margin-bottom:4px;
}

/* ─── Map ─── */
.prop-map{padding:40px 0 100px}
.prop-map-caption{
  text-align:center;
  font-size:.78rem;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--carbon-soft);
  margin-bottom:40px;
}
.prop-map-frame{
  position:relative;
  width:100%;
  aspect-ratio:21/9;
  max-height:520px;
  overflow:hidden;
  background:var(--arena-deep);
  border:1px solid rgba(12,35,64,.1);
}
.prop-map-frame iframe{
  width:100%;height:100%;
  border:0;
  display:block;
  filter:grayscale(.2) contrast(1.05);
}

/* ─── Responsive ─── */
@media(max-width:1024px){
  .prop-body-grid{grid-template-columns:1fr;gap:48px}
  .prop-sidebar{position:static}
}
@media(max-width:768px){
  #propDetail{padding-top:80px}
  .prop-hero-main{aspect-ratio:4/3}
  .gal-arrow{width:44px;height:44px}
  .gal-prev{left:12px}
  .gal-next{right:12px}
  .prop-intro{padding:56px 0 32px}
  .prop-title{font-size:2rem}
  .prop-keyfacts{
    grid-template-columns:1fr;
    padding:0;
  }
  .prop-keyfact{
    padding:20px 0;
    border-right:none;
    border-bottom:1px solid rgba(12,35,64,.12);
  }
  .prop-keyfact:last-child{border-bottom:none}
  .prop-body{padding:48px 0 64px}
  .prop-contact-card{padding:32px 24px}
  .ficha-beneficios-list{grid-template-columns:1fr;gap:0}
  .prop-map-frame{aspect-ratio:4/3}
  .prop-hero-thumbs{grid-template-columns:repeat(4,1fr)}
  .prop-hero-main{height:70vh}
}

/* ═══════════════════════════════════════════════════
   CUSTOM CURSOR
   ═══════════════════════════════════════════════════ */
@media(hover:hover) and (pointer:fine){
  html,body{cursor:none}
  a,button,input,textarea,select,label,[role="button"],.filtro-btn,.carousel-arrow,.gal-arrow,.gal-thumb,.propiedad-card,.nav-link,.btn{cursor:none}

  .cursor-dot,
  .cursor-ring{
    position:fixed;
    top:0;left:0;
    pointer-events:none;
    z-index:9999;
    opacity:0;
    will-change:transform,opacity;
  }
  .cursor-dot{
    width:8px;height:8px;
    border-radius:50%;
    background:var(--dorado);
    transform:translate(-50%,-50%);
    transition:opacity .3s, width .35s var(--ease-out), height .35s var(--ease-out), background .3s;
    mix-blend-mode:difference;
  }
  .cursor-ring{
    width:40px;height:40px;
    border-radius:50%;
    border:1.5px solid var(--navy);
    transform:translate(-50%,-50%);
    transition:opacity .4s, width .4s var(--ease-out), height .4s var(--ease-out), border-color .3s, background .3s;
  }
  .cursor-visible .cursor-dot{opacity:1}
  .cursor-visible .cursor-ring{opacity:.6}

  .cursor-hover .cursor-dot{
    width:14px;height:14px;
  }
  .cursor-hover .cursor-ring{
    width:60px;height:60px;
    border-color:var(--dorado);
    background:rgba(201,168,76,.08);
    opacity:.9;
  }
}
@media(hover:none),(pointer:coarse){
  .cursor-dot,.cursor-ring{display:none}
}
