/* ===== RESET & BASE ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;color:#333;line-height:1.6;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
ul{list-style:none}

/* ===== VARIABLES ===== */
:root{
  --green:#3b6e3f;
  --green-dark:#2a4f2d;
  --gold:#c9a84c;
  --cream:#f5f0e8;
  --dark:#1a1a1a;
  --white:#fff;
  --overlay:rgba(0,0,0,.45);
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Montserrat',Arial,sans-serif;
}

/* ===== NAVBAR ===== */
.navbar{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 50px;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(6px);
  transition:background .3s;
}
.navbar.scrolled{background:rgba(26,26,26,.95)}
.navbar .logo{font-family:var(--serif);font-size:1.35rem;color:var(--white);letter-spacing:1px;font-weight:700}
.navbar .logo span{color:var(--gold)}
.nav-links{display:flex;gap:28px}
.nav-links a{color:var(--white);font-size:.8rem;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;transition:color .3s}
.nav-links a:hover{color:var(--gold)}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:1001}
.hamburger span{width:26px;height:2px;background:var(--white);transition:.3s}

/* ===== HERO ===== */
.hero{
  position:relative;height:100vh;
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:#1a1a1a;
}
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.3) 50%,rgba(0,0,0,.5) 100%)}
.hero-content{position:relative;z-index:1;max-width:850px;padding:0 20px}
.hero-content .tagline{
  font-family:var(--serif);font-style:italic;font-size:1.4rem;color:rgba(255,255,255,.98);
  letter-spacing:4px;margin-bottom:14px;text-shadow:0 4px 15px rgba(0,0,0,.95),0 0 25px rgba(0,0,0,.8),0 2px 5px rgba(0,0,0,.9);
}
.hero-content h1{
  font-family:var(--serif);font-size:4rem;font-weight:700;color:var(--white);
  line-height:1.15;margin-bottom:20px;text-shadow:0 3px 15px rgba(0,0,0,.9),0 0 30px rgba(0,0,0,.7);
}
.hero-content p{color:rgba(255,255,255,.95);font-size:1rem;max-width:640px;margin:0 auto 34px;text-shadow:0 2px 10px rgba(0,0,0,.85),0 0 20px rgba(0,0,0,.6)}
.hero-content .btn{
  display:inline-block;padding:14px 40px;border:2px solid var(--gold);color:var(--gold);
  font-size:.8rem;letter-spacing:2px;text-transform:uppercase;font-weight:600;
  transition:all .3s;text-shadow:0 1px 4px rgba(0,0,0,.6);
}
.hero-content .btn:hover{background:var(--gold);color:var(--dark)}

/* ===== INTRO ===== */
.intro{
  padding:100px 60px;text-align:center;background:var(--white);
}
.intro p{
  max-width:780px;margin:0 auto;font-size:1.05rem;color:#555;line-height:1.9;
}
.intro p+p{margin-top:18px}

/* ===== SECTION HEADING ===== */
.section-heading{text-align:center;margin-bottom:50px}
.section-heading .overline{
  font-size:.75rem;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px;
}
.section-heading h2{
  font-family:var(--serif);font-size:2.6rem;color:var(--green-dark);
}
.section-heading p{max-width:640px;margin:16px auto 0;color:#666;font-size:.95rem}

/* ===== UBICACIÓN ===== */
.ubicacion{
  padding:100px 60px;background:var(--cream);
}
.ubicacion-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1200px;margin:0 auto;
}
.ubicacion-text h3{font-family:var(--serif);font-size:1.8rem;color:var(--green-dark);margin-bottom:18px}
.ubicacion-text p{color:#555;margin-bottom:24px;line-height:1.8}
.ubicacion-stats{display:flex;flex-direction:column;gap:16px}
.ubicacion-stats .stat{display:flex;align-items:center;gap:14px}
.ubicacion-stats .stat .icon{
  width:44px;height:44px;border-radius:50%;background:var(--green);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;
}
.ubicacion-stats .stat span{color:#444;font-size:.92rem}
.ubicacion-img{border-radius:10px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.15)}
.ubicacion-img img{width:100%;height:420px;object-fit:cover}

/* ===== FEATURES ROW ===== */
.features-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
}
.feature-card{
  padding:60px 40px;text-align:center;color:var(--white);
}
.feature-card:nth-child(1){background:var(--green)}
.feature-card:nth-child(2){background:var(--green-dark)}
.feature-card:nth-child(3){background:#1e3a20}
.feature-card .feat-label{font-size:.75rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.feature-card h3{font-family:var(--serif);font-size:1.6rem;margin-bottom:10px}
.feature-card p{font-size:.85rem;opacity:.85}

/* ===== CTA BANNER ===== */
.cta-banner{
  padding:50px 60px;text-align:center;background:var(--gold);
}
.cta-banner a{
  display:inline-block;padding:14px 50px;background:var(--green-dark);color:var(--white);
  font-size:.8rem;letter-spacing:2px;text-transform:uppercase;font-weight:600;
  transition:background .3s;border-radius:6px;
}
.cta-banner a:hover{background:var(--dark)}

/* ===== PARQUE / RIBERA ===== */
.parque{
  padding:100px 60px;background:var(--white);
}
.parque-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1200px;margin:0 auto;
}
.parque-text .overline{
  font-size:.75rem;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:8px;
}
.parque-text h2{font-family:var(--serif);font-size:2.4rem;color:var(--green-dark);margin-bottom:18px}
.parque-text p{color:#555;line-height:1.8;margin-bottom:16px}
.parque-img{border-radius:10px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.15)}
.parque-img img{width:100%;height:500px;object-fit:cover}

/* ===== PESCA ===== */
.pesca{
  padding:100px 60px;background:var(--cream);
}
.pesca-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1200px;margin:0 auto;
}
.pesca-text h2{font-family:var(--serif);font-size:2.2rem;color:var(--green-dark);margin-bottom:18px}
.pesca-text p{color:#555;line-height:1.8;margin-bottom:14px}
.pesca-text .highlight{
  display:inline-block;margin-top:8px;padding:10px 20px;background:var(--green);color:var(--white);
  border-radius:6px;font-size:.85rem;font-weight:600;letter-spacing:1px;
}
.pesca-img{border-radius:10px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.15)}
.pesca-img img{width:100%;height:420px;object-fit:cover}

/* ===== ATRACTIVOS ===== */
.club{
  padding:100px 60px;background:var(--white);
}
.club .section-heading h2{margin-bottom:6px}
.atractivos-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:0 auto;
}
.atractivo-card{
  position:relative;border-radius:10px;overflow:hidden;height:260px;
  display:flex;align-items:flex-end;
}
.atractivo-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.atractivo-card::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(0,0,0,.65))}
.atractivo-card .card-label{
  position:relative;z-index:1;padding:20px;color:var(--white);
  font-family:var(--serif);font-size:1.1rem;font-weight:700;
}

/* ===== EQUIPAMIENTO ===== */
.equipamiento{
  padding:80px 60px;background:var(--cream);
}
.equip-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:40px;max-width:1100px;margin:0 auto;
}
.equip-card{
  position:relative;border-radius:10px;overflow:hidden;height:340px;
  display:flex;align-items:flex-end;
}
.equip-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.equip-card::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(0,0,0,.6))}
.equip-card-content{position:relative;z-index:1;padding:28px;color:var(--white)}
.equip-card-content h3{font-family:var(--serif);font-size:1.4rem;margin-bottom:6px}
.equip-card-content p{font-size:.85rem;opacity:.9;line-height:1.6}

/* ===== ENTORNO ===== */
.borde{
  padding:100px 60px;background:var(--white);
}
.borde-header{text-align:center;margin-bottom:50px}
.borde-header h2{font-family:var(--serif);font-size:2.4rem;color:var(--green-dark)}
.borde-header p{max-width:640px;margin:14px auto 0;color:#555;font-size:.95rem;line-height:1.8}
.borde-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:36px;max-width:1100px;margin:0 auto;
}
.borde-card{text-align:center;padding:30px 20px}
.borde-card .time{
  font-family:var(--serif);font-size:1.8rem;color:var(--green);margin-bottom:6px;
}
.borde-card h4{font-size:.95rem;text-transform:uppercase;letter-spacing:1px;color:var(--green-dark);margin-bottom:10px}
.borde-card p{font-size:.85rem;color:#666;line-height:1.7}

/* ===== ATRACCIONES ===== */
.atracciones{
  position:relative;padding:100px 60px;text-align:center;
  background:url('https://static.portalterreno.cl/properties/15292/090af9d3-2ce4-5a44-9f23-d2ecef674f2e.webp') center/cover no-repeat;
}
.atracciones::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.55)}
.atracciones .container{position:relative;z-index:1}
.atracciones h2{font-family:var(--serif);font-size:2.4rem;color:var(--white);margin-bottom:16px}
.atracciones p{color:rgba(255,255,255,.85);max-width:640px;margin:0 auto 34px;font-size:.95rem;line-height:1.8}
.atracciones .btn{
  display:inline-block;padding:14px 40px;border:2px solid var(--gold);color:var(--gold);
  font-size:.8rem;letter-spacing:2px;text-transform:uppercase;font-weight:600;
  transition:all .3s;
}
.atracciones .btn:hover{background:var(--gold);color:var(--dark)}

/* ===== GALLERY ===== */
.gallery{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
}
.gallery img{width:100%;height:280px;object-fit:cover;transition:transform .4s}
.gallery img:hover{transform:scale(1.05)}

/* ===== DESARROLLO / POR QUÉ ===== */
.desarrollo{
  padding:80px 60px;background:var(--cream);text-align:center;
}
.desarrollo h2{font-family:var(--serif);font-size:2.2rem;color:var(--green-dark);margin-bottom:14px}
.desarrollo>p{max-width:700px;margin:0 auto 40px;color:#555;font-size:.95rem;line-height:1.8}
.desarrollo-cards{display:flex;gap:30px;justify-content:center;flex-wrap:wrap}
.desarrollo-card{
  background:var(--white);padding:30px 28px;border-radius:10px;max-width:380px;flex:1;min-width:280px;
  box-shadow:0 8px 30px rgba(0,0,0,.08);text-align:left;
}
.desarrollo-card h4{font-size:.95rem;color:var(--green-dark);margin-bottom:10px;font-weight:600}
.desarrollo-card p{font-size:.85rem;color:#666;line-height:1.7}
.desarrollo-card .icon-big{font-size:2rem;margin-bottom:12px}

/* ===== CONTACTO ===== */
.contacto{
  padding:100px 60px;background:var(--green-dark);color:var(--white);
}
.contacto-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:1100px;margin:0 auto;
}
.contacto-info h2{font-family:var(--serif);font-size:2.2rem;margin-bottom:24px}
.contacto-info p{margin-bottom:12px;font-size:.92rem;opacity:.85;line-height:1.7}
.contacto-info a{color:var(--gold);transition:opacity .3s}
.contacto-info a:hover{opacity:.7}
.contacto-form{display:flex;flex-direction:column;gap:16px}
.contacto-form input,.contacto-form textarea{
  width:100%;padding:14px 18px;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);color:var(--white);font-family:var(--sans);
  font-size:.9rem;border-radius:6px;outline:none;transition:border .3s;
}
.contacto-form input::placeholder,.contacto-form textarea::placeholder{color:rgba(255,255,255,.5)}
.contacto-form input:focus,.contacto-form textarea:focus{border-color:var(--gold)}
.contacto-form textarea{height:120px;resize:vertical}
.contacto-form button{
  padding:14px 40px;background:var(--gold);color:var(--dark);border:none;
  font-family:var(--sans);font-size:.8rem;letter-spacing:2px;text-transform:uppercase;
  font-weight:600;cursor:pointer;border-radius:6px;transition:background .3s;
}
.contacto-form button:hover{background:#b8963f}

.phone-input-group{display:flex;flex-direction:column;gap:6px}
.phone-error{
  font-size:.8rem;height:18px;line-height:1.2;
  font-weight:500;min-height:18px;letter-spacing:.3px;
}

/* ===== WHATSAPP FLOAT ===== */
.whatsapp-float{
  position:fixed;bottom:90px;right:30px;width:56px;height:56px;
  background:#25d366;border-radius:50%;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,.25);z-index:999;transition:transform .3s;
}
.whatsapp-float:hover{transform:scale(1.1)}
.whatsapp-float svg{width:30px;height:30px;fill:var(--white)}

/* ===== FOOTER ===== */
footer{
  padding:30px 60px;background:var(--dark);text-align:center;
  font-size:.78rem;color:rgba(255,255,255,.45);letter-spacing:.5px;
}
footer span{color:var(--gold)}

/* ===== SCROLL-TO-TOP ===== */
.scroll-top{
  position:fixed;bottom:30px;right:30px;width:44px;height:44px;
  background:var(--green);color:var(--white);border:none;border-radius:50%;
  font-size:1.2rem;cursor:pointer;opacity:0;visibility:hidden;
  transition:all .3s;z-index:999;
}
.scroll-top.visible{opacity:1;visibility:visible}
.scroll-top:hover{background:var(--gold);color:var(--dark)}

/* ===== GALERÍA MÓVIL ===== */
.mobile-gallery{display:none;position:relative}
.mobile-gallery-wrapper{position:relative;width:100%;max-width:600px;margin:0 auto;overflow:hidden;border-radius:10px}
.mobile-gallery-grid{display:flex;transition:transform .4s ease-in-out;width:100%}
.mobile-gallery-item{position:relative;flex:0 0 100%;width:100%;height:400px;overflow:hidden}
.mobile-gallery-item img{width:100%;height:100%;object-fit:cover}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.6);color:white;border:none;font-size:24px;padding:12px 16px;cursor:pointer;z-index:10;transition:background .3s;user-select:none}
.carousel-btn:hover{background:rgba(0,0,0,.8)}
.carousel-btn.prev{left:10px}
.carousel-btn.next{right:10px}
.carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}
.carousel-dot{width:10px;height:10px;border-radius:50%;background:rgba(0,0,0,.3);cursor:pointer;transition:background .3s}
.carousel-dot.active{background:var(--green)}

/* ===== LIGHTBOX ===== */
.lightbox{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.95);z-index:2000;align-items:center;justify-content:center}
.lightbox.active{display:flex}
.lightbox-close{position:absolute;top:20px;right:30px;color:var(--white);font-size:40px;cursor:pointer;transition:color .3s;z-index:2001}
.lightbox-close:hover{color:var(--gold)}
.lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}
.lightbox-content img{max-width:100%;max-height:90vh;object-fit:contain}
.lightbox-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.2);color:var(--white);border:none;font-size:30px;padding:20px 24px;cursor:pointer;z-index:2001;transition:background .3s;user-select:none}
.lightbox-btn:hover{background:rgba(255,255,255,.4)}
.lightbox-btn.prev{left:20px}
.lightbox-btn.next{right:20px}
.lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:var(--white);font-size:.95rem;background:rgba(0,0,0,.6);padding:8px 16px;border-radius:6px;z-index:2001}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .ubicacion-grid,.parque-grid,.pesca-grid,.contacto-grid{grid-template-columns:1fr}
  .features-row{grid-template-columns:1fr}
  .borde-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .atractivos-grid{grid-template-columns:1fr 1fr}
  .equip-grid{grid-template-columns:1fr}
}
@media(max-width:768px){
  .navbar{padding:14px 24px}
  .nav-links{
    position:fixed;top:0;right:-100%;width:260px;height:100vh;
    background:var(--dark);flex-direction:column;padding:80px 30px 30px;
    transition:right .35s;gap:22px;
  }
  .nav-links.open{right:0}
  .hamburger{display:flex}
  .hero-content h1{font-size:2.4rem}
  .hero-content .tagline{font-size:1.1rem}
  .ubicacion,.parque,.pesca,.club,.borde,.atracciones,.desarrollo,.contacto{padding:60px 24px}
  .intro{padding:60px 24px}
  .gallery{grid-template-columns:1fr 1fr}
  .atractivos-grid{grid-template-columns:1fr}
  .equip-grid{grid-template-columns:1fr}
  .desarrollo-cards{flex-direction:column;align-items:center}
  .mobile-gallery{display:block;padding:60px 24px;background:var(--cream);text-align:center}
  .mobile-gallery h2{font-family:var(--serif);font-size:2rem;color:var(--green-dark);margin-bottom:24px}
  .mobile-gallery-item{height:300px}
}
