/* ===========================
   Base & Variables
=========================== */
:root{
  --azul:#0D3D65;
  --azul-claro:#AECAE8;
  --rosa:#A87482;
  --rosa-claro:#E5C5C1;
  --gris-fondo:#EBEDF0;
  --texto:#092E4C;
  --blanco:#fff;
  --sombra:0 4px 12px rgba(0,0,0,.08);
}

*,
*::before,
*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }
html, body{ width:100%; overflow-x:clip; background:#fff; -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent; }

body{
  font-family:'Inter', sans-serif;
  color:var(--texto);
  line-height:1.6;
  background:var(--blanco);
}

img, video, svg{ max-width:100%; height:auto; display:block; }
h1,h2,h3{
  font-family:'Playfair Display', serif;
  color:var(--azul);
  margin-bottom:1rem;
}
h1{ font-size:3rem; line-height:1.2; }
h2{ font-size:2.25rem; line-height:1.3; }
h3{ font-size:1.5rem; line-height:1.4; }

.container,.contenedor{ max-width:1200px; margin:0 auto; padding:0 20px; }

a:focus, button:focus{
  outline:3px solid var(--azul-claro);
  outline-offset:2px;
  border-radius:6px;
}

/* ===========================
   Navbar
=========================== */
.main-navbar{
  position:sticky; top:0; z-index:1000;
  background:var(--azul);
  display:flex; align-items:center; justify-content:space-between;
  height:80px; padding:0 30px;
}
.logo-container img{ max-height:60px; }

.menu-links{ display:flex; gap:30px; }
.menu-links a{
  color:#fff; font-weight:600; text-decoration:none; transition:color .25s;
}
.menu-links a:hover{ color:var(--rosa-claro); }

.menu-toggle{ display:none; background:none; border:0; color:#fff; font-size:28px; cursor:pointer; }

/* ===========================
   Hero
=========================== */
.hero{
  position:relative; height:100vh;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.hero-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
  transform:translateZ(0); backface-visibility:hidden;
}
.hero-overlay{
  position:absolute; inset:0; background:rgba(235,237,240,.7); z-index:1;
  transform:translateZ(0); backface-visibility:hidden;
}
.hero-content{ position:relative; z-index:2; text-align:center; color:#fff; padding:0 20px; }
.hero-title{
  font-size:3rem; font-weight:700; text-shadow:0 2px 6px rgba(0,0,0,.6); margin-bottom:16px;
}
.hero-subtitle{
  font-size:1.25rem; text-shadow:0 2px 6px rgba(0,0,0,.6); margin-bottom:32px;
}
.hero-btn{
  display:inline-block; padding:14px 28px; border-radius:50px;
  background:var(--rosa); color:#fff; font-weight:600; text-decoration:none; transition:background .25s, transform .15s;
}
.hero-btn:hover{ background:var(--azul-claro); color:var(--azul); transform:translateY(-1px); }

/* ===========================
   Separador
=========================== */
.separator{
  width:80%; height:2px; background:var(--azul-claro); margin:60px auto;
}

/* ===========================
   SOBRE MÍ — Vista sin scroll + foto sin recorte
=========================== */

.sobre-mi{
  --navH: 80px;
  --sobreH: clamp(520px, 82svh, 860px);
  background: var(--gris-fondo);
  padding: 48px 0;
  overflow: hidden;
}
.sobre-mi .container{
  width: 100%;
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  height: var(--sobreH);
  display: flex;
  flex-direction: column;
}
.sobre-mi .titulo-seccion{ margin: 0 0 10px; flex: 0 0 auto; }
.sobre-mi-contenido{
  flex: 1 1 auto;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(420px, 46%) 1fr;
  align-items: center;
  column-gap: clamp(16px, 3vw, 32px);
}
.sobre-mi .imagen{
  height: 100%; display:flex; align-items:flex-start; justify-content:center; overflow:hidden;
}
.sobre-mi .imagen img{
  width:100%; height:100%; max-width:100%; max-height:100%;
  object-fit:contain; object-position:center top; display:block;
}
.sobre-mi .texto{
  height:100%; max-height:100%; display:flex; flex-direction:column; gap:10px;
  overflow:auto; -webkit-overflow-scrolling:touch; padding-right:6px;
}
.sobre-mi .texto p{ margin:0; line-height:1.6; }
.sobre-mi .sobre-mi-pills{ margin:2px 0 6px; }
.sobre-mi .sobre-mi-stats{ margin:4px 0 6px; }

@media (max-width: 980px){
  .sobre-mi{ padding:28px 0; }
  .sobre-mi .container{ height:auto; }
  .sobre-mi-contenido{ grid-template-columns:1fr; row-gap:14px; height:auto; }
  .sobre-mi .imagen{ height:auto; justify-content:center; }
  .sobre-mi .imagen img{ width:100%; height:auto; object-position:center top; }
  .sobre-mi .texto{ max-height:none; overflow:visible; padding-right:0; }
}

/* ===========================
   Servicios (principal)
=========================== */
.servicios-hibrida{ padding:80px 0; }
.servicios-hibrida .titulo-seccion{ text-align:center; margin-bottom:24px; }
.servicios-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:2rem;
}
.card-servicio{
  position:relative; background:#fff; padding:24px 16px; border-radius:16px;
  box-shadow:var(--sombra); text-align:center; display:flex; flex-direction:column; align-items:center;
}
.card-servicio img{
  display:block; margin:0 auto 16px;
  width:clamp(72px,18vw,110px); height:95px; object-fit:contain;
}
.card-servicio h3{ margin:12px 0 8px; font-size:1.5rem; }
.precio-servicio{ color:var(--rosa); font-weight:600; margin-bottom:8px; }
.card-servicio p{ font-size:.95rem; line-height:1.5; margin-bottom:16px; }
.badge-popular{
  position:absolute; top:12px; right:12px; background:var(--rosa); color:#fff;
  padding:4px 8px; border-radius:12px; font-size:.75rem; font-weight:700;
}
.cta-ver-todos{ text-align:center; margin-top:28px; }
.btn-secundario{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 24px; border-radius:999px;
  background:var(--gris-fondo); color:var(--azul);
  font-weight:700; text-decoration:none; border:2px solid var(--azul-claro);
  transition:transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn-secundario:hover{ background:var(--azul-claro); color:var(--azul); border-color:var(--azul); transform:translateY(-1px); }


/* ===========================
   Casos — Swiper (fix ancho + blur correcto)
=========================== */

.casos-section{
  padding:64px 0;
  background:var(--gris-fondo);
  text-align:center;
}
.casos-section .titulo-seccion{
  font-family:'Playfair Display',serif;
  font-size:2.2rem; margin-bottom:.35rem; color:var(--azul);
}
.casos-section .subtitulo{
  font-family:'Inter',sans-serif; color:var(--texto);
  opacity:.75; font-size:1rem; margin-bottom:1.25rem;
}

.casos-fullbleed{ width:100%; }

/* Contenedor Swiper */
.casos-swiper{
  width:100%;
  max-width:980px;
  margin:0 auto;
  position:relative;
  padding:8px 0 40px;
  overflow:visible;              /* deja ver laterales */
  --card-max:700px;
  --card-radius:22px;
}

/* Swiper ya define display:flex en el wrapper; no lo fuerces con !important */
.casos-swiper .swiper-wrapper{ display:flex; }

/* ¡NO definas width aquí! Deja que Swiper calcule (inline) */
.casos-swiper .swiper-slide{
  /* width: (nada) */
  flex-shrink:0;
  height:auto;
  display:flex; align-items:center; justify-content:center;
  transition:transform .4s ease, opacity .4s ease, filter .4s ease;
}

/* Tarjeta/imagen */
.casos-swiper .swiper-slide picture{
  display:block; width:100%; max-width:var(--card-max);
  margin:0 auto; border-radius:var(--card-radius); overflow:hidden;
  background:transparent; box-shadow:0 10px 28px rgba(0,0,0,.12);
}
.casos-swiper .swiper-slide img{
  width:100%; height:auto; max-height:68vh;
  object-fit:contain; border-radius:var(--card-radius);
  aspect-ratio:auto;
}

/* Blur correcto SOLO cuando Swiper está inicializado (para evitar “todo borroso”) */
.casos-swiper .swiper-slide{ opacity:1; filter:none; transform:scale(1); }

.casos-swiper.swiper-initialized
.swiper-slide:not(.swiper-slide-active):not(.swiper-slide-prev):not(.swiper-slide-next)
:not(.swiper-slide-duplicate-active):not(.swiper-slide-duplicate-prev):not(.swiper-slide-duplicate-next){
  opacity:.35; filter:blur(6px); transform:scale(.92);
}
.casos-swiper.swiper-initialized
.swiper-slide-prev,
.casos-swiper.swiper-initialized
.swiper-slide-next,
.casos-swiper.swiper-initialized
.swiper-slide-duplicate-prev,
.casos-swiper.swiper-initialized
.swiper-slide-duplicate-next{
  opacity:.55; filter:blur(4px); transform:scale(.95);
}
.casos-swiper.swiper-initialized
.swiper-slide-active,
.casos-swiper.swiper-initialized
.swiper-slide-duplicate-active{
  opacity:1 !important; filter:none !important; transform:scale(1) !important;
}

/* Flechas / bullets (opcional) */
.casos-swiper .swiper-button-prev,
.casos-swiper .swiper-button-next{
  width:44px; height:44px; border-radius:999px; background:#fff;
  box-shadow:0 6px 16px rgba(0,0,0,.12); color:var(--azul);
}
.casos-swiper .swiper-button-prev::after,
.casos-swiper .swiper-button-next::after{ font-size:18px; font-weight:700; }
.casos-swiper .swiper-pagination-bullet{
  width:8px; height:8px; background:#8aa8c3; opacity:.6; margin:0 6px !important;
}
.casos-swiper .swiper-pagination-bullet-active{
  background:var(--azul); opacity:1; transform:scale(1.25);
}

@media (max-width:1024px){ .casos-swiper{ --card-max:640px; } }
@media (max-width:768px){  .casos-swiper{ --card-max:560px; } }
@media (max-width:480px){
  .casos-swiper{ --card-max:88vw; }
  .casos-swiper .swiper-button-prev,
  .casos-swiper .swiper-button-next{ display:none; }
}

/* ===========================
   Testimonios
=========================== */
.gleamery-testimonios{
  background:var(--rosa); width:100%;
  margin:48px auto 0; padding:40px;
}
.gleamery-border{
  border:3px solid #fff; border-radius:36px; margin:0 6px; padding:42px 88px;
  background:transparent; display:flex; flex-direction:column; justify-content:center; overflow:visible!important;
}
.gleamery-inner{
  display:flex; align-items:stretch; justify-content:space-between; min-height:300px; position:relative; background:transparent;
}
.gleamery-left{
  position:relative; width:170px; max-width:180px; display:flex; align-items:center; justify-content:flex-start; overflow:visible; z-index:2;
}
.gleamery-doodle{
  width:500px; max-width:320px; height:auto; position:absolute; left:-200px; top:150px; transform:translateY(-50%); z-index:3; pointer-events:none;
}
.gleamery-title{
  margin-left:120px; color:#fff; font-size:3.2rem; font-family:'Playfair Display', serif; font-weight:400; letter-spacing:1.2px; line-height:1.05; max-width:240px; text-align:center; z-index:2;
}
.gleamery-right{
  flex:1; display:flex; flex-direction:column; align-items:flex-end; padding:24px 8px 32px 198px; position:relative; z-index:2; text-align:right; margin-left:100px;
}
.gleamery-carrusel{
  width:100%; min-height:155px; max-height:180px; display:flex; align-items:center; justify-content:flex-end; margin-bottom:48px;
}
.testimonial-card{
  width:100%; max-width:480px; min-height:130px; background:transparent; border-radius:24px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:justify; padding:24px 4px 14px; margin:0 auto; color:#fff; overflow:hidden;
  box-shadow:none;
}
.gleamery-stars{ font-size:1.25rem; margin-bottom:10px; letter-spacing:2px; }
.testimonial-title{ font-size:1.21rem; font-weight:700; letter-spacing:1.1px; margin:0 0 8px; text-transform:uppercase; }
.testimonial-text{
  font-size:1.12rem; margin-bottom:14px; line-height:1.45; max-height:6.5em; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; color:#fff;
}
.testimonial-author{ font-size:1.04rem; font-weight:600; margin-top:8px; }
.gleamery-link{ color:#fff!important; text-decoration:underline!important; font-size:1em; margin-top:22px; display:block; text-align:right; }

/* ===========================
   FAQ
=========================== */
.faq-section{ background:var(--gris-fondo); padding:60px 20px; }
.faq-title{ text-align:center; font-size:32px; margin-bottom:40px; }
.faq-container{ max-width:800px; margin:0 auto; }
.faq-item{ border-top:1px solid var(--azul-claro); }
.faq-question{
  width:100%; padding:18px; font-size:18px; background:none; border:none; text-align:left; color:var(--azul); cursor:pointer; position:relative; transition:all .25s;
}
.faq-question::after{ content:"+"; position:absolute; right:20px; font-size:24px; transition:transform .25s; }
.faq-question.active::after{ transform:rotate(45deg); }
.faq-answer{ display:none; padding:0 18px 20px; font-size:16px; color:var(--azul); }

/* ===========================
   Mini Blog
=========================== */
.blog-container {
  max-width: 1200px;
  margin: 40px auto;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 32px;
}

/* ARTÍCULO DESTACADO */
.blog-featured {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.blog-featured img {
  width: 100%;
  height: 280px;
  object-fit: cover;
}
.blog-featured .content {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.blog-featured .categoria {
  color: #A87482;
  font-size: 0.75rem;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.blog-featured h3 {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  color: #092E4C;
  margin-bottom: 12px;
}
.blog-featured p {
  font-size: 0.95rem;
  color: #333;
  flex-grow: 1;
  line-height: 1.5;
}
.blog-featured a {
  margin-top: 16px;
  color: #A87482;
  font-weight: 600;
  text-decoration: none;
}

/* GRID SECUNDARIOS */
.blog-grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.blog-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.blog-card img {
  width: 100%;
  height: 150px;
  object-fit: cover;
}
.blog-card .content {
  padding: 16px;
}
.blog-card .categoria {
  color: #A87482;
  font-size: 0.75rem;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.blog-card h4 {
  font-family: 'Playfair Display', serif;
  font-size: 1.1rem;
  color: #092E4C;
  margin-bottom: 10px;
}
.blog-card a {
  color: #A87482;
  font-weight: 600;
  text-decoration: none;
  font-size: 0.9rem;
}

/* BOTÓN VER MÁS */
.ver-mas {
  text-align: center;
  margin-top: 40px;
}
.ver-mas a {
  display: inline-block;
  background: #092E4C;
  color: #fff;
  padding: 12px 28px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  transition: background 0.3s;
}
.ver-mas a:hover {
  background: #0d3f66;
}

/* RESPONSIVE MINIBLOG */
@media (max-width: 900px) {
  .blog-container { grid-template-columns: 1fr; }
  .blog-featured img { height: 220px; }
} /* ← CERRADO correctamente */

/* ===========================
   Contacto (corregido y fuera de media)
=========================== */
#contacto {
  background-color: var(--gris-fondo) !important; /* gris claro */
  padding: 80px 20px;
}
#contacto .container {
  max-width: 1100px;
  margin: 0 auto;
}


/* ===========================
   Tratamientos (lista completa)
=========================== */
.tratamientos-secundarios{ background:var(--blanco); padding:80px 0; text-align:center; }
.tratamientos-secundarios .titulo-seccion{ font-size:2.5rem; margin-bottom:40px; }
.tratamientos-secundarios .servicios-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:2rem;
}
.tratamientos-secundarios .card-servicio{
  background:#fff; border-radius:16px; box-shadow:var(--sombra);
  padding:24px 16px; display:flex; flex-direction:column; align-items:center; text-align:center;
}
.tratamientos-secundarios .card-servicio .img-servicio,
.tratamientos-secundarios .card-servicio svg{
  display:block; margin-inline:auto; width:80px; height:80px; object-fit:contain; margin-bottom:16px;
}
.tratamientos-secundarios .card-servicio h3{ font-size:1.5rem; margin:12px 0 8px; }
.tratamientos-secundarios .precio-servicio{ font-size:.95rem; color:var(--rosa); font-weight:700; margin-bottom:8px; }
.tratamientos-secundarios .card-servicio p{ font-size:.95rem; color:#333; line-height:1.5; }
.tratamientos-secundarios .btn-primario{ margin-top:16px; padding:10px 24px; }
.tratamientos-secundarios .cta-volver{ margin-top:40px; }
.tratamientos-secundarios .cta-volver .btn-secundario{ padding:12px 32px; }

/* “Aceptamos tarjeta” centrado */
#aceptamos-tarjeta{
  display:flex; align-items:center; justify-content:center; gap:12px; text-align:center; padding:12px 16px; margin:0 auto 24px;
}
#aceptamos-tarjeta img, #aceptamos-tarjeta svg{
  display:block; width:28px; height:28px; object-fit:contain; margin:0;
}

/* ===========================
   Footer
=========================== */
.sigueme {
  background: var(--gris-fondo);
  padding: 60px 20px;
  text-align: center;
}

footer .social-follow{ width:100%; text-align:center; margin:60px 0 30px; }
footer .social-follow h3{ font-family:'Playfair Display', serif; color:var(--azul); margin-bottom:16px; }
footer .social-icons{ display:flex; justify-content:center; gap:20px; }
footer .social-icons img{ width:40px; height:40px; }


/* ===========================
   Botón flotante Google Calendar
=========================== */
#boton-cita-personalizado{
  position:fixed; bottom:90px; right:20px; z-index:1001;
  background-color:var(--rosa-claro); color:var(--azul);
  padding:14px 20px; border-radius:50px; box-shadow:0 4px 10px rgba(0,0,0,.15);
  font-weight:600; font-family:'Inter', sans-serif; cursor:pointer; display:flex; align-items:center; gap:10px; overflow:visible;
}
#gc-button-slot{ width:auto!important; height:auto!important; display:block; }

/* ===========================
   Responsive global
=========================== */
@media (max-width:1024px){
  .gleamery-title{ font-size:2.6rem; margin-left:90px; }
  .gleamery-right{ padding-left:160px; margin-left:60px; }
}
@media (max-width:900px){
  .menu-toggle{ display:block; }
  .menu-links{
    display:none; flex-direction:column; gap:16px;
    position:absolute; right:20px; top:80px; background:var(--azul);
    padding:16px; border-radius:12px; box-shadow:0 10px 24px rgba(0,0,0,.15);
  }
  .menu-links.open{ display:flex; }
}

/* Móvil general */
@media (max-width:768px){
  body{ font-size:.95rem; }
  .hero{ height:auto; min-height:60vh; padding:60px 0 40px; }
  .hero-title{ font-size:2.2rem; }
  .hero-subtitle{ font-size:1rem; }
  .separator{ display:none; }

  .servicios-hibrida{ padding:60px 0; }
  .card-servicio{ padding:20px 12px; }

  .gleamery-testimonios { padding: 48px 16px; }
  .gleamery-border { padding: 32px 20px; }
  .gleamery-inner { flex-direction: column; align-items: center; text-align: center; }
  .gleamery-left { width: 100%; justify-content: center; margin-bottom: 16px; }
  .gleamery-doodle { display:block !important; position:relative !important; width:104px !important; margin:0 auto 12px -50px !important; }
  .gleamery-title { font-size:1.8rem; margin:0 auto 24px auto; line-height:1.3; }
  .gleamery-right { width:100%; padding:0; margin:0; text-align:center; }
  .testimonial-card { padding:0; max-width:100%; }
  .testimonial-text { font-size:1.05rem; line-height:1.6; padding:0 12px; }
  .gleamery-link { font-size:0.9rem; margin-top:20px; }
}

/* ===========================
   BLOG HOME — Estilo revista premium
=========================== */
.blog-home {
  background: linear-gradient(180deg, var(--blanco) 0%, var(--gris-fondo) 100%);
  padding: 64px 20px;
  text-align: center;
}
.blog-home .titulo-seccion {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  margin-bottom: 6px;
  color: var(--azul);
}
.blog-home .subtitulo {
  color: var(--texto);
  opacity: 0.8;
  margin-bottom: 36px;
  font-size: 1rem;
}

/* GRID PRINCIPAL */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 28px;
  max-width: 1150px;
  margin: 0 auto;
}

/* TARJETA BLOG */
.blog-card {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,.08);
  transition: transform .25s ease, box-shadow .25s ease;
}
.blog-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.blog-card img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}

/* OVERLAY + TEXTO */
.blog-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(9,46,76,0.55), rgba(9,46,76,0.8));
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  color: #fff;
  text-align: left;
}
.blog-overlay .categoria {
  display: inline-block;
  background: rgba(255,255,255,0.9);
  color: var(--azul);
  font-size: 0.7rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 12px;
  margin-bottom: 10px;
  text-transform: uppercase;
}
.blog-overlay h3 {
  font-family: 'Playfair Display', serif;
  font-size: 1.25rem;
  margin: 0 0 8px;
  line-height: 1.35;
}
.blog-overlay a {
  color: #fff;
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
  margin-top: 6px;
  display: inline-block;
}
.blog-overlay a:hover {
  text-decoration: underline;
}

/* BOTÓN VER TODOS */
.blog-more {
  margin-top: 40px;
  text-align: center;
}
.blog-more a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--azul);
  color: #fff;
  padding: 14px 28px;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 600;
  transition: background 0.3s ease, transform .15s ease;
}
.blog-more a:hover {
  background: var(--rosa);
  transform: translateY(-2px);
}

/* RESPONSIVE */
@media (max-width: 768px) {
  .blog-home { padding: 48px 16px; }
  .blog-overlay { padding: 16px; }
  .blog-overlay h3 { font-size: 1.05rem; }
}


/* ===========================
   BOTÓN FLOTANTE — MOBILE TUNE
=========================== */
@media (max-width: 768px){
  #boton-cita-personalizado{
    bottom: max(14px, env(safe-area-inset-bottom));
    right: max(10px, env(safe-area-inset-right));
    padding: 10px 14px;
    border-radius: 999px;
    font-size: .95rem;
    box-shadow: 0 6px 14px rgba(0,0,0,.18);
  }
}

/* ===========================
   MINI BLOG (tarjetas)
=========================== */
@media (max-width: 768px){
  .blog-dalia{ padding: 40px 16px; }
  .blog-titulo{ font-size: clamp(1.4rem, 5vw, 1.8rem); margin-bottom: 18px; }
  .blog-entradas{ gap: 16px; }
  .blog-card{ max-width: 100%; padding: 16px; border-radius: 18px; }
  .blog-card h3, .blog-card-titulo{ font-size: 1.05rem; line-height: 1.35; margin-bottom: 8px; }
  .blog-card-extracto{ font-size: .95rem; line-height: 1.55; }
  .blog-card img{ width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; border-radius: 12px; margin-bottom: 12px; }
}

/* ===========================
   Modal calendario (solo desktop)
=========================== */
#cal-modal{position:fixed;inset:0;z-index:2000}
#cal-modal .cal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);backdrop-filter:saturate(120%) blur(1px)}
#cal-modal .cal-dialog{
  position:relative;margin:4vh auto;background:#fff;border-radius:16px;
  width:min(880px,92vw);height:min(88vh,820px);box-shadow:0 20px 60px rgba(0,0,0,.35);
  display:flex;flex-direction:column;overflow:hidden
}
#cal-modal .cal-close{
  position:absolute;top:10px;right:12px;border:0;background:#000;color:#fff;
  font-size:18px;line-height:1;border-radius:999px;padding:8px 12px;cursor:pointer;opacity:.9
}
#cal-modal iframe{border:0;width:100%;height:100%}
body.cal-modal-open{overflow:hidden}
@media (max-width:768px){ #cal-modal{display:none !important;} }

/* CASOS — elimina cualquier “tarjeta” gris de fondo */
.casos-swiper,
.casos-swiper .swiper-slide{
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* La imagen mantiene esquinas redondeadas sin marco alrededor */
.casos-swiper .swiper-slide picture{
  background: transparent !important;
  box-shadow: none;                 /* quita la sombra si no la quieres */
  border-radius: 0;                 /* 0 si no deseas bordes redondeados */
  max-width: 700px;
  width: 100%;
  margin: 0 auto;
}

.casos-swiper .swiper-slide img{
  width: 100%;
  height: auto;
  max-height: 68vh;
  object-fit: contain;
  border-radius: 0;                 /* que no se vea “tarjeta” */
}

/* Asegura laterales visibles y blur correcto */
.casos-swiper{ overflow: visible; }
.casos-swiper .swiper-wrapper{ display:flex; }
.casos-swiper .swiper-slide{ flex-shrink:0; }

/* Efecto: solo cuando está inicializado */
.casos-swiper .swiper-slide{ opacity:1; filter:none; transform:scale(1); }
.casos-swiper.swiper-initialized
.swiper-slide:not(.swiper-slide-active):not(.swiper-slide-prev):not(.swiper-slide-next)
:not(.swiper-slide-duplicate-active):not(.swiper-slide-duplicate-prev):not(.swiper-slide-duplicate-next){
  opacity:.35; filter:blur(6px); transform:scale(.92);
}
.casos-swiper.swiper-initialized
.swiper-slide-prev,
.casos-swiper.swiper-initialized
.swiper-slide-next,
.casos-swiper.swiper-initialized
.swiper-slide-duplicate-prev,
.casos-swiper.swiper-initialized
.swiper-slide-duplicate-next{
  opacity:.55; filter:blur(4px); transform:scale(.95);
}
.casos-swiper.swiper-initialized
.swiper-slide-active,
.casos-swiper.swiper-initialized
.swiper-slide-duplicate-active{
  opacity:1 !important; filter:none !important; transform:scale(1) !important;
}

/* ===========================
   Contacto (refuerzo por si hay otra .section)
=========================== */
section#contacto.section {
  background-color: var(--gris-fondo) !important;
}
/* Ajuste del popup flotante para no chocar con botón de cita */
#promo-float {
  position: fixed;
  bottom: 20px;
  left: 20px;   /* 👈 en vez de right */
  background: #fff;
  border: 2px solid #A87482;
  border-radius: 16px;
  padding: 16px 20px;
  width: 260px;
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
  font-family: 'Inter', sans-serif;
  z-index: 2000; /* más alto que el botón de cita */
  text-align: center;
}
#promo-float h4 {
  font-family: 'Playfair Display', serif;
  margin-bottom: 8px;
  color: #092E4C;
}
#promo-float .price-new {
  font-size: 1.4rem;
  font-weight: bold;
  color: #A87482;
}
#promo-float .promo-btn {
  display: inline-block;
  margin-top: 10px;
  background: #092E4C;
  color: #fff;
  padding: 8px 14px;
  border-radius: 30px;
  text-decoration: none;
  transition: background .3s ease;
}
#promo-float .promo-btn:hover {
  background: #A87482;
}
#promo-float #close-promo {
  position: absolute;
  top: 6px;
  right: 8px;
  border: none;
  background: transparent;
  font-size: 1rem;
  cursor: pointer;
  color: #666;
}
/* Ajuste promo flotante en móvil */
#promo-float {
  position: fixed;
  bottom: 80px;   /* lo subimos un poco para no chocar con botón de agendar */
  left: 20px;
  z-index: 2000;
  background: #fff;
  border: 2px solid #A87482;
  border-radius: 16px;
  padding: 12px 16px;
  width: 240px;
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
  font-family: 'Inter', sans-serif;
  text-align: center;
}
#promo-float h4 {
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  margin-bottom: 6px;
  color: #092E4C;
}

#promo-float .price-new {
  font-size: 1.2rem;
  font-weight: bold;
  color: #A87482;
}

#promo-float .promo-btn {
  display: inline-block;
  margin-top: 8px;
  background: #092E4C;
  color: #fff;
  padding: 6px 12px;
  border-radius: 30px;
  text-decoration: none;
  font-size: 0.85rem;
}

#promo-float .promo-btn:hover {
  background: #A87482;
}

#promo-float #close-promo {
  position: absolute;
  top: 4px;
  right: 6px;
  border: none;
  background: transparent;
  font-size: 0.9rem;
  cursor: pointer;
  color: #666;
}