:root{
  --pink:#d6157f;
  --pink-dark:#a3105f;
  --pink-light:#ec4ba0;
  --magenta:#e0218a;
  --rose:#fce4f1;
  --rose-soft:#fdf2f8;
  --ink:#2a1a24;
  --muted:#6b5560;
  --white:#ffffff;
  --shadow:0 18px 40px -18px rgba(214,21,127,.45);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Poppins',system-ui,sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,.brand{font-family:'Poppins',sans-serif}
a{text-decoration:none;color:inherit}
.container{width:min(1140px,92%);margin:0 auto}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid #f3d5e6;
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.logo{display:flex;align-items:center;gap:12px}
.logo .crown{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--pink-light),var(--pink-dark));
  display:grid;place-items:center;color:#fff;font-size:22px;
  box-shadow:var(--shadow);
}
.logo .name{font-weight:800;font-size:1.25rem;letter-spacing:.5px;color:var(--pink-dark)}
.logo .name small{display:block;font-size:.6rem;font-weight:600;letter-spacing:2px;color:var(--muted);text-transform:uppercase}
.nav-links{display:flex;gap:26px;align-items:center}
.nav-links a{font-weight:500;font-size:.95rem;color:var(--ink);transition:color .2s}
.nav-links a:hover{color:var(--pink)}
.nav-cta{
  background:linear-gradient(135deg,var(--pink),var(--pink-dark));
  color:#fff!important;padding:10px 20px;border-radius:50px;font-weight:600;
  box-shadow:var(--shadow);transition:transform .2s;
}
.nav-cta:hover{transform:translateY(-2px)}
.menu-btn{display:none;background:none;border:0;font-size:1.6rem;color:var(--pink-dark);cursor:pointer}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background:
    radial-gradient(circle at 15% 20%,rgba(236,75,160,.18),transparent 40%),
    radial-gradient(circle at 85% 0%,rgba(163,16,95,.22),transparent 45%),
    linear-gradient(135deg,#fff 0%,var(--rose-soft) 100%);
  padding:80px 0 90px;
  overflow:hidden;
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.badge{
  display:inline-flex;align-items:center;gap:8px;
  background:#fff;border:1px solid #f3c4de;color:var(--pink-dark);
  padding:7px 16px;border-radius:50px;font-size:.8rem;font-weight:600;
  box-shadow:0 6px 18px -10px rgba(214,21,127,.4);margin-bottom:22px;
}
.hero h1{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;line-height:1.12;color:var(--ink)}
.hero h1 .accent{
  background:linear-gradient(120deg,var(--pink),var(--pink-dark));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hero p.lead{font-size:1.12rem;color:var(--muted);margin:20px 0 30px;max-width:520px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 26px;border-radius:50px;font-weight:600;font-size:1rem;
  transition:transform .2s,box-shadow .2s;cursor:pointer;border:0;
}
.btn svg{width:20px;height:20px}
.btn-primary{background:linear-gradient(135deg,var(--pink),var(--pink-dark));color:#fff;box-shadow:var(--shadow)}
.btn-primary:hover{transform:translateY(-3px)}
.btn-whats{background:#25D366;color:#fff;box-shadow:0 18px 40px -18px rgba(37,211,102,.6)}
.btn-whats:hover{transform:translateY(-3px)}
.btn-ghost{background:#fff;color:var(--pink-dark);border:2px solid #f3c4de}
.btn-ghost:hover{transform:translateY(-3px);border-color:var(--pink)}

.hero-card{
  background:#fff;border-radius:28px;padding:30px;box-shadow:0 30px 60px -28px rgba(163,16,95,.4);
  border:1px solid #f7d8ea;position:relative;
}
.hero-card .crown-big{
  width:84px;height:84px;border-radius:50%;margin:0 auto 14px;
  background:linear-gradient(135deg,var(--pink-light),var(--pink-dark));
  display:grid;place-items:center;color:#fff;font-size:40px;
  box-shadow:var(--shadow);
}
.hero-card h3{text-align:center;color:var(--pink-dark);font-size:1.4rem;margin-bottom:4px}
.hero-card .tagline{text-align:center;color:var(--muted);font-size:.85rem;margin-bottom:20px}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}
.mini-stats .s{background:var(--rose-soft);border-radius:16px;padding:14px 8px;text-align:center}
.mini-stats .s b{display:block;font-size:1.3rem;color:var(--pink);font-weight:800}
.mini-stats .s span{font-size:.72rem;color:var(--muted)}
.hero-card .quick a{
  display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;
  background:var(--rose-soft);margin-bottom:10px;font-weight:500;font-size:.92rem;color:var(--ink);
  transition:background .2s;
}
.hero-card .quick a:hover{background:var(--rose)}
.hero-card .quick .ic{width:34px;height:34px;border-radius:10px;background:var(--pink);color:#fff;display:grid;place-items:center;flex:none}
.hero-card .quick .ic svg{width:18px;height:18px}

/* ---------- Section base ---------- */
section{padding:78px 0}
.sec-head{text-align:center;max-width:640px;margin:0 auto 48px}
.sec-head .kicker{color:var(--pink);font-weight:700;letter-spacing:2px;font-size:.8rem;text-transform:uppercase}
.sec-head h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;margin:8px 0 12px}
.sec-head p{color:var(--muted)}

/* ---------- Services ---------- */
.services{background:linear-gradient(180deg,#fff,var(--rose-soft))}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:26px}
.svc-card{
  background:#fff;border-radius:24px;padding:30px 26px;border:1px solid #f6dcec;
  box-shadow:0 20px 45px -30px rgba(163,16,95,.5);transition:transform .25s,box-shadow .25s;
}
.svc-card:hover{transform:translateY(-6px);box-shadow:0 30px 55px -28px rgba(163,16,95,.55)}
.svc-icon{
  width:62px;height:62px;border-radius:18px;display:grid;place-items:center;color:#fff;
  font-size:28px;margin-bottom:18px;background:linear-gradient(135deg,var(--pink-light),var(--pink-dark));
}
.svc-card h3{font-size:1.25rem;color:var(--pink-dark);margin-bottom:14px}
.svc-card ul{list-style:none}
.svc-card li{display:flex;align-items:center;gap:9px;padding:5px 0;color:var(--ink);font-size:.93rem}
.svc-card li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pink);flex:none}

/* ---------- Highlight / discount ---------- */
.promo{
  background:linear-gradient(135deg,var(--pink),var(--pink-dark));color:#fff;border-radius:30px;
  padding:48px 40px;text-align:center;box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.promo::before,.promo::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.1)}
.promo::before{width:200px;height:200px;top:-60px;right:-40px}
.promo::after{width:140px;height:140px;bottom:-50px;left:-30px}
.promo h2{font-size:clamp(1.6rem,4vw,2.3rem);font-weight:800;position:relative}
.promo p{margin:14px auto 24px;max-width:560px;opacity:.95;position:relative}
.promo .tag{display:inline-block;background:rgba(255,255,255,.2);padding:6px 18px;border-radius:50px;font-weight:700;margin-top:8px;position:relative}
.promo .btn-primary{background:#fff;color:var(--pink-dark);position:relative}

/* ---------- Why us ---------- */
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.why-card{text-align:center;padding:26px}
.why-card .ic{
  width:70px;height:70px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;
  background:var(--rose);color:var(--pink-dark);font-size:30px;
}
.why-card h3{font-size:1.1rem;margin-bottom:8px}
.why-card p{color:var(--muted);font-size:.92rem}

/* ---------- Contact / location ---------- */
.contact{background:linear-gradient(180deg,var(--rose-soft),#fff)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:stretch}
.contact-box{background:#fff;border-radius:24px;padding:36px;border:1px solid #f6dcec;box-shadow:0 20px 45px -30px rgba(163,16,95,.5)}
.contact-box h3{color:var(--pink-dark);font-size:1.5rem;margin-bottom:6px}
.contact-box .sub{color:var(--muted);margin-bottom:24px}
.contact-list a{
  display:flex;align-items:center;gap:16px;padding:16px;border-radius:16px;background:var(--rose-soft);
  margin-bottom:14px;transition:transform .2s,background .2s;
}
.contact-list a:hover{transform:translateX(4px);background:var(--rose)}
.contact-list .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;flex:none}
.contact-list .ic svg{width:24px;height:24px}
.ic.wa{background:#25D366}.ic.call{background:var(--pink)}.ic.waze{background:#33ccff}.ic.ig{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888)}
.contact-list .txt b{display:block;font-size:1rem}
.contact-list .txt span{font-size:.85rem;color:var(--muted)}
.map-wrap{border-radius:24px;overflow:hidden;min-height:380px;border:1px solid #f6dcec;box-shadow:0 20px 45px -30px rgba(163,16,95,.5)}
.map-wrap iframe{width:100%;height:100%;min-height:380px;border:0;display:block}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:#f6dcec;padding:50px 0 26px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px;margin-bottom:34px}
footer h4{color:#fff;margin-bottom:14px;font-size:1.05rem}
footer p,footer li{color:#d8b9cb;font-size:.9rem;line-height:1.9}
footer ul{list-style:none}
footer a:hover{color:#fff}
.foot-logo{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.foot-logo .crown{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--pink-light),var(--pink-dark));display:grid;place-items:center;color:#fff;font-size:20px}
.foot-logo b{color:#fff;font-size:1.2rem;font-weight:800}
.foot-bottom{text-align:center;border-top:1px solid rgba(255,255,255,.12);padding-top:20px;font-size:.82rem;color:#b894a8}

/* ---------- Floating WhatsApp ---------- */
.float-wa{
  position:fixed;bottom:24px;right:24px;z-index:60;
  width:60px;height:60px;border-radius:50%;background:#25D366;color:#fff;
  display:grid;place-items:center;box-shadow:0 14px 30px -8px rgba(37,211,102,.7);
  animation:pulse 2.4s infinite;
}
.float-wa svg{width:32px;height:32px}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.reveal.show{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media(max-width:880px){
  .hero-grid{grid-template-columns:1fr;gap:36px}
  .contact-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:24px}
  .nav-links{
    position:absolute;top:70px;right:4%;flex-direction:column;align-items:flex-start;
    background:#fff;padding:18px 22px;border-radius:18px;box-shadow:var(--shadow);
    display:none;border:1px solid #f3d5e6;min-width:200px;
  }
  .nav-links.open{display:flex}
  .menu-btn{display:block}
}

/* ---------- Especialidades (página + acceso en home) ---------- */
.esp-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px;
}
.esp-card{
  display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #f6dcec;
  border-radius:18px;padding:16px 18px;text-decoration:none;color:var(--ink);
  box-shadow:0 14px 34px -26px rgba(163,16,95,.55);
  transition:transform .22s,box-shadow .22s,border-color .22s;
}
.esp-card:hover{transform:translateY(-5px);border-color:var(--pink);box-shadow:0 24px 44px -26px rgba(163,16,95,.6)}
.esp-card .ic{
  width:48px;height:48px;border-radius:14px;flex:none;display:grid;place-items:center;font-size:24px;color:#fff;
  background:linear-gradient(135deg,var(--pink-light),var(--pink-dark));
}
.esp-card .nm{font-weight:600;font-size:.98rem;line-height:1.25}
.esp-card .nm small{display:block;font-weight:500;font-size:.74rem;color:var(--muted);margin-top:2px}

/* Page hero (subpáginas) */
.page-hero{
  background:
    radial-gradient(circle at 15% 20%,rgba(236,75,160,.18),transparent 42%),
    linear-gradient(135deg,#fff 0%,var(--rose-soft) 100%);
  padding:64px 0 40px;text-align:center;
}
.page-hero .badge{margin-bottom:18px}
.page-hero h1{font-size:clamp(2rem,5vw,3rem);font-weight:800}
.page-hero h1 .accent{background:linear-gradient(120deg,var(--pink),var(--pink-dark));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.page-hero p{color:var(--muted);max-width:560px;margin:14px auto 0}
.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--pink-dark);font-weight:600;margin-top:18px}
.back-link:hover{color:var(--pink)}

/* Acceso a especialidades en home */
.esp-cta{
  background:#fff;border:1px solid #f6dcec;border-radius:26px;padding:40px;text-align:center;
  box-shadow:0 20px 45px -30px rgba(163,16,95,.5);
}
.esp-cta .chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:22px 0 26px}
.esp-cta .chip{background:var(--rose-soft);border:1px solid #f3d5e6;color:var(--pink-dark);padding:8px 16px;border-radius:50px;font-size:.85rem;font-weight:600}

/* ---------- Logo (imagen real) ---------- */
.logo-img{height:46px;width:auto;display:block}
.hero-logo{display:block;width:78%;max-width:250px;margin:0 auto 16px}
.foot-logo-img{height:52px;width:auto;display:block}
@media(max-width:880px){ .logo-img{height:38px} }
