/* ========================================================= VITALIS · v2 — dos primarios: #5D6FAE (periwinkle) + #81498B (plum) Texturas, fondos con imagen y layouts variados ========================================================= */
 :root{
     --blue:#5D6FAE;
     --blue-700:#45528A;
     --blue-50:#EEF0F8;
     --plum:#81498B;
     --plum-700:#5F3568;
     --plum-50:#F3EDF6;
     --butter:#F4D58A;
     --cream:#FAF6EF;
     --ink:#2B2530;
     --muted:#6C6675;
     --white:#fff;
     --radius-lg:32px;
     --radius-md:22px;
     --radius-sm:14px;
     --shadow:0 26px 60px -28px rgba(95,53,104,.42);
     --shadow-sm:0 14px 32px -20px rgba(95,53,104,.4);
     --grad:linear-gradient(120deg,var(--blue) 0%,var(--plum) 100%);
     --grad-soft:linear-gradient(120deg,#5D6FAE 0%,#81498B 130%);
     --font-display:"Fraunces",Georgia,serif;
     --font-body:"Plus Jakarta Sans",system-ui,sans-serif;
     --container:1200px;
     --noise: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='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
     --petal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%235D6FAE'%3E%3Cellipse cx='12' cy='5' rx='3.2' ry='5'/%3E%3Cellipse cx='12' cy='19' rx='3.2' ry='5'/%3E%3Cellipse cx='5' cy='12' rx='5' ry='3.2'/%3E%3Cellipse cx='19' cy='12' rx='5' ry='3.2'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.6' fill='%2381498B'/%3E%3C/svg%3E");
     --petal-plum:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%2381498B'%3E%3Cellipse cx='12' cy='5' rx='3.2' ry='5'/%3E%3Cellipse cx='12' cy='19' rx='3.2' ry='5'/%3E%3Cellipse cx='5' cy='12' rx='5' ry='3.2'/%3E%3Cellipse cx='19' cy='12' rx='5' ry='3.2'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.6' fill='%23F4D58A'/%3E%3C/svg%3E");
     --dots:radial-gradient(rgba(129,73,139,.18) 1.6px, transparent 1.6px);
}
 *{
    box-sizing:border-box;
}
 body{
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--cream);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
}
 .container{
    max-width:var(--container);
}
 h1,h2,h3,h4{
    font-family:var(--font-display);
    font-weight:500;
    line-height:1.08;
    color:var(--ink);
    letter-spacing:-.01em;
}
 em{
    font-style:italic;
}
 p{
    color:var(--muted);
}
 a{
    text-decoration:none;
}
 img{
    max-width:100%;
    display:block;
}
/* petalo */
 .petal{
    display:inline-block;
    width:16px;
    height:16px;
    vertical-align:middle;
    margin:0 .1em;
    background:var(--petal) center/contain no-repeat;
}
 .petal.big{
    width:42px;
    height:42px;
    margin-bottom:.6rem;
    background:var(--petal-plum) center/contain no-repeat;
}
/* eyebrow */
 .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    font-weight:600;
    font-size:.8rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--blue);
    margin-bottom:1.1rem;
}
 .eyebrow::before{
    content:"";
    width:16px;
    height:16px;
    background:var(--petal) center/contain no-repeat;
}
 .eyebrow.plum{
    color:var(--plum);
}
 .eyebrow.plum::before{
    background:var(--petal-plum) center/contain no-repeat;
}
 .eyebrow.center{
    justify-content:center;
}
/* botones */
 .btn{
    font-family:var(--font-body);
    font-weight:600;
    border-radius:999px;
    padding:.7rem 1.5rem;
    transition:transform .25s,box-shadow .25s,filter .25s;
    border:none;
}
 .btn-lg{
    padding:.9rem 1.9rem;
    font-size:1rem;
}
 .btn i{
    margin-right:.4rem;
}
 .btn-brand{
    background:var(--grad);
    color:#fff;
    box-shadow:var(--shadow-sm);
    background-size:140% 140%;
}
 .btn-brand:hover{
    color:#fff;
    transform:translateY(-2px);
    filter:brightness(1.05);
    background-position:100% 0;
}
 .btn-plum{
    background:var(--plum);
    color:#fff;
    box-shadow:var(--shadow-sm);
}
 .btn-plum:hover{
    background:var(--plum-700);
    color:#fff;
    transform:translateY(-2px);
}
 .btn-ghost{
    background:transparent;
    color:var(--blue-700);
    border:1.5px solid var(--blue);
}
 .btn-ghost:hover{
    background:var(--blue);
    color:#fff;
    transform:translateY(-2px);
}
 .btn-light-pill{
    background:#fff;
    color:var(--plum-700);
}
 .btn-light-pill:hover{
    background:var(--butter);
    color:var(--ink);
    transform:translateY(-2px);
}
/* header */
 .site-header{
    position:sticky;
    top:0;
    z-index:1030;
    background:rgba(250,246,239,.9);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(129,73,139,.12);
}
 .site-header .navbar{
    padding:.8rem 0;
}
 .brand-logo{
    height:40px;
    width:auto;
}
 .navbar-nav .nav-link{
    color:var(--ink);
    font-weight:500;
    font-size:.95rem;
    padding:.4rem 1rem;
}
 .navbar-nav .nav-link:hover{
    color:var(--plum);
}
 .navbar-toggler{
    border:none;
    color:var(--plum);
    font-size:1.3rem;
    padding:.25rem .5rem;
}
 .navbar-toggler:focus{
    box-shadow:none;
}
/* ---------- HERO ---------- */
 .hero{
    position:relative;
    padding:3.5rem 0 0;
    background:radial-gradient(120% 90% at 88% 0%,rgba(129,73,139,.10),transparent 58%),radial-gradient(90% 70% at 0% 0%,rgba(93,111,174,.10),transparent 55%),var(--cream);
    overflow:hidden;
}
 .hero-tex{
    position:absolute;
    top:-120px;
    right:-120px;
    width:520px;
    height:520px;
    background:var(--grad);
    filter:blur(8px);
    opacity:.06;
    border-radius:50%;
    z-index:0;
}
 .hero .container{
    position:relative;
    z-index:1;
}
 .hero-copy{
    padding-bottom:3.5rem;
}
 .hero-title{
    font-size:clamp(2.6rem,5.2vw,4.3rem);
    margin-bottom:1.3rem;
}
 .hero-title em{
    background:var(--grad);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
}
 .hero-lead{
    font-size:1.12rem;
    max-width:30rem;
    margin-bottom:1.8rem;
}
 .hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.9rem;
    margin-bottom:2rem;
}
 .hero-trust{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-wrap:wrap;
    gap:1.4rem;
}
 .hero-trust li{
    font-size:.92rem;
    font-weight:500;
    color:var(--blue-700);
    display:flex;
    align-items:center;
    gap:.5rem;
}
 .hero-trust i{
    color:var(--plum);
}
 .hero-photo{
    position:relative;
   
   
    
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    justify-content:center;
}

 .hero-doctor{
    position:relative;
    z-index:2;
    max-height:100%;
    width:auto;
    object-fit:contain;
    object-position:bottom center;
    align-self:flex-end;
    filter:drop-shadow(0 18px 30px rgba(0,0,0,.18));
}
 .hero-bloom{
    position:absolute;
    top:-60px;
    right:-60px;
    width:280px;
    height:280px;
    background:var(--petal-plum) center/contain no-repeat;
    opacity:.16;
    z-index:1;
}
 .hero-badge{
    position:absolute;
    left:18px;
    top:26px;
    z-index:3;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(4px);
    border-radius:var(--radius-sm);
    padding:.6rem .9rem;
    box-shadow:var(--shadow-sm);
}
 .hero-badge strong{
    display:block;
    font-family:var(--font-display);
    font-size:1.4rem;
    color:var(--plum);
}
 .hero-badge small{
    color:var(--muted);
    font-size:.72rem;
}
 .hero-mini{
    position:absolute;
    left:-26px;
    bottom:42px;
    z-index:4;
    width:130px;
    height:160px;
    border-radius:18px;
    overflow:hidden;
    border:5px solid var(--cream);
    box-shadow:var(--shadow);
    margin:0;
}
 .hero-mini img{
    width:100%;
    height:100%;
    object-fit:cover;
}
/* ---------- MARQUEE ---------- */
 .marquee{
    background:var(--grad);
    overflow:hidden;
    padding:.9rem 0;
}
 .marquee-track{
    display:flex;
    align-items:center;
    gap:2.5rem;
    width:max-content;
    animation:marquee 28s linear infinite;
}
 .marquee-track span{
    font-family:var(--font-display);
    font-style:italic;
    font-size:1.35rem;
    color:#fff;
    white-space:nowrap;
    display:inline-flex;
    align-items:center;
    gap:1rem;
}
 .marquee-track .petal{
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23F4D58A'%3E%3Cellipse cx='12' cy='5' rx='3.2' ry='5'/%3E%3Cellipse cx='12' cy='19' rx='3.2' ry='5'/%3E%3Cellipse cx='5' cy='12' rx='5' ry='3.2'/%3E%3Cellipse cx='19' cy='12' rx='5' ry='3.2'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='2.6' fill='%23fff'/%3E%3C/svg%3E") center/contain no-repeat;
}
 @keyframes marquee{
    from{
        transform:translateX(0);
    }
    to{
        transform:translateX(-50%);
    }
}
/* ---------- secciones ---------- */
 .section{
    padding:5.5rem 0;
    position:relative;
    overflow:hidden;
}
 .section-head{
    max-width:640px;
    margin:0 auto 3rem;
}
 .section-head.left{
    margin-left:0;
    text-align:left;
}
 .section-title{
    font-size:clamp(2rem,3.6vw,2.9rem);
    margin-bottom:.6rem;
}
 .section-title em{
    background:var(--grad);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
}
 .section-sub{
    font-size:1.05rem;
}
 .dot-grid{
    position:absolute;
    width:200px;
    height:200px;
    background:var(--dots);
    background-size:18px 18px;
    opacity:.7;
    top:40px;
    left:-40px;
    z-index:0;
}
 .dot-grid.right{
    left:auto;
    right:-40px;
    top:60px;
}
/* ---------- ABOUT (collage) ---------- */
 .about{
    background:var(--white);
}
 .about>.container{
    position:relative;
    z-index:1;
}
 .about-collage{
    position:relative;
    padding:0 0 2.2rem 0;
}
 .collage-block{
    position:absolute;
    top:-22px;
    left:-22px;
    width:62%;
    height:78%;
    background:var(--plum-50);
    border-radius:var(--radius-lg);
    z-index:0;
}
 .video-card{
    position:relative;
    z-index:1;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow);
    width:88%;
}
 .video-thumb{
    width:100%;
    height:100%;
    object-fit:cover;
    aspect-ratio:16/11;
}
 .video-play{
    position:absolute;
    inset:0;
    margin:auto;
    width:84px;
    height:84px;
    border-radius:50%;
    border:none;
    background:#fff;
    color:var(--plum);
    font-size:1.5rem;
    box-shadow:var(--shadow-sm);
    cursor:pointer;
    transition:transform .25s,background .25s,color .25s;
}
 .video-play:hover{
    transform:scale(1.08);
    background:var(--plum);
    color:#fff;
}
 .collage-mini{
    position:absolute;
    right:0;
    bottom:0;
    z-index:2;
    width:42%;
    border-radius:var(--radius-md);
    overflow:hidden;
    border:6px solid #fff;
    box-shadow:var(--shadow);
    margin:0;
}
 .collage-mini img{
    width:100%;
    height:100%;
    object-fit:cover;
    aspect-ratio:4/3;
}
 .collage-mini2{
    position:absolute;
    right:0;
    bottom:0;
    z-index:2;
    width:42%;
    border-radius:var(--radius-md);
    overflow:hidden;
    drop-shadow:var(--shadow);
    margin:0;
}
 .collage-mini2 img{
    width:100%;
    height:100%;
    object-fit:cover;
    
}
 .collage-stat{
    position:absolute;
    left:6%;
    bottom:14%;
    z-index:3;
    background:var(--grad);
    color:#fff;
    border-radius:16px;
    padding:.7rem 1rem;
    box-shadow:var(--shadow-sm);
    text-align:center;
}
 .collage-stat strong{
    display:block;
    font-family:var(--font-display);
    font-size:1.5rem;
    line-height:1;
}
 .collage-stat small{
    font-size:.68rem;
    opacity:.9;
}
 .about p{
    font-size:1.08rem;
    margin-bottom:1rem;
}
/* ---------- PROCESO (zig-zag) ---------- */
 .proceso{
    background:linear-gradient(180deg,var(--cream),var(--blue-50));
}
 .step-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3rem;
    align-items:center;
    margin-bottom:3.5rem;
}
 .step-row:last-child{
    margin-bottom:0;
}
 .step-row.reverse .step-media{
    order:2;
}
 .step-media{
    position:relative;
}
 .step-media figure{
    margin:0;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow);
    aspect-ratio:5/4;
}
 .step-media img{
    width:100%;
    height:100%;
    object-fit:cover;
}
 .step-num{
    position:absolute;
    top:-18px;
    left:-18px;
    width:64px;
    height:64px;
    border-radius:50%;
    background:var(--blue);
    color:#fff;
    font-family:var(--font-display);
    font-size:1.5rem;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:var(--shadow-sm);
}
 .step-num.plum{
    background:var(--plum);
}
 .step-text h3{
    font-size:1.7rem;
    margin:.3rem 0 .7rem;
}
 .step-text p{
    font-size:1.05rem;
}
/* ---------- PAQUETES (columna, tarjetas horizontales) ---------- */
.packages{
    background:var(--plum-50);
}
.pkg-tex{
    position:absolute;
    inset:0;
    background:var(--dots);
    background-size:22px 22px;
    opacity:.5;
    z-index:0;
}
.packages>.container{
    position:relative;
    z-index:1;
}
.pkg-grid{
    display:flex;
    flex-direction:column;
    gap:1.5rem;
}
.package-card{
    display:flex;
    align-items:stretch;   /* antes: center — ahora la imagen se estira al alto */
    gap:1.25rem;
    background:#fff;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow-sm);
    transition:transform .3s,box-shadow .3s;
}
.package-card.featured{
    outline:2px solid var(--plum);
}
.package-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow);
}
.package-img{
    position:relative;
    flex:0 0 140px;
    width:140px;           /* ancho fijo, sin aspect-ratio */
    overflow:hidden;
}
.package-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.package-tag{
    position:absolute;
    top:14px;
    left:14px;
    background:var(--butter);
    color:var(--ink);
    font-size:.75rem;
    font-weight:700;
    letter-spacing:.04em;
    padding:.35rem .8rem;
    border-radius:999px;
}
.package-card.featured .package-tag{
    background:var(--plum);
    color:#fff;
}
.package-body{
    flex:1;
    min-width:0;
    padding:1.4rem 1.6rem 1.4rem 0;
}
.package-body h3{
    font-size:1.3rem;
    margin-bottom:.5rem;
}
.package-body p{
    font-size:.95rem;
    margin-bottom:1.2rem;
}

@media (max-width:575.98px){
    .package-img{
        flex-basis:110px;
        width:110px;
    }
    .package-body{
        padding:1.1rem 1.2rem 1.1rem 0;
    }
}
/* ---------- TRATAMIENTOS (carrusel) ---------- */
 .treatments{
    background:var(--white);
}
 .treatments-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:1.5rem;
    margin-bottom:2.5rem;
    flex-wrap:wrap;
}
 .treatments-head .section-title{
    margin:0;
}
 .treatments-nav{
    display:flex;
    gap:.8rem;
}
 .treatments-nav button{
    width:52px;
    height:52px;
    border-radius:50%;
    border:1.5px solid var(--plum);
    background:transparent;
    color:var(--plum);
    font-size:1.05rem;
    cursor:pointer;
    transition:background .25s,color .25s,transform .25s;
}
 .treatments-nav button:hover{
    background:var(--plum);
    color:#fff;
    transform:translateY(-2px);
}
 .treatments-nav button.swiper-button-disabled{
    opacity:.35;
    cursor:default;
}
 .treatmentSwiper{
    padding:.5rem 0 1rem;
}
 .treat-card{
    margin:0;
    border-radius:var(--radius-md);
    overflow:hidden;
    background:var(--blue-50);
    box-shadow:var(--shadow-sm);
    aspect-ratio:3/4;
}
 .treat-card img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .4s;
}
 .treat-card:hover img{
    transform:scale(1.05);
}
/* ---------- CTA banner (fondo imagen) ---------- */
 .cta-banner{
    position:relative;
    padding:6rem 0;
    color:#fff;
    overflow:hidden;
}
 .cta-bg{
    position:absolute;
    inset:0;
    background:url("images/cta.jpg") center/cover;
}
 .cta-bg::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(120deg,rgba(93,111,174,.92),rgba(129,73,139,.92));
}
 .cta-banner .container{
    position:relative;
    z-index:1;
}
 .cta-inner{
    text-align:center;
    max-width:680px;
    margin:0 auto;
}
 .cta-inner h2{
    color:#fff;
    font-size:clamp(1.9rem,3.6vw,2.9rem);
}
 .cta-inner h2 em{
    color:var(--butter);
    -webkit-text-fill-color:var(--butter);
}
 .cta-inner p{
    color:rgba(255,255,255,.88);
    margin:.8rem auto 1.6rem;
    max-width:36rem;
}
/* ---------- TESTIMONIOS ---------- */
 .testimonials{
    background:var(--blue-50);
}
 .testimonials>.container{
    position:relative;
    z-index:1;
}
 .testi-feature{
    background:#fff;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow-sm);
    height:100%;
    display:flex;
    flex-direction:column;
}
 .testi-feature-img{
    margin:0;
    aspect-ratio:4/3;
    overflow:hidden;
}
 .testi-feature-img img{
    width:100%;
    height:100%;
    object-fit:cover;
}
 .testi-feature-body{
    padding:1.8rem;
}
 .testi-feature-body .section-title{
    font-size:1.9rem;
}
 .testimonialSwiper{
    padding-bottom:3.2rem;
    height:100%;
}
 .testimonial-card{
    background:#fff;
    border-radius:var(--radius-md);
    padding:2rem 1.8rem;
    box-shadow:var(--shadow-sm);
    height:auto;
}
 .quote-mark{
    color:var(--plum);
    font-size:1.6rem;
    margin-bottom:.8rem;
}
 .testimonial-card p{
    color:var(--ink);
    font-size:1.02rem;
    margin-bottom:1.4rem;
}
 .testimonial-author{
    display:flex;
    align-items:center;
    gap:.8rem;
}
 .testimonial-author img{
    width:52px;
    height:52px;
    border-radius:50%;
    object-fit:cover;
}
 .testimonial-author strong{
    display:block;
    font-family:var(--font-display);
}
 .stars{
    color:var(--butter);
    font-size:.8rem;
}
 .swiper-pagination-bullet{
    background:var(--plum);
    opacity:.3;
}
 .swiper-pagination-bullet-active{
    opacity:1;
}
/* ---------- POR QUÉ CONFIAR ---------- */
 .trust{
    background:var(--white);
}
 .trust-img{
    position:relative;
    margin:0;
    border-radius:var(--radius-lg);
    overflow:hidden;
  
   
}
 .trust-img img{
    width:100%;
    height:100%;
    object-fit:cover;
}
 .trust-float{
    position:absolute;
    left:18px;
    bottom:18px;
    background:rgba(255,255,255,.95);
    color:var(--plum-700);
    font-weight:600;
    font-size:.9rem;
    padding:.5rem .9rem;
    border-radius:999px;
    box-shadow:var(--shadow-sm);
}
 .trust-float i{
    color:var(--plum);
    margin-right:.35rem;
}
 .reasons{
    list-style:none;
    padding:0;
    margin:1.5rem 0 0;
}
 .reasons li{
    display:flex;
    gap:1rem;
    align-items:flex-start;
    padding:1rem 0;
    border-bottom:1px solid rgba(129,73,139,.12);
}
 .reasons li:last-child{
    border-bottom:none;
}
 .reason-ic{
    flex:0 0 52px;
    width:52px;
    height:52px;
    border-radius:16px;
    background:var(--blue);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.2rem;
}
 .reason-ic.plum{
    background:var(--plum);
}
 .reasons h3{
    font-size:1.2rem;
    margin:0 0 .2rem;
}
 .reasons p{
    font-size:.95rem;
    margin:0;
}
/* ---------- CONTACTO ---------- */
 .contact{
    background:var(--plum-50);
}
 .contact-tex{
    position:absolute;
    inset:0;
    background:var(--noise);
    opacity:.04;
    z-index:0;
}
 .contact>.container{
    position:relative;
    z-index:1;
}
 .contact-info{
    list-style:none;
    padding:0;
    margin:1.5rem 0;
}
 .contact-info li{
    display:flex;
    align-items:center;
    gap:.7rem;
    margin-bottom:.7rem;
    color:var(--plum-700);
    font-weight:500;
}
 .contact-info i{
    color:var(--plum);
    width:20px;
}
 .contact-info a{
    color:var(--plum-700);
}
 .contact-info a:hover{
    color:var(--plum);
}
 .map-wrap{
    border-radius:var(--radius-md);
    overflow:hidden;
    box-shadow:var(--shadow-sm);
}
 .contact-form{
    background:#fff;
    border-radius:var(--radius-lg);
    padding:2.2rem;
    box-shadow:var(--shadow-sm);
}
 .contact-form label{
    font-size:.85rem;
    font-weight:600;
    color:var(--plum-700);
    margin-bottom:.35rem;
    display:block;
}
 .contact-form input,.contact-form select,.contact-form textarea{
    width:100%;
    border:1.5px solid rgba(129,73,139,.22);
    border-radius:var(--radius-sm);
    padding:.75rem 1rem;
    font-family:var(--font-body);
    font-size:.95rem;
    color:var(--ink);
    background:var(--cream);
    transition:border-color .2s,box-shadow .2s;
}
 .contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
    outline:none;
    border-color:var(--plum);
    box-shadow:0 0 0 3px rgba(129,73,139,.15);
}
 .form-note{
    font-size:.8rem;
    color:var(--muted);
    text-align:center;
    margin:.8rem 0 0;
}
/* ---------- FOOTER ---------- */
 .site-footer{
    background:var(--ink);
    color:rgba(255,255,255,.7);
    padding:3.5rem 0 1.5rem;
}
 .footer-logo{
    height:38px;
    background:#fff;
    padding:.4rem .6rem;
    border-radius:10px;
    margin-bottom:1rem;
}
 .site-footer p{
    color:rgba(255,255,255,.6);
    font-size:.92rem;
    max-width:24rem;
}
 .site-footer h4{
    color:#fff;
    font-size:1rem;
    margin-bottom:1rem;
}
 .site-footer ul{
    list-style:none;
    padding:0;
    margin:0;
}
 .site-footer ul li{
    margin-bottom:.6rem;
    font-size:.92rem;
    color:rgba(255,255,255,.6);
}
 .site-footer ul li a{
    color:rgba(255,255,255,.7);
}
 .site-footer ul li a:hover{
    color:var(--butter);
}
 .socials{
    display:flex;
    gap:.6rem;
}
 .socials a{
    width:38px;
    height:38px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    transition:background .25s,transform .25s;
}
 .socials a:hover{
    background:var(--plum);
    transform:translateY(-2px);
}
 .footer-bottom{
    border-top:1px solid rgba(255,255,255,.1);
    margin-top:2.5rem;
    padding-top:1.5rem;
    display:flex;
    flex-wrap:wrap;
    gap:.6rem;
    justify-content:space-between;
    font-size:.85rem;
}
 .footer-bottom a{
    color:rgba(255,255,255,.7);
}
 .footer-bottom a:hover{
    color:var(--butter);
}
/* whatsapp float */
 .whatsapp-float{
    position:fixed;
    bottom:22px;
    right:22px;
    z-index:1040;
    width:58px;
    height:58px;
    border-radius:50%;
    background:#25D366;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.7rem;
    box-shadow:0 14px 30px -8px rgba(37,211,102,.6);
    transition:transform .25s;
}
 .whatsapp-float:hover{
    transform:scale(1.08);
    color:#fff;
}

/* modal */
.video-modal{
    background:#000;
    border:none;
    border-radius:var(--radius-md);
    overflow:hidden;
    position:relative;
}
.video-modal video{
    display:block;
    width:auto;
    height:auto;
    max-width:100%;     /* nunca más ancho que el diálogo */
    max-height:85vh;    /* nunca más alto que el 85% de la pantalla */
    margin:0 auto;      /* centra el video si es más angosto que el diálogo */
}
.btn-close-video{
    position:absolute;
    top:10px;
    right:10px;
    z-index:5;
    width:40px;
    height:40px;
    border-radius:50%;
    border:none;
    background:rgba(255,255,255,.9);
    color:var(--ink);
    font-size:1.1rem;
    cursor:pointer;
}

@media (max-width:575.98px){
    .video-modal video{
        max-height:78vh;  /* un poco más de aire en móvil */
    }
}

/* reveal */
 .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .7s,transform .7s;
}
 .reveal.is-visible{
    opacity:1;
    transform:none;
}
/* responsive */
 @media (max-width:991px){
     .navbar-collapse{
        padding-top:1rem;
    }
    .navbar-nav{
        gap:.2rem;
    }
     .btn-brand{
        margin-top:.5rem;
        display:inline-flex;
        width:fit-content;
    }
     .hero{
        padding-top:2.5rem;
    }
    .hero-copy{
        padding-bottom:1.5rem;
    }
     .hero-photo{
        height:clamp(380px,80vw,480px);
        border-radius:var(--radius-lg);
    }
     .hero-mini{
        display:none;
    }
     .step-row{
        grid-template-columns:1fr;
        gap:1.5rem;
        margin-bottom:2.5rem;
    }
     .step-row.reverse .step-media{
        order:0;
    }
   
     .package-card.featured{
        margin-top:0;
    }
     .about-collage{
        margin-bottom:1rem;
    }
}
 @media (max-width:575px){
     .section{
        padding:4rem 0;
    }
     .hero-actions .btn{
        width:100%;
        justify-content:center;
    }
     .footer-bottom{
        justify-content:center;
        text-align:center;
    }
     .collage-mini{
        position:static;
        width:100%;
        margin-top:1rem;
        border:none;
    }
     .video-card{
        width:100%;
    }
     .treatments-head{
        flex-direction:column;
        align-items:flex-start;
    }
}
/* a11y */
 :focus-visible{
    outline:3px solid var(--plum);
    outline-offset:2px;
}
 @media (prefers-reduced-motion:reduce){
     .marquee-track{
        animation:none;
    }
     .reveal{
        opacity:1;
        transform:none;
        transition:none;
    }
     *{
        scroll-behavior:auto !important;
    }
}
 html{
    scroll-behavior:smooth;
}
 

 /* ---------- SERVICIOS (chips) ---------- */
.svc{position:relative;overflow:hidden;padding:5rem 0;background:linear-gradient(120deg,#81498B 0%,#5D6FAE 130%);}
.svc-tex{position:absolute;inset:0;background:radial-gradient(rgba(255,255,255,.14) 1.6px,transparent 1.6px);background-size:20px 20px;opacity:.55;}
.svc .container{position:relative;z-index:1;}
.svc-head{text-align:center;margin-bottom:2.5rem;}
.svc-eyebrow{display:inline-block;font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:#F4D58A;margin-bottom:.7rem;}
.svc-title{font-family:"Fraunces",Georgia,serif;font-weight:500;font-size:clamp(1.8rem,3.4vw,2.6rem);color:#fff;margin:0;letter-spacing:-.01em;}
.svc-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;}
.svc-chip{display:inline-flex;align-items:center;gap:.7rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(6px);color:#fff;font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-weight:600;font-size:1rem;padding:.7rem 1.3rem;border-radius:999px;transition:transform .25s,background .25s;}
.svc-chip:hover{transform:translateY(-3px);background:rgba(255,255,255,.2);}
.svc-chip i{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#fff;color:#81498B;font-size:.95rem;}
@media (max-width:575px){.svc-chip{width:100%;justify-content:flex-start;}}

/* ---------- ZONAS DE APLICACIÓN ---------- */
.zones{background:var(--plum-50);}
.zones-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;}
.zones-grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));max-width:760px;margin:0 auto;}
.zone-card{background:#fff;border-radius:var(--radius-lg);padding:2rem 1.7rem;box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s;}
.zone-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.zone-ic{width:56px;height:56px;border-radius:16px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;margin-bottom:1.1rem;}
.zone-ic.plum{background:var(--plum);}
.zone-card h3{font-size:1.15rem;margin-bottom:.5rem;}
.zone-card p{font-size:.95rem;color:var(--muted);margin:0;}

/* ---------- HUB: NOTA BAJO SUBTÍTULO ---------- */
.svc-hub-note{font-size:.95rem;color:var(--muted);margin-top:-.5rem;}

/* ---------- HUB: CARRUSEL DE SERVICIOS ---------- */
.servicesSwiper{padding:.4rem .2rem 1.2rem;}
.service-card{
    background:#fff;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow-sm);
    transition:transform .3s,box-shadow .3s;
    display:flex;
    flex-direction:column;
    height:100%;
}
.service-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow);
}
.service-img{
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
}
.service-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.service-tag{
    position:absolute;
    top:14px;
    left:14px;
    background:var(--butter);
    color:var(--ink);
    font-size:.75rem;
    font-weight:700;
    letter-spacing:.04em;
    padding:.35rem .8rem;
    border-radius:999px;
}
.service-body{
    padding:1.4rem 1.5rem 1.6rem;
    display:flex;
    flex-direction:column;
    flex:1;
}
.service-body h3{
    font-size:1.2rem;
    margin-bottom:.5rem;
}
.service-body p{
    font-size:.95rem;
    margin-bottom:1.2rem;
    flex:1;
}

