:root{
  --rosa:#E997C1;
  --rosa-deep:#C15D93;
  --plum:#3A2436;
  --cream:#FBF6F5;
  --ink:#2B2129;
  --line:#EBD9E2;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--cream); color:var(--ink); font-family:'Manrope',sans-serif; line-height:1.65;}
h1,h2,h3{font-family:'Cormorant Garamond',serif; font-weight:500;}
a{color:inherit; text-decoration:none;}
img,video{display:block; max-width:100%;}
.wrap{max-width:1160px; margin:0 auto; padding:0 32px;}
@media(max-width:640px){ .wrap{padding:0 20px;} }
.eyebrow{font-size:0.76rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--rosa-deep); font-weight:700;}

/* NAV */
header{position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(251,246,245,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
nav{display:flex; align-items:center; justify-content:space-between; padding:10px 32px;}
.logo-img{height:112px;}
@media(max-width:640px){ .logo-img{height:74px;} }
.navlinks{display:flex; gap:28px; font-size:0.9rem;}
.navlinks a.active{color:var(--rosa-deep); font-weight:700;}
@media(max-width:860px){ .navlinks{display:none;} }
.nav-cta{background:var(--rosa-deep); color:#fff; padding:10px 22px; border-radius:100px; font-size:0.85rem; font-weight:600;}
.burger{display:none; background:none; border:none; font-size:1.6rem; color:var(--plum); cursor:pointer;}
@media(max-width:860px){ .burger{display:block;} }
.mobile-menu{display:none; flex-direction:column; gap:2px; background:#fff; border-top:1px solid var(--line);}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:16px 32px; border-bottom:1px solid var(--line); font-size:0.95rem;}

/* PAGE HERO (inner pages) */
.page-hero{position:relative; min-height:52vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; padding-top:150px;}
.page-hero img, .page-hero video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;}
.page-hero::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg, rgba(58,36,54,0.65) 10%, rgba(58,36,54,0.2) 80%);}
.page-hero-inner{padding-bottom:60px;}
.page-hero .eyebrow{color:var(--rosa); display:block; margin-bottom:14px;}
.page-hero h1{font-size:clamp(2rem,5vw,3.4rem);}
.page-hero p{margin-top:16px; opacity:0.85; max-width:520px;}

/* HOME HERO (video) */
.hero{position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden;}
.hero video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;}
.hero::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(58,36,54,0.55) 10%, rgba(58,36,54,0.15) 60%, rgba(58,36,54,0.35) 100%);}
.hero-inner{color:#fff; max-width:620px; padding-top:130px;}
.hero .eyebrow{color:var(--rosa); display:block; margin-bottom:18px;}
.hero h1{font-size:clamp(2.2rem,5.5vw,3.8rem); line-height:1.15;}
.hero p{margin-top:22px; opacity:0.9; font-size:1.05rem; max-width:480px;}

.hero-ctas{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
.btn-solid{background:var(--rosa); color:var(--plum); padding:15px 28px; border-radius:100px; font-weight:700; font-size:0.92rem; display:inline-block; border:none; cursor:pointer;}
.btn-outline{border:1px solid rgba(255,255,255,0.5); color:#fff; padding:15px 28px; border-radius:100px; font-size:0.92rem; display:inline-block;}
.btn-outline.dark{border-color:var(--plum); color:var(--plum);}

section{padding:100px 0;}
.section-head{max-width:640px; margin-bottom:50px;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.5rem); margin-top:12px;}

/* Split image/text */
.split-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:center;}
.split-grid.reverse{grid-template-columns:1.1fr 0.9fr;}
.split-grid img{border-radius:16px; width:100%; height:420px; object-fit:cover;}
@media(max-width:800px){ .split-grid, .split-grid.reverse{grid-template-columns:1fr;} .split-grid img{height:260px;} }
.stat-row{display:flex; gap:40px; margin-top:32px; flex-wrap:wrap;}
.stat-row .num{font-family:'Cormorant Garamond',serif; font-size:2.4rem; color:var(--rosa-deep);}
.stat-row .num span{display:block; font-family:'Manrope'; font-size:0.8rem; opacity:0.65; margin-top:4px;}

/* Banda con imagen de fondo */
.band{position:relative; color:#fff; min-height:56vh; display:flex; align-items:center;}
.band img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;}
.band::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(58,36,54,0.2), rgba(58,36,54,0.55));}
.pill-list{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px;}
.pill{border:1px solid rgba(255,255,255,0.4); border-radius:100px; padding:12px 22px; font-size:0.88rem;}
.pill.on-light{border-color:var(--line); color:var(--rosa-deep);}

/* Stage cards */
.stage-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:50px;}
.stage-card{background:#fff; border:1px solid var(--line); border-radius:18px; padding:32px 26px;}
.stage-card h3{font-size:1.25rem; margin:12px 0 10px;}
.stage-card p{font-size:0.9rem; opacity:0.72;}
@media(max-width:800px){ .stage-cards{grid-template-columns:1fr;} }

/* Metodo list */
.metodo-list{margin-top:50px; border-top:1px solid var(--line);}
.metodo-row{display:grid; grid-template-columns:220px 1fr; gap:30px; padding:26px 0; border-bottom:1px solid var(--line);}
.metodo-row h4{font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-weight:600;}
.metodo-row p{font-size:0.92rem; opacity:0.75;}
@media(max-width:700px){ .metodo-row{grid-template-columns:1fr; gap:8px;} }

/* Genero grid */
.genero-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; background:#fff; border-radius:24px; padding:56px; margin:0 32px;}
.genero-grid img{border-radius:16px; width:100%; height:100%; object-fit:cover; max-height:380px;}
@media(max-width:800px){ .genero-grid{grid-template-columns:1fr; padding:36px 24px;} }

/* Testimonios */
.testimonios{position:relative; margin:0 32px; border-radius:24px; overflow:hidden; min-height:60vh; display:flex; align-items:flex-end;}
.testimonios video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.testimonios::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(43,33,41,0.45), transparent 55%); pointer-events:none;}
.testi-inner{position:relative; padding:44px; color:#fff;}
.play-btn{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:5;
  width:78px; height:78px; border-radius:50%; background:rgba(255,255,255,0.9);
  display:flex; align-items:center; justify-content:center; cursor:pointer; border:none;
  box-shadow:0 8px 30px rgba(0,0,0,0.3);
}
.play-btn svg{width:26px; height:26px; margin-left:4px;}
.testi-inner h3{font-size:1.4rem;}
.testi-inner p{opacity:0.85; margin-top:6px; font-size:0.9rem; max-width:440px;}

/* Galeria */
.gal-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.gal-grid img{width:100%; height:230px; object-fit:cover; border-radius:14px;}
.gal-grid a:first-child{grid-column:span 2; grid-row:span 2;}
.gal-grid a:first-child img{height:474px;}
@media(max-width:800px){ .gal-grid{grid-template-columns:repeat(2,1fr);} .gal-grid a:first-child{grid-column:span 2; grid-row:auto;} .gal-grid a:first-child img{height:230px;} }

/* Testimonios escritos */
.gal-scroll{display:flex; gap:18px; overflow-x:auto; padding:10px 32px 30px; scroll-snap-type:x mandatory; justify-content:center; flex-wrap:wrap;}
.testi-card{
  background:#fff; border:1px solid var(--line); border-radius:18px; padding:28px 26px;
  min-width:320px; max-width:340px; flex-shrink:0; scroll-snap-align:start;
}
.testi-card-head{display:flex; justify-content:flex-end; flex-direction:column; align-items:flex-end; margin-bottom:18px;}
.testi-name{font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--rosa-deep); font-size:1.15rem;}
.testi-age{color:var(--rosa-deep); font-size:0.85rem; opacity:0.8;}
.testi-card h4{font-family:'Cormorant Garamond',serif; color:var(--rosa-deep); font-size:1.15rem; margin-bottom:12px;}
.testi-card p{font-size:0.9rem; opacity:0.75; line-height:1.6;}
.amenidades{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px;}

/* Equipo cards */
.equipo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:50px;}
.equipo-card{background:#fff; border:1px solid var(--line); border-radius:18px; padding:28px;}
.equipo-card .eyebrow{margin-bottom:8px; display:block;}
.equipo-card h4{font-family:'Cormorant Garamond',serif; font-size:1.2rem;}
@media(max-width:800px){ .equipo-grid{grid-template-columns:1fr;} }

/* Principios */
.principios-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line); border-radius:16px; overflow:hidden; margin-top:50px;}
.principio-item{background:#fff; padding:32px 26px;}
.principio-item h4{font-family:'Cormorant Garamond',serif; font-size:1.15rem; margin-bottom:10px;}
.principio-item p{font-size:0.9rem; opacity:0.72;}
@media(max-width:800px){ .principios-grid{grid-template-columns:1fr;} }

/* Formulario contacto */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
@media(max-width:800px){ .form-grid{grid-template-columns:1fr;} }
.field{margin-bottom:18px;}
.field label{display:block; font-size:0.8rem; font-weight:600; margin-bottom:6px; color:var(--plum);}
.field input, .field textarea{
  width:100%; padding:14px 16px; border:1px solid var(--line); border-radius:10px;
  font-family:'Manrope'; font-size:0.95rem; background:#fff;
}
.field textarea{resize:vertical; min-height:110px;}
.form-note{font-size:0.8rem; opacity:0.55; margin-top:10px;}

/* CTA final */
.cta-final{position:relative; background:var(--plum); color:#fff; text-align:center; border-radius:28px; margin:0 32px; padding:80px 40px; overflow:hidden;}
.cta-final video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:0.85;}
.cta-final::before{content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(160deg, rgba(58,36,54,0.55), rgba(42,27,38,0.45)), radial-gradient(ellipse at 30% 20%, rgba(233,151,193,0.2), transparent 60%);}
.cta-final .wrap{position:relative; z-index:2; padding:0;}
.cta-final h2{font-size:clamp(2rem,4.5vw,3rem); max-width:600px; margin:0 auto 18px;}
.cta-final p{opacity:0.8; max-width:460px; margin:0 auto 32px;}
.contact-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:64px; text-align:left; border-top:1px solid rgba(255,255,255,0.15); padding-top:40px;}
.contact-strip p{font-size:0.94rem; opacity:0.85; margin-top:8px;}
@media(max-width:800px){ .contact-strip{grid-template-columns:1fr;} }

footer{padding:28px 0; font-size:0.82rem; opacity:0.65;}
footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;}
.social-links{display:flex; gap:14px;}
.social-links a{opacity:0.6; transition:opacity .2s;}
.social-links a:hover{opacity:1;}
footer a{color:var(--rosa-deep); font-weight:700; opacity:1;}

/* Floating WhatsApp button */
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:200;
  width:56px; height:56px; border-radius:50%; background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(0,0,0,0.25); transition:transform .2s;
}
.wa-float:hover{transform:scale(1.08);}
.wa-float svg{width:28px; height:28px;}
