/* Definicion de fonts*/
@font-face {
    font-family: "AcuminVariableConcept";
    src: url("../fonts/AcuminVariableConcept.otf") format("opentype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Lora";
    src: url("../fonts/Lora-VariableFont_wght.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Lora Italic";
    src: url("../fonts/Lora-Italic-VariableFont_wght.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}


/* Estilos globlales*/
body {
    font-family: "Lora", serif !important;
}

h1 {
  font-size: clamp(3rem, 5vw, 48px); /* antes 2rem */
}

h2 {
  font-size: clamp(2.5rem, 4vw, 35px); /* antes 1.8rem */
}

h3 {
  font-size: clamp(2.2rem, 3.5vw, 30px); /* antes 1.6rem */
}

p {
   letter-spacing: 0.8px;
  font-family: "Lora Italic", serif !important;
  font-size: clamp(1.5rem, 2.5vw, 22px);
}

li {
    line-height: 1px;
  letter-spacing: 0.8px;
  font-family: "Lora Italic", serif !important;
  font-size: clamp(1.5rem, 2.5vw, 20px);
}

.text-justify {
    text-align: justify;
}

/* padding izquierda y derecha 6 */
.px-6 {
  padding-left: 4.5rem !important;
  padding-right: 4.5rem !important;
}

/* padding izquierda y derecha 7 */
.px-7 {
  padding-left: 6rem !important;
  padding-right: 6rem !important;
}

/* padding izquierda y derecha 8 */
.px-8 {
  padding-left: 7.5rem !important;
  padding-right: 7.5rem !important;
}

/* padding izquierda y derecha 9 */
.px-9 {
  padding-left: 9rem !important;
  padding-right: 9rem !important;
}


section {
  padding-top: clamp(5rem, 9vh, 9rem) !important;
  padding-bottom: clamp(5rem, 9vh, 9rem) !important;
}

.ff-lora {
    font-family: "Lora", serif !important;
}

.py-6 {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
}
.py-7 {
    padding-top: 7rem !important;
    padding-bottom: 7rem !important;
}
.py-8 {
    padding-top: 8rem !important;
    padding-bottom: 8rem !important;
}
.py-9 {
    padding-top: 9rem !important;
    padding-bottom: 9rem !important;
}

.mb-6 { margin-bottom: 6rem !important; }
.mt-6 { margin-top: 6rem !important; }
.mb-7 { margin-bottom: 8rem !important; }
.mt-7 { margin-top: 8rem !important; }

.mw-75 {
    max-width: 75% !important;
}

.ff-Acumin {
    font-family: "AcuminVariableConcept", sans-serif !important;
}

.ff-Lora-italic {
    font-family: "Lora Italic", serif !important;
}

.bg-verde {
    background-color: #516c60 !important;
    z-index: 3;
}

.bg-naranja {
    background-color: #c06045 !important;
}

.bg-beige {
    background-color: #F7E1D2 !important;
}

.bg-beige-oscuro {
    background-color: #DEBFA7 !important;
}

.color-beige-oscuro {
    color: #DEBFA7 !important;
}

.bg-oscuro {
    background-color: #193425 !important;  
}

.color-naranja {
    color: #c06045 !important;
}

.color-verdecito {
    color: #193425 !important;
}


.resaltado {
  background: linear-gradient(to top, #AD7D53 40%, transparent 40%);
}

.resaltado-clarito {
  background: linear-gradient(to top, #DEBFA7 40%, transparent 40%);
}

.btn-contacto {
    background-color: #c06045;
    color: #fff;
    font-size: clamp(1rem, 2vw, 1.5rem);
    padding: 0.75rem 2rem;
    border: none;
    border-radius: 0;
}

.btn-contacto:hover {
    background-color: #a14f33;
    color: #fff;
}

/* clase para los elementos del header */
.nav-header {
    padding: 40px 0;
    font-family: "AcuminVariableConcept", sans-serif !important;
    font-weight: normal !important;
    transition: color 0.3s ease, transform 0.3s ease;
    text-decoration: none;
}

.nav-header:hover {
    transform: scale(1.05);
}

/* por defecto, ocultamos el botón hamburguesa */
.menu-btn {
    display: none !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
}

.container-banner-personalizado {
    background-color: rgba(81, 108, 96, 0.8) !important;
    padding: 30px 0;
    max-width: 100%;
}

/* ajustamos el icono */
.menu-btn img {
    width: 28px;
    height: auto;
}

/* cuando la pantalla es pequeña (por ejemplo móvil) */
@media (max-width: 992px) {
    /* ocultar boton de contacto */
    .btn-contacto {
        display: none;
    }

    /* mostrar el boton hamburguesa */
    .menu-btn {
        display: inline-block !important;
    }
}

/* Section principal */
.banner-principal {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.btn-naranja {
    background-color: #c06045;
    color: #fff;
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    padding: 1rem 4rem;
    border: none;
    border-radius: 0;
    font-style: italic;
}

.btn-naranja:hover {
    background-color: #a14f33;
    color: #fff;
}

.hr-naranja {
    width: 140px;
    opacity: 1;
    color: #c06045;
    height: 5px !important;
}

.hr-verde {
    width: 140px;
    opacity: 1;
    color: #516C60;
    height: 5px !important;
}

.bg-salmon {
    background-color: #fff8f4;
}

.columna-ajustada {
  flex: 0 0 42%; /* reduce ligeramente el ancho */
  max-width: 42%;
}

.descripcion-columna-texto {
    max-width: 90%;
}


@media (max-width: 1220px) {
  .columna-ajustada {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .descripcion-columna-texto {
        max-width: 100%;
    }
}

.container-columna-sobrepuesta {
    background-repeat: no-repeat;
    padding: 150px 0;
    background-size: 620px;
}

.columna-texto {
    width: 63%;
}

@media (max-width: 1200px) {
    .columna-texto {
        width: auto;
    }
}

/* ajustes especificos para movil */
@media (max-width: 768px) {
    .section-columna-sobrepuesta {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

  .container-columna-sobrepuesta {
    background-image: none !important; /* quitamos imagen de fondo */
    padding: 0 !important; /* quitamos padding que genera espacio vacio */
  }

  /* si quieres dejar un pequeño margen visual */
  .container-columna-sobrepuesta .contenido-texto {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

}


/*  Section Marco Aurelio */
.section-Marco-Aurelio {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

@media (max-width: 768px) {

  /* h2 más pequeño solo en este section */
  .section-Marco-Aurelio h2 {
    font-size: 2rem !important;
    text-align: center; /* centramos el texto */
  }

  /* el texto de Marco Aurelio centrado */
  .section-Marco-Aurelio p {
    text-align: center;
    margin-top: 1rem;
  }

  /* reorganizamos el orden: texto primero, icono después */
  .section-Marco-Aurelio .row {
    display: flex;
    flex-direction: column-reverse; /* cambia el orden solo en móvil */
    align-items: center;
  }

  /* reducimos tamaño del icono */
  .section-Marco-Aurelio .aurelio-icon {
    width: 120px; /* puedes ajustar a gusto (100–150px aprox) */
    margin-top: 1.5rem;
  }
}


/* Lista personalizada */
.lista-personalizada {
  list-style: none;         
  padding-left: 0;
  margin-bottom: 75px;
}

.lista-personalizada li {
  font-size: clamp(1.5rem, 2.5vw, 18px) !important;
  position: relative;
  padding-left: 30px;         
  margin-bottom: 18px;     
  color: #fff;               
}

.lista-personalizada li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 5px;
  width: 18px;
  height: 18px;
  background: url('../images/icons/check-naranja.svg') no-repeat center;
  background-size: contain;     
}
/* Lista personalizada contacto */
.lista-personalizada-contacto {
  list-style: none;
  padding-left: 0;
  margin-bottom: 75px;
}

.lista-personalizada-contacto li {
  display: flex;             
  align-items: center;
  gap: 10px;                 
  font-size: clamp(1.5rem, 2.5vw, 20px) !important;
  color: #fff;
  margin-bottom: 18px;
}

/* icono base */
.lista-personalizada-contacto li::before {
  content: '';
  display: inline-block;
  width: 24px;               
  height: 24px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;          
}

/* iconos personalizados */
.lista-personalizada-contacto li.icono-ubicacion::before {
  background-image: url('../images/icons/icono-ubicacion.svg');
}

.lista-personalizada-contacto li.icono-correo::before {
  background-image: url('../images/icons/icono-correo.svg');
}


@media (max-width: 768px) {
  /* hace el “fondo” (la imagen verde) mas pequeño en movil */
  .cuadrado-verde-superpuesto {
    width: 88% !important;
    max-width: 380px !important;
    display: block !important;
    margin: 0 auto;
  }
}   

.section-testimonios h3 {
  position: relative;
  display: inline-block;
  font-weight: 400;
}

.section-testimonios h3::before,
.section-testimonios h3::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 460px;
  height: 1.1px;
  background-color: #c06045;
}

.section-testimonios h3::before {
  right: 100%;
  margin-right: 20px;  
}

.section-testimonios h3::after {
  left: 100%;
  margin-left: 20px;    
}


.section-testimonios .testimonails-area-seven {
  display: flex;
  flex-direction: column;
  justify-content: center;   
  align-items: center;      
  text-align: center;     
}

.section-testimonios .swiper-button-next,
.section-testimonios .swiper-button-prev {
  background: none !important;  
  border: none !important;
  width: auto;                 
  height: auto;
}

.section-testimonios .swiper-button-next svg,
.section-testimonios .swiper-button-prev svg {
  width: 65px;
  height: 22px;
}

.section-testimonios blockquote {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.section-testimonios .linea-testimonio {
  width: 52%;
  height: 0.6px;
  background-color: #c06045;
  border: none;
  margin: 2rem auto 0 auto;
  opacity: 1;
}

@media (max-width: 768px) {
    
  .section-testimonios .linea-testimonio {
    width: 100%;           /* ocupa más ancho en móvil */
    height: 0.6px;          /* un poquito más gruesa */
    margin-top: 1.5rem;   /* separada del slider */
    opacity: 1;
    display: block;       /* asegúrate de que no esté colapsada */
  }

}

@media (max-width: 992px) {
    
  .section-testimonios .linea-testimonio {
    width: 100%;           
    height: 0.6px;          /* un poquito más gruesa */
    margin-top: 1.5rem;   /* separada del slider */
    opacity: 1;
    display: block;       /* asegúrate de que no esté colapsada */
  }

    .section-testimonios .swiper-button-next,
    .section-testimonios .swiper-button-prev {
        display: none;
    }
  
}

@media (min-width: 1220px) and (max-width: 1440px) {
  .section-testimonios .linea-testimonio {
    width: 90%;           /* mas ancha en ese rango */
    height: 1px;          /* un poco mas visible */
    margin-top: 1.5rem;   /* separada del slider */
    opacity: 1;
    display: block;       /* evitar que colapse */
  }
}

.section-boletin {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  width: 100%;
  padding: 14rem 0 !important;
}

/* fondo verde del recuadro */
.bloque-boletin {
  position: relative;
  z-index: 1;
  background: none; /* quitamos el fondo directo */
  padding: 4rem 2rem;
  max-width: 800px;
  margin: 0 auto;
}

.bloque-boletin::before {
  content: "";
  position: absolute;
  top: -35px;
  left: -45px;
  right: -45px;
  bottom: -35px;
  background-image: url('../images/pages/home/fondo-home-cuadrado-verde-2.webp');
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  z-index: -1;
}

/* en pantallas grandes, hacemos que el fondo crezca mas */
@media (min-width: 992px) {
  .bloque-boletin::before {
    top: -60px;
    bottom: -60px;
    left: -80px;
    right: -80px;
  }
}

/* input personalizado */
.input-personalizado {
  border: 1px solid #ccc !important;
  border-radius: 4px !important;
  padding: 0.6rem 1rem !important;
  font-size: 1.5rem !important;
  color: #516C60 !important;
  background-color: #fff !important;
  transition: border-color 0.3s ease !important;
  width: 100% !important;
  margin-bottom: 13px;
}

/* quita el checkbox duplicado generado por before/after */
input[type="checkbox"] ~ label::before,
input[type="checkbox"] ~ label::after {
  display: none !important;
  content: none !important;
}

.form-check-label {
    padding-left: 8px !important;
    cursor: default !important;
}

.form-check-input {
    cursor: pointer !important;
}

.input-personalizado:focus {
  border: 1px solid #c06045 !important;
  box-shadow: none !important;
  background-color: #fff !important;
}

.input-personalizado:focus::placeholder {
  color: #c06045 !important;
}

.input-personalizado::placeholder,
textarea.input-personalizado::placeholder {
  color: #516C60;       /* mismo tono verde que los otros */
  opacity: 1 !important; /* quitamos la transparencia */
}

/* ajustar tamaño en pantallas pequeñas */
@media (max-width: 768px) {
  .bloque-boletin {
    padding: 3rem 1.5rem;
  }
  .input-personalizado {
    font-size: 1.3rem !important;
  }
}


/* enlaces del footer con animacion */
.footer a {
    color: #fff !important;
    font-size: 1.5rem;
    text-decoration: none !important;
    font-family: "AcuminVariableConcept", sans-serif !important;
    font-weight: normal !important;
    transition: color 0.3s ease, transform 0.3s ease;
}


.footer a:hover {
    color: #c06045 !important;     
    transform: scale(1.05);    
}

@media (max-width: 768px) {
  .footer img {
    width: 250px; /* o el tamaño que veas bien */
    margin-bottom: 2rem;
  }
}

.columna-con-borde {
  border-left: 1px solid #c06045;
  border-right: 1px solid #c06045;
}


/* vista movil y tablet */
@media (max-width: 991px) {
  .columna-con-borde {
    border-left: none;
    border-right: none;
    border-top: 1px solid #c06045;
    border-bottom: 1px solid #c06045;
    padding-bottom: 2rem;
    padding-top: 2rem;
  }

}

.seccion-verde {
  position: relative;
  padding-bottom: 8rem; /* deja espacio para el boton */
}

.boton-flotante {
  position: absolute;
  bottom: -2.5rem; /* saca el boton hacia abajo */
  left: 50%;
  transform: translateX(-50%);
}
.lista-juridica {
  list-style: none;
  counter-reset: contador;
  padding: 0;
  margin: 0;
  border-top: 1px solid #AD7D53;
}

/* cada item */
.lista-juridica li {
  counter-increment: contador;
  border-bottom: 1px solid #AD7D53;
  font-family: "AcuminVariableConcept", sans-serif !important;
}

/* quitar triangulo por defecto del summary */
.lista-juridica summary {
  list-style: none;
}
.lista-juridica summary::-webkit-details-marker {
  display: none;
}

/* el “titulo” clicable */
.lista-juridica details > summary {
  padding: 15px 0;
  color: #C06045;
  font-size: clamp(1.5rem, 2.5vw, 20px);
  cursor: pointer;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

/* numero delante (alineado con el texto) */
.lista-juridica details > summary::before {
  content: counter(contador) ".";
  font-weight: 500;
  margin-right: 8px;
  color: #193425;
  flex: 0 0 auto;
}

/* texto */
.lista-juridica summary span {
  flex: 1;
  padding-right: 10px;
}

/* flecha */
.lista-juridica details > summary::after {
  content: "";
  width: 30px;
  height: 16px;
  background-image: url('../images/icons/flecha-lista.svg');
  background-repeat: no-repeat;
  background-size: contain;
  display: block;

  transition: transform 0.25s ease;
  transform-origin: center;
}

/* rota cuando esta abierto */
.lista-juridica details > summary::after {
  transition: transform 0.25s ease;
  transform-origin: center;
}

.lista-juridica details[open] > summary::after {
  transform: rotate(-180deg);
}

/* hover: se nota que es clicable */
.lista-juridica details > summary:hover {
  color: #193425;                 
  background: rgba(173,125,83,.08); 
}

/* para que el hover se vea bien, mete un poco de padding lateral */
.lista-juridica details > summary {
  padding: 15px 10px; /* antes era 15px 0 */
  border-radius: 6px;
}

/* accesibilidad: cuando navegas con teclado */
.lista-juridica details > summary:focus-visible {
  outline: 2px solid #AD7D53;
  outline-offset: 3px;
}

.lista-juridica .contenido-desplegable{
  font-size: 0.98rem !important;     
  line-height: 1.55;
  color: #193425;
}

/* estado base (cerrado) */
.lista-juridica details .contenido-desplegable{
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transform: translateY(-4px);
  transition: max-height .35s ease, opacity .25s ease, transform .25s ease;
}

/* estado abierto */
.lista-juridica details[open] .contenido-desplegable,
.lista-juridica details.abriendo .contenido-desplegable{
  opacity: 1;
  transform: translateY(0);
}

/* contenido desplegable */
.lista-juridica .contenido-desplegable {
  padding: 0 0 20px 0;
  color: #193425;
  font-size: 1rem;
}

/* para que los parrafos respiren */
.lista-juridica .contenido-desplegable p {
  margin: 15px 0 15px 0;
  font-size: clamp(1.5rem, 2.5vw, 17px) !important;
  text-align: justify;
}
.lista-juridica .contenido-desplegable p.mb-0 {
  margin-bottom: 0;
}

/* cuando esta abierto */
.lista-juridica details[open] .contenido-desplegable,
.lista-juridica details.abriendo .contenido-desplegable{
  opacity: 1;
  transform: translateY(0);
}

/* durante el cierre forzamos que vaya a oculto */
.lista-juridica details.cerrando .contenido-desplegable{
  opacity: 0;
  transform: translateY(-4px);
}

/* la flecha vuelva mientras cierra (si te mola mas asi) */
.lista-juridica details.cerrando > summary::after{
  transform: rotate(0);
}

/* opcional accesibilidad */
@media (prefers-reduced-motion: reduce){
  .lista-juridica details .contenido-desplegable{
    transition: none;
  }
  .lista-juridica details > summary::after{
    transition: none;
  }
}

.row-fondo-verde {
    background-size: cover;
    background-position: center;
    position: relative;
    overflow: hidden;
}

.bloque-principal {
  z-index: 3;
   margin-right: -60px;
}

.bloque-imagen {
    position: relative;
  z-index: 2;
}

.bloque-beige-fondo {
  position: relative;
  top: -50px;
  z-index: 1;
  margin-bottom: -40px;
  max-width: 62%;
  margin-left: auto;
}


/* aseguramos que la imagen quede por encima */
.bloque-imagen {
  z-index: 2;
  position: relative;
}

/* opcional: ajuste del padding en móvil */
@media (max-width: 768px) {
  .bloque-beige-fondo {
    top: 0;
    margin-bottom: 0;
  }
}


@media (max-width: 1200px) {
  .bloque-principal {
    margin-right: 0;     
    box-shadow: none;     
    z-index: auto;
  }

  .bloque-imagen {
    z-index: auto;
  }

  .bloque-beige-fondo {
    top: 0;              
    margin: 0 auto;      
    max-width: 100%;    
  }

  /* opcional: centrado visual */
  .row.align-items-center.g-0 > div {
    text-align: center;
  }
}

.titulo-subrayado {
  position: relative;
  display: inline-block; /* para que el subrayado se ajuste al texto */
  padding-bottom: 10px;  /* espacio entre texto y línea */
}

/* linea debajo */
.titulo-subrayado::after {
  content: "";
  position: absolute;
  bottom: -20%;
  left: 50%;
  transform: translateX(-50%);
  width: 66%;
  height: 1px;
  background-color: #c06045;
}

.tarjeta-publicacion {
  border: 1.3px solid #C06045; /* borde suave */
  border-radius: 0; /* sin esquinas redondeadas */
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tarjeta-publicacion:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

.card-title {
  color: #AD7D53 !important;
  font-size: clamp(1.7rem, 2.5vw, 24px) !important;

}

.card-text {
    text-align: justify;
    color: #193425 !important;
    font-size: clamp(1.5rem, 2.5vw, 19px) !important;
}

.tarjeta-publicacion .card-body {
    display: flex;
    flex-direction: column;         
    justify-content: space-between;
    height: 100%;                 
}

.tarjeta-publicacion .btn-naranja {
    align-self: flex-end;         
    margin-top: auto;             
}

.buscador-minimal {
  padding-bottom: 3px;
  padding-top: 2px; 
}

.input-buscador {
  background: #fff !important;      /* fondo blanco */
}

/* Imagen principal de la noticia */
.banner-noticia {
    width: 100%;
    object-fit: cover;
    border-radius: 8px;
}

/* En pantallas grandes (≥ 992px) la imagen ocupa el 75% */
@media (min-width: 992px) {
    .banner-noticia {
        width: 85%;
    }

    .contenido-blog {
        width: 95%;
    }
}


.pagination .page-item .page-link {
    background-color: #c06045;
    color: #fff;
    transition: background-color 0.2s ease;
}

/* color cuando pasas el raton */
.pagination .page-item .page-link:hover {
    background-color: #a14f33;
    color: #fff;
}

/* color del numero activo */
.pagination .page-item.active .page-link {
    background-color: #a14f33;
    color: #fff;
    border-color: #a14f33;
}

/* color de las flechitas anterior/siguiente */
.pagination .page-item:first-child .page-link,
.pagination .page-item:last-child .page-link {
    background-color: transparent;
    color: #c06045;
    font-weight: bold;
}

/* cuando las flechitas estan deshabilitadas */
.pagination .page-item.disabled .page-link {
    color: #ccc !important;
    background-color: transparent !important;
    cursor: not-allowed;
}

/* quitar borde azul de bootstrap en focus */
.pagination .page-link:focus,
.pagination .page-link:active {
    outline: none !important;
    box-shadow: none !important;
}
