/* Global properties ======================================================== */
html, body {width:100%; padding:0; margin:0;

	height: 100%;
    box-sizing: border-box;
    overflow-x: hidden;
    }

body { 	 
	font: 14px/18px "Times New Roman", Times, serif;
	
  /*font-family: 'Cormorant Garamond', serif;*/
	color:#6f6f6f;
    
	/* min-width:1024px; */
/*	background: #262626;      */
    background: #ffffff;
   
    /*padding-top: 160px; /* espacio para header fijo */
    margin: 0;
    padding: 0;
    font-size: 14px;
    

}
.ic {border:0;float:right;background:#fff;color:#fff;width:50%;line-height:10px;font-size:10px;margin:-220% 0 0 0;overflow:hidden;padding:0}
.main {width:1024px; margin:0 auto;}
/***********************************************************************/
a {text-decoration:none; cursor:pointer;text-decoration:none; }
a:hover {text-decoration:none;}

.link {color:#f25c5c; text-decoration:underline;}
.link:hover {color:#fff;text-decoration:underline;}

.link-1 {font-size:16px; line-height:20px; color:#010101; font-style:normal; text-decoration:underline;display:inline-block;}
.link-1:hover {color:#060606;text-decoration:underline;}

.link-2 {color:#fff; text-decoration:underline;}
.link-2:hover {color:#f25c5c;text-decoration:underline;}     
  
.link-3 {color:#fff;}
.link-3:hover {color:#6f6f6f;}

.clr-1 { color:#010101;}
a.clr-1:hover {text-decoration:underline;}

.text-1 {font-size:20px; line-height:25px; color:#fff; font-style:normal;}












/*h2 { font-size:26px; line-height:36px; color:#ffffff; font-style:normal;}     */
h2 { font-size:26px; line-height:36px; color:#9e8a42; font-style:normal;} 
/*.h2 {border-bottom:#353535 1px solid; padding-bottom:7px;}*/
h3 { font-size:24px; line-height:30px; color:#9e8a42; font-weight:normal; font-style:normal; }
/*h3 { font-size:24px; line-height:30px; color:#ffffff; font-weight:normal; font-style:normal; }  */
/*.h3 {border-bottom:#353535 1px solid;padding-top:5px;padding-bottom:8px;}*/
.h3-2 {padding-top:5px;padding-bottom:17px;}

ul {margin:0; padding:0;list-style-image:none;}
ul.list-1 li {padding:0px 0 8px 14px; line-height:18px; }
/*ul.list-1 li a { font-size:14px; color:#fff; line-height:18px;  } */
ul.list-1 li a { font-size:14px; color:#010101; line-height:18px; } 
ul.list-1 li a:hover {color:#6f6f6f; text-decoration:none;} 


ul.list-2 li {padding:0px 0 13px 14px; line-height:18px; }
ul.list-2 li span { font-size:14px; color:#010101; line-height:18px; }
/*ul.list-2 li  span a { font-size:16px; color:#6f6f6f; line-height:18px; text-decoration:underline;}
ul.list-2 li  span a:hover {color:#f25c5c; text-decoration:underline;}    */   
ul.list-2 li  span a { font-size:16px; color:#010101; line-height:18px; text-decoration:underline;}
ul.list-2 li  span a:hover {color:#6f6f6f; text-decoration:underline;}

ul.list-3 li {padding:0px 0 26px 0px; line-height:18px;  overflow:hidden;}
ul.list-3 li span.date {display:block; float:left;  width:97px; font-size:48px; line-height:60px; font-style:italic;}
ul.list-3 li span.date span {font-size:24px; line-height:30px; display:inline-block; float:left; color:#fff;}
ul.list-3 li span.extra-wrap { font-size:14px; color:#6f6f6f; line-height:18px; display:block; }
ul.list-3 li  span.extra-wrap a { font-size:14px; color:#bf96c7; line-height:18px; text-decoration:underline;}
ul.list-3 li  span.extra-wrap a:hover {color:#fff; text-decoration:underline;}


ul.list-4 li {padding:0px 0 13px 14px; line-height:18px; }
ul.list-4 li span { font-size:14px; color:#fff; line-height:18px; }



/******************************************************************/
.clear {clear:both; line-height:0; font-size:0; width:100%;}
.wrapper {width:100%; overflow:hidden; position:relative}
.wrap {overflow:hidden; position:relative}
.extra-wrap {overflow:hidden;}
.fleft {float:left;}
.fright {float:right;}
.img-indent {float:left; margin:3px 33px 0px 0;}
.img-indent-2 { margin:3px 0px 23px 0;}
.last {margin-right:0px !important;}
.center {text-align:center;}
.upper {text-transform:uppercase;}

.top-1 {margin-top:9px;}

.left-1 { margin-left:13px;}

.bot-0 {padding-bottom:0 !important; margin-bottom:0 !important;}
.bot-1 {margin-bottom:21px;}
.bot-2 {margin-bottom:17px;}

.pad-1 {padding-left:40px; padding-right:40px;}
.pad-2 {padding-left:40px; }

.p1 {padding-bottom:18px;}
.p2 {margin-bottom:25px;}
.p3 {padding-bottom:20px;}
.p4 {padding-bottom:13px;}
.p5 {padding-bottom:6px;}

/*********************************header*************************************/

.header { position:relative; width:100%;}    
/*header {background:#ffffff 0 0 repeat; position:relative; width:100%;} */
.header .nav {position:absolute; width:100%; z-index:999;   padding-bottom:1px; }




/*.subpages-nav nav {background:transparent !important; padding-top:59px; margin-top:0 !important; }   */
.subpages-nav nav {background:transparent !important; padding-top:3px; margin-top:0 !important; }



ul.menu {display:inline-block;display:block; padding:46px 0 70px 21px;  }
ul.menu li {float:left; display:inline-block; line-height:24px;  padding:0 34px 0 43px; }
ul.menu li.li-none {background:transparent;}
ul.menu li.li-left {margin-left:400px;} 

/*ul.menu li a {font-size:18px; line-height:24px; color:#fff; font-style:normal; display:inline-block;}
ul.menu li a:hover , ul.menu li.current a { color:#d0d0d0;} */
        
ul.menu li a {font-size:18px; line-height:24px; color:#000000; font-style:normal; display:inline-block;}
ul.menu li a:hover , ul.menu li.current a { color:#89711c;}

/*********************************content*************************************/

#content {width:1024px; margin:0 auto; background:#ffffff 0 0 repeat; padding-bottom:49px; } 
.img-border {border:#474747 4px solid; display:inline-block;}

.gallery-block h2 {padding:26px 0px 16px 0px; text-align:center;}
.gallery-photo {border-top:#303030 1px solid; border-bottom:#303030 1px solid;}

.page1-row1 {overflow:hidden; padding-top:36px; }
.col-1 {float:left; width:190px; margin-right:50px;}
.col-2 {float:left; width:400px; margin-right:60px;}
.col-3 {float:left;}

.link-1-pad {float:right; margin-top:9px;}

.soc-icons {overflow:hidden; margin:17px 0 0 0;}
.soc-icons a {display:block; width:45px; height:45px; float:left; margin-right:2px;}
.soc-icons a:hover img {opacity:0.7;}

.adr {line-height:20px;}

.page2-row1 {overflow:hidden; padding-top:26px; padding-bottom:41px; }
.col-4 {float:left; width:570px; margin-right:70px;}
.col-5 {float:left; width:300px; }

.page2-row2 {overflow:hidden; }
.col-6 {float:left; width:570px; padding-right:30px; margin-right:20px; border-right:#303030 1px solid;}
.col-7 {float:left; width:320px; }

.comment { padding-left:20px; margin-bottom:9px; width:270px;}


.page3-row1 {overflow:hidden; padding-top:26px; }
.col-8 {float:left; width:190px; padding-right:50px;}
.col-9 {float:left; width:744px; }

.page4-row1 {overflow:hidden; padding-top:26px; }
.col-10 {float:left; width:300px;  margin-right:60px; }
.col-11 {float:left; width:580px;}

.page5-row1 {overflow:hidden; padding-top:26px; }
.col-12 {float:left; width:600px;  margin-right:79px; }
.col-13 {float:left; width:265px;}

.page6-row1 {overflow:hidden; padding-top:26px; }
.col-14 {float:left; width:270px;  margin-right:50px; }
.col-15 {float:left; width:273px; margin-right:89px; }
.col-16 {float:left; width:260px; }

.vestuario {color:#fff; }

/* Lightbox image */
.lightbox-image{display:inline-block;position:relative;}
.lightbox-image img.magnify{position:absolute;width:0px;height:0px;left:50%;top:50%;}

.whatsapp-float {
  position: fixed;
  width: 55px;
  height: 55px;
  bottom: 20px;
  right: 20px;
  background-color: #25D366;
  color: white;
  border-radius: 50%;
  text-align: center;
  font-size: 28px;
  z-index: 100001;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
  transition: transform 0.3s ease;
}

.whatsapp-float:hover {
  transform: scale(1.1);
}


/****************************footer************************/
footer { width:100%; position:relative; overflow:hidden; text-align:center; padding:7px 0 20px 0; }
footer span {display:inline-block; margin:0 auto; border-top:#3c3c3c 1px solid; padding-top:13px;line-height:22px;}
/**********************form**********************/
.map {width:265px; height:202px;margin-top:3px; }
.map iframe {width:265px; height:202px; }
dl {margin:20px 0px 0 0px;}
dl dt {line-height:24px; margin-bottom:3px;}
dl dd span { width:62px; text-align:right; display:block; float:left; margin-right:12px;}
dl dd {}
dl dd a {}
dl dd a:hover {}
#form { padding:3px 0 0px 0px; width:260px; }
#form input {border:#3f3f3f 1px solid; background:#2c2c2c; font-size:14px; font-family: "Times New Roman", Times, serif; color:#ffffff;padding:4px 10px 5px 10px;outline: medium none;width: 238px; height:17px; float:left; }
#form textarea {border:#3f3f3f 1px solid; background:#2c2c2c;font-size:14px; font-family:"Times New Roman", Times, serif;color:#ffffff; height: 130px;outline: medium none;overflow: auto; padding: 4px 0px 0px 10px;width: 248px;resize:none;margin:0px 0 0 0;float:left; }
#form label {position:relative;display: block;min-height:37px; overflow:hidden;}
.btns {text-align:right; margin-left:0px; overflow:hidden;}
.btns a.link-1 {display:inline-block; margin:14px 0px 0 25px; }

/* Estilos para el selector .element */
.element {
    -webkit-border-radius: 5px; /* Para Chrome */
    -moz-border-radius: 5px; /* Para Firefox */
    border-radius: 5px; /* Estándar */
}
/* === Responsive para pantallas de hasta 768px (móviles y tablets pequeños) === */
@media screen and (max-width: 768px) {
  body {
    font-size: 1.1em;
    min-width: unset; /* elimina el límite mínimo de 1024px */
  }

  .main, #content, header, nav {
    width: 100% !important;
    padding: 0 10px;
    box-sizing: border-box;
  }

  /* Colapsar todas las columnas en una sola */
  .col-1, .col-2, .col-3,
  .col-4, .col-5, .col-6,
  .col-7, .col-8, .col-9,
  .col-10, .col-11, .col-12,
  .col-13, .col-14, .col-15, .col-16 {
    float: none;
    width: 100% !important;
    margin: 0 0 20px 0;
  }

  /* Imágenes fluidas */
  img {
    max-width: 100%;
    height: auto;
  }

  /* Ajustes generales para secciones */
  .page1-row1,
  .page2-row1,
  .page2-row2,
  .page3-row1,
  .page4-row1,
  .page5-row1,
  .page6-row1 {
    padding: 20px 10px;
  }

  /* Navegación */
  ul.menu {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 0;
  }

  ul.menu li {
    float: none;
    margin: 10px 0;
    padding: 0;
    background: none;
  }
}

@media screen and (max-width: 768px) {
  /* Asegura que la navegación no se desborde */
  .NavV,
  nav,
  header {
    width: 100%;
    overflow-x: auto;
    box-sizing: border-box;
    padding: 10px;
  }

  /* Ajusta los enlaces del menú para que se vean bien */
  .NavV ul.menu {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0;
    margin: 0;
  }

  .NavV ul.menu li {
    float: none;
    margin: 10px 0;
    padding: 0;
    background: none;
  }

  .NavV ul.menu li a {
    font-size: 16px;
    display: block;
    padding: 10px;
    color: #000000;
    text-align: center;
  }

  /* Visor de imágenes (slider) */
  .slider, .gallery-photo, .gallery-block, .slider img {
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
    box-sizing: border-box;
  }

  /* Asegura que el contenedor principal del slider no corte contenido */
  .main, #content {
    overflow-x: hidden;
  }
}



@media screen and (max-width: 1024px) {
  ul.menu li.li-left {
    margin-left: 0 !important;
  }
}

/* Tamaño del logo en dispositivos móviles y tablets */
@media screen and (max-width: 768px) {
  #logo {
    width: 150px !important;
    height: auto !important;
    display: block;
    margin: 0 auto;
  }
}

@media screen and (max-width: 768px) {
  #logo {
    width: 150px !important;
    height: auto !important;
    display: block;
    margin: 0;
    text-align: left;
    float: left;
  }
}

@media screen and (max-width: 768px) {
  #logo {
    max-width: 150px !important;
    width: 100% !important;
    height: auto !important;
    display: block;
    margin: 10px 0 0 10px !important;
    float: none !important;
    position: relative;
  }
}

@media screen and (max-width: 768px) {
  header {
    width: 100% !important;
    background-size: cover !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
  }

  .subpages-nav {
    height: auto !important;
    background-size: cover !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
  }
}


/* == Carrusel reseñas */
.reseñas-section {
  max-width: 1024px; /*he cambiado de 600px a 1024 para que el contenedor de la reseña tenga el mismo ancho que el slide de imagenes y la image del Bono-Regalo*/
  margin: 3em auto;
  padding: 2em;
  text-align: center;
  font-family: 'Times New Roman", Times, serif;
  background: #faf5e1;
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0,0,0,0.05);
  border: 1px solid #d4af37; /* borde dorado */
}

.reseñas-section h2 {
  font-size: 1.6em;
  margin-bottom: 1.2em;
  color: #9e8a42;
}

.reseñas-carousel {
  position: relative;
  min-height: 180px;
}

.reseña {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  transition: opacity 0.6s ease-in-out;
  padding: 0 1em;
  box-sizing: border-box;
  /* border: 1px solid #d4af37; tono dorado */
  border-radius: 8px;
  padding: 1.2em;
  background-color: #fff;
}

.reseña.active {
  opacity: 1;
  position: relative;
}

.reseña p {
  font-size: 1.1em;
  font-style: italic;
  color: #444;
}

.reseña .estrellas {
  margin: 0.5em 0;
  color: #f8d147; /* Amarillo estrella */
}

.reseña span {
  display: block;
  margin-top: 0.5em;
  font-weight: bold;
  color: #777;
}

.flechas {
  margin-top: 1.5em;
  display: flex;
  justify-content: center;
  gap: 1.5em;
}

.flechas button {
  background-color: transparent;
  border: none;
  font-size: 2rem;
  cursor: pointer;
  color: #333;
  transition: color 0.3s ease;
}

.flechas button:hover {
  color: #666;
}

/* Responsive */
@media (max-width: 768px) {
  .reseñas-section {
    padding: 1.5em 1em;
  }
  .reseña p {
    font-size: 1em;
  }
}

@media (max-width: 480px) {
  .reseñas-section {
    margin: 2em 1em;
  }
  .reseña p {
    font-size: 0.95em;
  }
}

.regalo-hero {
  width: 100%;
  overflow: hidden;
  position: relative;
  margin: 0;
  padding: 0;
}

.img-regalo-full {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
  transform: translateY(0);
  transition: transform 0.2s ease-out;
}

/* Tablets */
@media (max-width: 768px) {
  .img-regalo {
    max-width: 90%;
  }
  .frase-regalo {
    font-size: 1.1em;
  }
}

/* Móviles */
@media (max-width: 480px) {
  .img-regalo {
    max-width: 100%;
  }
  .frase-regalo {
    font-size: 1em;
  }
}


/** Texto para foto fija maternidad de la home **/
.bloque-maternidad {
  background-color: #fefaf3;
  padding: 4em 2em;
  margin-top:3em;
}

.contenedor-maternidad {
  display: flex;
  max-width: 1100px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 3em;
  flex-wrap: wrap;
}

.texto-maternidad {
  flex: 1 1 500px;
  font-family: "Times New Roman", serif;
  color: #5a5030;
}

.texto-maternidad h2 {
  font-size: 2em;
  color: #9e8a42;
  margin-bottom: 1em;
}

.texto-maternidad p {
  font-size: 1.2em;
  line-height: 1.6em;
  color: #444;
  /*font-style: italic;*/
  font-family: "Times New Roman", serif;
}

.imagen-maternidad {
  flex: 1 1 400px;
  text-align: center;
}

.imagen-maternidad img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 0 15px rgba(0,0,0,0.08);
}

/* Responsive */
@media screen and (max-width: 768px) {
  .contenedor-maternidad {
    flex-direction: column;
    text-align: center;
  }

  .texto-maternidad h2 {
    font-size: 1.6em;
  }

  .texto-maternidad p {
    font-size: 1.05em;
  }
}

/* ===================================== */
/* Sección: Filosofía + Inspiración */
/* ===================================== */
.sobre-filosofia {
  background-color: #fefaf3;
  padding: 4em 1em;
  width: 100%;
  display: block;
}

.filosofia-contenido {
  max-width: 1024px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 3em;
  justify-content: space-between;
 
}

.filosofia-col {
  flex: 1 1 400px;
  font-family: "Times New Roman", serif;
  color: #5a5030;
}

.filosofia-col h2 {
  font-size: 1.8em;
  color: #9e8a42;
  margin-bottom: 1em;
  font-weight: normal;
}

.filosofia-col p {
  font-size: 1.1em;
  line-height: 1.6;
  color: #444;
}

.filosofia-img {
  max-width: 100%;
  height: auto;
  margin-bottom: 1em;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0,0,0,0.05);
}

.filosofia-lista {
  list-style: none;
  padding: 0;
}

.filosofia-lista li {
  margin-bottom: 0.8em;
}

.filosofia-lista a {
  color: #9e8a42;
  font-size: 1.1em;
  text-decoration: underline;
}

.filosofia-lista a:hover {
  color: #5a5030;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .filosofia-contenido {
    flex-direction: column;
  }
}

/* ===================================== */
/* Sobre mí: estructura principal        */
/* ===================================== */
.sobre-mi {
  background-color: #fefaf3;
  padding: 4em 1em;
}

.sobre-mi-contenido {
  max-width: 1024px;
  margin: 0 auto;
  display: flex;
  gap: 3em;
  flex-wrap: wrap;
  align-items: flex-start;
}

.sobre-mi-img {
  flex: 1 1 400px;
  text-align: center;
}

.sobre-mi-img img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 0 12px rgba(0,0,0,0.06);
}

.sobre-mi-texto {
  flex: 1 1 580px;
  font-family: "Times New Roman", serif;
  color: #444;
}

.sobre-mi-texto h2 {
  font-size: 2em;
  color: #9e8a42;
  margin-bottom: 1em;
}

.sobre-mi-texto p {
  font-size: 1.15em;
  line-height: 1.7;
  margin-bottom: 1em;
}

/* ===================================== */
/* Inspiración: texto + imagen artística */
/* ===================================== */
.sobre-inspiracion-visual {
  background-color: #fefaf3;
  padding: 4em 1em;
}

.inspiracion-contenido {
  max-width: 1024px;
  margin: 0 auto;
  display: flex;
  gap: 3em;
  flex-wrap: wrap;
  align-items: center;
}

.inspiracion-texto {
  flex: 1 1 400px;
}

.inspiracion-texto h3 {
  font-size: 1.6em;
  color: #9e8a42;
  margin-bottom: 1em;
  font-family: "Times New Roman", serif;
}

.inspiracion-texto ul {
  list-style: none;
  padding: 0;
}

.inspiracion-texto li {
  margin-bottom: 0.6em;
}

.inspiracion-texto a {
  font-size: 1.1em;
  color: #5a5030;
  text-decoration: underline;
  font-family: "Times New Roman", serif;
}

.inspiracion-texto a:hover {
  color: #9e8a42;
}

.inspiracion-img {
  flex: 1 1 500px;
  text-align: center;
}

.inspiracion-img img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0,0,0,0.05);
}

/* ===================================== */
/* Frase final emocional de cierre       */
/* ===================================== */
.sobre-mi-cita {
  text-align: center;
  margin-top: 4em;
  padding: 2em 1em;
  background-color: #faf5e1;
  font-family: "Times New Roman", serif;
}

.sobre-mi-cita p {
  font-size: 1.4em;
  color: #5a5030;
  font-style: italic;
  max-width: 700px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .sobre-mi-contenido,
  .inspiracion-contenido {
    flex-direction: column;
    text-align: center;
  }

  .sobre-mi-texto {
    text-align: left;
  }
}

/* ======================================= */
/* Bloque: Confianza + Imagen de Sesión    */
/* ======================================= */
.confianza-bloque {
  background-color: #ffffff;
  padding: 4em 1em;
}

.confianza-contenido {
  max-width: 1024px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 3em;
  align-items: center;
}

.confianza-texto {
  flex: 1 1 460px;
  font-family: "Times New Roman", serif;
}

.confianza-texto h2 {
  font-size: 1.8em;
  color: #9e8a42;
  margin-bottom: 1em;
}

.confianza-texto ul {
  list-style: none;
  padding-left: 0;
}

.confianza-texto li {
  font-size: 1.15em;
  margin-bottom: 1em;
  line-height: 1.6;
  color: #444;
}

.confianza-imagen {
  flex: 1 1 460px;
  text-align: center;
}

.confianza-imagen img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 0 12px rgba(0,0,0,0.06);
}

/* ======================================= */
/* Cita final + botón a Flickr             */
/* ======================================= */
.bloque-cierre {
  background-color: #fefaf3;
  text-align: center;
  padding: 4em 1em;
}

.frase-final {
  font-size: 1.4em;
  font-style: italic;
  font-family: "Times New Roman", serif;
  color: #5a5030;
  max-width: 700px;
  margin: 0 auto 2em auto;
  line-height: 1.6;
}

.boton-flickr {
  display: inline-block;
  background-color: #9e8a42;
  color: #fff;
  font-size: 1em;
  padding: 0.75em 2em;
  border-radius: 30px;
  text-decoration: none;
  font-family: "Times New Roman", serif;
  transition: background-color 0.3s ease;
}

.boton-flickr:hover {
  background-color: #5a5030;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .confianza-contenido {
    flex-direction: column;
    text-align: center;
  }
}

/* ===================================== */
/* HEADER: Estructura moderna responsive */
/* ===================================== */




/* Logo */


/* Menú desktop */






/* Menú hamburguesa */
.menu-toggle {
  display: none;
  flex-direction: column;
  cursor: pointer;
  gap: 6px;
}

.menu-toggle span {
  width: 25px;
  height: 3px;
  background-color: #fff;
  transition: all 0.3s ease;
}

.menu-toggle:focus-visible {
  outline: 3px solid #a98b70;
  outline-offset: 4px;
}

/* ===================================== */
/* Responsive: tablet y móvil */
/* ===================================== */
@media screen and (max-width: 768px) {
  

  

  

  .menu-toggle {
    display: flex;
  }

  
}

/* ===================================== */
/* Sección: Header visual de Servicios */
/* ===================================== */
.servicios-header {
  background-color: #fefaf3;
  padding: 5em 1em 4em 1em;
  text-align: center;
}

.servicios-header-contenido {
  max-width: 800px;
  margin: 0 auto;
  font-family: "Times New Roman", serif;
}

.servicios-header h1 {
  font-size: 2em;
  color: #5a5030;
  margin-bottom: 0.5em;
}

.subtitulo-visual {
  font-size: 1.2em;
  color: #9e8a42;
  font-style: italic;
}

/* =========================================== */
/* Bloque visual: Lista de servicios múltiples */
/* =========================================== */
.servicios-lista {
  background-color: #fefaf3;
  padding: 4em 1em;
}

.servicios-lista-contenido {
  max-width: 1024px;
  margin: 0 auto;
  font-family: "Times New Roman", serif;
  text-align: center;
}

.servicios-lista h2 {
  font-size: 1.8em;
  color: #9e8a42;
  margin-bottom: 1em;
}

.servicios-lista p {
  font-size: 1.15em;
  color: #444;
  line-height: 1.6;
  margin-bottom: 2em;
}

.servicios-grid {
  display: flex;
  justify-content: center;
  gap: 4em;
  flex-wrap: wrap;
}

.servicios-grid ul {
  list-style: none;
  padding: 0;
  text-align: left;
}

.servicios-grid li {
  font-size: 1.1em;
  margin-bottom: 1em;
  position: relative;
  padding-left: 1.2em;
  color: #5a5030;
}

.servicios-grid li::before {
  content: "•";
  color: #9e8a42;
  position: absolute;
  left: 0;
  font-size: 1.2em;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .servicios-grid {
    flex-direction: column;
    align-items: center;
  }

  .servicios-grid ul {
    text-align: center;
  }
  
  .servicios-grid li strong {
  display: block;
  font-weight: bold;
  color: #9e8a42;
  margin-bottom: 0.2em;
}
}

/* ===================================== */
/* Sección: Bono regalo full-width       */
/* ===================================== */
.bono-regalo {
  background-color: #ffffff;
  padding: 5em 1em;
  margin-bottom: 1.5rem;
}

.bono-contenido {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 3em;
  flex-wrap: wrap;
  align-items: center;
}

.bono-img {
  flex: 1 1 500px;
  text-align: center;
}

.bono-img img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 0 12px rgba(0,0,0,0.08);
}

.bono-texto {
  flex: 1 1 500px;
  font-family: "Times New Roman", serif;
}

.bono-texto h2 {
  font-size: 1.8em;
  color: #9e8a42;
  margin-bottom: 1em;
}

.bono-texto p {
  font-size: 1.15em;
  color: #444;
  line-height: 1.6;
  margin-bottom: 1.5em;
}

.boton-cta {
  display: inline-block;
  background-color: #9e8a42;
  color: #fff;
  padding: 0.75em 2em;
  border-radius: 30px;
  font-family: "Times New Roman", serif;
  font-size: 1em;
  text-decoration: none;
  transition: background-color 0.3s ease;
}

.boton-cta:hover {
  background-color: #5a5030;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .bono-contenido {
    flex-direction: column;
    text-align: center;
  }
  
}

/* ===================================== */
/* Cierre emocional: Estudio + Gracias   */
/* ===================================== */
.bloque-estudio-final {
  background-color: #fefaf3;
  padding: 5em 1em;
  text-align: center;
}

.estudio-contenido {
  max-width: 800px;
  margin: 0 auto;
  font-family: "Times New Roman", serif;
}

.bloque-estudio-final h2 {
  font-size: 1.8em;
  color: #9e8a42;
  margin-bottom: 1em;
}

.bloque-estudio-final p {
  font-size: 1.15em;
  color: #444;
  line-height: 1.7;
  margin-bottom: 1.5em;
}

.frase-cierre {
  font-style: italic;
  color: #5a5030;
}

.boton-cta {
  display: inline-block;
  background-color: #9e8a42;
  color: #fff;
  padding: 0.75em 2em;
  border-radius: 30px;
  font-family: "Times New Roman", serif;
  font-size: 1em;
  text-decoration: none;
  transition: background-color 0.3s ease;
}

.boton-cta:hover {
  background-color: #5a5030;
}

/* ===================================== */
/* Header visual para la página de contacto */
/* ===================================== */
.contacto-header {
  background-color: #fefaf3;
  padding: 5em 1em 4em 1em;
  text-align: center;
}

.contacto-header-contenido {
  max-width: 800px;
  margin: 0 auto;
  font-family: "Times New Roman", serif;
}

/*.contacto-header h1 {
  font-size: 2em;
  color: #5a5030;
  margin-bottom: 0.5em;
}*/

.subtitulo-visual {
  font-size: 1.2em;
  color: #9e8a42;
  font-style: italic;
}

/* ===================================== */
/* Bloque central de contacto            */
/* ===================================== */
.contacto-principal {
  background-color: #ffffff;
  padding: 4em 1em;
}

.contacto-contenido {
  max-width: 1024px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 4em;
}

.contacto-info {
  flex: 1 1 420px;
  font-family: "Times New Roman", serif;
  color: #444;
}

.contacto-info h2 {
  font-size: 1.6em;
  color: #9e8a42;

  margin-bottom: 1em;
}

.contacto-info p {
  font-size: 1.1em;
  line-height: 1.6;
  margin-bottom: 1em;
}

.contacto-info a {
  color: #5a5030;
  text-decoration: underline;
}

.mensaje-final {
  font-size: 1.2em;
  margin-top: 2em;
  font-style: normal;
  color: #5a5030;
}

/* Formulario */
.contacto-formulario {
  flex: 1 1 500px;
}

.contacto-formulario form {
  display: flex;
  flex-direction: column;
  gap: 1em;
  font-family: "Times New Roman", serif;
}

.contacto-formulario label {
  font-size: 1em;
  color: #444;
}

.contacto-formulario input,
.contacto-formulario textarea {
  padding: 0.75em;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 1em;
  font-family: inherit;
}

.politica-check {
  font-size: 0.95em;
  color: #444;
}

.politica-check a {
  color: #9e8a42;
  text-decoration: underline;
}

.boton-cta {
  display: inline-block;
  background-color: #9e8a42;
  color: #fff;
  padding: 0.75em 2em;
  border-radius: 30px;
  font-family: "Times New Roman", serif;
  font-size: 1em;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.boton-cta:hover {
  background-color: #5a5030;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .contacto-contenido {
    flex-direction: column;
  }

  .contacto-formulario form {
    width: 100%;
  }
}

/* ===================================== */
/* Mapa de ubicación                     */
/* ===================================== */
.mapa-localizacion {
  background-color: #ffffff;
  padding: 5em 1em;
  text-align: center;
}

.mapa-contenido {
  max-width: 1024px;
  margin: 0 auto;
  font-family: "Times New Roman", serif;
}

.mapa-contenido h2 {
  font-size: 1.8em;
  color: #9e8a42;
  margin-bottom: 0.5em;
}

.mapa-contenido p {
  font-size: 1.1em;
  color: #444;
  margin-bottom: 2em;
  line-height: 1.6;
}

.mapa-google iframe {
  width: 100%;
  height: 400px;
  border-radius: 8px;
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.06);
}

/* ===================================== */
/* Aviso destacado: cita previa          */
/* ===================================== */
/*.aviso-cita-previa {
  background-color: #fefaf3;
  border-left: 4px solid #9e8a42;
  padding: 1em 1.2em;
  margin-bottom: 2em;
  font-family: "Times New Roman", serif;
}

.aviso-cita-previa p {
  font-size: 1.15em;
  color: #5a5030;
  margin: 0;
  font-style: italic;
}*/

.subtitulo-contacto {
  font-size: 1.2em;
  color: #5a5030;
  text-align: center;
  margin-top: 0.5em;
}

.detalle-cita {
  font-size: 1.2em;
  color: #5a5030;
  text-align: center;
  max-width: 600px;
  margin: 0.5em auto 2em auto;
  font-style: italic;
  font-weight: 500;
}


/* Corrección del título de contacto para evitar posición absoluta */
/*.contacto-header h1 {
  font-size: 2em;
  color: #5a5030;
  margin-bottom: 0.5em;
  position: static;
}*/


/* ========================================= */
/* HEADER y LOGO RESPONSIVE LIMPIO Y FUNCIONAL */
/* ========================================= */
.main-header {
  /*position: absolute;  */
  position: sticky;  
  top: 0;
  width: 100%;
  z-index: 1000;
  /*background-color: rgba(255,255,255,0.2);*/ /* fondo transparente */
   background-color: #fff; /* fondo transparente */
  transition: background-color 0.3s ease;
}

.header-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 1em 2em;
}

/* Contenedor del logo */
.logo {
  display: block;
  max-width: 180px;
  flex-shrink: 0;
}

.logo img {
  display: block;
  width: 100%;
  height: auto;
  transition: all 0.3s ease;
}

/* Menú navegación */


.nav-menu a {
  text-decoration: none;
  font-size: 1em;
  color: #5a5030;
  transition: color 0.3s ease;
}

.nav-menu a:hover {
  color: #9e8a42;
}

/* Responsive para tablet y móvil */
@media screen and (max-width: 1024px) {
  .logo {
    max-width: 140px;
  }
}

@media screen and (max-width: 768px) {
  .logo {
    max-width: 120px;
  }

  .header-container {
    flex-direction: column;
    gap: 1em;
    padding: 1em;
  } 
}

@media screen and (max-width: 480px) {
  .logo {
    max-width: 100px;
  }

}

/* === MENÚ HAMBURGUESA PARA MÓVIL === */
.menu-toggle {
  display: none;
  flex-direction: column;
  cursor: pointer;
  gap: 5px;
}

.menu-toggle span {
  display: block;
  width: 25px;
  height: 3px;
  background-color: #5a5030;
  border-radius: 2px;
}

/* RESPONSIVE MOBILE */
@media screen and (max-width: 768px) {
  .menu-toggle {
    display: flex;
  }

  

  .nav-menu.active {
    display: flex;
  }

  .nav-menu li {
    margin: 0.5em 0;
  }
}


/* === MENÚ NAVEGACIÓN GENERAL === */
.nav-menu {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  list-style: none;
  gap: 2em;
}

/* === MENÚ HAMBURGUESA PARA MÓVIL === */
.menu-toggle {
  display: none;
  flex-direction: column;
  cursor: pointer;
  gap: 5px;
}

.menu-toggle span {
  display: block;
  width: 25px;
  height: 3px;
  background-color: #5a5030;
  border-radius: 2px;
}

@media screen and (max-width: 768px) {
  .menu-toggle {
    display: flex;
  }

  .nav-menu {
    display: none;
    flex-direction: column;
    width: 100%;
    align-items: center;
    background-color: white;
    margin-top: 1em;
  }

  .nav-menu.active {
    display: flex;
  }

  .nav-menu li {
    margin: 0.5em 0;
  }
}

/* === MENÚ QUE EL SLIDER SE ADAPTE === */

.grapper {
  position: relative;
  width: 100%;
  height: 80vh; /* Altura generosa adaptable */
  overflow: hidden;
}

.grapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* === AJUSTE RESPONSIVO PARA TÍTULOS EN MÓVIL === */
@media screen and (max-width: 768px) {
  h1 {
    font-size: 1.6em; /* Reduce tamaño del título principal */
    line-height: 1.3;
    padding: 0 1em;
    text-align: center;
  }

  .subtitulo-contacto {
    font-size: 1em; /* Texto secundario más pequeño y legible */
    line-height: 1.5;
    padding: 0 1.5em;
    text-align: center;
  }
}

/* ===ICONOS SOCIALES EN HEADER === */
.social-header {
  display: flex;
  justify-content: flex-end;
  gap: 0.75em;
  margin-top: 0.5em;
}

.social-header img {
  width: 26px;
  height: 26px;
  opacity: 0.8;
  transition: opacity 0.3s ease;
}

.social-header img:hover {
  opacity: 1;
}


@media screen and (max-width: 768px) {
  .social-header {
    display: flex;
    justify-content: center;
    margin-top: 0px; /* ajusta según lo que necesites */
    gap: 10px;

    position: relative; /* o absolute si es necesario */
    z-index: 9999;
  }

  .social-header img {
    width: 28px;
    height: 28px;
  }
}


/* ===código para ocultar el h1 en la página de inicio === */
.h1-home {
  font-size: 1px;
  color: transparent;
  height: 0;
  overflow: hidden;
  position: absolute;
}


/* === Espacio extra debajo del título antes del botón === */
.h3 + .boton-cta {
  margin-top: 1.5em;
}

/* === Botón flotante sobre imagen de bono regalo === */
.regalo-hero {
  position: relative;
}

.bono-flotante {
  position: absolute;
  bottom: 2.5em;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.75em 2em;
}

/* === H1 visual uniforme para todas las páginas secundarias === */
.titulo-pagina {
  font-size: 1.8em;
  color: #9e8a42;
  margin-bottom: 1em;
  font-weight: normal;
  text-align: left;
}


/* Estilo extendido solo para las páginas que necesiten el título H1 centrado */
.titulo-pagina.centrado {
  font-size: 2em;
  color: #5a5030;
  text-align: center;
  margin-bottom: 0.8em;
}

/* === Estilo uniforme para todos los h2 y h3 === */
h2, h3 {
  font-weight: normal;
 
}

/* === Centrado para títulos h1 cuando se requiera === */
.titulo-pagina.centrado {
  text-align: center;
  color: #9e8a42;
}


/* === Estilo más fino para h2 emocionales debajo del h1 === */
.h2-subtle {
  font-style: italic;
  font-size: 1.2em !important;
  font-weight: 400;
  text-align: center;
  color: #714312 !important; /* tono suave que encaja con tu paleta */
  margin-top: -0.5em;
  margin-bottom: 1.5em;
}

/* === Estilos para el bloque de contacto directo debajo del formulario === */
.info-directa {
  margin-top: 2em;
  text-align: center;
  color: #5a5030;
  font-size: 1em;
}

.info-directa i {
  margin-right: 0.5em;
  color: #9e8a42;
}

.info-directa a {
  color: #5a5030;
  text-decoration: none;
}

.info-directa a:hover {
  text-decoration: underline;
}

.subtitulo-pagina {
  font-size: 2em;
  color: #9e8a42;
  text-align: center;
  font-weight: normal;
  margin-bottom: 0.5em;
}


/*=== Refuerzo para que coja el H1 en la página de contacts === */
/*h1.titulo-pagina.centrado {
  font-size: 2em !important;
  font-weight: normal !important;
  color: #5a5030 !important;
  text-align: center !important;
  margin-bottom: 0.8em;
}*/



/* === Imagen lateral en página de contacto === */
.contacto-contenido {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  align-items: flex-start;
}

.contacto-info {
  flex: 1 1 300px;
  max-width: 500px;
}

.contacto-formulario {
  flex: 1 1 400px;
}

.imagen-contacto {
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
  box-shadow: 0 0 12px rgba(0,0,0,0.1);
}


/* === Pie de página editorial === */
.footer-crema {
  background-color: #fefaf3;
  padding: 0em 0em;
  text-align: center;
  font-size: 0.9em;
  color: #5a5030;
  border-top: 1px solid #e6e0d3;
}

.footer-contenido {
  max-width: 900px;
  margin: 0 auto;
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.footer-marca {
  margin-bottom: 0.5em;
  font-weight: normal;
  letter-spacing: 0.03em;
}

.footer-enlaces a {
  color: #5a5030;
  text-decoration: none;
  margin: 0 0.5em;
}

.footer-enlaces a:hover {
  text-decoration: underline;
}


/* Imagen a ancho completo responsive en Servicios */
.imagen-ancha {
  width: 100%;
  margin: 0;
  padding: 0;
}

.imagen-ancha img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* Estilo coherente para el menú principal en todas las páginas */
.nav-principal {
  background-color: transparent; /* Puedes poner #f9f4ef si quieres un tono crema */
  padding-top: 20px;
  z-index: 1000;
  position: relative;
}

/* === GRID DE SESIONES EN HOMEPAGE === */
/* GRID SESIONES - BLOQUE VISUAL EN INDEX */

/* === GALERÍA DE SESIONES === */
.grid-sesiones {
  padding: 4rem 1rem;
  background-color: #ffffff; /* Fondo blanco */
}

.galeria-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  max-width: 1024px;
  margin: 0 auto;
}

.galeria-item {
  text-align: center;
  text-decoration: none;
  transition: transform 0.3s ease;
}

.galeria-item img {
  width: 100%;
  height: auto;
  border-radius: 5px;
  transition: transform 0.3s ease;
}

.galeria-item h3 {
  margin-top: 1rem;
  font-size: 1.2rem;
  color: #5a483f; /* Color marrón dorado de tus títulos */
  font-family: 'Times New Roman', serif;
}

/* Efecto zoom al pasar el ratón */
.galeria-item:hover img {
  transform: scale(1.03);
}

/* Centrado de la última imagen (fila 3) */
.galeria-item.centrado {
  grid-column: 2 / span 1;
  justify-self: center;
}

/* Responsive - móviles pequeños */
@media screen and (max-width: 768px) {
  .galeria-grid {
    grid-template-columns: 1fr;
    padding: 2rem 1rem;
  }

  .galeria-item h3 {
    font-size: 1rem;
  }

  .galeria-item.centrado {
    grid-column: auto;
  }
}

/* Responsive - tablets */
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .galeria-grid {
    grid-template-columns: repeat(2, 1fr);
   }
}

/* Centrado de la última imagen cuando está sola en una fila (responsive) */
@media (max-width: 1024px) {
  .grid-sesiones {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* Centra los elementos si hay menos columnas */
    gap: 20px;
  }

  .grid-item {
    flex: 1 1 calc(50% - 40px); /* 2 columnas en tablet, ajustado con el gap */
    max-width: 300px;
    text-align: center;
  }
}

@media (max-width: 768px) {
  .grid-item {
    flex: 1 1 100%; /* En móvil una sola columna */
    max-width: none;
  }
}


/* Centra el bloque de texto y botón de la sección de Flickr */
.bloque-flickr-centro {

  text-align: center;
  margin: 4rem auto;
}

/* Opcional: centrado del botón si tuviera display inline-block */
.bloque-flickr-centro .boton-cta {
 
  display: inline-block;
  margin-top: 2rem;
}

/* Centra el texto horizontalmente para la clase h2-subtítulo centrado */
.centrado {
  text-align: center;
  margin-top: 2rem;
}


/* =========================================================
   BLOQUE: Estilos para el formulario de newsletter (general)
   Uso: newsletter en el cuerpo y en el footer de cada página
   ========================================================= */
.newsletter-section {
  background-color: #fefaf3; /* color crema claro */
  padding: 3em 1em;
  font-family: "Times New Roman", serif;
  text-align: center;
  /*border-top: 1px solid #e6e0d3;*/
  margin-top: 3em;
}

/* Contenedor central del formulario */
.newsletter-container {
  max-width: 600px;
  margin: 0 auto;
}

/* Título del bloque */
.newsletter-container h2 {
  font-size: 1.8em;
  color: #9e8a42; /* dorado suave */
  margin-bottom: 0.5em;
}

/* Párrafo introductorio */
.newsletter-container p {
  font-size: 1.1em;
  color: #444;
  margin-bottom: 1.5em;
}

/* Campos de texto y email */
.newsletter-container input[type="text"],
.newsletter-container input[type="email"] {
  width: 100%;
  padding: 0.75em;
  margin-bottom: 1em;
  border-radius: 6px;
  border: 1px solid #ccc;
  font-size: 1em;
  font-family: inherit;
  box-sizing: border-box;
}

/* Casilla de política de privacidad */
.newsletter-container .politica-check {
  font-size: 0.95em;
  color: #444;
  margin-bottom: 1em;
  text-align: left;
}

/* Estilo del texto del checkbox */
.newsletter-container .politica-check label {
  display: inline;
}

/* Enlace a la política de privacidad */
.newsletter-container .politica-check a {
  color: #9e8a42;
  text-decoration: underline;
}

/* Botón de suscripción */
.newsletter-container .boton-cta {
  background-color: #9e8a42; /* dorado principal */
  color: #fff;
  border: none;
  padding: 0.75em 2em;
  border-radius: 30px;
  cursor: pointer;
  font-family: inherit;
  font-size: 1em;
  transition: background-color 0.3s ease;
}

/* Hover del botón */
.newsletter-container .boton-cta:hover {
  background-color: #5a5030; /* dorado más oscuro */
}

/* ===========================
   Diseño responsive para móvil
   =========================== */
@media screen and (max-width: 768px) {
  .newsletter-container input[type="text"],
  .newsletter-container input[type="email"] {
    font-size: 1em;
  }

  .newsletter-container h2 {
    font-size: 1.5em;
  }
}

/* ===========================
  Mensaje de suscripcion a la newsletter

   =========================== */
#success-message {
  background-color: #e7faf0;
  color: #085229;
  padding: 1em;
  border-radius: 5px;
  margin-top: 1.5em;
  font-size: 1.1em;
  text-align: center;
  border: 1px solid #13ce66;
}

.boton-cta-newsletter {
  display: inline-block;
  background-color: #9e8a42;
  color: #fff;
  padding: 0.75em 2em;
  border-radius: 30px;
  font-family: "Times New Roman", serif;
  font-size: 1em;

  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease;
}


/* ===========================
 Carrusel de la landing page de maternidad

   =========================== */
.fullwidth-swiper {
  width: 100vw;
  max-width: 100vw;
  margin: 0;
  padding: 0;
  overflow: hidden;
  position: relative;
}

.fullwidth-swiper .swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* === Carrusel de maternidad a pantalla completa === */
.carrusel-fullwidth {

  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 auto;
  overflow: hidden;
}

.carrusel-fullwidth .swiper-wrapper {
  width: 100%;
}

.carrusel-fullwidth .swiper-slide {
  width: 100%;
}

.carrusel-fullwidth .swiper-slide img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .carrusel-fullwidth .swiper-slide img {
    height: auto;
  }
}


.hero-maternidad {
  position: relative;
  width: 100%;
  height: 100vh; /* Ocupa toda la pantalla al inicio */
  overflow: hidden;
}

.hero-img {
  position: absolute;
  inset: 0;
  background-image: url("../images/slider-maternidad/fotografia-de-maternidad-con-telas-en-villanueva-de-la-canada.jpg");
  background-size: cover;
  background-position: center;
  z-index: 0; /* Queda debajo del contenido */
}


.overlay-texto {
  position: relative;
  z-index: 1; /* Sobre la imagen */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-align: center;
  color: #ffffff;
  padding: 1rem;
}

main, .bloque-crema, .confianza-bloque {
  position: relative;
  z-index: 2; /* Este contenido sube y cubre la hero-img */
  background: white;
  /*background: #f5f0e6;*/
}

.overlay-texto h1 {
  color: #ffffff !important; /* o el dorado que quieras, puedes cambiarlo */
}

.overlay-texto p {
  color: #ffffff !important; /* blanco u otro color distinto al h1 */
}

/* === BLOQUE FLEX IMAGEN-TEXTO: "Estás creando vida" === */
.contenedor-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  max-width: 1048px;
  margin: 0 auto;
  padding: 3rem 1rem;
  flex-wrap: wrap; /* para responsive */
  background-color: transparent;
}

/* Columna izquierda: Imagen */
.columna-imagen {
  flex: 1 1 45%;
}

/* Imagen que se adapta mejor a la altura del texto */
.columna-imagen {
  display: flex;
  align-items: center;
  height: 100%;
}

.columna-imagen img {
  width: 100%;
  max-height: 500px; /* puedes subirlo si quieres aún más vertical */
  object-fit: cover;
  border-radius: 8px;
  display: block;
}

/* Columna derecha: Texto */
.columna-texto {
  flex: 1 1 45%;
}

.columna-texto h2 {
  font-size: 2rem;
  margin-bottom: 1rem;
}

.columna-texto p {
  font-size: 1.1rem;
  line-height: 1.6;
}

/* Responsive: columnas apiladas en móvil */
@media screen and (max-width: 768px) {
  .contenedor-flex {
    flex-direction: column;
  }
}

/* === GALERÍA ANCHA CON IMAGEN CENTRAL SEPARADA === */
.galeria-maternidad-ancha {
  width: 100vw;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.galeria-fila-3 {
  display: flex;
  width: 100%;
  padding: 0;
  box-sizing: border-box;
}

.columna-texto p:last-of-type {
  margin-bottom: 2rem;
}
.galeria-columna {
  flex: 1;
  overflow: hidden;
}

.galeria-columna img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* SOLO la imagen del centro tiene margen lateral */
.galeria-columna-central {
  margin: 0 1rem;
}

/* Responsive: en móvil, se apilan con espacio */
@media screen and (max-width: 768px) {
  .galeria-fila-3 {
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
  }

  .galeria-columna-central {
    margin: 0;
  }
}

/* === SECCIÓN PASO A PASO: 3 columnas con iconos === */
.paso-a-paso-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 2rem;
}

.paso-columna {
  text-align: center;
}

.paso-columna h3 {
  font-size: 1.5rem;
  margin-top: 1rem;
  color: #333;
}

.paso-columna p {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #555;
  margin-top: 0.5rem;
}

.icono-guia {
  width: 60px;
  height: 60px;
}

/* Responsive: columnas apiladas en móvil */
@media screen and (max-width: 768px) {
  .paso-a-paso-grid {
    grid-template-columns: 1fr;
  }

  .paso-columna {
    margin-bottom: 2rem;
  }
}

/* === SECCIÓN PASO A PASO: 3 columnas con iconos Font Awesome === */
.paso-a-paso-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 2rem;
}

.paso-columna {
  text-align: center;
}

.paso-columna h3 {
  font-size: 1.5rem;
  margin-top: 1rem;
  color: #333;
}

.paso-columna p {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #555;
  margin-top: 0.5rem;
}

/* Iconos en dorado */
.icono-guia {
  font-size: 48px;
  color: #b48a60; /* dorado suave */
  margin-bottom: 0.5rem;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .paso-a-paso-grid {
    grid-template-columns: 1fr;
  }

  .paso-columna {
    margin-bottom: 2rem;
  }
}

.parrafo-ancho {
  max-width: 800px;
  margin: 0 auto;
  font-size: 1.1rem;
  line-height: 1.6;
  padding: 1rem 0 2rem;
  color: #444;
}

.centrado {
  text-align: center;
}

.imagen-circular {
  width: 100%;
  max-width: 350px;
  aspect-ratio: 3/4;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto;
  display: block;
  box-shadow: 0 0 10px rgba(0,0,0,0.05);
}


/* Estilo para la sección de ¿por qué ahora?*/
.texto-urgencia h2 {
  font-size: 1.8rem;
  color: #9b8a4d; /* tu dorado cálido */
  margin-bottom: 0.5rem;
}

.texto-urgencia p {
  max-width: 700px;
  margin: 0 auto;
  font-size: 1.1rem;
  line-height: 1.6;
  color: #444;
}

/* === BLOQUE DE RESEÑA DE CLIENTA MATERNIDAD === */
.bloque-resena {
  max-width: 700px;
  margin: 0 auto;
  padding: 2rem 1rem;
  text-align: center;
  font-size: 1.05rem;
  color: #444;
}

.resena-cabecera {
  margin-bottom: 1rem;
}

.nombre-cliente {
  font-weight: 600;
  font-size: 1.2rem;
  margin: 0;
  color: #333;
}

.estrellas {
  color: #f2b01e; /* color dorado para estrellas */
  font-size: 1.3rem;
  letter-spacing: 0.1rem;
  margin: 0.3rem 0;
}

.fecha-resena {
  font-size: 0.9rem;
  color: #999;
}

.texto-resena {
  font-style: italic;
  line-height: 1.6;
  color: #555;
}

/* === BLOQUE DE DETALLES DE TRABAJO === */
.bloque-condiciones h2 {
  color: #9b8a4d; /* mismo dorado que los otros títulos */
  font-size: 1.8rem;
  margin-bottom: 1rem;
}

.parrafo-ancho {
  max-width: 800px;
  margin: 0 auto;
  font-size: 1.1rem;
  line-height: 1.6;
  padding: 1rem 0 2rem;
  color: #444;
}

.centrado {
  text-align: center;
}

/* === SECCIÓN CARRUSEL PANTALLA COMPLETA === */
.galeria-premama-carrusel {
  width: 100vw;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: transparent; /* o blanco si quieres continuidad */
  margin-top: 3rem;
}

/* === LISTADO DOBLE: ¿Es para ti esta sesión? === */
.grid-doble-lista {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 2rem;
}

.columna-si,
.columna-no {
  flex: 1 1 45%;
}

.grid-doble-lista h3 {
  color: #b48a60; /* tono dorado cálido */
  font-size: 1.2rem;
  margin-bottom: 1rem;
}

.grid-doble-lista ul {
  list-style: none;
  padding: 0;
}

.grid-doble-lista li {
  position: relative;
  padding-left: 1.6em;
  margin-bottom: 1rem;
  font-size: 1.05rem;
  color: #444;
}

.columna-si li::before {
  content: "✔️";
  position: absolute;
  left: 0;
}

.columna-no li::before {
  content: "✖️";
  position: absolute;
  left: 0;
}

/* === CUATRO PASOS VISUALES: ASÍ TRABAJO CONTIGO === */
.grid-cuatro-pasos {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1.2rem;
  margin-top: 2rem;
  text-align: center;
}

.paso {
  flex: 1 1 22%;
  background-color: #f8f4ef; /* tono crema más visible */
  padding: 1.5rem 1rem;
  border-radius: 8px;
  /* Opcional: elimina el borde gris si no quieres sombra */
  box-shadow: none;
}

.icono-paso i {
  font-size: 2.5rem;
  margin-bottom: 1rem;
  color: #b48a60; /* tu dorado elegante */
}

.paso h3 {
  font-size: 1.2rem;
  color: #b48a60;
  margin-bottom: 0.5rem;
}

.paso p {
  font-size: 1.05rem;
  color: #444;
  line-height: 1.6;
}



/* === NEWSLETTER FOOTER – ESTRUCTURA HORIZONTAL Y COMPACTA === */
/* Ajusta el espaciado del título */

.newsletter-section.footer {
  padding: 2rem 1rem;
  background-color: transparent;
  text-align: center;
}

#newsletter-footer-form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.newsletter-titulo {
  font-size: 1.4rem;
  margin: 0 0 1rem 0;
  color: #b48a60;
}

/* Input + botón en la misma fila */
.newsletter-inputs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.newsletter-inputs input[type="text"],
.newsletter-inputs input[type="email"] {
  padding: 0.6rem 0.8rem;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  flex: 1 1 200px;
  max-width: 220px;
}

.newsletter-inputs button {
  padding: 0.6rem 1.2rem;
  font-size: 1rem;
  background-color: #9b8a4d; 
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  flex: 1 1 150px;
  
}

/* Casilla de verificación centrada */
.newsletter-checkbox {
  margin-top: 0.8rem;
  text-align: center;
  font-size: 0.9rem;
}

.newsletter-checkbox input[type="checkbox"] {
  margin-right: 0.4rem;
}


.newsletter-inputs input,
.newsletter-inputs button {
  box-sizing: border-box; /* ✅ evita que padding estire el campo más de la cuenta */
  height: auto;           /* ✅ asegura que en escritorio se adapta sin exagerar */
}

/* Responsive */
@media screen and (max-width: 600px) {
  .newsletter-inputs {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.6rem !important;
  }

  .newsletter-inputs input,
  .newsletter-inputs button {
    width: 100%  !important;
    max-width: none !important;
    height: auto !important;             /* ✅ controla la altura */
    padding: 0.3rem 0.6rem !important;   /* ✅ reduce un poco el relleno */
    font-size: 1rem !important;
    line-height: 1.2 !important;
    box-sizing: border-box !important;
    text-align: center;
  }
}

/* === LOGO FOOTER === */

.logo-footer {
  display: block;
  margin: 1.5rem auto 1rem auto; /* margen arriba y abajo */
  max-width: 125px;
  width: 100%;
  height: auto;
}

footer .newsletter-section {
  border-top: none !important;
  margin-top: 0 !important;
  padding-top: 0.5rem !important; /* ✅ en lugar de margin-top */
}


/* Responsive: ajusta tamaño del logo en pantallas pequeñas */
@media screen and (max-width: 600px) {
  .logo-footer {
    max-width: 75px !important;
  }
}

/* === CTA FINALES EN BLOQUES CREMA === */
.parrafo-ancho {
  max-width: 700px;
  margin: 0 auto 1.5rem auto;
  font-size: 1.05rem;
  line-height: 1.6;
  color: #444;
}

/* === BLOQUE CREMA PERSONALIZADO === */
.bloque-crema-personalizado {
  background-color: #fefaf3;
  padding: 3em 1em;
  margin-top: 2.5rem; /* 🔼 Espaciado con el bloque anterior */
}
/* === FINAL BLOQUE CREMA PERSONALIZADO === */

.boton-cta-compacto {
  margin-top: 0.8rem;
}

.bloque-crema .main.centrado {
  padding-bottom: 2rem; /* Ajusta según el espacio que necesites */
}

/* ==== BOTÓN CTA dentro del cuerpo: fuerza estilos frente a Brevo ==== */
.newsletter-section.cuerpo .botón-cta {
  background-color: #b48a60!important; /* tu color dorado */
  color: white !important;
  font-size: 1rem !important;
  padding: 0.6rem 1.2rem !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 500;
  transition: background-color 0.3s ease;
}

/* === BLOQUE boton suscribirme newsletter cuerpo === */
.newsletter-section.cuerpo .botón-cta:hover {
  background-color: #b48a60 !important; /* un dorado más oscuro al pasar */
}



.bloque-estudio-final-blanco {
  background-color: #ffffff;
}

.estudio-contenido-blanco {
  max-width: 800px;
  margin: 0 auto;
  padding: 2rem 1rem;  /* ✅ nuevo */
  font-family: "Times New Roman", serif;
  text-align: center;
}

.bloque-estudio-final-blanco h2 {
  font-size: 1.8em;
  color: #9e8a42;
  margin-bottom: 1em;
}

.bloque-estudio-final-blanco p {
  font-size: 1.15em;
  color: #444;
  line-height: 1.7;
  margin-bottom: 1.5em;
}

.bloque-estudio-final-blanco .boton-cta {
  margin-top: 2rem;
  margin-bottom: 3rem;  /* ✅ nuevo */
}

.parrafo-ancho {
  max-width: 700px;
  margin: 0 auto;
  font-size: 1.1rem;
  line-height: 1.6;
  color: #444;
}

/* HERO NEWBORN - estructura de texto abajo a la izquierda */
.hero-newborn {
  position: relative;
  width: 100%;
  height: 100vh;
  background-image: url('../images/slider-newborn/sesion-newborn-culito-en-pompa-bebe-villanueva-de-la-canada.jpg'); /* Ajusta esta ruta */
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
}

.hero-texto-newborn {
  padding: 3rem 2rem;
  max-width: 90%;
}

/* Títulos e intro */
.titulo-pagina-izquierda {
  font-size: 2rem;
  color: #b48a60 !important;
  margin: 0 0 1rem 0;
  text-align: left;
}

.h2-subtle-landing {
  font-size: 1.1rem;
  font-style: italic;
  color: #9e8a42 !important;
  margin-bottom: 1.5rem;
  text-align: left;
}

/* Botón izquierdo */
.boton-cta-izquierda {
  background-color: #9e8a42;
  color: white;
  padding: 0.75em 1.8em;
  border-radius: 25px;
  text-decoration: none;
  font-family: "Times New Roman", serif;
  font-size: 1rem;
  display: inline-block;
  transition: background-color 0.3s ease;
}

.boton-cta-izquierda:hover {
  background-color: #5a5030;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .hero-newborn {
    align-items: center;
    text-align: center;
   
  }

  .hero-texto-newborn {
    padding: 2rem 1rem;
    align-items: center;
    
   
  }

  .titulo-pagina-izquierda,
  .h2-subtle-landing,
  .boton-cta-izquierda {
    text-align: center;
    margin: 0 auto;
  }
}

/* === SUBMENÚ DESPLEGABLE PARA INFORMACIÓN === */
.nav-menu li.submenu {
  position: relative;
}

.nav-menu li.submenu .submenu-items {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background-color: #fff;
  padding: 0.5em 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.05);
  border: 1px solid #ddd;
  border-radius: 6px;
  z-index: 9999;
  min-width: 180px;
}

.nav-menu li.submenu:hover .submenu-items {
  display: block;
}

.submenu-items li {
  padding: 0.5em 1.2em;
}

.submenu-items li a {
  color: #5a5030;
  font-size: 0.95em;
  display: block;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.submenu-items li a:hover {
  background-color: #fefaf3;
  color: #9e8a42;
}

/* === FORZAR CARRUSEL A OCUPAR TODA LA PANTALLA === */

.swiper-container {
  width: 100vw !important;
  height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  position: relative !important;
  top: 0;
  left: 0;
  padding: 0 !important;
  overflow: hidden;
  z-index: 0;
  /*background: red;*/
}

.swiper-wrapper {
  width: 100%;
  height: 100%;
}

.swiper-slide {
  width: 100%;
  height: 100%;
  display: flex !important;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
}

.swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ==== Estilo exclusivo para el carrusel de la portada ==== */
#slide {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  position: relative;
  margin: 0;
  padding: 0;
}

#slide .swiper-container {
  width: 100%;
  height: 100%;
}

#slide .swiper-slide {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

#slide .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ====== SOLO para la página de inicio ====== */

body.home {

	margin: 0;
	padding: 0;
}

body.home header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.25); /* blanco semitransparente */
  z-index: 10;
  padding: 0;
  margin: 0;
  box-shadow: 0 1px 10px rgba(0,0,0,1); /*sombra sutil*/
}

body.home header .container {
  padding: 1em 2em;
}

body.home header img {
  height: auto;
  max-height: 70px;
}

body.home #slide {
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  position: relative;
  margin: 0;
  padding: 0;
}

body.home .swiper-container {
  width: 100%;
  height: 100%;
  position: relative;
  margin: 0;
  padding: 0;
  max-width: none;
  overflow: hidden;
}
body.home .swiper-wrapper {
  width: 100%;
  height: 100%;
}
body.home .swiper-slide {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow: hidden;
}
body.home .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.h1-home {
  margin: 0 !important;
  padding: 0 !important;
}

body.home header .header-container {
  padding: 0.5em 1em;
}

.h1-home {
  margin: 0 !important;
  padding: 0 !important;
}

#slide {
  margin: 0 !important;
  padding: 0 !important;
}

body.home .swiper-container {
  padding-top: 0 !important;
}

@media (max-width: 768px) {
  body.home header img {
    max-height: 60px;
  }
}

@media (min-width: 1024px) {
  body.home header img {
    max-height: 100px;
  }
}


/* HERO NAVIDAD - estructura de texto abajo a la izquierda */

/* Home editorial: jerarquía del carrusel, paleta cálida y tipografía contemporánea */
body.home {
  --home-cream: #f5efe5;
  --home-paper: #fbf8f2;
  --home-brown: #554638;
  --home-gold: #b59a70;
}

body.home .main-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  background: rgba(255, 255, 255, 0.25);
  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.12);
  backdrop-filter: none;
  transition: background-color 220ms ease, box-shadow 220ms ease;
}

body.home .header-container {
  max-width: 1380px;
  min-height: 76px;
}

/* Cabecera editorial de la home */
body.home .header-container {
  flex-direction: row;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  padding: 0.35rem clamp(1.25rem, 4vw, 3.5rem);
}

body.home .logo {
  width: clamp(136px, 12vw, 160px);
  max-width: none;
}

body.home .logo img {
  width: 100%;
  max-height: 70px;
  object-fit: contain;
}

body.home .menu-toggle {
  display: none;
}

body.home .nav-principal {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 1 1 auto;
  gap: clamp(1rem, 2vw, 1.8rem);
  margin-left: auto;
  padding: 0;
}

body.home .nav-menu {
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: clamp(0.8rem, 1.55vw, 1.45rem);
  margin: 0;
}

body.home .nav-menu > li {
  margin: 0;
  white-space: nowrap;
}

body.home .nav-menu > li > a {
  position: relative;
  display: inline-block;
  padding: 0.5rem 0 0.4rem;
  color: var(--home-brown);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.085em;
  line-height: 1.35;
  text-decoration: none;
}

body.home .nav-menu > li > a::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: var(--home-gold);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}

body.home .nav-menu > li > a:hover::after,
body.home .nav-menu > li > a:focus-visible::after {
  transform: scaleX(1);
}

body.home .nav-menu > li > a:focus-visible,
body.home .social-header a:focus-visible {
  outline: 2px solid var(--home-gold);
  outline-offset: 4px;
}

body.home .social-header {
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 0.65rem;
  margin: 0;
}

body.home .social-header img {
  display: block;
  width: 21px;
  height: 21px;
  opacity: 0.72;
  transition: opacity 180ms ease, transform 180ms ease;
}

body.home .social-header a:hover img {
  opacity: 1;
  transform: translateY(-2px);
}

body.home .header-call {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.45rem;
  margin-left: 0.8rem;
  padding: 0.55rem 0.8rem;
  border: 1px solid rgba(85, 70, 56, 0.36);
  border-radius: 999px;
  background: rgba(251, 248, 242, 0.55);
  color: var(--home-brown);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.025em;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

body.home .header-call svg {
  width: 15px;
  height: 15px;
  fill: currentColor;
}

body.home .header-call-number {
  margin-left: 0.15rem;
  font-size: 0.64rem;
  font-weight: 500;
  letter-spacing: 0.015em;
}

body.home .header-call:hover,
body.home .header-call:focus-visible {
  border-color: var(--home-brown);
  background: rgba(251, 248, 242, 0.88);
  transform: translateY(-1px);
}

body.home .header-call:focus-visible {
  outline: 2px solid var(--home-gold);
  outline-offset: 3px;
}

body.home .nav-menu li.submenu .submenu-items {
  border: 1px solid rgba(85, 70, 56, 0.12);
  border-radius: 8px;
  background: rgba(251, 248, 242, 0.98);
}

body.home .nav-menu li.submenu:hover .submenu-items,
body.home .nav-menu li.submenu:focus-within .submenu-items {
  display: block;
}

body.home .nav-menu li.submenu .submenu-items a {
  color: var(--home-brown);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0;
  line-height: 1.45;
  white-space: normal;
}

@media (max-width: 900px) {
  body.home .header-container {
    position: relative;
    width: 100%;
    max-width: none;
    min-height: 72px;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.4rem 1.25rem;
    box-sizing: border-box;
  }

  body.home .logo {
    width: clamp(108px, 18vw, 132px);
  }

  body.home .logo img {
    max-height: 66px;
  }

  body.home .menu-toggle {
    display: flex;
    order: 3;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-left: auto;
    padding: 0.55rem;
    border: 1px solid rgba(85, 70, 56, 0.22);
    border-radius: 50%;
    background: rgba(251, 248, 242, 0.7);
  }

  body.home .header-call {
    order: 2;
    margin-left: auto;
    padding: 0.55rem 0.7rem;
    font-size: 0.66rem;
  }

  body.home .menu-toggle {
    margin-left: 0;
  }

  body.home .nav-principal {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    z-index: 1001;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0.5rem 1.25rem 1.1rem;
    border-top: 1px solid rgba(85, 70, 56, 0.12);
    border-radius: 0 0 12px 12px;
    background: rgba(251, 248, 242, 0.98);
    box-shadow: 0 14px 28px rgba(45, 34, 24, 0.12);
    backdrop-filter: blur(12px);
    box-sizing: border-box;
  }

  body.home .menu-toggle[aria-expanded="true"] + .nav-principal {
    display: flex;
  }

  body.home .nav-principal.active {
    display: flex;
  }

  body.home .nav-menu {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
  }

  body.home .nav-menu > li {
    margin: 0;
    border-bottom: 1px solid rgba(85, 70, 56, 0.1);
  }

  body.home .nav-menu > li > a {
    display: block;
    padding: 0.8rem 0.15rem;
    font-size: 0.78rem;
  }

  body.home .nav-menu > li > a::after {
    display: none;
  }

  body.home .nav-menu li.submenu .submenu-items {
    display: block;
    position: static;
    min-width: 0;
    padding: 0 0 0.5rem 0.85rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  body.home .nav-menu li.submenu .submenu-items li {
    margin: 0;
    padding: 0;
  }

  body.home .nav-menu li.submenu .submenu-items a {
    padding: 0.45rem 0.15rem;
  }

  body.home .social-header {
    justify-content: flex-start;
    gap: 0.85rem;
    margin: 1rem 0 0;
    padding-left: 0.1rem;
  }

  body.home .social-header img {
    width: 23px;
    height: 23px;
  }
}

@media (max-width: 560px) {
  body.home .header-call-number {
    display: none;
  }
}

@media (max-width: 360px) {
  body.home .header-container {
    gap: 0.55rem;
    padding-right: 0.85rem;
    padding-left: 0.85rem;
  }

  body.home .logo {
    width: clamp(78px, 25vw, 88px);
  }

  body.home .header-call {
    gap: 0.3rem;
    padding: 0.5rem 0.55rem;
    font-size: 0.62rem;
  }
}

/* Página Sobre mí: composición editorial fine art, limitada a about.html */
body.page-about {
  --about-cream: #fbf8f2;
  --about-paper: #f5efe5;
  --about-brown: #554638;
  --about-gold: #b59a70;
  background: var(--about-cream);
  color: var(--about-brown);
}

body.page-about .about-content {
  overflow: hidden;
}

body.page-about .sobre-mi {
  padding: clamp(4.5rem, 8vw, 7.5rem) clamp(1.25rem, 5vw, 5rem);
  background: var(--about-cream);
}

body.page-about .sobre-mi-contenido {
  display: grid;
  grid-template-columns: minmax(250px, 0.86fr) minmax(0, 1.14fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 6.5rem);
  width: min(1180px, 100%);
  max-width: none;
}

body.page-about .sobre-mi-img {
  position: relative;
  min-width: 0;
  text-align: left;
}

body.page-about .sobre-mi-img img {
  display: block;
  width: 100%;
  max-width: none;
  aspect-ratio: 700 / 874;
  object-fit: cover;
  object-position: center 36%;
  border-radius: 2px 2px 86px 2px;
  box-shadow: 0 22px 60px rgba(55, 43, 32, 0.12);
}

body.page-about .sobre-mi-texto {
  min-width: 0;
  color: var(--about-brown);
  font-family: "DM Sans", Arial, sans-serif;
}

body.page-about .sobre-mi-texto h1 {
  max-width: 10ch;
  margin: 0 0 1.5rem;
  color: var(--about-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(3.5rem, 7vw, 6.25rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.88;
}

body.page-about .sobre-mi-texto h1::after {
  display: block;
  width: 3.5rem;
  height: 1px;
  margin-top: 1.5rem;
  background: var(--about-gold);
  content: "";
}

body.page-about .sobre-mi-texto p {
  max-width: 62ch;
  margin: 0 0 1rem;
  color: #62564b;
  font-size: clamp(0.96rem, 1.15vw, 1.06rem);
  line-height: 1.85;
}

body.page-about .sobre-mi-texto p:first-of-type {
  margin-bottom: 1.15rem;
  color: var(--about-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.45rem, 2.15vw, 1.9rem);
  font-weight: 500;
  line-height: 1.3;
}

body.page-about .confianza-bloque {
  padding: clamp(4.5rem, 8vw, 7.5rem) clamp(1.25rem, 5vw, 5rem);
  background: var(--about-paper);
}

body.page-about .confianza-contenido {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 6rem);
  width: min(1180px, 100%);
  max-width: none;
}

body.page-about .confianza-texto {
  min-width: 0;
  color: var(--about-brown);
  font-family: "DM Sans", Arial, sans-serif;
}

body.page-about .confianza-texto h2,
body.page-about .reseñas-section h2 {
  margin: 0 0 1.75rem;
  color: var(--about-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.5rem, 4.5vw, 4rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 0.98;
}

body.page-about .confianza-texto ul {
  display: grid;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.page-about .confianza-texto li {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  align-items: start;
  gap: 0.75rem;
  margin: 0;
  color: #62564b;
  font-size: 1rem;
  line-height: 1.7;
}

body.page-about .about-list-marker {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 1px solid rgba(181, 154, 112, 0.5);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.58);
  filter: grayscale(0.75);
  font-size: 0.92rem;
}

body.page-about .confianza-imagen {
  min-width: 0;
  text-align: right;
}

body.page-about .confianza-imagen img {
  display: block;
  width: 100%;
  max-width: none;
  aspect-ratio: 874 / 699;
  object-fit: cover;
  object-position: 58% center;
  border-radius: 2px 72px 2px 2px;
  box-shadow: 0 22px 60px rgba(55, 43, 32, 0.1);
}

body.page-about .reseñas-section {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(4.5rem, 8vw, 7rem) clamp(1.25rem, 5vw, 5rem);
  border: 0;
  border-radius: 0;
  background: var(--about-brown);
  box-shadow: none;
  box-sizing: border-box;
}

body.page-about .reseñas-section h2 {
  color: var(--about-cream);
  text-align: center;
}

body.page-about .reseña.active {
  position: relative;
  width: min(820px, 100%);
  margin: 0 auto;
  padding: clamp(1.5rem, 3vw, 2.4rem);
  border: 1px solid rgba(251, 248, 242, 0.18);
  border-radius: 3px 3px 30px 3px;
  background: rgba(255, 255, 255, 0.045);
  box-sizing: border-box;
  text-align: center;
}

body.page-about .reseña p {
  margin: 0 auto;
  color: var(--about-cream);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.45rem, 2.5vw, 2.1rem);
  font-style: normal;
  line-height: 1.45;
}

body.page-about .reseña .estrellas {
  margin: 1.5rem 0 0.75rem;
  color: #d8bd8f;
  letter-spacing: 0.18em;
}

body.page-about .reseña span {
  margin-top: 0.4rem;
  color: rgba(251, 248, 242, 0.78);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.page-about .bloque-cierre {
  padding: clamp(4.5rem, 8vw, 7.5rem) 1.25rem;
  background: var(--about-cream);
}

body.page-about .frase-final {
  max-width: 24ch;
  margin: 0 auto 2rem;
  color: var(--about-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.8rem, 3.4vw, 2.8rem);
  font-style: normal;
  line-height: 1.28;
}

body.page-about .boton-flickr {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  padding: 0.75rem 1.6rem;
  border: 1px solid var(--about-brown);
  border-radius: 999px;
  background: var(--about-brown);
  color: var(--about-cream);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

body.page-about .boton-flickr::after {
  content: "↗";
  font-size: 1rem;
  line-height: 1;
}

body.page-about .boton-flickr:hover,
body.page-about .boton-flickr:focus-visible {
  transform: translateY(-2px);
  background: transparent;
  color: var(--about-brown);
}

body.page-about .boton-flickr:focus-visible {
  outline: 2px solid var(--about-gold);
  outline-offset: 4px;
}

@media (max-width: 760px) {
  body.page-about .sobre-mi {
    padding-top: 3.5rem;
  }

  body.page-about .sobre-mi-contenido,
  body.page-about .confianza-contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 2.5rem;
  }

  body.page-about .sobre-mi-img {
    width: min(520px, 100%);
    margin: 0 auto;
  }

  body.page-about .sobre-mi-img img {
    max-height: 680px;
  }

  body.page-about .sobre-mi-texto h1 {
    font-size: clamp(3.2rem, 13vw, 5rem);
  }

  body.page-about .confianza-imagen {
    width: min(620px, 100%);
    margin: 0 auto;
  }
}

@media (max-width: 420px) {
  body.page-about .sobre-mi,
  body.page-about .confianza-bloque {
    padding-right: 1rem;
    padding-left: 1rem;
  }

  body.page-about .confianza-texto li {
    grid-template-columns: 1.8rem minmax(0, 1fr);
    gap: 0.6rem;
    font-size: 0.94rem;
  }

  body.page-about .about-list-marker {
    width: 1.8rem;
    height: 1.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-about .boton-flickr {
    transition: none;
  }
}

body.home .menu-toggle {
  padding: 0.55rem;
  border: 0;
  border-radius: 4px;
  background: transparent;
}

body.home .home-hero-eyebrow {
  margin: 0 0 1.15rem;
  color: #f0dfc4;
  font-size: clamp(0.68rem, 0.9vw, 0.82rem);
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.5;
}

body.home .home-hero-title {
  max-width: 980px;
  margin: 0;
  padding: 0;
  color: #fffaf2;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(3rem, 6vw, 6.1rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 0.95;
  text-wrap: balance;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.22);
}

body.home .home-hero-link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1.7rem;
  padding: 0.85rem 1.25rem;
  border: 1px solid rgba(255, 250, 242, 0.8);
  border-radius: 999px;
  background: var(--home-cream);
  color: var(--home-brown);
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.35;
  text-decoration: none;
  transition: background-color 180ms ease, transform 180ms ease;
}

body.home .home-hero-link:hover {
  background: #fff;
  transform: translateY(-2px);
}

body.home .home-hero-link:focus-visible {
  outline: 3px solid var(--home-gold);
  outline-offset: 4px;
}

/* Presentación de la home: composición editorial adaptable */
body.home .bloque-maternidad {
  margin: 0;
  padding: clamp(4.5rem, 9vw, 8rem) clamp(1.25rem, 6vw, 6rem);
  background: var(--home-cream);
}

body.home .contenedor-maternidad {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(300px, 0.78fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 7rem);
  max-width: 1240px;
}

body.home .texto-maternidad {
  min-width: 0;
  color: var(--home-brown);
  font-family: "DM Sans", Arial, sans-serif;
}

body.home .texto-maternidad h2 {
  max-width: 11ch;
  margin: 0 0 1.5rem;
  color: var(--home-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.8rem, 5vw, 5rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 0.96;
  text-wrap: balance;
}

body.home .texto-maternidad p {
  max-width: 54ch;
  margin: 0 0 1rem;
  color: #62574c;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(1rem, 1.15vw, 1.12rem);
  line-height: 1.8;
}

body.home .imagen-maternidad {
  width: 100%;
  overflow: hidden;
  text-align: initial;
}

body.home .imagen-maternidad img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  object-position: center 42%;
  border-radius: 2px;
  box-shadow: 0 22px 55px rgba(68, 52, 38, 0.14);
}

body.home .bloque-maternidad .boton-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  margin-top: 0.65rem;
  padding: 0.75em 2em;
  border: 1px solid var(--home-brown);
  border-radius: 30px;
  background: var(--home-brown);
  color: var(--home-paper);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 1em;
  font-weight: 600;
  letter-spacing: 0.11em;
  line-height: normal;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease;
}

body.home .bloque-maternidad .boton-cta:hover {
  background: #40352c;
  color: var(--home-paper);
}

body.home .bloque-maternidad .boton-cta:focus-visible {
  outline: 3px solid var(--home-gold);
  outline-offset: 4px;
}

/* Catálogo de sesiones de la home */
body.home .sesiones-home#content {
  width: 100%;
  max-width: none;
  margin: 0;
  scroll-margin-top: 0;
  padding: clamp(4.5rem, 8vw, 7rem) 0 5rem;
  box-sizing: border-box;
  background: var(--home-paper);
}

@media (max-width: 900px) {
  body.home .sesiones-home#content {
    scroll-margin-top: 2rem;
  }
}

@media (min-width: 901px) and (max-width: 1200px) {
  body.home .sesiones-home#content {
    scroll-margin-top: 1rem;
  }
}

body.home .sesiones-home > .h2-subtitulo {
  max-width: 1200px;
  margin: 0 auto clamp(2.25rem, 4vw, 3.75rem);
  padding: 0 clamp(1.25rem, 5vw, 4rem);
  color: var(--home-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.8rem, 5.5vw, 5rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 0.98;
  text-align: center;
  text-wrap: balance;
}

body.home .sesiones-home .grid-sesiones {
  padding: 0 clamp(1.25rem, 5vw, 4rem);
  background: transparent;
}

body.home .sesiones-home .galeria-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.75rem) clamp(1rem, 2.2vw, 2rem);
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
}

body.home .sesiones-home .galeria-item {
  min-width: 0;
  display: block;
  padding: 10px 10px 0;
  overflow: hidden;
  border: 1px solid rgba(85, 70, 56, 0.08);
  border-radius: 16px;
  background: #fff;
  color: var(--home-brown);
  text-align: left;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(68, 52, 38, 0.09);
  transition: transform 220ms ease, box-shadow 220ms ease;
}

body.home .sesiones-home .galeria-item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 9px;
}

body.home .sesiones-home .galeria-item h3 {
  margin: 0;
  padding: 0.9rem 0.4rem 1.7rem;
  color: var(--home-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.55rem, 2.2vw, 2.1rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.1;
  text-align: center;
}

body.home .sesiones-home .galeria-item:hover,
body.home .sesiones-home .galeria-item:focus-visible {
  transform: translateY(-5px);
  box-shadow: 0 15px 32px rgba(68, 52, 38, 0.15);
}

body.home .sesiones-home .galeria-item:focus-visible {
  outline: 3px solid var(--home-gold);
  outline-offset: 5px;
}

body.home .sesiones-home .bloque-flickr-centro {
  max-width: 1200px;
  margin: clamp(3.5rem, 7vw, 6rem) auto 0;
  padding: 0 clamp(1.25rem, 5vw, 4rem);
  text-align: center;
}

body.home .sesiones-home .bloque-flickr-centro h2 {
  max-width: 18ch;
  margin: 0 auto;
  color: var(--home-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.2rem, 4.2vw, 3.8rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1;
  text-wrap: balance;
}

body.home .sesiones-home .bloque-flickr-centro .boton-cta {
  margin-top: 1.25rem;
  border-radius: 30px;
  background: var(--home-brown);
  color: var(--home-paper);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}

body.home .sesiones-home .bloque-flickr-centro .boton-cta:hover {
  background: #40352c;
}

/* Reseñas de la home: cita destacada con paleta cálida */
body.home .home-reviews-wrap#reviews {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background: var(--home-paper);
}

body.home .reseñas-home {
  width: calc(100% - 2.5rem);
  max-width: 1060px;
  margin: clamp(3.5rem, 7vw, 6rem) auto;
  padding: clamp(2rem, 5vw, 4.5rem);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--home-brown);
  font-family: "DM Sans", Arial, sans-serif;
  text-align: center;
}

body.home .reseñas-home h2 {
  margin: 0 0 clamp(1.75rem, 4vw, 3rem);
  color: var(--home-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.8rem, 5.4vw, 4.8rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 0.98;
  text-wrap: balance;
}

body.home .reseñas-home .reseñas-carousel {
  min-height: clamp(270px, 26vw, 330px);
}

body.home .reseñas-home .reseña {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  min-height: inherit;
  padding: clamp(1.5rem, 4.5vw, 3.5rem);
  border: 1px solid rgba(85, 70, 56, 0.22);
  border-radius: 18px;
  background: #fffdf9;
  box-shadow: 0 12px 34px rgba(68, 52, 38, 0.08);
  box-sizing: border-box;
}

body.home .reseñas-home .reseña p {
  max-width: 58ch;
  margin: 0;
  color: var(--home-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.35rem, 2.2vw, 1.8rem);
  font-style: normal;
  line-height: 1.45;
  text-wrap: pretty;
}

body.home .reseñas-home .reseña .estrellas {
  margin: 0;
  color: var(--home-gold);
  font-size: 0.95rem;
  letter-spacing: 0.2em;
}

body.home .reseñas-home .reseña span {
  margin: 0;
  color: #76695c;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-transform: uppercase;
}

body.home .reseñas-home .flechas {
  gap: 0.8rem;
  margin-top: 1.5rem;
}

body.home .reseñas-home .flechas button {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(85, 70, 56, 0.42);
  border-radius: 50%;
  background: transparent;
  color: var(--home-brown);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 1.5rem;
  line-height: 1;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

body.home .reseñas-home .flechas button:hover {
  border-color: var(--home-brown);
  background: var(--home-brown);
  color: var(--home-paper);
}

body.home .reseñas-home .flechas button:focus-visible {
  outline: 3px solid var(--home-gold);
  outline-offset: 3px;
}

@media (max-width: 600px) {
  body.home .reseñas-home {
    width: calc(100% - 1.5rem);
    margin: 3rem auto;
    padding: 2rem 0.25rem;
  }

  body.home .reseñas-home .reseñas-carousel {
    min-height: 340px;
  }

  body.home .reseñas-home .reseña {
    gap: 0.8rem;
    padding: 1.5rem 1.15rem;
    border-radius: 15px;
  }

  body.home .reseñas-home .reseña p {
    font-size: 1.35rem;
    line-height: 1.42;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home .reseñas-home .reseña,
  body.home .reseñas-home .flechas button {
    transition: none;
  }
}

/* Paleta compartida para la newsletter del pie en todas las páginas */
.footer-crema .newsletter-titulo {
  color: #554638;
}

.footer-crema .newsletter-inputs input[type="text"],
.footer-crema .newsletter-inputs input[type="email"] {
  border-color: #d6cbbb;
  background-color: #fffdf9;
  color: #554638;
}

.footer-crema .newsletter-inputs input[type="text"]:focus-visible,
.footer-crema .newsletter-inputs input[type="email"]:focus-visible {
  outline: 3px solid #b59a70;
  outline-offset: 2px;
}

.footer-crema .newsletter-inputs button {
  background-color: #554638;
  color: #fffaf2;
}

.footer-crema .newsletter-inputs button:hover {
  background-color: #40352c;
}

.footer-crema .newsletter-checkbox {
  color: #706153;
}

.footer-crema .newsletter-checkbox a {
  color: #554638 !important;
  text-underline-offset: 2px;
}

/* Newsletter de la home: conservar el formulario y reforzar su jerarquía */
body.home .newsletter-home {
  margin: 0;
  padding: clamp(4.5rem, 8vw, 7rem) clamp(1.25rem, 5vw, 4rem);
  background: var(--home-cream);
  color: var(--home-brown);
  font-family: "DM Sans", Arial, sans-serif;
}

body.home .newsletter-home .newsletter-container {
  max-width: 720px;
}

body.home .newsletter-home .newsletter-container h2 {
  margin: 0 auto 1rem;
  color: var(--home-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.7rem, 5.2vw, 4.8rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 0.98;
  text-align: center;
  text-wrap: balance;
}

body.home .newsletter-home .newsletter-container h2::after {
  content: "";
  display: block;
  width: 3.25rem;
  height: 2px;
  margin: 1.2rem auto 0;
  background: var(--home-gold);
}

body.home .newsletter-home .newsletter-container > p {
  max-width: 52ch;
  margin: 0 auto 1.75rem;
  color: #62574c;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(1rem, 1.2vw, 1.1rem);
  line-height: 1.7;
  text-align: center;
}

body.home .newsletter-home input[type="text"],
body.home .newsletter-home input[type="email"] {
  min-height: 50px;
  padding: 0.8rem 1rem;
  border: 1px solid #d6cbbb;
  border-radius: 4px;
  background: #fffdf9;
  color: var(--home-brown);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 1rem;
  text-align: left;
}

body.home .newsletter-home input[type="text"]:focus-visible,
body.home .newsletter-home input[type="email"]:focus-visible,
body.home .newsletter-home input[type="checkbox"]:focus-visible {
  outline: 3px solid var(--home-gold);
  outline-offset: 2px;
}

body.home .newsletter-home form > label {
  display: inline-block;
  max-width: 100%;
  color: #62574c;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.9rem;
  line-height: 1.6;
  text-align: left;
}

body.home .newsletter-home form > label a {
  color: var(--home-brown) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

body.home .newsletter-section.cuerpo.newsletter-home .botón-cta {
  min-height: 48px;
  padding: 0.8rem 1.6rem !important;
  border: 1px solid var(--home-brown) !important;
  border-radius: 30px !important;
  background: var(--home-brown) !important;
  color: var(--home-paper) !important;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.82rem !important;
  font-weight: 600;
  letter-spacing: 0.1em;
}

body.home .newsletter-section.cuerpo.newsletter-home .botón-cta:hover {
  background: #40352c !important;
}

/* CTA del bono regalo: coherente con los botones editoriales de la home */
body.home .regalo-hero .bono-flotante {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  bottom: clamp(1rem, 4vw, 2.5rem);
  min-height: 48px;
  padding: 0.8rem 1.6rem;
  border: 1px solid var(--home-brown);
  border-radius: 30px;
  background: var(--home-brown);
  color: var(--home-paper);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(0.72rem, 1vw, 0.82rem);
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
  transition: background-color 180ms ease, transform 180ms ease;
}

body.home .regalo-hero .bono-flotante:hover {
  transform: translateX(-50%) translateY(-2px);
  background: #40352c;
}

body.home .regalo-hero .bono-flotante:focus-visible {
  outline: 3px solid var(--home-gold);
  outline-offset: 4px;
}

@media (max-width: 560px) {
  body.home .regalo-hero .bono-flotante {
    max-width: calc(100% - 2rem);
    padding: 0.7rem 1.1rem;
    font-size: 0.68rem;
    letter-spacing: 0.065em;
    white-space: normal;
  }
}

body.home .newsletter-home #form-message {
  max-width: 720px;
  margin: 1rem auto 0;
  font-family: "DM Sans", Arial, sans-serif;
  line-height: 1.5;
}

@media (max-width: 600px) {
  body.home .newsletter-home {
    padding: 4rem 1.25rem;
  }

  body.home .newsletter-home .newsletter-container h2 {
    font-size: clamp(2.65rem, 11vw, 3.7rem);
  }

  body.home .newsletter-home .newsletter-container > p {
    font-size: 1rem;
  }

  body.home .newsletter-home form > label {
    font-size: 0.85rem;
  }
}

@media (max-width: 900px) {
  body.home .sesiones-home .galeria-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 1.25rem;
  }

  body.home .sesiones-home .galeria-item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    width: calc((100% - 1.25rem) / 2);
    box-sizing: border-box;
    justify-self: center;
  }
}

@media (max-width: 560px) {
  body.home .sesiones-home#content {
    padding-top: 4rem;
  }

  body.home .sesiones-home > .h2-subtitulo {
    margin-bottom: 1.75rem;
    font-size: clamp(2.65rem, 11vw, 3.7rem);
  }

  body.home .sesiones-home .galeria-grid {
    gap: 1.65rem 0.85rem;
  }

  body.home .sesiones-home .galeria-item h3 {
    padding: 0.7rem 0.25rem 1.35rem;
    font-size: clamp(1.35rem, 6vw, 1.75rem);
  }

  body.home .sesiones-home .galeria-item:last-child:nth-child(odd) {
    width: calc((100% - 0.85rem) / 2);
  }

  body.home .sesiones-home .bloque-flickr-centro {
    margin-top: 3.5rem;
  }
}

@media (max-width: 360px) {
  body.home .sesiones-home .galeria-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  body.home .contenedor-maternidad {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.82fr);
    gap: clamp(1.75rem, 5vw, 3.5rem);
  }

  body.home .texto-maternidad h2 {
    font-size: clamp(2.7rem, 5.6vw, 4rem);
  }
}

@media (max-width: 680px) {
  body.home .bloque-maternidad {
    padding: 4rem 1.25rem 4.5rem;
  }

  body.home .contenedor-maternidad {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }

  body.home .texto-maternidad h2 {
    max-width: 12ch;
    margin-bottom: 1.1rem;
    font-size: clamp(2.8rem, 12vw, 4rem);
  }

  body.home .texto-maternidad p {
    font-size: 1rem;
    line-height: 1.75;
  }

  body.home .imagen-maternidad {
    max-width: 560px;
    margin: 0 auto;
  }

  body.home .imagen-maternidad img {
    aspect-ratio: 2 / 3;
  }
}

body.home .pantalla-completa .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  background: #fffaf2;
  opacity: 0.62;
}

body.home .pantalla-completa .swiper-pagination-bullet-active {
  width: 25px;
  border-radius: 8px;
  background: #e6c99e;
  opacity: 1;
}

@media (max-width: 760px) {
  body.home .home-hero-eyebrow {
    max-width: 290px;
    margin-bottom: 0.85rem;
    font-size: 0.66rem;
    letter-spacing: 0.14em;
  }

  body.home .home-hero-title {
    max-width: 650px;
    font-size: clamp(2.65rem, 11vw, 4.25rem);
    line-height: 0.96;
  }

  body.home .home-hero-link {
    margin-top: 1.25rem;
    font-size: 0.8rem;
  }

}

@media (prefers-reduced-motion: reduce) {
  body.home .home-hero-link {
    transition: none;
  }
}

.hero-navidad {
  position: relative;
  width: 100%;
  height: 100vh;
  background-image: url('../images/slider-navidad/fotografia-navidad-niña-jugando-en-la-calle-villanueva-de-la-canada.jpg'); /* Ajusta esta ruta */
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
}

.hero-texto-navidad {
  padding: 3rem 2rem;
  max-width: 90%;
}

/* Títulos e intro */
.titulo-pagina-izquierda {
  font-size: 2rem;
  color: #b48a60 !important;
  margin: 0 0 1rem 0;
  text-align: left;
}

.h2-subtle-landing {
  font-size: 1.1rem;
  font-style: italic;
  color: #9e8a42 !important;
  margin-bottom: 1.5rem;
  text-align: left;
}

/* Botón izquierdo */
.boton-cta-izquierda {
  background-color: #9e8a42;
  color: white;
  padding: 0.75em 1.8em;
  border-radius: 25px;
  text-decoration: none;
  font-family: "Times New Roman", serif;
  font-size: 1rem;
  display: inline-block;
  transition: background-color 0.3s ease;
}

.boton-cta-izquierda:hover {
  background-color: #5a5030;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .hero-navidad {
    align-items: center;
    text-align: center;
   
  }
 } 
 /* === GALERÍA DE 3 IMÁGENES HORIZONTALES === */
.galeria-navidad-horizontal {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  height: auto;
  overflow: hidden;
}

.galeria-navidad-horizontal .imagen-horizontal {
  flex: 1;
  margin: 0;
  padding: 0;
}

.galeria-navidad-horizontal .imagen-horizontal img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border: none;
}

/* Modo responsive: en móvil se apilan verticalmente */
@media screen and (max-width: 768px) {
  .galeria-navidad-horizontal {
    flex-direction: column;
  }

  .galeria-navidad-horizontal .imagen-horizontal {
    width: 100%;
    height: auto;
  }
}

.hero-maternidad {
  position: relative;
  width: 100%;
  height: 100vh; /* Ocupa toda la pantalla al inicio */
  overflow: hidden;
}

.hero-img {
  position: absolute;
  inset: 0;
  background-image: url("../images/slider-maternidad/fotografia-de-maternidad-con-telas-en-villanueva-de-la-canada.jpg");
  background-size: cover;
  background-position: center;
  z-index: 0; /* Queda debajo del contenido */
}

/* HERO COMUNION - estructura de texto abajo a la izquierda */
.hero-comunion {
  position: relative;
  width: 100%;
  height: 100vh;
  background-image: url('../images/slider-comuniones/comunion-fine-art-nina-fotografia-artistica-en-estudio-villanueva-de-la-canada.jpg'); /* Ajusta esta ruta */
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
}

.hero-texto-comunion{
  padding: 3rem 2rem;
  max-width: 90%;
}

/* Títulos e intro */
.titulo-pagina-izquierda {
  font-size: 2rem;
  color: #b48a60 !important;
  margin: 0 0 1rem 0;
  text-align: left;
}

.h2-subtle-landing {
  font-size: 1.1rem;
  font-style: italic;
  color: #9e8a42 !important;
  margin-bottom: 1.5rem;
  text-align: left;
}

/* Botón izquierdo */
.boton-cta-izquierda {
  background-color: #9e8a42;
  color: white;
  padding: 0.75em 1.8em;
  border-radius: 25px;
  text-decoration: none;
  font-family: "Times New Roman", serif;
  font-size: 1rem;
  display: inline-block;
  transition: background-color 0.3s ease;
}

.boton-cta-izquierda:hover {
  background-color: #5a5030;
}

/* Responsive */
@media screen and (max-width: 768px) {
  .hero-comunion {
    align-items: center;
    text-align: center;
   
  }
 } 
 /* === GALERÍA DE 3 IMÁGENES HORIZONTALES === */
.galeria-comunion-horizontal {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  height: auto;
  overflow: hidden;
}

.galeria-comunion-horizontal .imagen-horizontal {
  flex: 1;
  margin: 0;
  padding: 0;
}

.galeria-comunion-horizontal .imagen-horizontal img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border: none;
}

/* Modo responsive: en móvil se apilan verticalmente */
@media screen and (max-width: 768px) {
  .galeria-comunion-horizontal {
    flex-direction: column;
  }

  .galeria-comunion-horizontal .imagen-horizontal {
    width: 100%;
    height: auto;
  }
}

/* Cabecera compartida para páginas interiores: barra crema translúcida y navegación editorial */
body:not(.home) .main-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  background: rgba(251, 248, 242, 0.92);
  box-shadow: 0 2px 14px rgba(45, 34, 24, 0.08);
  backdrop-filter: blur(12px);
}

body:not(.home) .header-container {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1rem, 2.5vw, 2rem);
  width: 100%;
  max-width: 1380px;
  min-height: 76px;
  margin: 0 auto;
  padding: 0.35rem clamp(1.25rem, 4vw, 3.5rem);
  box-sizing: border-box;
}

body:not(.home) .logo {
  display: block;
  flex: 0 0 auto;
  width: clamp(136px, 12vw, 160px);
  max-width: none;
}

body:not(.home) .logo img {
  display: block;
  width: 100%;
  max-height: 70px;
  object-fit: contain;
}

body:not(.home) .menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  padding: 0.55rem;
  border: 1px solid rgba(85, 70, 56, 0.28);
  border-radius: 50%;
  background: rgba(251, 248, 242, 0.72);
  cursor: pointer;
}

body:not(.home) .menu-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background: #554638;
}

body:not(.home) .nav-principal {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(0.8rem, 1.55vw, 1.45rem);
  margin-left: auto;
  padding: 0;
}

body:not(.home) .nav-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: clamp(0.8rem, 1.55vw, 1.45rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

body:not(.home) .nav-menu > li {
  margin: 0;
  white-space: nowrap;
}

body:not(.home) .nav-menu > li > a {
  position: relative;
  display: inline-block;
  padding: 0.5rem 0 0.4rem;
  color: #554638;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.085em;
  line-height: 1.35;
  text-decoration: none;
}

body:not(.home) .nav-menu > li > a::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: #b59a70;
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}

body:not(.home) .nav-menu > li > a:hover::after,
body:not(.home) .nav-menu > li > a:focus-visible::after {
  transform: scaleX(1);
}

body:not(.home) .social-header {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
  margin: 0;
}

body:not(.home) .social-header img {
  display: block;
  width: 21px;
  height: 21px;
  opacity: 0.72;
}

body:not(.home) .header-call {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.45rem;
  margin-left: 0.8rem;
  padding: 0.55rem 0.8rem;
  border: 1px solid rgba(85, 70, 56, 0.36);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  color: #554638;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.025em;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

body:not(.home) .header-call svg {
  width: 15px;
  height: 15px;
  fill: currentColor;
}

body:not(.home) .header-call-number {
  margin-left: 0.15rem;
  font-size: 0.64rem;
  font-weight: 500;
}

body:not(.home) .nav-menu li.submenu {
  position: relative;
}

body:not(.home) .nav-menu li.submenu .submenu-items {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1001;
  min-width: 210px;
  padding: 0.5rem 0;
  border: 1px solid rgba(85, 70, 56, 0.12);
  border-radius: 8px;
  background: rgba(251, 248, 242, 0.98);
  box-shadow: 0 12px 24px rgba(45, 34, 24, 0.12);
  list-style: none;
}

body:not(.home) .nav-menu li.submenu:hover .submenu-items,
body:not(.home) .nav-menu li.submenu:focus-within .submenu-items {
  display: block;
}

body:not(.home) .nav-menu li.submenu .submenu-items a {
  display: block;
  padding: 0.55rem 1rem;
  color: #554638;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.78rem;
  line-height: 1.45;
  text-decoration: none;
  white-space: normal;
}

@media (max-width: 900px) {
  body:not(.home) .header-container {
    position: relative;
    min-height: 72px;
    gap: 1rem;
    padding: 0.4rem 1.25rem;
  }

  body:not(.home) .logo {
    width: clamp(108px, 18vw, 132px);
  }

  body:not(.home) .logo img {
    max-height: 66px;
  }

  body:not(.home) .menu-toggle {
    display: flex;
    order: 3;
    margin-left: 0;
  }

  body:not(.home) .header-call {
    order: 2;
    margin-left: auto;
    padding: 0.55rem 0.7rem;
  }

  body:not(.home) .nav-principal {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    z-index: 1001;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0.5rem 1.25rem 1.1rem;
    border-top: 1px solid rgba(85, 70, 56, 0.12);
    border-radius: 0 0 12px 12px;
    background: rgba(251, 248, 242, 0.98);
    box-shadow: 0 14px 28px rgba(45, 34, 24, 0.12);
    backdrop-filter: blur(12px);
    box-sizing: border-box;
  }

  body:not(.home) .menu-toggle[aria-expanded="true"] + .nav-principal {
    display: flex;
  }

body:not(.home) .nav-principal.active {
    display: flex;
  }

  body:not(.home) .nav-menu {
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  body:not(.home) .nav-menu > li {
    border-bottom: 1px solid rgba(85, 70, 56, 0.1);
  }

  body:not(.home) .nav-menu > li > a {
    display: block;
    padding: 0.8rem 0.15rem;
    font-size: 0.78rem;
  }

  body:not(.home) .nav-menu > li > a::after {
    display: none;
  }

  body:not(.home) .nav-menu li.submenu .submenu-items {
    display: block;
    position: static;
    min-width: 0;
    padding: 0 0 0.5rem 0.85rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  body:not(.home) .nav-menu li.submenu .submenu-items li {
    margin: 0;
    padding: 0;
  }

  body:not(.home) .nav-menu li.submenu .submenu-items a {
    padding: 0.45rem 0.15rem;
  }

  body:not(.home) .social-header {
    justify-content: flex-start;
    gap: 0.85rem;
    margin: 1rem 0 0;
  }
}

/* Reglas móviles originales de la portada; las reglas finales de inicio afinan su fila compacta. */
@media (max-width: 900px) {
  body.home .header-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.3rem;
    min-height: 0;
    padding: 0.55rem 1rem 0.7rem;
  }

  body.home .logo {
    order: 1;
    width: 132px;
    max-width: 42vw;
    margin: 0 auto;
  }

  body.home .menu-toggle {
    order: 2;
    display: flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0 auto;
    padding: 0.45rem;
    border: 1px solid rgb(85 70 56 / 35%);
    border-radius: 50%;
    background: rgb(251 248 242 / 78%);
    cursor: pointer;
  }

  body.home .menu-toggle span {
    background: #554638;
  }

  body.home .nav-principal {
    position: static;
    order: 3;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  body.home .nav-menu {
    display: none;
    align-items: center;
    flex-direction: column;
    gap: 0;
    width: 100%;
    margin: 0;
    padding: 0.35rem 0 0.55rem;
    list-style: none;
  }

  body.home .nav-menu.active {
    display: flex;
    animation: mobile-menu-slide-down 240ms ease-out both;
    padding: 0.45rem 0.7rem 0.65rem;
    border: 1px solid rgb(85 70 56 / 12%);
    border-radius: 0.75rem;
    background: #fffdfb;
    box-shadow: 0 12px 28px rgb(45 34 24 / 14%);
  }

  body.home .nav-menu > li {
    width: 100%;
    margin: 0;
    text-align: center;
  }

  body.home .nav-menu > li > a {
    display: block;
    padding: 0.58rem 0.4rem;
  }

  body.home .social-header {
    display: flex;
    order: 1;
    justify-content: center;
    gap: 0.8rem;
    margin: 0.3rem 0 0;
  }

  body.home .header-call {
    order: 4;
    margin: 0.25rem auto 0;
  }
}

/* Cabecera compacta horizontal para páginas interiores, igualando la fila móvil de inicio. */
@media (max-width: 900px) {
  body:not(.home) .main-header {
    overflow: visible;
  }

  body:not(.home) .header-container {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    height: 86px;
    min-height: 86px;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body:not(.home) .logo {
    position: absolute;
    top: 43px;
    left: 1rem;
    width: clamp(82px, 25vw, 112px);
    max-width: 30vw;
    margin: 0;
    transform: translateY(-50%);
  }

  body:not(.home) .logo img {
    width: 100%;
    max-height: 58px;
  }

  body:not(.home) .menu-toggle {
    position: absolute;
    top: 43px;
    left: 50%;
    z-index: 2;
    display: flex;
    flex: 0 0 calc(42px + 0.9rem + 2px);
    box-sizing: border-box;
    width: calc(42px + 0.9rem + 2px);
    height: calc(42px + 0.9rem + 2px);
    margin: 0;
    transform: translate(-50%, -50%);
    padding: 0.45rem;
    border: 1px solid rgb(85 70 56 / 35%);
    border-radius: 50%;
    background: rgb(251 248 242 / 78%);
  }

  body:not(.home) .menu-toggle span {
    width: 25px;
    height: 3px;
    background: #554638;
  }

  body:not(.home) .nav-principal {
    position: static;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  body:not(.home) .nav-menu {
    position: absolute;
    top: 86px;
    right: 0;
    left: 0;
    z-index: 1001;
    display: none;
    align-items: stretch;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
    width: 100%;
    margin: 0;
    padding: 0.45rem 1rem 0.7rem;
    border-top: 1px solid rgb(85 70 56 / 12%);
    background: #fffdfb;
    box-shadow: 0 12px 24px rgb(45 34 24 / 12%);
    box-sizing: border-box;
    max-height: calc(100vh - 86px);
    max-height: calc(100dvh - 86px);
    overflow-y: auto;
    overscroll-behavior: contain;
    list-style: none;
  }

  body:not(.home) .nav-menu.active {
    display: flex;
    align-items: stretch;
    animation: mobile-menu-slide-down 240ms ease-out both;
  }

  body:not(.home) .nav-principal:has(.nav-menu.active) {
    margin-top: 0;
  }

  body:not(.home) .nav-menu > li {
    flex: 0 0 auto;
    width: 100%;
    margin: 0;
    text-align: center;
  }

  body:not(.home) .nav-menu > li > a {
    display: block;
    padding: 0.58rem 0.4rem;
  }

  body:not(.home) .social-header {
    position: absolute;
    top: 8px;
    right: 0.9rem;
    display: flex;
    justify-content: flex-end;
    gap: 0.55rem;
    margin: 0;
    padding: 0;
  }

  body:not(.home) .social-header img {
    width: 19px;
    height: 19px;
  }

  body:not(.home) .header-call {
    position: absolute;
    top: 40px;
    right: 0.72rem;
    display: inline-flex;
    justify-content: center;
    min-height: 30px;
    margin: 0;
    padding: 0.35rem 0.6rem;
    font-size: 0.66rem;
  }

  body:not(.home) .header-call-number {
    display: none;
  }
}

@keyframes mobile-menu-slide-down {
  from { opacity: 0; transform: translateY(-0.5rem); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 560px) {
  body:not(.home) .header-call-number {
    display: none;
  }
}

@media (max-width: 360px) {
  body:not(.home) .header-container {
    gap: 0.55rem;
    padding-right: 0.85rem;
    padding-left: 0.85rem;
  }

  body:not(.home) .logo {
    width: clamp(78px, 25vw, 88px);
  }

  body:not(.home) .header-call {
    gap: 0.3rem;
    padding: 0.5rem 0.55rem;
    font-size: 0.62rem;
  }
}

/* Página de Servicios: tarjetas y secciones editoriales, aisladas del resto del sitio */
body.page-services {
  --services-cream: #fbf8f2;
  --services-paper: #f5efe5;
  --services-brown: #554638;
  --services-gold: #b59a70;
  background: var(--services-cream);
  color: var(--services-brown);
}

body.page-services .services-content {
  position: relative;
  background: var(--services-cream);
}

body.page-services .servicios-lista {
  padding: clamp(4.5rem, 8vw, 7.5rem) clamp(1.25rem, 5vw, 5rem);
  background: var(--services-cream);
}

body.page-services .servicios-lista-contenido {
  width: min(1200px, 100%);
  max-width: none;
  font-family: "DM Sans", Arial, sans-serif;
  text-align: center;
}

body.page-services .servicios-lista h1 {
  max-width: 17ch;
  margin: 0 auto 1rem;
  padding: 0;
  color: var(--services-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(3.25rem, 7vw, 5.75rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.92;
}

body.page-services .servicios-lista h2 {
  margin: 0 auto 1.25rem;
  color: var(--services-gold) !important;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.65rem, 3vw, 2.25rem) !important;
  font-style: italic;
  font-weight: 500;
  line-height: 1.2;
}

body.page-services .servicios-lista > .servicios-lista-contenido > p {
  max-width: 66ch;
  margin: 0 auto clamp(2.5rem, 5vw, 4rem);
  color: #62564b;
  font-size: clamp(0.98rem, 1.2vw, 1.08rem);
  line-height: 1.8;
}

body.page-services .servicios-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  counter-reset: service-card;
  list-style: none;
  text-align: left;
}

body.page-services .servicios-grid li {
  position: relative;
  min-width: 0;
  min-height: 174px;
  margin: 0;
  padding: 1.4rem 1.35rem;
  border: 1px solid rgba(85, 70, 56, 0.12);
  border-radius: 3px 3px 30px 3px;
  background: rgba(255, 255, 255, 0.78);
  color: #62564b;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.94rem;
  line-height: 1.65;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

body.page-services .servicios-grid li::before {
  position: static;
  display: block;
  margin-bottom: 0.85rem;
  color: var(--services-gold);
  content: counter(service-card, decimal-leading-zero);
  counter-increment: service-card;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.16em;
}

body.page-services .servicios-grid li strong {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--services-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.08;
}

body.page-services .servicios-grid li:hover {
  transform: translateY(-3px);
  border-color: rgba(181, 154, 112, 0.5);
  box-shadow: 0 16px 30px rgba(55, 43, 32, 0.08);
}

body.page-services .reseñas-section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  width: auto;
  max-width: none;
  margin: 0;
  padding: clamp(4.5rem, 8vw, 7rem) clamp(1.25rem, 5vw, 5rem);
  border: 0;
  border-radius: 0;
  background: var(--services-brown);
  box-shadow: none;
}

body.page-services .reseñas-section .reviews-google-wrap {
  grid-column: 1 / -1;
  margin-top: .65rem;
  text-align: center;
}

body.page-services .reseñas-section h2 {
  grid-column: 1 / -1;
  margin: 0 0 1rem;
  color: var(--services-cream);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.7rem, 5vw, 4.25rem);
  font-weight: 500;
  line-height: 0.98;
}

body.page-services .reseña.active {
  position: relative;
  width: auto;
  height: 100%;
  margin: 0;
  padding: clamp(1.5rem, 3vw, 2.4rem);
  border: 1px solid rgba(251, 248, 242, 0.18);
  border-radius: 3px 3px 30px 3px;
  background: rgba(255, 255, 255, 0.045);
  box-sizing: border-box;
}

body.page-services .reseña p {
  margin: 0;
  color: var(--services-cream);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  font-style: normal;
  line-height: 1.45;
}

body.page-services .reseña .estrellas {
  margin: 1.25rem 0 0.75rem;
  color: #d8bd8f;
  letter-spacing: 0.16em;
}

body.page-services .reseña span {
  color: rgba(251, 248, 242, 0.76);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.page-services .bono-regalo {
  margin: 0;
  padding: clamp(4.5rem, 8vw, 7rem) clamp(1.25rem, 5vw, 5rem);
  background: #fffdf9;
}

body.page-services .bono-contenido {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 5.5rem);
  width: min(1180px, 100%);
  max-width: none;
}

body.page-services .bono-img {
  min-width: 0;
  text-align: left;
}

body.page-services .bono-img img {
  display: block;
  width: 100%;
  max-width: none;
  aspect-ratio: 2362 / 945;
  object-fit: cover;
  border-radius: 3px 3px 64px 3px;
  box-shadow: 0 20px 55px rgba(55, 43, 32, 0.11);
}

body.page-services .bono-texto {
  min-width: 0;
  color: var(--services-brown);
  font-family: "DM Sans", Arial, sans-serif;
}

body.page-services .bono-texto h2,
body.page-services .bloque-estudio-final-blanco h2 {
  margin: 0 0 1.2rem;
  color: var(--services-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.45rem, 4.5vw, 3.8rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 0.98;
}

body.page-services .bono-texto p,
body.page-services .bloque-estudio-final-blanco p {
  color: #62564b;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.8;
}

body.page-services .bono-texto .boton-cta,
body.page-services .bloque-estudio-final-blanco .boton-cta {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  border: 1px solid var(--services-brown);
  border-radius: 999px;
  background: var(--services-brown);
  color: var(--services-cream);
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  transition: transform 180ms ease, background-color 180ms ease, color 180ms ease;
}

body.page-services .bono-texto .boton-cta:hover,
body.page-services .bloque-estudio-final-blanco .boton-cta:hover {
  transform: translateY(-2px);
  background: transparent;
  color: var(--services-brown);
}

body.page-services .newsletter-section.cuerpo {
  margin: 0;
  padding: clamp(3.5rem, 7vw, 5.5rem) 1.25rem;
  border-top: 1px solid rgba(85, 70, 56, 0.1);
  background: var(--services-paper);
  font-family: "DM Sans", Arial, sans-serif;
}

body.page-services .newsletter-section.cuerpo .newsletter-container {
  width: min(680px, 100%);
  max-width: none;
}

body.page-services .newsletter-section.cuerpo .newsletter-container h2 {
  color: var(--services-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  font-weight: 500;
  line-height: 0.98;
}

body.page-services .newsletter-section.cuerpo .newsletter-container p {
  color: #62564b;
  font-family: "DM Sans", Arial, sans-serif;
  line-height: 1.7;
}

body.page-services .newsletter-section.cuerpo input[type="text"],
body.page-services .newsletter-section.cuerpo input[type="email"] {
  min-height: 48px;
  border: 1px solid rgba(85, 70, 56, 0.22);
  border-radius: 4px;
  background: #fffdf9;
  color: var(--services-brown);
  font-family: "DM Sans", Arial, sans-serif;
}

body.page-services .newsletter-section.cuerpo label {
  color: #62564b;
  font-size: 0.88rem;
  line-height: 1.6;
}

body.page-services .newsletter-section.cuerpo label a {
  color: var(--services-brown) !important;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

body.page-services .newsletter-section.cuerpo .botón-cta {
  min-height: 48px;
  padding: 0.75rem 1.6rem !important;
  border: 1px solid var(--services-brown) !important;
  border-radius: 999px !important;
  background: var(--services-brown) !important;
  color: var(--services-cream) !important;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.72rem !important;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.page-services .newsletter-section.cuerpo .botón-cta:hover {
  background: transparent !important;
  color: var(--services-brown) !important;
}

body.page-services .services-newsletter-action {
  margin-top: 1rem;
  text-align: center;
}

body.page-services .imagen-ancha {
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
}

body.page-services .imagen-ancha img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  border-radius: 0;
}

body.page-services .bloque-estudio-final-blanco {
  padding: clamp(4.5rem, 8vw, 7rem) 1.25rem;
  background: var(--services-cream);
}

body.page-services .estudio-contenido-blanco {
  width: min(790px, 100%);
  max-width: none;
  padding: 0;
  font-family: "DM Sans", Arial, sans-serif;
}

body.page-services .bloque-estudio-final-blanco h2 {
  font-size: clamp(2.7rem, 5.5vw, 4.4rem);
}

body.page-services .bloque-estudio-final-blanco p {
  max-width: 66ch;
  margin-right: auto;
  margin-left: auto;
}

body.page-services .bloque-estudio-final-blanco .frase-cierre {
  margin-top: 1.75rem;
  color: var(--services-brown);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.4rem, 2.2vw, 1.8rem);
  line-height: 1.5;
}

@media (max-width: 980px) {
  body.page-services .servicios-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  body.page-services .servicios-lista {
    padding-top: 3.5rem;
  }

  body.page-services .servicios-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.page-services .servicios-grid li {
    min-height: 0;
  }

  body.page-services .reseñas-section {
    grid-template-columns: minmax(0, 1fr);
  }

  body.page-services .reseñas-section h2 {
    grid-column: 1;
  }

  body.page-services .bono-contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }

  body.page-services .bono-img {
    width: min(680px, 100%);
    margin: 0 auto;
  }

  body.page-services .bono-texto {
    width: min(680px, 100%);
    margin: 0 auto;
  }
}

@media (max-width: 420px) {
  body.page-services .servicios-lista,
  body.page-services .bono-regalo {
    padding-right: 1rem;
    padding-left: 1rem;
  }

  body.page-services .servicios-grid li {
    padding: 1.25rem 1.1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-services .servicios-grid li,
  body.page-services .bono-texto .boton-cta,
  body.page-services .bloque-estudio-final-blanco .boton-cta {
    transition: none;
  }
}

/* Contacto: acabado editorial acotado a contacts.html */
.contacto-page .contacto-header {
  padding: clamp(3.5rem, 7vw, 6rem) 1.25rem clamp(2rem, 4vw, 3.5rem);
  background: #f8f4ef;
}

.contacto-page .contacto-header-contenido {
  max-width: 900px;
  font-family: "DM Sans", Arial, sans-serif;
}

.contacto-page .contacto-header .titulo-pagina {
  margin: 0 auto;
  padding: 0;
  color: #563e34;
  font: 400 clamp(2.7rem, 6vw, 4.8rem)/1 "Cormorant Garamond", Georgia, serif;
  text-wrap: balance;
}

.contacto-page .subtitulo-contacto {
  margin: 1rem auto 0.5rem;
  color: #654a3b;
  font: 400 clamp(1.5rem, 3vw, 2.2rem)/1.2 "Cormorant Garamond", Georgia, serif;
}

.contacto-page .detalle-cita {
  display: grid;
  gap: 0.3rem;
  max-width: 680px;
  margin: 1.15rem auto 0;
  padding: 1rem 1.3rem;
  border: 1px solid rgb(86 62 52 / 13%);
  border-left: 3px solid #9e8a42;
  border-radius: 3px 3px 18px 3px;
  background: #fffdfb;
  box-shadow: 0 8px 24px rgb(68 48 36 / 5%);
  text-align: left;
}

.contacto-page .detalle-cita strong {
  color: #563e34;
  font: 600 0.78rem/1.4 "DM Sans", Arial, sans-serif;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.contacto-page .detalle-cita span {
  color: #645b54;
  font: italic 400 0.96rem/1.6 "Lora", Georgia, serif;
}

.contacto-page .contacto-principal {
  padding: clamp(2.5rem, 6vw, 5rem) 1.25rem;
  background: #fcfaf7;
}

.contacto-page .contacto-contenido {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  max-width: 1120px;
}

.contacto-page .contacto-info {
  min-width: 0;
  max-width: none;
}

.contacto-page .imagen-contacto {
  width: 100%;
  max-height: 740px;
  border-radius: 18px;
  object-fit: cover;
  box-shadow: 0 18px 48px rgb(68 48 36 / 12%);
}

.contacto-page .contacto-formulario {
  min-width: 0;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid rgb(105 77 59 / 13%);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 44px rgb(68 48 36 / 7%);
}

.contacto-page .contacto-formulario .subtitulo-pagina {
  margin: 0 0 0.6rem;
  color: #563e34;
  font: 400 clamp(2rem, 3.5vw, 3rem)/1.05 "Cormorant Garamond", Georgia, serif;
}

.contacto-page .mensaje-final {
  margin: 0 0 1.5rem;
  color: #5a514b;
  font: 400 0.98rem/1.75 "DM Sans", Arial, sans-serif;
}

.contacto-page .contacto-formulario form {
  gap: 0.7rem;
  font-family: "DM Sans", Arial, sans-serif;
}

.contacto-page .contacto-formulario label {
  margin-top: 0.25rem;
  color: #493c34;
  font-size: 0.92rem;
  font-weight: 500;
}

.contacto-page .contacto-formulario input:not([type="checkbox"]),
.contacto-page .contacto-formulario textarea {
  box-sizing: border-box;
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid #d8cec4;
  border-radius: 10px;
  background: #fdfbf9;
  color: #43352f;
  font: 400 1rem/1.5 "DM Sans", Arial, sans-serif;
}

.contacto-page .contacto-formulario textarea {
  min-height: 150px;
  resize: vertical;
}

.contacto-page .contacto-formulario input:focus-visible,
.contacto-page .contacto-formulario textarea:focus-visible {
  border-color: #765943;
  outline: 3px solid rgb(169 139 112 / 25%);
  outline-offset: 1px;
}

.contacto-page .politica-check {
  margin: 0.35rem 0 0.5rem;
  color: #514943;
  font: 400 0.88rem/1.55 "DM Sans", Arial, sans-serif;
}

.contacto-page .politica-check input {
  accent-color: #654a3b;
}

.contacto-page .politica-check a,
.contacto-page .info-directa a {
  color: #654a3b;
  text-underline-offset: 0.18em;
}

.contacto-page .contacto-formulario .boton-cta {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  padding: 0.8rem 1.7rem;
  border: 1px solid #563e34;
  border-radius: 999px;
  background: #563e34;
  color: #fffaf5;
  font: 600 0.82rem/1.2 "DM Sans", Arial, sans-serif;
  letter-spacing: 0.07em;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.contacto-page .contacto-formulario .boton-cta:hover,
.contacto-page .contacto-formulario .boton-cta:focus-visible {
  transform: translateY(-2px);
  background: #f8f4ef;
  color: #563e34;
}

.contacto-page .contacto-formulario .boton-cta:focus-visible {
  outline: 3px solid #a98b70;
  outline-offset: 3px;
}

.contacto-page .info-directa {
  margin-top: 1.5rem;
  color: #654a3b;
  font: 400 0.95rem/1.6 "DM Sans", Arial, sans-serif;
}

.contacto-page .info-directa p {
  margin: 0.5rem 0;
}

.contacto-page .info-directa i {
  color: #80644f;
}

.contacto-page .mapa-localizacion {
  padding: clamp(3rem, 6vw, 5rem) 1.25rem;
  background: #f8f4ef;
}

.contacto-page .mapa-contenido {
  max-width: 1000px;
  font-family: "DM Sans", Arial, sans-serif;
}

.contacto-page .mapa-contenido h2 {
  margin: 0 0 0.75rem;
  color: #563e34;
  font: 400 clamp(2.2rem, 4vw, 3.2rem)/1.05 "Cormorant Garamond", Georgia, serif;
}

.contacto-page .mapa-contenido p {
  max-width: 680px;
  margin: 0 auto 1.75rem;
  color: #5a514b;
  font: 400 1rem/1.75 "DM Sans", Arial, sans-serif;
}

.contacto-page .mapa-google iframe {
  display: block;
  height: clamp(300px, 42vw, 440px);
  border-radius: 18px;
  box-shadow: 0 18px 48px rgb(68 48 36 / 12%);
}

@media (max-width: 800px) {
  .contacto-page .contacto-contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.75rem;
    max-width: 620px;
  }
}

@media (max-width: 480px) {
  .contacto-page .contacto-header {
    padding-top: 2.75rem;
  }

  .contacto-page .contacto-formulario {
    padding: 1.35rem 1rem;
    border-radius: 16px;
  }

  .contacto-page .contacto-formulario .boton-cta {
    width: 100%;
    align-self: stretch;
  }
}

/* Igualar los tres controles de la newsletter del pie en todas las páginas */
.footer-crema .newsletter-inputs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 0.8rem;
  width: min(100%, 760px);
  margin-inline: auto;
}

.footer-crema .newsletter-inputs input[type="text"],
.footer-crema .newsletter-inputs input[type="email"],
.footer-crema .newsletter-inputs button {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  height: 48px;
  margin: 0;
  padding: 0.65rem 0.8rem;
  border-radius: 4px;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 0.95rem;
  line-height: 1.2;
}

.footer-crema .newsletter-inputs button {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  white-space: nowrap;
}

@media (max-width: 600px) {
  .footer-crema .newsletter-inputs {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.65rem;
  }

  .footer-crema .newsletter-inputs input[type="text"],
  .footer-crema .newsletter-inputs input[type="email"],
  .footer-crema .newsletter-inputs button {
    height: 48px !important;
    min-height: 48px;
    padding: 0.65rem 0.8rem !important;
    line-height: 1.2 !important;
  }
}

/* Landing newborn: composición editorial solo para esta página */
body.page-newborn {
  overflow-x: hidden;
  color: #43352f;
  font-family: "DM Sans", Arial, sans-serif;
}

.page-newborn-main {
  overflow: clip;
}

.page-newborn .hero-newborn {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: min(90svh, 960px);
  height: min(90svh, 960px);
  align-items: flex-start;
  justify-content: flex-end;
  box-sizing: border-box;
  padding: clamp(2rem, 6vh, 5rem) clamp(1.25rem, 5vw, 5rem);
  background: #e8e0d7;
  background-image: none;
}

.page-newborn .hero-newborn-picture {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
}

.page-newborn .hero-newborn-picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
}

.page-newborn .hero-texto-newborn {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: min(590px, 43vw);
  max-width: 100%;
  margin: 0;
  padding: clamp(1.5rem, 3vw, 2.75rem);
  border: 1px solid rgb(255 255 255 / 55%);
  border-radius: 4px;
  background: rgb(248 244 239 / 78%);
  box-shadow: 0 18px 55px rgb(57 43 33 / 10%);
  backdrop-filter: blur(8px);
}

.page-newborn .titulo-pagina-izquierda {
  margin: 0 0 1rem;
  color: #4f382e !important;
  font: 400 clamp(2.65rem, 5.2vw, 5rem)/0.98 "Cormorant Garamond", Georgia, serif;
  letter-spacing: -0.025em;
  text-align: left;
  text-wrap: balance;
}

.page-newborn .h2-subtle-landing {
  margin: 0 0 1.5rem;
  color: #674b3b !important;
  font: 400 clamp(1rem, 1.25vw, 1.2rem)/1.7 "Lora", Georgia, serif;
  font-style: italic;
  text-align: left;
}

.page-newborn .boton-cta-izquierda,
.page-newborn-main .boton-cta {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0.8rem 1.6rem;
  border: 1px solid #563e34;
  border-radius: 999px;
  background: #563e34;
  color: #fffaf5;
  font: 600 0.82rem/1.2 "DM Sans", Arial, sans-serif;
  letter-spacing: 0.07em;
  text-align: center;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.page-newborn .boton-cta-izquierda:hover,
.page-newborn-main .boton-cta:hover,
.page-newborn .boton-cta-izquierda:focus-visible,
.page-newborn-main .boton-cta:focus-visible {
  transform: translateY(-2px);
  background: #f8f4ef;
  color: #563e34;
}

.page-newborn .boton-cta-izquierda:focus-visible,
.page-newborn-main .boton-cta:focus-visible {
  outline: 3px solid #a98b70;
  outline-offset: 3px;
}

.page-newborn-main h2,
.page-newborn-main h3 {
  color: #563e34;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 400;
  text-wrap: balance;
}

.page-newborn-main h2 {
  margin: 0 0 1.1rem;
  font-size: clamp(2.25rem, 4vw, 3.6rem);
  line-height: 1.02;
}

.page-newborn-main p,
.page-newborn-main li {
  color: #504943;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(0.98rem, 1.15vw, 1.08rem);
  line-height: 1.8;
}

.page-newborn-main .newborn-studio {
  padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 5vw, 4rem);
  background: #fcfaf7;
}

.page-newborn .newborn-studio .contenedor-flex,
.page-newborn .newborn-accompaniment .contenedor-flex,
.page-newborn .newborn-gift .contenedor-flex {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
  width: min(1160px, 100%);
  margin: 0 auto;
}

.page-newborn .newborn-accompaniment .contenedor-flex {
  grid-template-columns: minmax(0, 1.15fr) minmax(220px, 0.75fr);
}

.page-newborn .newborn-studio .contenedor-flex {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  gap: clamp(1.75rem, 4.5vw, 4rem);
}

.page-newborn .newborn-studio .columna-imagen,
.page-newborn .newborn-gift .columna-imagen {
  flex: 0 1 48%;
  min-width: 0;
}

.page-newborn .newborn-studio .columna-imagen img,
.page-newborn .newborn-gift .columna-imagen img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 20px 55px rgb(68 48 36 / 12%);
}

.page-newborn .newborn-studio .columna-texto,
.page-newborn .newborn-gift .columna-texto {
  flex: 1 1 52%;
  min-width: 0;
}

.page-newborn .newborn-studio .columna-texto p,
.page-newborn .newborn-accompaniment .columna-texto p,
.page-newborn .newborn-gift .columna-texto p {
  margin: 0 0 1rem;
}

.page-newborn .newborn-studio .columna-texto .boton-cta,
.page-newborn .newborn-gift .columna-texto .boton-cta {
  margin-top: 0.7rem;
}

.page-newborn .newborn-gallery {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: clamp(2.5rem, 5vw, 4rem) 0;
  background: #fff;
}

.page-newborn .newborn-gallery .galeria-fila-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.45rem, 1vw, 0.9rem);
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

.page-newborn .newborn-gallery .galeria-columna {
  overflow: visible;
  min-width: 0;
}

.page-newborn .newborn-gallery-trigger {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: visible;
  padding: 0;
  border: 0;
  border-radius: 16px;
  background: #f5f0eb;
  box-shadow: 0 14px 38px rgb(55 42 33 / 12%);
  cursor: zoom-in;
}

.page-newborn .newborn-gallery-trigger img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  transform-origin: center;
  transition: transform 500ms cubic-bezier(.2, .7, .2, 1), box-shadow 500ms cubic-bezier(.2, .7, .2, 1);
}

.page-newborn .newborn-gallery-trigger:focus-visible {
  z-index: 5;
}

.page-newborn .newborn-gallery-trigger:focus-visible img {
  transform: scale(1.08);
  box-shadow: 0 18px 42px rgb(35 27 21 / 24%);
}

@media (hover: hover) and (pointer: fine) {
  .page-newborn .newborn-gallery-trigger:hover {
    z-index: 5;
  }

  .page-newborn .newborn-gallery-trigger:hover img {
    transform: scale(1.8);
    box-shadow: 0 18px 42px rgb(35 27 21 / 24%);
  }
}

.page-newborn .newborn-gallery-trigger:focus-visible {
  outline: 3px solid #80644f;
  outline-offset: 4px;
}

.page-newborn .newborn-lightbox {
  position: fixed;
  width: min(94vw, 1500px);
  max-width: none;
  max-height: 94svh;
  overflow: visible;
  padding: 0;
  border: 0;
  background: transparent;
}

.page-newborn .newborn-lightbox::backdrop {
  background: rgb(25 20 17 / 88%);
  backdrop-filter: blur(5px);
}

.page-newborn .newborn-lightbox-image {
  display: block;
  width: 100%;
  max-height: 90svh;
  border-radius: 8px;
  object-fit: contain;
}

.page-newborn .newborn-lightbox-close {
  position: absolute;
  z-index: 1;
  top: -0.85rem;
  right: -0.85rem;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid rgb(255 255 255 / 60%);
  border-radius: 50%;
  background: #f8f4ef;
  color: #4f382e;
  font: 400 1.8rem/1 "DM Sans", Arial, sans-serif;
  cursor: pointer;
}

.page-newborn .newborn-facts {
  padding: clamp(4rem, 7vw, 6rem) clamp(1.25rem, 5vw, 4rem);
  background: #f5f0eb;
}

.page-newborn .newborn-facts > .main,
.page-newborn .newborn-process > .main,
.page-newborn .newborn-fit > .main,
.page-newborn .newborn-final-cta > .main {
  width: min(1160px, 100%);
  margin: 0 auto;
}

.page-newborn .newborn-facts > .main > h2,
.page-newborn .newborn-process > .main > h2,
.page-newborn .newborn-fit > .main > h2,
.page-newborn .newborn-final-cta > .main > h2 {
  margin-bottom: clamp(2rem, 4vw, 3rem);
  text-align: center;
}

.page-newborn .paso-a-paso-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
  margin-top: 0;
}

.page-newborn .paso-columna {
  padding: clamp(1.4rem, 2.4vw, 2rem);
  border: 1px solid rgb(105 77 59 / 14%);
  border-radius: 18px;
  background: #fffdfb;
  box-shadow: 0 12px 32px rgb(68 48 36 / 5%);
}

.page-newborn .paso-columna .icono-guia {
  display: inline-grid;
  width: 48px;
  height: 48px;
  margin-bottom: 1rem;
  place-items: center;
  border-radius: 50%;
  background: #eee5dc;
  color: #674b3b;
  font-size: 1.1rem;
}

.page-newborn .paso-columna h3,
.page-newborn .newborn-process .paso h3 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.45rem, 2vw, 1.8rem);
  line-height: 1.1;
}

.page-newborn .paso-columna p,
.page-newborn .newborn-process .paso p {
  margin: 0;
  font-size: 0.96rem;
  line-height: 1.75;
}

.page-newborn .newborn-feature-photo {
  position: relative;
  isolation: isolate;
  width: 100vw;
  margin: 0 calc(50% - 50vw);
  overflow: hidden;
  background: #f8f4ef;
}

.page-newborn .newborn-feature-photo::after {
  position: absolute;
  z-index: 1;
  inset: 48% 0 0;
  background: linear-gradient(180deg, rgb(255 253 251 / 0%) 0%, rgb(255 253 251 / 72%) 100%);
  content: "";
  pointer-events: none;
}

.page-newborn .newborn-feature-photo img {
  display: block;
  width: 100%;
  height: auto;
}

.page-newborn .newborn-feature-photo-title {
  position: absolute;
  z-index: 2;
  right: 1rem;
  bottom: clamp(1.25rem, 4vw, 3.25rem);
  left: 1rem;
  max-width: 40ch;
  margin: 0 auto;
  color: #563e34;
  font: 400 clamp(1.8rem, 4.2vw, 3.8rem)/1.02 "Cormorant Garamond", Georgia, serif;
  text-align: center;
  text-wrap: balance;
  text-shadow: 0 1px 10px rgb(255 253 251 / 72%);
}

.page-newborn .newborn-accompaniment {
  padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 5vw, 4rem);
  background: #fff;
}

.page-newborn .newborn-accompaniment .contenedor-flex {
  max-width: 1080px;
}

.page-newborn .newborn-accompaniment .columna-texto {
  flex: 1 1 60%;
}

.page-newborn .newborn-accompaniment .columna-imagen {
  flex: 0 1 36%;
  min-width: 220px;
}

.page-newborn .newborn-accompaniment .imagen-circular {
  width: min(100%, 360px);
  border-radius: 48% 48% 42% 42%;
  box-shadow: 0 20px 48px rgb(68 48 36 / 12%);
}

.page-newborn .newborn-accompaniment .boton-cta {
  margin-top: 0.5rem;
}

.page-newborn .newborn-testimonial {
  padding: clamp(3rem, 6vw, 5rem) 1.25rem;
  background: #554638;
}

.page-newborn .newborn-testimonial .bloque-resena {
  position: relative;
  max-width: 820px;
  padding: clamp(2rem, 4vw, 3.5rem);
  border: 1px solid rgb(251 248 242 / 22%);
  border-radius: 3px 3px 30px 3px;
  background: #69594a;
  box-shadow: 0 14px 34px rgb(35 27 21 / 14%);
}

.page-newborn .newborn-testimonial .nombre-cliente {
  color: #fffdfb;
  font: 500 1.7rem/1.1 "Cormorant Garamond", Georgia, serif;
}

.page-newborn .newborn-testimonial .estrellas {
  color: #d8bd8f;
}

.page-newborn .newborn-testimonial .texto-resena {
  margin: 0;
  color: #fffdfb;
  font: italic 400 clamp(1.1rem, 1.8vw, 1.4rem)/1.7 "Lora", Georgia, serif;
}

.page-newborn .newborn-testimonial .fecha-resena {
  color: rgb(255 253 251 / 78%);
}

.page-newborn .newborn-process {
  padding: clamp(4rem, 7vw, 6rem) clamp(1.25rem, 5vw, 4rem);
  background: #fffdfb;
}

.page-newborn .grid-cuatro-pasos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.page-newborn .grid-cuatro-pasos .paso {
  min-width: 0;
  padding: 1.5rem 1.25rem;
  border: 1px solid rgb(105 77 59 / 14%);
  border-radius: 16px;
  background: #f8f4ef;
  text-align: center;
}

.page-newborn .grid-cuatro-pasos .icono-paso {
  display: grid;
  width: 46px;
  height: 46px;
  margin: 0 auto 1rem;
  place-items: center;
  border-radius: 50%;
  background: #e9ded3;
  color: #563e34;
}

.page-newborn .grid-cuatro-pasos .icono-paso i {
  margin: 0;
  color: #b48a60;
  font-size: 1.15rem;
  line-height: 1;
}

.page-newborn .newborn-portfolio {
  box-sizing: border-box;
  width: 100vw;
  margin: 0 calc(50% - 50vw);
  padding: clamp(2.75rem, 5vw, 4.5rem) 0;
  overflow: hidden;
  background: #fffdfb;
}

.page-newborn .newborn-portfolio h2 {
  width: min(100% - 2rem, 1100px);
  margin: 0 auto clamp(1.5rem, 3vw, 2.5rem);
  color: #563e34;
  font: 400 clamp(2rem, 4vw, 3.4rem)/1.08 "Cormorant Garamond", Georgia, serif;
  text-align: center;
  text-wrap: balance;
}

.page-newborn .newborn-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(0.45rem, 1vw, 0.9rem);
  width: 100%;
}

.page-newborn .newborn-portfolio-grid figure {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: visible;
}

.page-newborn .newborn-portfolio-grid figure:nth-child(5n + 2) {
  margin-top: clamp(1rem, 2.2vw, 1.8rem);
}

.page-newborn .newborn-portfolio-grid figure:nth-child(5n + 3) {
  margin-top: clamp(0.4rem, 1vw, 0.85rem);
}

.page-newborn .newborn-portfolio-grid figure:nth-child(13) {
  margin-top: clamp(0.5rem, 1.4vw, 1.1rem);
}

.page-newborn .newborn-portfolio-grid figure:nth-child(14) {
  margin-top: clamp(1.2rem, 2.5vw, 2rem);
}

.page-newborn .newborn-portfolio-grid figure:nth-child(15) {
  margin-top: clamp(0.7rem, 1.6vw, 1.3rem);
}

.page-newborn .newborn-portfolio-grid .newborn-gallery-trigger {
  aspect-ratio: 3 / 2;
}

.page-newborn .newborn-urgency {
  padding: clamp(4rem, 7vw, 6rem) 1.25rem;
  background: #f8f4ef;
}

.page-newborn .texto-urgencia {
  width: min(820px, 100%);
  margin: 0 auto;
}

.page-newborn .texto-urgencia h2 {
  color: #563e34;
  font: 400 clamp(2.4rem, 4.5vw, 3.7rem)/1.05 "Cormorant Garamond", Georgia, serif;
}

.page-newborn .texto-urgencia p {
  margin: 0 auto 1rem;
}

.page-newborn .newborn-fit {
  margin: 0;
  padding: clamp(4rem, 7vw, 6rem) clamp(1.25rem, 5vw, 4rem);
  background: #fff;
}

.page-newborn .newborn-fit .grid-doble-lista {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
}

.page-newborn .newborn-fit .columna-si,
.page-newborn .newborn-fit .columna-no {
  padding: clamp(1.4rem, 2.7vw, 2.2rem);
  border: 1px solid rgb(105 77 59 / 14%);
  border-radius: 18px;
  background: #fcfaf7;
}

.page-newborn .newborn-fit .grid-doble-lista h3 {
  margin: 0 0 1rem;
  color: #563e34;
  font: 500 clamp(1.5rem, 2.3vw, 2rem)/1.15 "Cormorant Garamond", Georgia, serif;
}

.page-newborn .newborn-fit .grid-doble-lista li {
  margin-bottom: 0.8rem;
  padding-left: 1.9rem;
  font-size: 0.97rem;
}

.page-newborn .newborn-fit .parrafo-ancho {
  max-width: 800px;
  margin: 2rem auto 0;
  padding: 0 0 1rem;
}

.page-newborn .newborn-fit .boton-cta-compacto {
  margin: 1rem 0 0;
  text-align: center;
}

.page-newborn .newborn-gift {
  padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 5vw, 4rem);
  background: #f8f4ef;
}

.page-newborn .newborn-gift .contenedor-flex {
  max-width: 1160px;
}

.page-newborn .newborn-gift .columna-imagen img {
  object-fit: contain;
  background: #f1ebe4;
}

.page-newborn .newborn-final-cta {
  padding: clamp(4rem, 7vw, 6rem) 1.25rem;
  background: #fffdfb;
}

.page-newborn .newborn-final-cta .parrafo-ancho {
  max-width: 760px;
  padding: 0;
}

.page-newborn .newborn-final-cta .boton-cta {
  margin-top: 1rem;
}

@media (max-width: 900px) {
  .page-newborn .hero-newborn {
    min-height: min(84svh, 820px);
    height: min(84svh, 820px);
  }

  .page-newborn .hero-texto-newborn {
    width: min(560px, 48vw);
  }

  .page-newborn .paso-a-paso-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-newborn .grid-cuatro-pasos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .page-newborn .hero-newborn {
    min-height: min(90svh, 820px);
    height: min(90svh, 820px);
    align-items: flex-end;
    justify-content: center;
    padding: 1rem;
  }

  .page-newborn .hero-newborn-picture img {
    object-position: center 40%;
  }

  .page-newborn .hero-texto-newborn {
    width: 100%;
    padding: 1.35rem 1.2rem;
    border-radius: 14px;
    background: rgb(248 244 239 / 94%);
  }

  .page-newborn .titulo-pagina-izquierda {
    font-size: clamp(2.3rem, 10vw, 3.4rem);
    line-height: 0.98;
  }

  .page-newborn .h2-subtle-landing {
    font-size: 0.96rem;
    line-height: 1.55;
  }

  .page-newborn .hero-texto-newborn .boton-cta-izquierda {
    width: 100%;
  }

  .page-newborn .newborn-studio .contenedor-flex,
  .page-newborn .newborn-accompaniment .contenedor-flex,
  .page-newborn .newborn-gift .contenedor-flex {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }

  .page-newborn .newborn-studio .columna-imagen,
  .page-newborn .newborn-gift .columna-imagen,
  .page-newborn .newborn-accompaniment .columna-imagen {
    flex: 1 1 auto;
    min-width: 0;
  }

  .page-newborn .newborn-accompaniment .imagen-circular {
    width: min(78vw, 360px);
  }

  .page-newborn .newborn-gallery .galeria-fila-3 {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    gap: 0.65rem;
  }

  .page-newborn .newborn-gallery-trigger {
    aspect-ratio: 3 / 2;
  }

  .page-newborn .paso-a-paso-grid,
  .page-newborn .grid-cuatro-pasos,
  .page-newborn .newborn-fit .grid-doble-lista {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-newborn .newborn-portfolio-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-newborn .newborn-portfolio-grid figure:nth-child(4n + 2) {
    margin-top: 0.8rem;
  }

  .page-newborn .newborn-portfolio-grid figure:nth-child(4n + 3) {
    margin-top: 0.25rem;
  }
}

@media (max-width: 560px) {
  .page-newborn .newborn-portfolio-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
  }

  .page-newborn .newborn-portfolio-grid .newborn-gallery-trigger {
    border-radius: 10px;
  }

  .page-newborn .newborn-portfolio-grid figure:nth-child(n) {
    margin-top: 0;
  }

  .page-newborn .newborn-feature-photo-title {
    right: 0.75rem;
    bottom: 0.8rem;
    left: 0.75rem;
    max-width: 24ch;
    font-size: clamp(1.45rem, 6vw, 2rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-newborn .newborn-gallery-trigger img,
  .page-newborn-main .boton-cta,
  .page-newborn .boton-cta-izquierda {
    transition: none;
  }
}

/* Landing de maternidad: composición editorial aislada */
body.page-maternity {
  --maternity-paper: #fffdfb;
  --maternity-cream: #f8f4ef;
  --maternity-brown: #563e34;
  --maternity-warm: #b48a60;
  overflow-x: hidden;
  background: var(--maternity-paper);
  color: #43352f;
  font-family: "DM Sans", Arial, sans-serif;
}

.page-maternity-main {
  overflow: clip;
}

body.page-maternity .page-maternity-main h2 {
  color: var(--maternity-brown);
  font: 400 clamp(2.25rem, 4vw, 3.6rem)/1.02 "Cormorant Garamond", Georgia, serif;
  text-wrap: balance;
}

.page-maternity-main p,
.page-maternity-main li {
  color: #504943;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(0.98rem, 1.12vw, 1.08rem);
  line-height: 1.8;
}

.page-maternity .hero-maternidad {
  position: relative;
  isolation: isolate;
  display: flex;
  width: 100%;
  height: min(90svh, 960px);
  min-height: 620px;
  align-items: center;
  justify-content: flex-end;
  box-sizing: border-box;
  padding: clamp(1.25rem, 5vw, 5rem);
  overflow: hidden;
  background: #312824;
}

.page-maternity .maternity-hero-picture {
  position: absolute;
  z-index: -1;
  inset: 0;
  display: block;
}

.page-maternity .maternity-hero-picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
}

.page-maternity .overlay-texto {
  position: relative;
  z-index: 1;
  display: block;
  width: min(590px, 43vw);
  height: auto;
  margin: 0;
  padding: clamp(1.5rem, 3vw, 2.75rem);
  border: 1px solid rgb(255 255 255 / 55%);
  border-radius: 4px;
  background: rgb(248 244 239 / 78%);
  box-shadow: 0 18px 55px rgb(30 22 17 / 16%);
  color: var(--maternity-brown);
  text-align: left;
  backdrop-filter: blur(8px);
}

.page-maternity .overlay-texto h1 {
  max-width: 15ch;
  margin: 0 0 1rem;
  padding: 0;
  color: #4f382e !important;
  font: 400 clamp(2.65rem, 5.2vw, 5rem)/0.98 "Cormorant Garamond", Georgia, serif;
  letter-spacing: -0.025em;
  text-align: left;
  text-wrap: balance;
}

.page-maternity .overlay-texto .h2-subtle {
  margin: 0 0 1.5rem;
  color: #674b3b !important;
  font: italic 400 clamp(1rem, 1.25vw, 1.2rem)/1.7 "Lora", Georgia, serif;
  font-style: italic !important;
  text-align: left;
}

.page-maternity .overlay-texto .h2-subtle em {
  color: inherit;
  font-family: "Lora", Georgia, serif;
  font-style: italic !important;
  font-weight: 400;
}

.page-maternity .overlay-texto .boton-cta,
.page-maternity-main .boton-cta {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0.8rem 1.6rem;
  border: 1px solid var(--maternity-brown);
  border-radius: 999px;
  background: var(--maternity-brown);
  color: #fffaf5;
  font: 600 0.82rem/1.2 "DM Sans", Arial, sans-serif;
  letter-spacing: 0.06em;
  text-align: center;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.page-maternity .overlay-texto .boton-cta:hover,
.page-maternity .overlay-texto .boton-cta:focus-visible,
.page-maternity-main .boton-cta:hover,
.page-maternity-main .boton-cta:focus-visible {
  transform: translateY(-2px);
  background: #fffaf5;
  color: var(--maternity-brown);
}

.page-maternity-main .boton-cta:focus-visible,
.page-maternity .maternity-swiper button:focus-visible {
  outline: 3px solid var(--maternity-warm);
  outline-offset: 4px;
}

.page-maternity-main .maternity-intro,
.page-maternity-main .maternity-story,
.page-maternity-main .maternity-gift {
  box-sizing: border-box;
  margin: 0;
  padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 5vw, 4rem);
}

.page-maternity-main .maternity-intro {
  background: var(--maternity-paper);
}

.page-maternity-main .maternity-intro .contenedor-flex,
.page-maternity-main .maternity-story .contenedor-flex,
.page-maternity-main .maternity-gift .contenedor-flex {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  width: min(1160px, 100%);
  margin: 0 auto;
  padding: 0;
  background: transparent;
}

.page-maternity-main .maternity-intro .contenedor-flex {
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
  width: min(1280px, 100%);
  max-width: 1280px;
}

.page-maternity-main .maternity-intro .columna-imagen,
.page-maternity-main .maternity-story .columna-imagen,
.page-maternity-main .maternity-gift .columna-imagen {
  display: block;
  width: auto;
  height: auto;
  min-width: 0;
}

.page-maternity-main .maternity-intro .columna-imagen img,
.page-maternity-main .maternity-gift .columna-imagen img {
  display: block;
  width: 100%;
  max-height: none;
  height: auto;
  object-fit: cover;
  border-radius: 4px;
  box-shadow: 0 20px 55px rgb(68 48 36 / 12%);
}

.page-maternity-main .maternity-intro .columna-texto,
.page-maternity-main .maternity-story .columna-texto,
.page-maternity-main .maternity-gift .columna-texto {
  min-width: 0;
  flex: none;
}

.page-maternity-main .maternity-intro .columna-texto p,
.page-maternity-main .maternity-story .columna-texto p,
.page-maternity-main .maternity-gift .columna-texto p {
  margin: 0 0 1rem;
}

.page-maternity-main .maternity-gallery {
  width: 100%;
  margin: 0;
  padding: 0;
  background: var(--maternity-paper);
}

.page-maternity-main .maternity-gallery .galeria-fila-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.45rem, 1vw, 0.9rem);
  width: 100%;
  padding: 0;
}

.page-maternity-main .maternity-gallery .galeria-columna {
  min-width: 0;
  overflow: hidden;
}

.page-maternity-main .maternity-gallery .galeria-columna img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 3;
  object-fit: cover;
}

.page-maternity-main .maternity-practical {
  padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 5vw, 4rem);
  background: var(--maternity-cream);
}

.page-maternity-main .maternity-practical > .main,
.page-maternity-main .maternity-process > .main,
.page-maternity-main .maternity-review > .main,
.page-maternity-main .maternity-gift-prompt > .main,
.page-maternity-main .maternity-fit > .main,
.page-maternity-main .maternity-final-cta > .main,
.page-maternity-main .maternity-questions > .main {
  width: min(1160px, 100%);
  margin-inline: auto;
}

.page-maternity-main .maternity-practical .paso-a-paso-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.5rem);
  margin-top: clamp(2rem, 4vw, 3rem);
}

.page-maternity-main .maternity-practical .paso-columna {
  min-width: 0;
  padding: clamp(1.25rem, 2.5vw, 2rem);
  border: 1px solid rgb(105 77 59 / 14%);
  border-radius: 4px 4px 28px 4px;
  background: rgb(255 255 255 / 62%);
  text-align: center;
}

.page-maternity-main .maternity-practical .icono-guia {
  display: inline-block;
  width: auto;
  height: auto;
  margin: 0 0 0.9rem;
  border-radius: 0;
  background: transparent;
  color: var(--maternity-warm);
  font-size: 2rem;
}

.page-maternity-main .maternity-practical h3,
.page-maternity-main .maternity-process .paso h3 {
  margin: 0 0 0.7rem;
  color: var(--maternity-brown);
  font: 500 clamp(1.45rem, 2vw, 1.8rem)/1.12 "Cormorant Garamond", Georgia, serif;
}

.page-maternity-main .maternity-practical p,
.page-maternity-main .maternity-process .paso p {
  margin: 0;
  font-size: 0.96rem;
  line-height: 1.75;
}

.page-maternity-main .maternity-story {
  background: #fff;
}

.page-maternity-main .maternity-story .contenedor-flex {
  grid-template-columns: minmax(0, 1.1fr) minmax(250px, 0.75fr);
}

.page-maternity-main .maternity-story .imagen-circular {
  display: block;
  width: min(100%, 380px);
  height: auto;
  margin-inline: auto;
  border-radius: 50%;
  box-shadow: 0 20px 48px rgb(68 48 36 / 12%);
}

.page-maternity-main .maternity-review {
  padding: clamp(3.5rem, 7vw, 6rem) 1.25rem;
  background: #554638;
}

.page-maternity-main .maternity-review .bloque-resena {
  box-sizing: border-box;
  max-width: 820px;
  padding: clamp(2rem, 4vw, 3.5rem);
  border: 1px solid rgb(251 248 242 / 22%);
  border-radius: 3px 3px 30px 3px;
  background: #69594a;
  box-shadow: 0 14px 34px rgb(35 27 21 / 14%);
}

.page-maternity-main .maternity-review .texto-resena {
  color: #fffdfb;
  font: italic 400 clamp(1.25rem, 2.2vw, 1.7rem)/1.55 "Lora", Georgia, serif;
}

.page-maternity-main .maternity-review .nombre-cliente {
  color: #fffdfb;
}

.page-maternity-main .maternity-review .fecha-resena {
  color: rgb(255 253 251 / 78%);
}

.page-maternity-main .maternity-review .estrellas {
  color: #d8bd8f;
}

.page-maternity-main .maternity-process {
  padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 5vw, 4rem);
  background: var(--maternity-paper);
}

.page-maternity-main .maternity-process .grid-cuatro-pasos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: clamp(2rem, 4vw, 3rem);
}

.page-maternity-main .maternity-process .paso {
  min-width: 0;
  padding: 1.5rem 1.25rem;
  border: 1px solid rgb(105 77 59 / 14%);
  border-radius: 16px;
  background: var(--maternity-cream);
  box-shadow: none;
  text-align: center;
}

.page-maternity-main .maternity-process .icono-paso {
  display: grid;
  width: 46px;
  height: 46px;
  margin: 0 auto 1rem;
  place-items: center;
  border-radius: 50%;
  background: #e9ded3;
  color: var(--maternity-brown);
}

.page-maternity-main .maternity-process .icono-paso i {
  margin: 0;
  color: var(--maternity-warm);
  font-size: 1.15rem;
  line-height: 1;
}

.page-maternity-main .maternity-carousel {
  width: 100%;
  margin: 0;
  background: #211b18;
}

.page-maternity-main .maternity-carousel .maternity-swiper {
  position: relative;
  width: 100vw !important;
  height: min(82svh, 900px) !important;
  min-height: 440px;
  margin: 0 !important;
  overflow: hidden;
}

.page-maternity-main .maternity-carousel .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-maternity .maternity-swiper-prev,
.page-maternity .maternity-swiper-next,
.page-maternity .maternity-swiper-toggle {
  position: absolute;
  z-index: 5;
  display: grid;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  border: 1px solid rgb(255 250 245 / 72%);
  border-radius: 50%;
  background: rgb(36 29 25 / 62%);
  color: #fffaf5;
  cursor: pointer;
}

.page-maternity .maternity-swiper-prev,
.page-maternity .maternity-swiper-next {
  top: 50%;
  transform: translateY(-50%);
}

.page-maternity .maternity-swiper-prev { left: 1.25rem; }
.page-maternity .maternity-swiper-next { right: 1.25rem; }
.page-maternity .maternity-swiper-prev::before { content: "‹"; font-size: 2rem; line-height: 1; }
.page-maternity .maternity-swiper-next::before { content: "›"; font-size: 2rem; line-height: 1; }

.page-maternity .maternity-swiper-toggle {
  right: 1.25rem;
  bottom: 2.5rem;
  width: auto;
  padding: 0 1rem;
  border-radius: 999px;
  font: 500 0.8rem/1 "DM Sans", Arial, sans-serif;
}

.page-maternity-main .maternity-gift {
  background: var(--maternity-cream);
}

.page-maternity-main .maternity-questions,
.page-maternity-main .maternity-final-cta {
  padding: clamp(4rem, 7vw, 6rem) 1.25rem;
  background: var(--maternity-paper);
}

.page-maternity-main .maternity-gift-prompt,
.page-maternity-main .maternity-fit {
  padding: clamp(4rem, 7vw, 6rem) clamp(1.25rem, 5vw, 4rem);
  background: var(--maternity-cream);
}

.page-maternity-main .maternity-gift-prompt .parrafo-ancho,
.page-maternity-main .maternity-final-cta .parrafo-ancho,
.page-maternity-main .maternity-questions .parrafo-ancho {
  max-width: 760px;
  margin-inline: auto;
}

.page-maternity-main .maternity-gift .columna-imagen img {
  object-fit: contain;
  background: #f1ebe4;
}

@media (max-width: 900px) {
  .page-maternity .hero-maternidad {
    min-height: 560px;
    height: min(84svh, 820px);
  }

  .page-maternity .overlay-texto {
    width: min(560px, 48vw);
  }

  .page-maternity-main .maternity-process .grid-cuatro-pasos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-maternity-main .maternity-practical .paso-a-paso-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-maternity-main .maternity-intro .contenedor-flex {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
    gap: clamp(1rem, 3vw, 1.5rem);
  }
}

@media (max-width: 680px) {
  .page-maternity .hero-maternidad {
    min-height: min(90svh, 820px);
    height: min(90svh, 820px);
    align-items: flex-end;
    justify-content: center;
    padding: 1rem;
  }

  .page-maternity .maternity-hero-picture img {
    object-position: 37% center;
  }

  .page-maternity .overlay-texto {
    width: 100%;
    padding: 1.35rem 1.2rem;
    border-radius: 14px;
    background: rgb(248 244 239 / 94%);
  }

  .page-maternity .overlay-texto h1 {
    font-size: clamp(2.3rem, 10vw, 3.4rem);
    line-height: 0.98;
  }

  .page-maternity .overlay-texto .h2-subtle {
    font-size: 0.96rem;
    line-height: 1.55;
  }

  .page-maternity .overlay-texto .boton-cta {
    width: 100%;
  }

  .page-maternity-main .maternity-story .contenedor-flex,
  .page-maternity-main .maternity-gift .contenedor-flex {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }

  .page-maternity-main .maternity-gallery .galeria-fila-3 {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.65rem;
  }

  .page-maternity-main .maternity-practical .paso-a-paso-grid,
  .page-maternity-main .maternity-process .grid-cuatro-pasos,
  .page-maternity-main .maternity-fit .grid-doble-lista {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-maternity-main .maternity-carousel .maternity-swiper {
    height: 68svh !important;
    min-height: 380px;
  }

  .page-maternity .maternity-swiper-prev { left: 0.75rem; }
  .page-maternity .maternity-swiper-next { right: 0.75rem; }
  .page-maternity .maternity-swiper-toggle { right: 0.75rem; bottom: 2.5rem; }
}

@media (max-width: 600px) {
  .page-maternity-main .maternity-intro .contenedor-flex {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-maternity-main .boton-cta { transition: none; }
}

/* Título de newsletter del pie: pequeño, editorial y consistente en todas las páginas */
.footer-crema .newsletter-titulo {
  margin: 0 0 0.75rem;
  color: #554638;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.15rem, 1.5vw, 1.3rem);
  font-weight: 500;
  line-height: 1.2;
}

/* Tarjetas de selección de sesión: mismo diseño para newborn y maternidad */
.page-maternity-main .maternity-fit {
  margin: 0;
  padding: clamp(4rem, 7vw, 6rem) clamp(1.25rem, 5vw, 4rem);
  background: #fff;
}

.page-maternity-main .maternity-fit .grid-doble-lista {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
  margin-top: 2rem;
}

.page-maternity-main .maternity-fit .columna-si,
.page-maternity-main .maternity-fit .columna-no {
  min-width: 0;
  padding: clamp(1.4rem, 2.7vw, 2.2rem);
  border: 1px solid rgb(105 77 59 / 14%);
  border-radius: 18px;
  background: #fcfaf7;
}

.page-maternity-main .maternity-fit .grid-doble-lista h3 {
  margin: 0 0 1rem;
  color: #563e34;
  font: 500 clamp(1.5rem, 2.3vw, 2rem)/1.15 "Cormorant Garamond", Georgia, serif;
}

.page-maternity-main .maternity-fit .grid-doble-lista li {
  margin-bottom: 0.8rem;
  padding-left: 1.9rem;
  font-size: 0.97rem;
}

@media (max-width: 767px) {
  .page-maternity-main .maternity-fit .grid-doble-lista {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Ritmo vertical más compacto en la landing de maternidad */
.page-maternity-main .maternity-intro,
.page-maternity-main .maternity-story,
.page-maternity-main .maternity-gift,
.page-maternity-main .maternity-practical,
.page-maternity-main .maternity-process {
  padding-block: clamp(2.75rem, 5vw, 4.5rem);
}

.page-maternity-main .maternity-review {
  padding-block: clamp(2.25rem, 4.2vw, 3.5rem);
}

.page-maternity-main .maternity-review .bloque-resena {
  padding: clamp(1.75rem, 3vw, 2.75rem);
}

.page-maternity-main .maternity-gift-prompt,
.page-maternity-main .maternity-fit {
  padding-block: clamp(2.75rem, 5vw, 4.5rem);
}

.page-maternity-main .maternity-final-cta,
.page-maternity-main .maternity-questions {
  padding-block: clamp(2.5rem, 4.5vw, 4rem);
}

.page-maternity-main .maternity-gift-prompt .parrafo-ancho,
.page-maternity-main .maternity-final-cta .parrafo-ancho,
.page-maternity-main .maternity-questions .parrafo-ancho {
  padding: 0 0 0.75rem;
  margin-bottom: 0.75rem;
}

.page-maternity-main .maternity-process .grid-cuatro-pasos {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

/* H1 editorial: trazo y escala coherentes entre portada y páginas principales */
body.home .home-hero-title {
  font-size: clamp(2.65rem, 5.2vw, 5rem);
  font-weight: 500;
}

@media (max-width: 760px) {
  body.home .home-hero-title {
    font-size: clamp(2.3rem, 10vw, 3.4rem);
  }
}

body.page-about .sobre-mi-texto h1,
body.page-services .servicios-lista h1 {
  font-size: clamp(2.8rem, 5.2vw, 4.8rem);
  font-weight: 400;
  line-height: 0.98;
}

@media (max-width: 760px) {
  body.page-about .sobre-mi-texto h1,
  body.page-services .servicios-lista h1 {
    font-size: clamp(2.3rem, 10vw, 3.4rem);
    line-height: 0.98;
  }
}

/* Títulos de sección de la home: trazo fino y escala editorial coherente */
body.home .texto-maternidad h2,
body.home .sesiones-home > .h2-subtitulo,
body.home .sesiones-home .bloque-flickr-centro h2,
body.home .newsletter-home .newsletter-container h2,
body.home .reseñas-home h2 {
  font-weight: 400;
}

body.home .texto-maternidad h2,
body.home .sesiones-home > .h2-subtitulo,
body.home .reseñas-home h2 {
  font-size: clamp(2.45rem, 4.3vw, 4rem);
  line-height: 1;
}

body.home .sesiones-home .bloque-flickr-centro h2,
body.home .newsletter-home .newsletter-container h2 {
  font-size: clamp(2.2rem, 3.8vw, 3.5rem);
  line-height: 1.04;
}

body.home .footer .newsletter-titulo {
  font-weight: 400;
}

@media (max-width: 760px) {
  body.home .texto-maternidad h2,
  body.home .sesiones-home > .h2-subtitulo,
  body.home .reseñas-home h2 {
    font-size: clamp(2.2rem, 8.5vw, 3.3rem);
    line-height: 1.02;
  }

  body.home .sesiones-home .bloque-flickr-centro h2,
  body.home .newsletter-home .newsletter-container h2 {
    font-size: clamp(2rem, 7.5vw, 3rem);
    line-height: 1.05;
  }
}

/* Inicio en móvil: foto completa y texto editorial directamente sobre la imagen */
@media (max-width: 760px) {
  body.home .home-hero-eyebrow {
    margin-bottom: 0.25rem;
    color: #fffaf2;
    font-size: 0.56rem;
    text-shadow: 0 1px 8px rgb(0 0 0 / 45%);
  }

  body.home .home-hero-title {
    max-width: 36ch;
    color: #fffaf2;
    font-size: clamp(1rem, 4.6vw, 1.35rem);
    line-height: 1.04;
    text-shadow: 0 1px 9px rgb(0 0 0 / 55%);
  }

  body.home .home-hero-link {
    margin-top: 0.45rem;
    padding: 0.55rem 0.85rem;
    border-color: #fffaf2;
    background: var(--home-brown);
    color: #fffaf2;
    font-size: 0.68rem;
  }

}


/* Portadas mobile de recién nacido y maternidad: imagen completa sin caja opaca */
@media (max-width: 680px) {
  .page-newborn .hero-newborn {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
    padding: 0;
    overflow: hidden;
  }

  .page-newborn .hero-newborn-picture img {
    object-fit: contain;
    object-position: center;
  }

  .page-newborn .hero-texto-newborn {
    position: absolute;
    top: 0.65rem;
    right: 0.6rem;
    width: 43%;
    max-width: 190px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    text-align: left;
  }

  .page-newborn .titulo-pagina-izquierda {
    margin-bottom: 0.45rem;
    color: #4f382e !important;
    font-size: clamp(0.98rem, 4.2vw, 1.25rem);
    line-height: 1.02;
    text-shadow: 0 1px 3px rgb(255 255 255 / 75%);
  }

  .page-newborn .h2-subtle-landing {
    margin-bottom: 0.55rem;
    color: #4f382e !important;
    font-size: clamp(0.68rem, 2.8vw, 0.82rem);
    line-height: 1.25;
    text-shadow: 0 1px 3px rgb(255 255 255 / 80%);
  }

  .page-newborn .hero-texto-newborn .boton-cta-izquierda {
    width: auto;
    min-height: 0;
    padding: 0.5rem 0.72rem;
    font-size: 0.62rem;
  }

  .page-maternity .hero-maternidad {
    display: block;
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
    padding: 0;
    overflow: hidden;
  }

  .page-maternity .maternity-hero-picture img {
    object-fit: contain;
    object-position: center;
  }

  .page-maternity .hero-maternidad::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    background: linear-gradient(90deg, transparent 34%, rgb(24 18 16 / 12%) 55%, rgb(24 18 16 / 52%) 100%);
    content: "";
    pointer-events: none;
  }

  .page-maternity .overlay-texto {
    position: absolute;
    top: 0.8rem;
    right: 0.7rem;
    width: 47%;
    max-width: 210px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    color: #fffaf2;
    text-align: right;
  }

  .page-maternity .overlay-texto h1 {
    margin-bottom: 0.45rem;
    color: #fffaf2 !important;
    font-size: clamp(1.08rem, 4.7vw, 1.45rem);
    line-height: 1.02;
    text-shadow: 0 1px 8px rgb(0 0 0 / 55%);
  }

  .page-maternity .overlay-texto .h2-subtle {
    margin-bottom: 0.6rem;
    color: #fffaf2 !important;
    font-family: "Lora", Georgia, serif;
    font-size: clamp(0.66rem, 2.8vw, 0.8rem);
    font-style: italic !important;
    font-weight: 400;
    line-height: 1.25;
    text-shadow: 0 1px 8px rgb(0 0 0 / 55%);
  }

  .page-maternity .overlay-texto .h2-subtle em {
    font-family: "Lora", Georgia, serif;
    font-size: inherit;
    font-style: italic !important;
    font-weight: 400;
  }

  .page-maternity .overlay-texto .boton-cta {
    width: auto;
    min-height: 0;
    padding: 0.5rem 0.7rem;
    font-size: 0.62rem;
  }
}

/* Inicio: cabecera móvil compacta para liberar el titular del visor */
@media (max-width: 900px) {
  body.home .header-container {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    height: 86px;
    min-height: 86px;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body.home .main-header {
    position: sticky;
    top: 0;
    right: 0;
    left: 0;
    overflow: visible;
  }

  body.home .logo {
    position: absolute;
    top: 43px;
    left: 1rem;
    width: clamp(82px, 25vw, 112px);
    max-width: 30vw;
    margin: 0;
    transform: translateY(-50%);
  }

  body.home .logo img {
    width: 100%;
    max-height: 58px;
  }

  body.home .menu-toggle {
    position: absolute;
    top: 43px;
    left: 50%;
    z-index: 2;
    display: flex;
    width: 42px;
    height: 42px;
    margin: 0;
    transform: translate(-50%, -50%);
  }

  body.home .social-header {
    position: absolute;
    top: 8px;
    right: 0.9rem;
    display: flex;
    justify-content: flex-end;
    gap: 0.55rem;
    margin: 0;
    padding: 0;
  }

  body.home .social-header img {
    width: 19px;
    height: 19px;
  }

  body.home .header-call {
    position: absolute;
    top: 40px;
    right: 0.72rem;
    display: inline-flex;
    justify-content: center;
    min-height: 30px;
    margin: 0;
    padding: 0.35rem 0.6rem;
    font-size: 0.66rem;
  }

  body.home .header-call-number {
    display: none;
  }

  body.home .nav-principal {
    position: static;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  body.home .nav-menu,
  body.home .nav-menu.active {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    display: flex;
    justify-content: flex-start;
    width: 100%;
    max-height: calc(100vh - 86px);
    max-height: calc(100dvh - 86px);
    margin: 0;
    padding: 0.45rem 1rem 0.7rem;
    border: 0;
    border-top: 1px solid rgb(85 70 56 / 12%);
    border-radius: 0;
    background: #fffdfb;
    box-shadow: 0 12px 24px rgb(45 34 24 / 12%);
    box-sizing: border-box;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body.home .nav-menu:not(.active) {
    display: none;
  }

  body.home .nav-menu > li {
    flex: 0 0 auto;
  }

  body.home .main-header.menu-open {
    position: sticky;
    top: 0;
    background: rgb(251 248 242 / 96%);
    box-shadow: 0 5px 18px rgb(45 34 24 / 10%);
    backdrop-filter: blur(12px);
  }

  body.home .main-header.menu-open .header-container {
    height: 86px;
    min-height: 86px;
  }

  body.home .main-header.menu-open .nav-principal {
    display: block;
    margin-top: 0;
  }

  body.home .main-header.menu-open .nav-menu {
    align-items: stretch;
    animation: mobile-menu-slide-down 240ms ease-out both;
  }
}

@media (max-width: 360px) {
  body.home .header-container {
    height: 80px;
    min-height: 80px;
  }

  body.home .logo {
    top: 40px;
    left: 0.7rem;
    width: 78px;
  }

  body.home .menu-toggle {
    top: 40px;
  }

  body.home .social-header {
    right: 0.65rem;
    gap: 0.38rem;
  }

  body.home .header-call {
    top: 38px;
    right: 0.48rem;
    padding-right: 0.45rem;
    padding-left: 0.45rem;
    font-size: 0.61rem;
  }

  body.home .main-header.menu-open .nav-principal {
    margin-top: 0;
  }

  body.home .nav-menu,
  body.home .nav-menu.active {
    max-height: calc(100vh - 80px);
    max-height: calc(100dvh - 80px);
  }
}

/* Retrato de Susana en las landings: mismo recorte editorial que en Sobre mí */
body.page-newborn .newborn-accompaniment img.imagen-circular,
body.page-maternity .maternity-story img.imagen-circular,
body.page-navidad .bloque-maternidad .columna-imagen img.imagen-circular,
body.page-comunion .comunion-story img.imagen-circular {
  aspect-ratio: 700 / 874;
  object-fit: cover;
  object-position: center 36%;
  border-radius: 2px 2px 2px 86px;
}

/* Inicio: reseñas en chocolate con tarjetas claras, conservando el carrusel */
body.home .home-reviews-wrap#reviews {
  background: var(--home-brown);
}

body.home .reseñas-home {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: clamp(2.75rem, 6vw, 5rem) clamp(1.25rem, 5vw, 5rem);
  color: var(--home-paper);
  box-sizing: border-box;
}

body.home .reseñas-home h2 {
  color: var(--home-paper);
}

body.home .reseñas-home .reseña {
  border: 1px solid rgb(251 248 242 / 22%);
  border-radius: 3px 3px 30px 3px;
  background: #69594a;
  box-shadow: 0 14px 34px rgb(35 27 21 / 14%);
}

body.home .reseñas-home .reseña p {
  color: #fffdfb;
}

body.home .reseñas-home .reseña span {
  color: rgb(255 253 251 / 82%);
}

body.home .reseñas-home .flechas button {
  border-color: rgb(251 248 242 / 55%);
  color: var(--home-paper);
}

body.home .reseñas-home .flechas button:hover {
  border-color: var(--home-paper);
  background: var(--home-paper);
  color: var(--home-brown);
}

@media (max-width: 600px) {
  body.home .reseñas-home {
    width: 100%;
    margin: 0 auto;
    padding: 2.5rem 1rem;
  }
}

/* Landing de maternidad: imagen editorial y porfolio asimétrico */
.page-maternity-main .maternity-editorial-image {
  position: relative;
  width: 100%;
  margin: clamp(1.75rem, 4vw, 3.5rem) 0 clamp(2.75rem, 6vw, 5rem);
  overflow: hidden;
  background: #302824;
}
.page-maternity-main .maternity-editorial-image > img {
  display: block;
  width: 100%;
  height: auto;
}
.page-maternity-main .maternity-editorial-caption {
  position: absolute;
  inset: auto 0 0;
  padding: clamp(1.3rem, 4vw, 3.5rem) clamp(1.25rem, 6vw, 5rem);
  color: #fffaf5;
  background: linear-gradient(transparent, rgb(31 23 20 / 70%));
  text-align: center;
}
.page-maternity-main .maternity-editorial-caption h2 {
  margin: 0 0 .35rem;
  font: 400 clamp(2rem, 4.8vw, 4.4rem)/1.02 "Cormorant Garamond", Georgia, serif;
}
.page-maternity-main .maternity-editorial-caption p {
  margin: 0;
  font: italic 400 clamp(.95rem, 1.5vw, 1.35rem)/1.5 "Lora", Georgia, serif;
}
.page-maternity-main .maternity-portfolio {
  width: 100%;
  margin: 0 0 clamp(2.5rem, 5vw, 4rem);
  padding: 0;
  background: var(--maternity-paper, #fbfaf8);
}
.page-maternity-main .maternity-portfolio-heading {
  padding: clamp(2rem, 4vw, 3.5rem) 1rem clamp(1.5rem, 3vw, 2.5rem);
  text-align: center;
}
.page-maternity-main .maternity-portfolio-heading .eyebrow {
  margin: 0 0 .45rem;
  color: #9a7b69;
  font: 500 .72rem/1.4 "DM Sans", sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.page-maternity-main .maternity-portfolio-heading h2 {
  margin: 0;
  color: #4f382e;
  font: 400 clamp(2rem, 4vw, 3.5rem)/1.05 "Cormorant Garamond", Georgia, serif;
}
.page-maternity-main .maternity-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(160px, 21vw);
  grid-auto-flow: dense;
  gap: clamp(.45rem, .9vw, .85rem);
  width: 100%;
}
.page-maternity-main .maternity-portfolio-item {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #eee8e2;
}
.page-maternity-main .maternity-portfolio-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2,.7,.2,1);
}
.page-maternity-main .maternity-portfolio-item:hover img { transform: scale(1.035); }
.page-maternity-main .maternity-portfolio-item.portfolio-feature {
  grid-column: span 2;
  grid-row: span 2;
}
.page-maternity-main .maternity-portfolio-item.portfolio-tall { grid-row: span 2; }
@media (max-width: 760px) {
  .page-maternity-main .maternity-editorial-image { margin: 1.5rem 0 2.25rem; }
  .page-maternity-main .maternity-editorial-caption { padding: 2rem 1rem 1.15rem; }
  .page-maternity-main .maternity-editorial-caption h2 { font-size: clamp(1.65rem, 7vw, 2.7rem); }
  .page-maternity-main .maternity-editorial-caption p { font-size: .88rem; }
}
@media (min-width: 681px) and (max-width: 760px) {
  .page-maternity-main .maternity-portfolio-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(150px, 42vw);
    gap: .45rem;
  }
  .page-maternity-main .maternity-portfolio-item.portfolio-feature { grid-column: span 2; grid-row: span 2; }
  .page-maternity-main .maternity-portfolio-item.portfolio-tall { grid-row: span 2; }
}
@media (prefers-reduced-motion: reduce) {
  .page-maternity-main .maternity-portfolio-item img { transition: none; }
}

/* Mantener la orientación original de cada fotografía del porfolio de maternidad */
.page-maternity-main .maternity-portfolio-item img {
  object-fit: contain;
  object-position: center;
  background: #eee8e2;
}
.page-maternity-main .maternity-portfolio-item.portfolio-tall img {
  object-fit: contain;
}
/* Masonry real: cada celda sigue la proporción natural de su fotografía */
.page-maternity-main .maternity-portfolio {
  margin-bottom: 0;
  background: #fff;
}
.page-maternity-main .maternity-portfolio-grid {
  grid-auto-rows: 8px;
  grid-auto-flow: dense;
  align-items: start;
  gap: clamp(4px, .65vw, 8px);
  background: #fff;
}
.page-maternity-main .maternity-portfolio-item,
.page-maternity-main .maternity-portfolio-item.portfolio-tall {
  grid-row: auto;
  align-self: start;
  overflow: visible;
  background: transparent;
}
.page-maternity-main .maternity-portfolio-item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: initial;
  background: transparent;
  transition: none;
}
.page-maternity-main .maternity-portfolio-item:hover img { transform: none; }
@media (min-width: 681px) and (max-width: 760px) {
  .page-maternity-main .maternity-portfolio-grid { grid-auto-rows: 8px; }
  .page-maternity-main .maternity-portfolio-item.portfolio-feature { grid-row: auto; }
}

/* Masonry de maternidad: flujo por columnas, proporción original y sin fondos de relleno */
.page-maternity-main .maternity-portfolio-grid {
  grid-auto-rows: 1px;
  grid-auto-flow: row;
  align-items: start;
  gap: 8px;
  background: #fff;
}
.page-maternity-main .maternity-portfolio-item,
.page-maternity-main .maternity-portfolio-item.portfolio-tall,
.page-maternity-main .maternity-portfolio-item.portfolio-feature {
  grid-row: auto;
  min-width: 0;
  margin: 0;
  overflow: visible;
  align-self: start;
  background: transparent;
}
.page-maternity-main .maternity-portfolio-item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: initial;
  background: transparent;
  transition: none;
}
.page-maternity-main .maternity-portfolio-item:hover img { transform: none; }
@media (min-width: 681px) and (max-width: 760px) {
  .page-maternity-main .maternity-portfolio-grid { grid-auto-rows: 1px; }
}

/* Portada de Maternidad: desplazar el bloque de texto al lado izquierdo */
.page-maternity .hero-maternidad {
  justify-content: flex-start;
}
.page-maternity .hero-maternidad .overlay-texto {
  margin-right: auto;
  margin-left: 0;
  text-align: left;
}
.page-maternity .hero-maternidad .overlay-texto h1,
.page-maternity .hero-maternidad .overlay-texto .h2-subtle {
  text-align: left;
}
@media (max-width: 680px) {
  .page-maternity .hero-maternidad { justify-content: flex-start; }
  .page-maternity .hero-maternidad .overlay-texto {
    right: auto;
    left: 0.7rem;
    text-align: left;
  }
}


/* Portada de Maternidad: etiqueta de nuevo en el lado derecho */
.page-maternity .hero-maternidad { justify-content: flex-end; }
.page-maternity .hero-maternidad .overlay-texto { margin-left: auto; margin-right: 0; text-align: right; }
.page-maternity .hero-maternidad .overlay-texto h1,
.page-maternity .hero-maternidad .overlay-texto .h2-subtle { text-align: right; }
@media (max-width: 680px) {
  .page-maternity .hero-maternidad { justify-content: center; }
  .page-maternity .hero-maternidad .overlay-texto { left: auto; right: 0.7rem; text-align: right; }
}


/* Portada de Maternidad: caja más translúcida */
.page-maternity .hero-maternidad .overlay-texto {
  background: rgb(248 244 239 / 56%);
  border-color: rgb(255 255 255 / 38%);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}

/* Texto editorial de Maternidad sobre el espacio libre de la esquina superior izquierda */
.page-maternity-main .maternity-editorial-caption {
  inset: clamp(1.5rem, 5vw, 4.5rem) auto auto clamp(1.25rem, 6vw, 5.5rem);
  width: min(48%, 700px);
  padding: 0;
  color: #4f382e;
  background: transparent;
  text-align: left;
}
.page-maternity-main .maternity-editorial-caption h2,
.page-maternity-main .maternity-editorial-caption p {
  color: #4f382e;
  text-align: left;
  text-shadow: none;
}
@media (max-width: 760px) {
  .page-maternity-main .maternity-editorial-caption {
    inset: 5% auto auto 5%;
    width: min(62%, 420px);
    padding: 0;
  }
  .page-maternity-main .maternity-editorial-caption h2 { font-size: clamp(1.5rem, 6vw, 2.5rem); }
  .page-maternity-main .maternity-editorial-caption p { font-size: clamp(.74rem, 2.8vw, .92rem); }
}


/* Enlace a opiniones de Google bajo las reseñas de las landings */
a.reviews-google-link:link,
a.reviews-google-link:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: .65rem;
  padding: .65rem 1.25rem;
  border: 1px solid #d8bd8f;
  border-radius: 999px;
  background: #f8f4ef;
  color: #563e34;
  font: 600 .78rem/1.2 "DM Sans", Arial, sans-serif;
  letter-spacing: .04em;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
a.reviews-google-link:hover,
a.reviews-google-link:focus-visible {
  background: #d8bd8f;
  color: #43352f;
  transform: translateY(-2px);
}

/* Newborn: cuadrícula alineada y con esquinas rectas en todos los tamaños */
.page-newborn .newborn-portfolio-grid {
  align-items: stretch;
}
.page-newborn .newborn-portfolio-grid figure:nth-child(5n + 2),
.page-newborn .newborn-portfolio-grid figure:nth-child(5n + 3),
.page-newborn .newborn-portfolio-grid figure:nth-child(13),
.page-newborn .newborn-portfolio-grid figure:nth-child(14),
.page-newborn .newborn-portfolio-grid figure:nth-child(15),
.page-newborn .newborn-portfolio-grid figure:nth-child(4n + 2),
.page-newborn .newborn-portfolio-grid figure:nth-child(4n + 3) {
  margin-top: 0;
}
.page-newborn .newborn-portfolio-grid .newborn-gallery-trigger {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 0;
}
.page-newborn .newborn-portfolio-grid .newborn-gallery-trigger img {
  border-radius: 0;
}

/* Maternidad: lista móvil separada del grid masonry de escritorio/tablet */
body.page-maternity .maternity-portfolio-mobile {
  display: none;
}

@media (max-width: 680px) {
  body.page-maternity .maternity-portfolio-grid {
    display: none;
  }

  body.page-maternity .maternity-portfolio-mobile {
    display: block;
    width: 100%;
  }

  body.page-maternity .maternity-portfolio-mobile-item {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 0 8px;
    overflow: visible;
  }

  body.page-maternity .maternity-portfolio-mobile-item:last-child {
    margin-bottom: 0;
  }

  body.page-maternity .maternity-portfolio-mobile-item img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: initial;
  }
}

/* En móvil, la cabecera de inicio ocupa su espacio antes del hero para evitar solapamientos. */
@media (max-width: 760px) {
  body.home .main-header {
    position: sticky;
    top: 0;
  }
}

/* En tablet, ajustar la escala tipográfica del contenido del hero. */
@media (min-width: 761px) and (max-width: 1024px) {
  body.home .home-hero-eyebrow {
    margin-bottom: 0.75rem;
  }

  body.home .home-hero-title {
    font-size: clamp(2.2rem, 4.2vw, 2.8rem);
  }

  body.home .home-hero-link {
    margin-top: 0.9rem;
  }
}

/* Hero de inicio: ancho de ventana, marco estable y fotografía completa. */
body.home .pantalla-completa {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: min(66.6667vw, 100vh);
  height: min(66.6667vw, 100svh);
  min-height: 0;
  max-height: none;
  aspect-ratio: auto;
  overflow: hidden;
  background: #4a4038;
}

body.home .pantalla-completa > .swiper-container {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 0;
}

body.home .pantalla-completa .swiper-wrapper {
  height: 100% !important;
  align-items: stretch;
}

body.home .pantalla-completa .swiper-slide {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100% !important;
  overflow: hidden;
  background: transparent;
}

/* El relleno ambiental suaviza la diferencia de proporción sin oscurecerla. */
body.home .pantalla-completa .swiper-slide::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -24px;
  background-image: var(--hero-slide-backdrop);
  background-position: center;
  background-size: cover;
  filter: blur(24px) brightness(0.94) saturate(0.98);
  transform: scale(1.1);
}

body.home .pantalla-completa .swiper-slide::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgb(28 22 18 / 20%) 0%, rgb(28 22 18 / 8%) 52%, transparent 100%),
    linear-gradient(0deg, rgb(28 22 18 / 14%), transparent 58%);
}

body.home .pantalla-completa .swiper-slide picture {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

body.home .pantalla-completa .swiper-slide img {
  display: block;
  width: auto !important;
  height: auto !important;
  max-width: 100%;
  max-height: 100%;
  flex: 0 1 auto;
  object-fit: contain;
  object-position: center;
}

body.home .pantalla-completa::after {
  content: none;
}

body.home .home-hero-copy {
  position: absolute;
  z-index: 4;
  left: clamp(2rem, 7vw, 7rem);
  bottom: clamp(5rem, 10vh, 7rem);
  width: min(56rem, 86vw);
  color: var(--home-paper);
}

body.home .pantalla-completa .swiper-pagination {
  z-index: 4;
  bottom: 1.4rem;
}

@media (max-width: 760px) {
  body.home .pantalla-completa {
    height: min(66.6667vw, 100vh);
    height: min(66.6667vw, 100svh);
    min-height: 0;
    aspect-ratio: auto;
  }

  body.home .home-hero-copy {
    top: auto;
    right: clamp(1.25rem, 5vw, 2rem);
    bottom: 2.8rem;
    left: auto;
    width: min(72vw, 18rem);
    margin: 0;
    padding: 0;
    background: transparent;
    text-align: right;
  }

  body.home .home-hero-title {
    font-size: clamp(1rem, 4.6vw, 1.35rem);
    line-height: 1.04;
  }

  body.home .home-hero-link {
    margin-top: 0.45rem;
    padding: 0.48rem 0.62rem;
    font-size: 0.64rem;
  }

  body.home .pantalla-completa .swiper-pagination {
    bottom: 0.3rem;
  }
}

/* En escritorio amplio, el hero llena el ancho con un recorte centrado moderado. */
@media (min-width: 1201px) {
  body.home .pantalla-completa .swiper-slide img {
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    max-height: none;
    flex: 0 0 100%;
    object-fit: cover;
    object-position: center center;
  }
}
