/*------------------------------------------------------------------
[MAIN STYLESHEET]

Template Name: Constra - Desarrollado por Alexander Dheins
Description: Constra - Desarrollado por Alexander Dheins
-------------------------------------------------------------------*/
/*------------------------------------------------------------------
[TABLE OF CONTENTS]
-------------------------------------------------------------------*/
@import url(https://fonts.googleapis.com/css?family=Montserrat:300,400,400i,500,500i,600,600i,700,700i,800|Open+Sans:400,400i,600,600i,700,700i,800&display=swap);
/* Typography
================================================== */

body {
  background: #fff;
  color: #555;
}

body,
p {
  font-family: "Open Sans", sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased !important;
  line-height: 26px;
  font-size: 15px;
}

/* --- CSS para la Pantalla de Carga --- */

#loading-screen {
  position: fixed; /* Fija la pantalla de carga en la ventana */
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #fff; /* Fondo blanco (ajusta si prefieres otro color) */
  z-index: 99999; /* Asegura que esté por encima de todo */
  display: flex; /* Flexbox para centrar contenido si es necesario */
  justify-content: center;
  align-items: center;
  flex-direction: column; /* Apila spinner y texto verticalmente */
}

/* Estilos originales del Spinner (con rutas de imagen corregidas) */
.spinner {
  position: relative; /* Cambiado de absolute para flujo normal dentro de #loading-screen */
  width: 70.4px;
  height: 70.4px;
  --clr: lime;
  --clr-alpha: transparent;
  animation: spinner 3s infinite ease;
  transform-style: preserve-3d;
  /* top, left, margin-left, margin-top eliminados para centrado con flexbox */
  margin-bottom: 80px; /* Espacio entre el spinner y el texto "CARGANDO" */
}

.spinner > div {
  background-color: var(--clr-alpha);
  height: 100%;
  position: absolute;
  width: 100%;
  border: 3.5px solid black; /* Bordes de color negro */
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5); /* Sombra gris oscuro */
}

/* Rutas corregidas asumiendo que icondmz.png está en la carpeta 'images' en la raíz */
.spinner div:nth-of-type(1) {
  transform: translateZ(-35.2px) rotateY(180deg);
  background-image: url('../images/icondmz.png'); /* Ruta corregida */
  background-size: cover;
}

.spinner div:nth-of-type(2) {
  transform: rotateY(-270deg) translateX(50%);
  transform-origin: top right;
  background-image: url('../images/icondmz.png'); /* Ruta corregida */
  background-size: cover;
}

.spinner div:nth-of-type(3) {
  transform: rotateY(270deg) translateX(-50%);
  transform-origin: center left;
  background-image: url('../images/icondmz.png'); /* Ruta corregida */
  background-size: cover;
}

.spinner div:nth-of-type(4) {
  transform: rotateX(90deg) translateY(-50%);
  transform-origin: top center;
  background-image: url('../images/icondmz.png'); /* Ruta corregida */
  background-size: cover;
}

.spinner div:nth-of-type(5) {
  transform: rotateX(-90deg) translateY(50%);
  transform-origin: bottom center;
  background-image: url('../images/icondmz.png'); /* Ruta corregida */
  background-size: cover;
}

.spinner div:nth-of-type(6) {
  transform: translateZ(35.2px);
  background-image: url('../images/icondmz.png'); /* Ruta corregida */
  background-size: cover;
}

@keyframes spinner {
  0% {
    transform: rotate(45deg) rotateX(-25deg) rotateY(25deg);
  }
  50% {
    transform: rotate(45deg) rotateX(-385deg) rotateY(25deg);
  }
  100% {
    transform: rotate(45deg) rotateX(-385deg) rotateY(385deg);
  }
}

/* Estilos originales del texto de carga */
#load {
  position: relative; /* Cambiado de absolute */
  width: 600px;
  max-width: 90%; /* Asegura que no se desborde en pantallas pequeñas */
  height: 36px;
  /* top, left, margin-left eliminados */
  overflow: visible;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  cursor: default;
  margin: 0 auto; /* Centra el div #load */
}

#load div {
  position: absolute;
  width: 20px; /* Considera ajustar esto si las letras se solapan */
  height: 36px;
  opacity: 0;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 24px;
  animation: move 3s linear infinite;
  -o-animation: move 3s linear infinite;
  -moz-animation: move 3s linear infinite;
  -webkit-animation: move 3s linear infinite;
  transform: rotate(180deg);
  -o-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  color: #000000;
}

/* ... (resto de tus estilos #load div:nth-child y @keyframes move) ... */

#load div:nth-child(2) {
  animation-delay: 0.2s;
}

#load div:nth-child(3) {
  animation-delay: 0.4s;
}

#load div:nth-child(4) {
  animation-delay: 0.6s;
}

#load div:nth-child(5) {
  animation-delay: 0.8s;
}

#load div:nth-child(6) {
  animation-delay: 1s;
}

#load div:nth-child(7) {
  animation-delay: 1.2s;
}

#load div:nth-child(8) {
  animation-delay: 1.4s;
}

@keyframes move {
  0% {
    left: 0;
    opacity: 0;
  }
  35% {
    left: 41%;
    transform: rotate(0deg);
    opacity: 1;
  }
  65% {
    left: 59%;
    transform: rotate(0deg);
    opacity: 1;
  }
  100% {
    left: 100%;
    transform: rotate(-180deg);
    opacity: 0;
  }
}

/* --- Fin CSS Pantalla de Carga --- */


/* cookis style
================================================== */
.cookie-consent {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: #353434d0;
  color: #fff;
  text-align: center;
  padding: 10px;
  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.5);
  display: none; /* Ocultar por defecto */
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.cookie-consent p {
  margin: 0;
  padding-right: 10px;
}

.cookie-consent button {
  margin: 0 5px;
  padding: 5px 10px;
  border: none;
  background-color: #cf0e0e;
  color: white;
  cursor: pointer;
  border-radius: 3px;
}

.cookie-consent button:hover {
  background-color: #000000;
}
/* go terminate y conditions reclutamiento */

.hidden {
  display: none;
}
.acceptBtn{
  background-color: #be0e0e;
    color: #fff;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
    display: block;
    margin: 0 auto;
  
}
/* Estilos para el modal */
.modal {
  display: none; /* Oculto por defecto */
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgb(0,0,0);
  background-color: rgba(0, 0, 0, 0.644);
}

.modal-content {
  background-color: #dfdddd;
  margin: 15% auto;
  padding: 20px;
  border: 1px solid #e90404;
  width: 50%;
  text-align: center;
}

.close {
  color: #a70000;
  float: right;
  font-size: 28px;
  font-weight: bold;
}




.team-social-icons a {
  color: #000000;
  font-size: 24px;
  margin-right: 10px;
}



/* end
================================================== */
h1,
h2,
h3,
h4,
h5,
h6 {
  color: #212121;
  font-weight: 700;
  font-family: 'Montserrat', sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased !important;
}
/* Global styles
================================================== */
h1 {
  font-size: 36px;
  line-height: 48px;
}

h2 {
  font-size: 28px;
  line-height: 36px;
  text-transform: uppercase;
  letter-spacing: -1px;
}

h3 {
  font-size: 24px;
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: -.5px;
}

h4 {
  font-size: 18px;
  line-height: 28px;
  text-transform: uppercase;
  letter-spacing: -.2px;
}

h5 {
  font-size: 14px;
  line-height: 24px;
}

.alert .icon {
  margin-right: 15px;
}

/* Global styles
================================================== */
html {
  overflow-x: hidden !important;
  width: 100%;
  height: 100%;
  position: relative;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  border: 0;
  margin: 0;
  padding: 0;
}

.body-inner {
  position: relative;
  overflow: hidden;
}

.preload {
  position: fixed;
  background: #fff url(../images/preload.gif) center center no-repeat;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  z-index: 99999;
}

a:link,
a:visited {
  text-decoration: none;
  color: #fff;
}

a {
  color: inherit;
  transition: .2s ease;
}

a:hover {
  text-decoration: none;
  color: #000;
}

a.read-more {
  color: #b91f1f;
  font-weight: 700;
  text-transform: uppercase;
}

a.read-more:hover {
  color: #222;
}

section,
.section-padding {
  padding: 70px 0;
  position: relative;
}

.no-padding {
  padding: 0;
}

.gap-60 {
  clear: both;
  height: 60px;
}

.gap-40 {
  clear: both;
  height: 40px;
}

.gap-30 {
  clear: both;
  height: 30px;
}

.gap-20 {
  clear: both;
  height: 20px;
}

.mrb-30 {
  margin-bottom: 30px;
}

.mrb-80 {
  margin-bottom: -80px;
}

.mrt-0 {
  margin-top: 0 !important;
  margin-bottom: 20px !important;
}

.pab {
  padding-bottom: 0;
}

a:focus {
  outline: 0;
}

.ts-padding {
  padding: 60px;
}

.solid-bg {
  background: #f9f9f9;
}

.dark-bg {
  background: #252525;
  color: #fff;
}

.dark-bg h2,
.dark-bg h3 {
  color: #fff;
}

.solid-row {
  background: #f0f0f0;
}

.bg-overlay {
  position: relative;
}

.bg-overlay .container {
  position: relative;
  z-index: 1;
}

.bg-overlay:after {
  background-color: rgba(0, 46, 91, 0.8);
  z-index: 0;
  position: absolute;
  content: '';
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.bg-overlay:after {
  position: relative;
}

.bg-overlay:after {
  background-color: rgba(0, 0, 0, 0.8);
  z-index: 0;
  position: absolute;
  content: '';
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.content-hidden {
  position: absolute;
  height: 1px;
  width: 1px;
  clip: rect(1px, 1px, 1px, 1px);
  border: 0;
  overflow: hidden;
}

/* Dropcap */
.dropcap {
  font-size: 48px;
  line-height: 60px;
  padding: 0 7px;
  display: inline-block;
  font-weight: 700;
  margin: 5px 15px 5px 0;
  position: relative;
  text-transform: uppercase;
}

.dropcap.primary {
  background: #b91f1f;
  color: #fff;
}

.dropcap.secondary {
  background: #3a5371;
  color: #fff;
}

/* Title */
.title {
  font-size: 32px;
  line-height: 36px;
  margin-bottom: 20px;
}

/* Title Border */
/* Section title */
.section-title {
  font-size: 18px;
  line-height: 28px;
  margin: 0;
  text-transform: uppercase;
  font-weight: 300;
}

.section-sub-title {
  font-weight: 900;
  font-size: 36px;
  line-height: 46px;
  margin: 0 0 60px;
  color: #212121;
}

@media (max-width: 575px) {
  .section-sub-title {
    font-size: 28px;
  }
}

/* Column title */
.column-title {
  margin: 0 0 40px;
}

.column-title-small {
  font-size: 20px;
  margin: 0 0 25px;
}

/* Page content title */
.page-content-title.first {
  margin-top: 0;
}

/* Video responsive */
.embed-responsive {
  padding-bottom: 56.25%;
  position: relative;
  display: block;
  height: 0;
  overflow: hidden;
}

.embed-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Input form */
.form-control {
  box-shadow: none;
  border: 1px solid #dadada;
  padding: 5px 20px;
  height: 44px;
  background: none;
  color: #959595;
  font-size: 14px;
  border-radius: 0;
}

.form-control:focus {
  box-shadow: none;
  border: 1px solid #b91f1f;
}

hr {
  background-color: #e7e7e7;
  border: 0;
  height: 1px;
  margin: 40px 0;
}

.alert hr {
  background: initial;
  margin: initial;
  border-top: 1px solid;
  height: initial;
  margin-bottom: 1rem;
  opacity: .2;
}

blockquote {
  padding: 25px;
  margin: 20px 0;
  background: #f9f9f9;
  position: relative;
  border-left: 3px solid #b91f1f;
  padding-left: 40px;
}

blockquote.text-center {
  border-top: 3px solid #b91f1f;
  border-left: 0;
  padding-left: 25px;
  padding-top: 50px;
}

blockquote.text-center:before {
  left: 50%;
  top: 10px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

blockquote.text-right {
  border-right: 3px solid #b91f1f;
  padding-right: 40px;
  border-left: 0;
  padding-left: 25px;
}

blockquote.text-right:before {
  left: auto;
  right: 5px;
}

blockquote:before {
  content: "\f10d";
  font-family: "Font Awesome 5 Free";
  position: absolute;
  font-size: 28px;
  color: #E5E5E5;
  top: 5px;
  left: 5px;
  font-weight: 700;
  z-index: 0;
}

blockquote p {
  font-size: 14px;
  line-height: 22px;
  position: relative;
  z-index: 1;
  font-style: italic;
  margin-bottom: 0;
}

cite {
  display: block;
  font-size: 14px;
  margin-top: 10px;
}

/* Ul, Ol */
.list-round,
.list-arrow,
.list-check {
  list-style: none;
  margin: 0;
  padding: 0 0 0 15px;
}

.list-round li {
  line-height: 28px;
}

.list-round li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f138";
  margin-right: 10px;
  color: #b91f1f;
  font-size: 12px;
}

.list-arrow {
  padding: 0;
}

ul.list-arrow li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f105";
  margin-right: 10px;
  color: #b91f1f;
  font-size: 16px;
  font-weight: bold;
}

ul.list-check li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f00c";
  margin-right: 10px;
  color: #b91f1f;
  font-size: 14px;
}

/* Bootstrap */
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus,
.nav-tabs > li.active > a:hover,
.nav-tabs > li > a:hover,
.nav-tabs > li > a {
  border: 0;
}

.nav > li > a:focus,
.nav > li > a:hover {
  background: none;
}

.pattern-bg {
  background: #f5f5f5 url(../images/crossword.png);
}

a[href^=tel] {
  color: inherit;
  text-decoration: none;
}

/* Button */
.btn:active, .btn:focus {
  box-shadow: none !important;
}

.btn-primary,
.btn-dark {
  border: 0;
  border-radius: 3px;
  padding: 12px 20px 10px;
  font-weight: 700;
  text-transform: uppercase;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  transition: 350ms;
  font-size: 14px;
}

@media (max-width: 767px) {
  .btn-primary,
  .btn-dark {
    font-size: 13px;
  }
}

.btn-white.btn-primary {
  background: #fff;
  color: #b91f1f;
}

.btn-primary {
  background: #b91f1f;
}

.btn-dark {
  background: #23282d;
}

.btn-primary:hover,
.btn-dark:hover,
.btn-white.btn-primary:hover {
  background: #111;
  color: #fff;
}

.btn-primary:hover:active, .btn-primary:hover:focus,
.btn-dark:hover:active,
.btn-dark:hover:focus,
.btn-white.btn-primary:hover:active,
.btn-white.btn-primary:hover:focus {
  color: #fff;
  background-color: #111 !important;
}

.general-btn {
  margin-top: 50px;
}

/* Bootstrap */
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus,
.nav-tabs > li.active > a:hover,
.nav-tabs > li > a:hover,
.nav-tabs > li > a {
  border: 0;
}

.nav > li > a:focus,
.nav > li > a:hover {
  background: none;
}

.pattern-bg {
  background: #f5f5f5 url(../images/crossword.png);
}

a[href^=tel] {
  color: inherit;
  text-decoration: none;
}

/* Top Bar
================================================== */
.top-bar {
  padding: 8px 0;
  background: #ebebeb;
  position: relative;
}

/* Top info */
ul.top-info {
  list-style: none;
  margin: 0;
  padding: 0;
}

ul.top-info li {
  position: relative;
  line-height: 10px;
  display: inline-block;
  margin-left: 0;
  padding-right: 15px;
}

ul.top-info li i {
  font-size: 18px;
  position: relative;
  top: 2px;
  margin-right: 5px;
}

ul.top-info li p.info-text {
  margin: 0;
  line-height: normal;
  display: inline-block;
  flex-direction: column;
}

/* Top social */
.top-social ul {
  list-style: none;
  padding: 0;
  margin: 0;
  margin-right: -12px;
}

@media (max-width: 767px) {
  .top-social ul {
    margin-right: 0;
  }
}

.top-social ul li {
  display: inline-block;
  padding: 0;
}

.top-social ul li a {
  color: #bb0808;
  font-size: 18px;
  transition: 400ms;
  padding: 9px 12px;
}


.top-social ul li a:hover {
  color: #333;
}

/* Top bar border */
.top-bar-border {
  padding: 8px 20px 8px;
  border-bottom: 1px solid #ddd;
}

.top-bar-border ul.top-info {
  color: #707070;
  font-weight: 400;
}

.top-bar-border .top-social li a {
  color: #7c7c7c;
}

.top-bar-border ul.top-info li i {
  color: #b91f1f;
}

/* Header area
================================================== */
.header {
  background: #fff;
  position: relative;
  box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.1);
}

.header-one,
.header-one .site-navigation {
  background: #000000b0;
}

.header-one .navbar-collapse {
  padding-left: 0;
}

@media (max-width: 991px) {
  .navbar-collapse.collapse {
    overflow-y: auto;
  }
}

.header-one ul.navbar-nav > li {
  padding-left: 0;
  padding-right: 30px;
}

@media (max-width: 991px) {
  .header-one ul.navbar-nav > li {
    padding-right: 0;
  }
}

.header-one .logo-area {
  padding: 30px 0;
}

.navbar-fixed {
  z-index: 9999;
  position: fixed;
  width: 100%;
  top: 0;
}

.header-two {
  background: #fff;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.15);
  padding: 15px 0;
}

.header-two .navbar-fixed {
  background-color: #fff;
}

ul.navbar-nav > li > a {
  padding: 15px 0 !important;
  color: #fff;
}

@media (max-width: 991px) {
  ul.navbar-nav > li > a {
    padding: 1px 0 !important;
  }
  .navbar-nav {
    margin-bottom: 15px;
  }
}

ul.navbar-nav > li:hover > a,
ul.navbar-nav > li.active > a {
  color: #b91f1f !important;
}

/*-- Logo de dimarza inicio --*/
.logo img {
  width: auto;
  height: 108px;
}

.header-two .logo img {
  height: 30px;
}

/* header right */
.header-right {
  float: right;
}

ul.top-info-box {
  list-style: none;
  margin: 0;
  padding: 0;
  float: right;
  display: flex;
  align-items: center;
}

@media (max-width: 767px) {
  ul.top-info-box {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
  }
}

ul.top-info-box li {
  position: relative;
  float: left;
  margin-left: 0;
  border-right: 1px solid #dedede;
  border-right: 1px solid rgba(0, 0, 0, 0.1);
  padding-right: 25px;
  margin-right: 25px;
  display: flex;
  align-items: center;
}

@media (max-width: 767px) {
  ul.top-info-box li {
    border: 0;
    text-align: center;
    margin: 0;
    flex: 0 0 50%;
    padding: 0;
    margin-top: 10px;
  }
  
  /* Layout específico para header con homologación y SGS */
  header.header-one ul.top-info-box li:not(.header-get-a-quote) {
    flex: 0 0 48% !important;
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0;
    border: 0;
  }
  header.header-one ul.top-info-box li:not(.header-get-a-quote) img {
    height: 70px;
    width: auto;
  }
  header.header-one ul.top-info-box .header-get-a-quote {
    order: 3;
    width: 100%;
    display: flex;
    justify-content: center;
  }
}

@media (max-width: 400px) {
  ul.top-info-box li {
    border: 0;
    text-align: center;
    margin: 0;
    flex: 0 0 100%;
    margin-top: 15px;
  }
  
  /* Mantener layout de header incluso en pantallas muy pequeñas */
  header.header-one ul.top-info-box li:not(.header-get-a-quote) {
    flex: 0 0 48% !important;
  }
}

ul.top-info-box li:last-child {
  margin-right: 0;
  padding-right: 0;
  border-right: 0;
}

ul.top-info-box li.last {
  border-right: 0;
}

ul.top-info-box li .info-box span.info-icon {
  font-size: 20px;
  display: inline-block;
  text-align: center;
  margin: 2px 5px 0 0;
  position: relative;
}

ul.top-info-box li .info-box .info-box-content {
  display: inline-flex;
  align-items: center;
  font-family: "Montserrat", sans-serif;
  flex-direction: row;
}

ul.top-info-box li .info-box .info-box-title {
  font-size: 14px;
  margin-bottom: 8px;
  line-height: normal;
}

ul.top-info-box li .info-box .info-box-subtitle {
  margin: 0;
  line-height: normal;
  font-size: 15px;
  font-weight: 700;
  color: #111;
}



/* Main navigation */
.navbar-toggler {
  float: left;
  margin-top: 10px;
  padding: 12px;
}

.navbar {
  border-radius: 0;
  border: 0;
  margin-bottom: 0;
}

.navbar-toggler {
  margin: 10px 0;
  padding: 6px;
  border-radius: 0;
  font-size: 1rem;
  background: #b91f1f;
}

.navbar-toggler:focus {
  outline: 0;
}

.navbar-dark .navbar-toggler-icon,
.navbar-light .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

ul.navbar-nav > li:hover > a,
ul.navbar-nav > li.active > a {
  color: #b91f1f;
  position: relative;
}

ul.navbar-nav > li {
  padding: 0 13px;
  position: relative;
}

@media (max-width: 1200px) {
  ul.navbar-nav > li {
    padding: 0 9px;
  }
  ul.navbar-nav > li .nav-link {
    font-size: 12px;
  }
}

.header-two .navbar-nav > .header-get-a-quote {
  top: -2px;
}

@media (max-width: 991px) {
  .header-two ul.navbar-nav > li {
    padding: 0;
    width: 100%;
  }
}

ul.navbar-nav > li:last-child {
  padding-right: 0;
}

ul.navbar-nav > li:last-child:after {
  background: none;
}

ul.navbar-nav > li > a:hover,
ul.navbar-nav > li > a:focus {
  background: none;
}

ul.navbar-nav > li > a i {
  font-weight: 700;
}

@media (max-width: 991px) {
  ul.navbar-nav > li > a i {
    float: right;
    background: #222;
    padding: 6px 10px;
    margin-top: 7px;
  }
  .header-two ul.navbar-nav > li > a i {
    color: #fff;
  }
  .header-two ul.navbar-nav > li.active > a i,
  .header-two ul.navbar-nav > li > a.active i {
    color: #b91f1f;
  }
}

ul.navbar-nav > li > a:after,
ul.navbar-nav > li > a:after {
  display: none;
}

ul.navbar-nav > li > a {
  font-family: "Montserrat", sans-serif;
  color: #fff !important;
  text-rendering: optimizeLegibility;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: -.2px;
  font-size: 14px;
  margin: 0;
  line-height: 40px;
  padding: 30px 0;
  transition: 350ms;
}

.navbar-light ul.navbar-nav > li > a {
  color: #000 !important;
  font-size: 13px;
}

/* Dropdown */
.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -2px;
  border-radius: 0;
}

.dropdown-submenu > a:after {
  display: block;
  content: "\f105";
  font-family: "Font Awesome 5 Free";
  float: right;
  margin-top: 0;
  margin-right: -5px;
  border: 0;
}

.dropdown-submenu:hover > a:after {
  border-left-color: #fff;
}

.dropdown-menu {
  text-align: left;
  background: #fff;
  z-index: 100;
  min-width: 200px;
  border-radius: 0;
  border: 0;
  border-top: 2px solid #b91f1f;
  padding: 0 20px;
  margin: 0;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
}

@media (max-width: 991px) {
  .dropdown-menu {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.05);
  }
}

.dropdown-menu-large {
  min-width: 400px;
}

.dropdown-menu-large > li > ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.dropdown-menu-large > li > ul > li > a {
  padding-left: 0;
}

.dropdown-menu-large > li > ul > li.active > a {
  color: #b91f1f !important;
}

.navbar-nav > li > .dropdown-menu a {
  background: none;
}

.dropdown-menu li a {
  font-family: "Montserrat", sans-serif;
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  padding: 15px 0;
  letter-spacing: .3px;
  border-bottom: 1px solid #e5e5e5;
  color: #333333;
}

@media (max-width: 991px) {
  .dropdown-menu li a {
    padding: 12px 0;
  }
}

.dropdown-menu li:last-child > a {
  border-bottom: 0;
}

.dropdown-menu li a:hover,
.dropdown-menu li a:focus {
  color: #b91f1f;
}

@media (min-width: 991px) {
  ul.nav li.dropdown:hover ul.dropdown-menu {
    display: block;
  }
}

@media (min-width: 991px) {
  ul.nav li.dropdown ul.dropdown-menu li.dropdown-submenu .dropdown-menu {
    left: 100%;
    top: 0;
    display: none;
  }
  ul.nav li.dropdown ul.dropdown-menu li.dropdown-submenu:hover .dropdown-menu {
    display: block;
  }
}

.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus,
.dropdown-menu > .active > .dropdown-menu > .active > a {
  background: none;
  color: #b91f1f;
}

/*-- Nav Search start --*/
.site-navigation .container,
.search-area {
  position: relative;
}

.search-area {
  min-height: 70px;
  padding-right: 0;
}

.nav-search {
  position: absolute;
  cursor: pointer;
  top: 22px;
  right: 18px;
  color: #999;
}

@media (max-width: 991px) {
  .nav-search {
    top: 17px;
  }
}

.search-block {
  background-color: rgba(0, 0, 0, 0.65);
  box-shadow: 0 2px 5px rgba(204, 34, 34, 0.87);
  display: none;
  padding: 10px;
  position: absolute;
  right: 15px;
  top: 100%;
  width: 300px;
  z-index: 10;
  margin-top: 0;
}

@media (max-width: 991px) {
  .search-block {
    top: 58px;
  }
}

.search-block .form-control {
  background-color: #222;
  border: none;
  color: #fff;
  width: 100%;
  height: 40px;
  padding: 0 12px;
}

.search-block .search-close {
  color: #999;
  position: absolute;
  top: -53px;
  right: -4px;
  font-size: 32px;
  cursor: pointer;
  background: #23282d;
  padding: 5px;
}

@media (max-width: 991px) {
  .search-block .search-close {
    top: -46px;
  }
}

.search-area .nav-search {
  top: 23px;
}

.search-area .search-block .search-close {
  top: -50px;
}

.search-area .search-block {
  right: 0;
}
/* Table of Content
==================================================
1.    Slider
2.    Call to action
3.    Features
4.    Facts
5.    Services
6.   Project area
7.   Content area
8.   Testimonial
9.   Subscribe area
10.   News section
11.   Footer
12.   Sub Pages
13.   Contacto Us
14.   News Listing
15.   News Single
16.   Sidebar
17.   Error page
*/
/* Slider
================================================== */
/*-- Main slide --*/
.banner-carousel .banner-carousel-item {
  height: 520px; /* reducido desde 700px */
  color: #fff;
  background-position: 50% 50%;
  background-size: cover;
}

@media (max-width: 991px) {
  .banner-carousel .banner-carousel-item {
    height: 430px; /* antes 550px */
  }
}

@media (max-width: 575px) {
  .banner-carousel .banner-carousel-item {
    height: 360px; /* antes 450px */
  }
}
/* Fondo semitransparente detrás del texto */
.slider-content {
  position: relative;
  height: 100%;
  width: 100%;
}

.slide-title-box {
  font-size: 16px;
  line-height: 39px;
  background: #b91f1f;
  color: #fff;
  display: inline-block;
  padding: 0 15px;
  margin: 0 0 10px;
  text-shadow: rgba(0, 0, 0, 0.884) 0.9em 0.1em 1em;
}
.slider-content .col-md-12 {
    position: relative;
    padding: 20px;
    background: rgba(0, 0, 0, 0.329); /* Fondo negro semitransparente */
    border-radius: 10px; /* Bordes redondeados opcionales */
}
.slide-title {
  font-size: 30px;
  line-height: 36px;
  font-weight: 300;
  color: #f8f8f8;
  margin: 20px 0 10px;
  text-shadow: 0.1em 0.1em 0.6em rgba(0, 0, 0, 0.9);
}

@media (max-width: 991px) {
  .slide-title {
    font-size: 22px;
    text-shadow: black 0.1em 0.1em 0.2em;
  }
}

@media (max-width: 575px) {
  .slide-title {
    font-size: 30px;
    text-shadow: black 0.1em 0.1em 0.2em;
  }
}

.slide-sub-title {
  font-style: normal;
  font-size: 60px;
  line-height: 58px;
  margin: 20px 0;
  color: #fff;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -1px;
  text-shadow: black 0.9em 0.1em 1em;
}

@media (max-width: 991px) {
  .slide-sub-title {
    font-size: 46px;
  }
}

@media (max-width: 575px) {
  .slide-sub-title {
    font-size: 30px;
    line-height: 30px;
  }
}

.slider-text {
  display: table;
  vertical-align: bottom;
  color: #fff;
  padding-left: 40%;
  width: 100%;
  padding-bottom: 0;
  padding-top: 20px;
}

.slider-text .slide-head {
  font-size: 36px;
  color: #0052a5;
  position: relative;
}

.slider-img {
  display: block;
  position: absolute;
  top: -80px;
  left: 20%;
  width: 314px;
  max-height: 100%;
}

.slider-img img {
  display: block;
  position: relative;
  max-height: 100%;
  width: auto;
}

.slider.btn {
  margin: 15px 5px 0;
  border: 2px solid transparent;
}

@media (max-width: 575px) {
  .slider.btn {
    font-size: 12px;
  }
}

.slider.border {
  background: none;
  border: 2px solid #b91f1f !important;
}

.slider.border:hover {
  background: #b91f1f;
  border: 2px solid transparent;
}

/* Carousel control */
.banner-carousel .carousel-control {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: inline-block;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: transparent;
  opacity: 0;
  filter: alpha(opacity=0);
  text-shadow: none;
  transition: all .25s ease;
  padding: 0;
  outline: 0;
  border: 0;
}

@media (max-width: 575px) {
  .banner-carousel .carousel-control {
    display: none !important;
  }
}

.banner-carousel .slick-dots {
  opacity: 0;
  filter: alpha(opacity=0);
  bottom: 60px;
}

.slick-dots li button::before {
  font-size: 12px;
}

.slick-dots li button:hover:before, .slick-dots .slick-dots li button:focus:before,
.slick-dots li.slick-active button:before {
  opacity: 1;
  color: #b91f1f;
}

.slick-slide {
  outline: 0;
}

.banner-carousel:hover .carousel-control,
.banner-carousel:hover .carousel-control,
.banner-carousel:hover .slick-dots {
  opacity: 1;
  filter: alpha(opacity=100);
}

.banner-carousel .carousel-control.left {
  left: 20px;
}

.banner-carousel .carousel-control.right {
  right: 20px;
}

.banner-carousel .carousel-control i {
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  line-height: 58px;
  width: 60px;
  height: 60px;
  font-size: 22px;
  border-radius: 0;
  transition: all 500ms ease;
}

.banner-carousel .carousel-control i:hover {
  background: #b91f1f;
  color: #fff;
}

/*-- Animation */
.banner-carousel [data-animation-in] {
  opacity: 0;
}

/* slick Box slider */
.box-slider-content {
  top: 50%;
  padding: 0;
  position: absolute;
  width: 100%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

@media (max-width: 767px) {
  .box-slider-content {
    top: auto;
    -webkit-transform: translateY(0);
            transform: translateY(0);
    left: 20px;
    bottom: 20px;
    width: calc(100% - 40px);
  }
}

.box-slider-text {
  background: #111;
  background: rgba(0, 0, 0, 0.65);
  display: inline-block;
  padding: 20px 30px;
  max-width: 650px;
}

.box-slide-title {
  font-size: 18px;
  font-weight: 300;
  margin: 0;
  color: #fff;
}

@media (max-width: 767px) {
  .box-slide-title {
    font-size: 16px;
  }
}

.box-slide-sub-title {
  font-size: 36px;
  margin: 8px 0 10px;
  color: #fff;
}

@media (max-width: 767px) {
  .box-slide-sub-title {
    font-size: 26px;
  }
}

.box-slide-description {
  color: #fff;
}

@media (max-width: 767px) {
  .box-slide-description {
    font-size: 15px;
  }
}

.box-slider-text .btn {
  padding: 10px 20px;
}

.box-slide.owl-theme .owl-controls {
  margin: -20px;
}

/* Call to action
================================================== */
.call-to-action {
  background-color: #272d33;
  padding: 30px;
}

.call-to-action-title {
  color: #fff;
  margin: 0;
  padding: 25px 0;
  line-height: normal;
  font-size: 22px;
  text-transform: capitalize;
}

/* Action style box */
.call-to-action-box {
  margin-top: -50px;
}

.call-to-action-box .action-style-box {
  background: #b91f1f;
  padding: 30px;
}

.action-title {
  color: #fff;
  margin: 0;
  line-height: 36px;
  font-size: 18px;
  text-transform: uppercase;
}

/* Intro
================================================== */
/* Intro */
.ts-intro {
  padding-right: 20px;
}

.into-title {
  font-weight: 300;
  text-transform: uppercase;
  font-size: 18px;
  line-height: normal;
  margin: 0;
}

.into-sub-title {
  font-weight: 900;
  text-transform: uppercase;
  font-size: 32px;
  line-height: normal;
  margin: 10px 0;
}

/*-- Featured Tab --*/
.featured-tab {
  padding-left: 15px;
}

.featured-tab .nav-tabs {
  border: 0;
}

.featured-tab .nav-tabs > li > a {
  font-family: 'Roboto Slab', serif;
  background: #272d33;
  color: #fff;
  text-shadow: none;
  font-weight: 700;
  border-radius: 0;
  text-transform: uppercase;
  line-height: 50px;
  margin: 0 1px 20px;
  padding: 0 20px;
  border: 0 !important;
  transition: all 300ms ease;
}

.featured-tab .tab-content {
  border-top: 0;
  padding: 0;
  overflow: hidden;
}

.featured-tab .nav.nav-tabs {
  margin-bottom: 10px;
}

.featured-tab .nav-tabs > li.active > a {
  color: #fff;
  background: #b91f1f;
  position: relative;
}

.featured-tab .nav-tabs > li.active > a:after {
  position: absolute;
  content: " ";
  width: auto;
  height: auto;
  bottom: -20px;
  left: 50%;
  border-width: 10px;
  border-style: solid;
  border-color: #b91f1f rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.featured-tab .lead {
  font-size: 18px;
  line-height: 28px;
  color: #303030;
  font-weight: 400;
}

.featured-tab .tab-pane img.pull-left {
  margin: 0 30px 10px 0;
}

.featured-tab .tab-pane img.pull-right {
  margin: 0 0 0 30px;
}

.featured-tab .tab-icon i {
  font-size: 230px;
}

.tab-image-content {
  padding-left: 0;
}

.featured-tab .border-title.border-left {
  display: inline-block;
  margin-bottom: 25px;
  font-size: 20px;
}

/* Tab Services */
.featured-tab.tab-Services .nav-tabs > li > a {
  font-size: 14px;
  padding: 0 21px;
  text-transform: capitalize;
}

.featured-tab.tab-Services .nav.nav-tabs {
  margin-bottom: 20px;
}

/* Facts Linea de negocio trabajadores contadores
================================================== */
.facts-wrapper {
  text-align: center;
  padding: 20px 0; /* Añade padding para mejor distribución */
}

.ts-facts {
  color: #fff;
  display: flex; /* Usa flexbox para alinear todo el contenido */
  flex-direction: column; /* Apila ícono, número y título verticalmente */
  align-items: center; /* Centra horizontalmente */
  justify-content: center; /* Centra verticalmente */
  min-height: 200px; /* Asegura una altura mínima para el centrado vertical */
}

.ts-facts-img {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 20px; /* Espacio entre ícono y número */
}

.ts-facts-img img {
  max-width: 80px; /* Tamaño uniforme para las imágenes */
  max-height: 80px; /* Ajusta según el tamaño de tus íconos */
  object-fit: contain; /* Mantiene las proporciones */
}

.ts-facts-content {
  text-align: center; /* Asegura que el número y título estén centrados */
}

.ts-facts-content .ts-facts-num {
  color: #fff;
  font-size: 44px;
  margin: 0 0 10px; /* Reduce el margen superior para mejor centrado */
}

.ts-facts-content .ts-facts-title {
  font-size: 16px;
  color: #b91f1f;
  margin: 0;
}

/* Ajuste para responsividad */
@media (max-width: 991px) {
  .ts-facts-content .ts-facts-num {
    font-size: 38px;
  }
  
  .ts-facts-content .ts-facts-title {
    font-size: 14px;
  }
}



/* Icon squre */
.ts-service-icon.icon-round i {
  font-size: 24px;
  color: #fff;
  background: #b91f1f;
  text-align: center;
  border-radius: 100%;
  width: 60px;
  height: 60px;
  line-height: 60px;
  margin-bottom: 20px;
  position: relative;
  float: none;
}

/* Icon left */
.ts-service-box.icon-left .ts-service-box-icon {
  float: left;
}

.ts-service-box.icon-left .ts-service-box-icon i {
  background: #b91f1f;
  color: #fff;
}

.ts-service-box.icon-left .ts-service-box-info {
  margin-left: 90px;
}

.ts-service-box.icon-left .ts-service-box-info h3 {
  margin-top: 0;
  margin-bottom: 5px;
}

/* Service no box */
.service-no {
  font-size: 48px;
  color: #dbdbdb;
  float: left;
  margin-top: 10px;
}

.ts-service-box-content .ts-service-box-info {
  margin-left: 90px;
}

/* Service Image */
.ts-service-image-wrapper {
  margin-bottom: 30px;
}

.ts-service-icon i {
  font-size: 28px;
  margin-right: 15px;
  margin-top: 2px;
}

.ts-service-info {
  margin-left: 30px;
}

.ts-service-info h3 {
  font-size: 16px;
}

.ts-service-info .learn-more {
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 600;
}

.ts-service-info .learn-more:hover {
  color: #b91f1f;
}

/* Service Classic */
.ts-service-classic .ts-service-icon i {
  font-size: 24px;
  float: left;
  color: #fff;
  background: #b91f1f;
  border-radius: 100%;
  width: 60px;
  height: 60px;
  line-height: 60px;
  text-align: center;
  transition: all 0.3s;
}

.ts-service-classic .ts-service-box-info {
  margin-left: 80px;
}

.ts-service-classic:hover .ts-service-icon i {
  background: #b91f1f;
}

/* Projects area
================================================== */
/* Project filter nav */
.shuffle-btn-group {
  display: inline-block;
  margin: 20px 0 50px;
  width: 100%;
  border-bottom: 3px solid #b91f1f;
}

.shuffle-btn-group label {
  display: inline-block;
  color: #212121;
  font-size: 14px;
  padding: 6px 25px;
  padding-top: 10px;
  font-weight: 700;
  text-transform: uppercase;
  transition: all 0.3s;
  cursor: pointer;
  margin: 0;
}

.shuffle-btn-group label.active {
  color: #212121;
  background: #b91f1f;
}

.shuffle-btn-group label input {
  display: none;
}

/* Project shuffle Item */
.shuffle-item {
  padding: 0;
}

.shuffle-item .project-img-container {
  position: relative;
  overflow: hidden;
}

.shuffle-item .project-img-container img {
  -webkit-transform: perspective(1px) scale3d(1.1, 1.1, 1);
          transform: perspective(1px) scale3d(1.1, 1.1, 1);
  transition: all 400ms;
}

.shuffle-item .project-img-container:hover img {
  -webkit-transform: perspective(1px) scale3d(1.15, 1.15, 1);
          transform: perspective(1px) scale3d(1.15, 1.15, 1);
}

.shuffle-item .project-img-container:after {
  opacity: 0;
  position: absolute;
  content: '';
  top: 0;
  right: auto;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  transition: all 400ms;
}

.shuffle-item .project-img-container:hover:after {
  opacity: 1;
}

.shuffle-item .project-img-container .gallery-popup .gallery-icon {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  padding: 5px 12px;
  background: #b91f1f;
  color: #fff;
  opacity: 0;
  -webkit-transform: perspective(1px) scale3d(0, 0, 0);
          transform: perspective(1px) scale3d(0, 0, 0);
  transition: all 400ms;
}

.shuffle-item .project-img-container:hover .gallery-popup .gallery-icon {
  opacity: 1;
  -webkit-transform: perspective(1px) scale3d(1, 1, 1);
          transform: perspective(1px) scale3d(1, 1, 1);
}

.shuffle-item .project-img-container .project-item-info {
  position: absolute;
  top: 50%;
  margin-top: -10%;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0 30px;
  z-index: 1;
}

.shuffle-item .project-img-container .project-item-info-content {
  opacity: 0;
  -webkit-transform: perspective(1px) translate3d(0, 15px, 0);
          transform: perspective(1px) translate3d(0, 15px, 0);
  transition: all 400ms;
}

.shuffle-item .project-img-container .project-item-info-content .project-item-title {
  font-size: 20px;
}

.shuffle-item .project-img-container .project-item-info-content .project-item-title a {
  color: #fff;
}

.shuffle-item .project-img-container .project-item-info-content .project-item-title a:hover {
  color: #b91f1f;
}

.shuffle-item .project-img-container .project-item-info-content .project-cat {
  background: #b91f1f;
  display: inline-block;
  padding: 2px 8px;
  font-weight: 700;
  color: #000;
  font-size: 10px;
  text-transform: uppercase;
}

.shuffle-item .project-img-container:hover .project-item-info-content {
  opacity: 1;
  -webkit-transform: perspective(1px) translate3d(0, 0, 0);
          transform: perspective(1px) translate3d(0, 0, 0);
}

.general-btn .btn-primary:hover {
  background: #000;
}

/* Project owl */
.owl-theme.project-slide {
  margin-top: 60px;
}

.project-slide .item {
  position: relative;
  overflow: hidden;
  width: 100%;
}

.project-item img {
  width: 100%;
  max-width: auto;
  transition: all 0.6s ease 0s;
}

.project-item:hover img {
  -webkit-transform: scale(1.1, 1.1);
          transform: scale(1.1, 1.1);
}

.project-item-content {
  position: absolute;
  bottom: -1px;
  padding: 15px 20px;
  width: 100%;
  background: #b91f1f;
}

.owl-theme.project-slide .owl-nav > div {
  position: absolute;
  top: -70px;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.project-slide .owl-nav > div {
  display: inline-block;
  margin: 0 2px;
  font-size: 20px;
  background: #b91f1f;
  color: #fff;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
}

.owl-theme.project-slide .owl-nav > .owl-prev {
  right: 35px;
  left: auto;
}

/* Projects Single page */
.project-title {
  font-size: 30px;
}

.project-info-label {
  color: #303030;
  font-weight: 700;
  font-size: 14px;
}

.project-info-content {
  font-size: 12px;
}

.project-info li {
  margin-bottom: 5px;
}

.project-link {
  margin-top: 15px;
}

/* Content area
================================================== */
/* Accordion */
/* Estilos base (modo claro por defecto) */
.accordion-group .card {
  border-radius: 0;
  margin-bottom: 10px;
  border-bottom: 1px solid #dfdfdf !important;
}

.accordion-group .card-body {
  padding: 15px 20px;
  background-color: #fff; /* Fondo blanco en modo claro */
  color: #333; /* Texto oscuro en modo claro */
}

.accordion-group .card-body img {
  max-width: 100px;
  margin-bottom: 10px;
}

.accordion-group .card-header .btn {
  font-size: 16px;
  text-transform: uppercase;
  font-weight: 700;
  padding: 13px 15px;
  padding-bottom: 10px;
  position: relative;
  background-color: #b91f1f; /* Fondo rojo por defecto */
  color: #fff; /* Texto blanco */
  border: none;
  border-radius: 0;
  width: 100%;
  transition: background-color 0.3s ease; /* Suaviza el cambio de fondo */
}

.accordion-group .card-header .btn:hover {
  background-color: #000000; /* Cambio al pasar el mouse */
}

.accordion-group .card-header .btn[aria-expanded="true"] {
  background-color: #000000 !important; /* Fondo azul cuando está expandido, con !important para evitar sobrescritura */
  color: #fff; /* Mantener texto blanco para contraste */
}

.accordion-group .card-header .btn:before {
  font-family: "Font Awesome 5 Free";
  position: absolute;
  z-index: 1;
  font-size: 14px;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  padding: 3px 8px 1px;
  text-align: center;
  border-radius: 3px;
  content: "\f107"; /* Flecha hacia abajo */
  font-weight: 900;
  background-color: #fff; /* Fondo blanco para la flecha */
  color: #b91f1f; /* Color rojo para la flecha */
  transition: transform 0.3s ease, color 0.3s ease; /* Animación para flecha y color */
}

.accordion-group .card-header .btn[aria-expanded="true"]:before {
  content: "\f106"; /* Flecha hacia arriba */
  transform: translateY(-50%) rotate(180deg); /* Rota 180° cuando está expandido */
  color: #fff; /* Color blanco para la flecha al expandir, para mejor contraste */
}

.accordion-group.accordion-classic .card-header .btn:before {
  display: block; /* Muestra la flecha */
}

.card-header {
  background-color: transparent;
  padding: 0;
}

/* Estilos para modo oscuro */
@media (prefers-color-scheme: dark) {
  .accordion-group .card {
    border-bottom: 1px solid #555 !important; /* Borde más visible en modo oscuro */
  }

  .accordion-group .card-body {
    background-color: #222; /* Fondo oscuro para el contenido */
    color: #ddd; /* Texto claro para contraste */
  }

  .accordion-group .card-header .btn {
    background-color: #b91f1f; /* Fondo rojo por defecto */
    color: #fff;
  }

  .accordion-group .card-header .btn:hover {
    background-color: #a11c1c; /* Cambio al pasar el mouse */
  }

  .accordion-group .card-header .btn[aria-expanded="true"] {
    background-color: #305e9b !important; /* Fondo azul cuando está expandido, con !important para evitar sobrescritura */
    color: #fff;
  }

  .accordion-group .card-header .btn:before {
    background-color: #ddd; /* Fondo de la flecha más claro en modo oscuro */
    color: #b91f1f; /* Color de la flecha */
  }

  .accordion-group .card-header .btn[aria-expanded="true"]:before {
    color: #000000; /* Color blanco para la flecha al expandir */
  }
}
/* Unidades Mineras */
/* Estilo del carrusel */
.carousel-wrapper { 
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.swiper {
  width: 100%;
  overflow: hidden;
}

.swiper-wrapper {
  will-change: transform;
  transition-timing-function: linear !important;
}

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

.carousel-logo {
  width: 120px;
  height: 120px;
  object-fit: contain;
  filter: grayscale(100%);
  /* Evitar transiciones que puedan provocar micro-cortes durante el scroll continuo */
  transition: none;
  will-change: transform;
  backface-visibility: hidden;
  display: block;
  pointer-events: none; /* Desactivar interacción en logos para que el hover no afecte */
}

/* Eliminar efecto hover para no provocar cambios de estado de GPU durante la animación */
.carousel-logo:hover {
  filter: grayscale(100%);
}

/* Ajuste de escala para logos específicos que lucen más grandes */
.carousel-logo[alt="Centinela"],
.carousel-logo[alt="Chinalco"] {
  width: 80px;
  height: 80px;
  margin-top: 10px;
}

.carousel-wrapper {
  position: relative;
  overflow: hidden;
  width: 100%;
}

.gradient-overlay {
  position: absolute;
  top: 0;
  /* Más ancho y responsivo para un desvanecido suave tipo "nube" */
  width: clamp(120px, 12vw, 240px);
  height: 100%;
  pointer-events: none;
  z-index: 2;
}

/* Gradientes para los costados: sutiles, multi-stop, como una nube que se disipa */
.gradient-left {
  left: 0;
  background: linear-gradient(
    to right,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(255, 255, 255, 0.6) 25%,
    rgba(255, 255, 255, 0.3) 50%,
    rgba(255, 255, 255, 0.15) 75%,
    rgba(255, 255, 255, 0) 100%
  );
}

.gradient-right {
  right: 0;
  background: linear-gradient(
    to left,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(255, 255, 255, 0.6) 25%,
    rgba(255, 255, 255, 0.3) 50%,
    rgba(255, 255, 255, 0.15) 75%,
    rgba(255, 255, 255, 0) 100%
  );
}

/* Ocultar flechas del carrusel para efecto ticker continuo */
.swiper-button-next,
.swiper-button-prev {
  display: none !important;
}

/* Modo oscuro: quitar overlays y usar máscara (fade) para no crear sombra ni líneas */
.dark-mode .gradient-left,
.dark-mode .gradient-right {
  display: none !important;
  background: none !important;
}

/* Desvanecido por máscara en modo oscuro: no agrega color, solo oculta progresivamente */
.dark-mode .carousel-wrapper .swiper {
  -webkit-mask-image: linear-gradient(
    to right,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 1) 10%,
    rgba(255, 255, 255, 1) 90%,
    rgba(255, 255, 255, 0) 100%
  );
  mask-image: linear-gradient(
    to right,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 1) 10%,
    rgba(255, 255, 255, 1) 90%,
    rgba(255, 255, 255, 0) 100%
  );
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

/* Testimonial
================================================== */
.testimonial-area {
  padding: 100px 0;
  background-color: #b91f1f;
  background-image: url(../images/parallax2.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
  background-position: 50% 50%;
}

.testimonial-area .border-title,
.testimonial-area .border-sub-title {
  color: #fff;
}

.quote-item .quote-text {
  margin: 0 0 10px;
  display: inline-block;
  padding: 0 40px 30px 60px;
  background-color: #fff;
  position: relative;
  font-size: 16px;
  font-style: italic;
}

@media (max-width: 575px) {
  .quote-item .quote-text {
    padding: 0 40px 30px 50px;
  }
}

.quote-item .quote-text:before {
  content: "\f10d";
  font-family: "Font Awesome 5 Free";
  position: absolute;
  font-size: 30px;
  left: 0;
  top: 0;
  font-weight: 700;
  color: #ffc009;
}

.testimonial-slide .slick-dots {
  bottom: -35px;
}

img.testimonial-thumb {
  max-width: 80px;
  float: left;
  margin-right: 20px;
  border-radius: 5px;
}

.quote-item-info {
  padding-top: 15px;
  display: inline-block;
}

.quote-author {
  font-size: 16px;
  line-height: 18px;
  margin: 0 0 2px;
  font-weight: 700;
  display: block;
  color: #b91f1f;
}

.quote-item-footer {
  margin-top: 0;
  margin-left: 60px;
}

@media (max-width: 575px) {
  .quote-item-footer {
    margin-left: 0;
  }
}

/* Testimonial Border */
.quote-item.quote-border .quote-text-border {
  border: 1px solid #b91f1f;
  padding: 20px;
  position: relative;
  line-height: 28px;
  color: #666;
  font-size: 18px;
  text-align: center;
}

.quote-item.quote-border .quote-text-border:before {
  border: 12px solid;
  border-color: #e1e1e1 transparent transparent;
  border-top-color: #b91f1f;
  bottom: -24px;
  position: absolute;
  content: "";
  display: block;
  height: 0;
  width: 0;
  left: 0;
  margin: 0 auto;
  right: 0;
}

.quote-item.quote-border .quote-text-border:after {
  border: 12px solid;
  border-color: #fff transparent transparent;
  bottom: -22px;
  position: absolute;
  content: "";
  display: block;
  height: 0;
  width: 0;
  left: 0;
  margin: 0 auto;
  right: 0;
}

.quote-item.quote-border .quote-item-footer {
  margin-left: 0;
  text-align: center;
  margin-top: 35px;
}

.quote-item.quote-border .quote-item-footer img.testimonial-thumb {
  float: none;
  margin: 0;
}

.quote-item.quote-border .quote-item-footer .quote-item-info {
  display: block;
}

/* Subscribe area
================================================== */
.subscribe {
  background: linear-gradient(to right, #b91f1f 50%, #252525 50%);
  padding: 0;
}

/* En modo móvil, franja negra y contenido centrado (sin desplazar viewport) */
@media (max-width: 991.98px) {
  .subscribe {
    background: #252525 !important;
    background-image: none !important;
  }
  /* Sin padding lateral para full-bleed dentro del contenedor */
  .subscribe .container-fluid,
  .subscribe .row,
  .subscribe [class*="col-"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Centrar contenidos de ambos bloques */
  .subscribe-call-to-acton {
    align-items: center !important;
    text-align: center !important;
    padding: 24px 10px !important;
  }
  .ts-newsletter {
    background: transparent !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
  }
  .ts-newsletter:after { content: none !important; }
  /* Centrar acciones y botón */
  .newsletter-actions { justify-content: center !important; }
  .newsletter-actions .responsive-button {
    margin-left: auto !important;
    margin-right: auto !important;
    display: inline-flex !important;
  }
  /* Carrusel centrado en mobile */
  .subscribe .jobs-carousel {
    width: 100% !important;
    max-width: none !important;
    margin: 6px auto 0 !important;
    justify-content: center !important;
  }
  .subscribe .jobs-carousel .jobs-track { margin: 0 auto !important; }
}

/* Call to action */
.subscribe-call-to-acton {
  min-height: 115px;
  padding: 30px 15px 30px 60px;
  display: flex;
  flex-direction: column; /* Título arriba, carrusel abajo */
  align-items: flex-end;
  justify-content: center;
  gap: 6px;
  text-align: right;
}

@media (max-width: 575px) {
  .subscribe-call-to-acton {
    text-align: center;
    padding: 30px 0;
    min-height: auto;
  }
}

.subscribe-call-to-acton h3 {
  font-size: 18px;
  margin-top: 0;
  margin-bottom: 5px;
  color: #fff !important;
}

/* Carrusel de textos (puestos en demanda) debajo del título - CSS puro marquee */
.subscribe .jobs-carousel {
  margin-top: 6px;
  overflow: hidden;
  white-space: nowrap;
  position: relative;
  width: 60%;
  max-width: 400px;
  height: 30px;
  display: flex;
  align-items: center;
}

.subscribe .jobs-carousel .jobs-track {
  display: inline-flex;
  white-space: nowrap;
  animation: marquee 15s linear infinite;
  will-change: transform;
}

.subscribe .jobs-carousel .job-item {
  display: inline-block;
  white-space: nowrap;
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.4;
  padding: 0 8px;
  position: relative;
}

.subscribe .jobs-carousel .job-item:not(:last-child)::after {
  content: "•";
  color: rgba(255,255,255,0.65);
  margin-left: 8px;
}

@keyframes marquee {
  0% { transform: translateX(0%); }
  100% { transform: translateX(-50%); }
}

@media (max-width: 767.98px) {
  /* Ajustes de tipografía por ítem */
  .subscribe .jobs-carousel .job-item {
    font-size: 12px;
    padding: 2px 6px;
  }
  .subscribe .jobs-carousel .job-item:not(:last-child)::after {
    margin-left: 6px;
  }
  /* Carrusel en móvil: marquee continuo, ancho 100% y centrado visual */
  .subscribe .jobs-carousel {
    width: 100% !important;
    max-width: none !important;
    margin: 8px auto 0 !important;
    height: 30px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    display: block !important;
  }
  .subscribe .jobs-carousel .jobs-track {
    display: inline-flex !important;
    animation: marquee 18s linear infinite !important;
    will-change: transform;
  }
  /* Forzar centrado del botón */
  .newsletter-actions { width: 100% !important; justify-content: center !important; }
  .newsletter-actions .responsive-button { margin-left: auto !important; margin-right: auto !important; align-self: center !important; }
}

.subscribe-call-to-acton h4 {
  color: #fff;
  font-size: 24px;
  margin: 0;
}

/* Newsletter */
.ts-newsletter {
  background: transparent;
  position: relative;
  min-height: 115px;
  padding: 15px 0 0 25px;
}

@media (max-width: 767px) {
  .ts-newsletter {
    padding-top: 20px;
    padding-bottom: 10px;
  }
}

@media (max-width: 575px) {
  .ts-newsletter {
    padding: 30px 5px 15px 5px;
    min-height: auto;
    text-align: center;
  }
}

.ts-newsletter {
  display: flex;
  align-items: center;
}
.ts-newsletter .row {
  width: 100%;
  min-height: 115px;
  align-items: center;
}

.newsletter-actions {
  display: inline-flex;
  align-items: center; /* centra verticalmente correo y botón */
  gap: 12px; /* un poco más cercano */
  flex-wrap: nowrap;
}
.newsletter-actions p {
  margin: 0; /* sin margen que empuje la alineación */
  line-height: 1.2; /* altura de línea más contenida */
}
/* Forzar que el botón no tenga margen superior del estilo inline */
.ts-newsletter .responsive-button {
  margin: 0 !important;
  display: inline-flex;
  align-items: center;
}
@media (max-width: 575px) {
  .newsletter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .newsletter-actions p { width: 100%; text-align: center; }
  .newsletter-actions .responsive-button { margin-left: auto; margin-right: auto; }
}

.text-md-right {
  text-align: right !important;
}
@media (max-width: 767.98px) {
  .text-md-right { text-align: center !important; }
}

.ts-newsletter:after {
  content: none;
}

.newsletter-form input {
  background: none;
  font-size: 12px;
  height: 45px;
  border: 1px solid rgba(255, 255, 255, 0.3);
}

/* News section
================================================== */
.latest-post {
  position: relative;
}

.latest-post .image-angle:before {
  border-bottom: 20px solid #f9f9f9;
}

.latest-post .post-title {
  font-size: 16px;
  line-height: 24px;
  margin: 0;
  font-weight: 600;
}

.latest-post .post-title a {
  color: #303030;
}

.latest-post .post-title a:hover {
  color: #b91f1f;
}

.latest-post-meta {
  font-size: 13px;
  text-transform: uppercase;
}

.latest-post .post-body {
  padding: 20px 0 5px;
}

/* Footer
================================================== */
/*- Footer common */
.footer {
  background-color: #0d0d0d;
  color: #999;
}

.footer-main {
  padding: 80px 0 60px;
}

.footer .widget-title {
  font-size: 16px;
  font-weight: 700;
  position: relative;
  margin: 0 0 30px;
  padding-left: 15px;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid #b91f1f;
}

/* Footer Sobre nosotros */
.footer-logo {
  margin-bottom: 50px;
  max-height: 80px;
  filter: grayscale(100%); /* Convierte la imagen a escala de grises */
  
}

/* Footer social */
.footer-social {
  margin-top: 15px;
}

.footer-social .widget-title {
  font-size: 14px;
  margin-bottom: 10px;
}

.footer-social ul {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-left: -13px;
}

.footer-social ul li {
  display: inline-block;
}

.footer-social ul li a i {
  display: block;
  font-size: 26px;
  color: #999;
  text-shadow: 0 0 0 rgba(0,0,0,0);
  transition: color 0.3s ease, text-shadow 0.35s ease;
  padding: 10px 13px;
}



/* Links */
.footer-widget ul.list-arrow li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  padding: 8px 0;
}

.footer-widget ul.list-arrow li:last-child {
  border-bottom: 0;
}

.footer-widget ul.list-arrow li a,
.footer-widget ul.list-arrow li:before {
  color: #747474;
}

.footer-widget ul.list-arrow li:hover a,
.footer-widget ul.list-arrow li:hover {
  color: #b91f1f;
}

.working-hours {
  padding-right: 10px;
}

.working-hours .text-right {
  float: right;
}

/*-- Copyright --*/
.copyright {
  background: #b91f1f;
  color: #fff;
  padding: 18px 0;
  position: relative;
  z-index: 1;
  font-weight: 600;
  font-size: 12px;
}

/* Enlaces dentro de la franja inferior */
.copyright a {
  color: #fff;
  font-weight: 700;
}
.copyright a:hover {
  color: #fff;
  text-decoration: underline;
}

.footer-menu ul li {
  display: inline-block;
  line-height: 12px;
  padding-left: 15px;
}

.footer-menu ul.nav li a {
  background: none;
  color: #111;
  padding: 0;
}

.footer-menu ul li a:hover {
  color: #fff;
}

#back-to-top {
  right: 40px;
  top: auto;
  z-index: 10;
  display: none;
}

#back-to-top .btn:focus {
  outline: 0;
  box-shadow: none;
}

@media (max-width: 767px) {
  #back-to-top {
    right: 15px;
  }
}

#back-to-top.position-fixed {
  bottom: 20px;
}

#back-to-top .btn.btn-primary {
  width: 36px;
  height: 36px;
  line-height: 36px;
  background: rgba(0, 0, 0, 0.9);
  border-radius: 3px;
  color: #b91f1f;
  font-weight: 700;
  font-size: 16px;
  padding: 0;
}

/* Updated Footer Styles */
.footer-logo-section {
  padding-right: 30px;
}

.footer-logo-section .footer-logo {
  margin-bottom: 20px;
}

.footer-logo-section .footer-description {
  color: #999;
  font-size: 14px;
  line-height: 1.6;
  font-weight: 700;
}

.footer-widget {
  padding-left: 20px;
}

.footer-widget .widget-title {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 20px;
  text-transform: uppercase;
  border-left: 3px solid #b91f1f;
  padding-left: 15px;
}

.footer-links-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links-list li {
  margin-bottom: 8px;
}

.footer-links-list li a {
  color: #999;
  font-size: 14px;
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer-links-list li a:hover {
  color: #b91f1f;
}

.footer-social ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 15px;
}

.footer-social ul li {
  display: inline-block;
}

.footer-social ul li a {
  color: #999;
  font-size: 22px;
  transition: color 0.3s ease;
}

.footer-social ul li a:hover {
  color: #b91f1f;
}

.footer-social ul li a:hover i {
  text-shadow: 0 0 10px rgba(185,31,31,0.6), 0 0 20px rgba(185,31,31,0.35), 0 0 30px rgba(185,31,31,0.2);
}

@media (max-width: 767px) {
  .footer-logo-section {
    padding-right: 0;
    margin-bottom: 30px;
    text-align: center;
  }
  
  .footer-widget {
    padding-left: 0;
    margin-bottom: 30px;
  }
  
  .footer-social ul {
    justify-content: center;
  }
}

@media (max-width: 767px) {
  #back-to-top .btn.btn-primary {
    width: 32px;
    height: 32px;
    line-height: 32px;
    font-size: 14px;
  }
}

#back-to-top .btn.btn-primary:hover {
  color: #fff;
}

/* Particles.js Animation */
#particles-js {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: transparent;
  z-index: 1;
  top: 0;
  left: 0;
}

.footer {
  position: relative;
  min-height: 400px;
}

.footer-main {
  position: relative;
  z-index: 2;
}

/* Particles.js Mobile Fix */
@media (max-width: 767px) {
  #particles-js {
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: transparent;
    z-index: 1;
    top: 0;
    left: 0;
    pointer-events: none;
  }
  
  .footer {
    position: relative;
    min-height: 300px;
  }
}

/* Sub Pages
================================================== */
/*-- Title border --*/
.main-container .border-left {
  margin-bottom: 30px;
}

/*-- Banner --*/
.banner-area {
  position: relative;
  min-height: 300px;
  color: #fff;
  background-position: 50% 50%;
  background-size: cover;
}

.banner-title {
  color: #fff;
  text-transform: uppercase;
  font-size: 58px;
  font-weight: 900;
}

@media (max-width: 767px) {
  .banner-title {
    font-size: 48px;
  
  
   }
}

@media (max-width: 575px) {
  .banner-title {
    font-size: 32px;
  }
}

.banner-text {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  max-width: 1170px;
  margin: 0 auto;
  width: 100%;
  z-index: 1;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.banner-heading {
  text-align: center;
}

.breadcrumb {
  padding: 0;
  background: none;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 12px;
}

.breadcrumb li a,
.breadcrumb .breadcrumb-item,
.breadcrumb li a:focus,
.breadcrumb li a:hover {
  color: #fff !important;
}

.breadcrumb .breadcrumb-item + .breadcrumb-item::before {
  color: #fff;
}

/*-- Sobre nosotros page --*/
/* Slider pages */
.page-slider .carousel-control {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: inline-block;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: transparent;
  text-shadow: none;
  transition: all .25s ease;
  padding: 0;
  outline: 0;
  border: 0;
}

.page-slider .carousel-control.left {
  left: 0;
}

.page-slider .carousel-control.right {
  right: 0;
}

.page-slider .carousel-control i {
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  line-height: 70px;
  width: 40px;
  height: 70px;
  font-size: 22px;
  border-radius: 0;
  transition: all 500ms ease;
}

.page-slider .carousel-control i:hover {
  background: #b91f1f;
  color: #fff;
}

.page-slider.small-bg .item {
  min-height: 330px;
  background-size: cover;
}

.page-slider.small-bg .box-slider-content {
  left: 20%;
}

.page-slider.small-bg .box-slider-text {
  background: rgba(0, 0, 0, 0.55);
  padding: 5px 20px;
}

.page-slider.small-bg .box-slide-title {
  font-size: 28px;
  color: #fff;
  font-weight: 900;
}

/*-- Contactanos page --*/
.page-quote-form {
  background: #f2f2f2;
  padding: 30px 50px 50px;
}

.get-a-quote-img {
  margin-bottom: -190px;
}

/*-- Partners carousel --*/
.partner-logo {
  border: 1px solid #eee;
  padding: 20px;
  margin-top: 40px;
  margin-bottom: 10px;
}

.partner-logo img {
  transition: 350ms;
  opacity: .6;
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
}

.partner-logo:hover img {
  opacity: 1;
  -webkit-filter: grayscale(0%);
          filter: grayscale(0%);
}

#partners-carousel .partner-logo {
  border: 0;
  border-right: 1px solid #eee;
  padding: 0 15px;
  margin-top: 20px;
}

#partners-carousel .partner-logo.last {
  border-right: 0;
}

/*-- Team page --*/
.team-slide .slick-slide {
  margin-left: 15px;
  padding-bottom: 60px;
}

.team-slide .slick-list {
  margin-left: -25px;
}

.team-slide .carousel-control {
  position: absolute;
  bottom: 0;
  left: 50%;
  border: 0;
  background-color: #ddd;
  height: 37px;
  width: 37px;
  border-radius: 4px;
  transition: .3s;
  z-index: 6;
}

.team-slide .carousel-control:hover {
  background-color: #b91f1f;
  color: #fff;
}

.team-slide .carousel-control.left {
  -webkit-transform: translateX(calc(-50% - 25px));
          transform: translateX(calc(-50% - 25px));
}

.team-slide .carousel-control.right {
  -webkit-transform: translateX(calc(-50% + 25px));
          transform: translateX(calc(-50% + 25px));
}

/*-- currusel de reclutadores  --*/
.ts-team-wrapper {
  background: #cccccc4d;
  border: 1px solid #ddd;
  border-radius: 10px;
  overflow: hidden;
  text-align: center;
  padding: 20px;
  transition: transform 0.3s ease;
}

.team-img-wrapper img {
  border-radius: 50%;
  width: 150px;
  height: 150px;
  object-fit: cover;
}

.ts-team-content-classic h3 {
  margin: 15px 0 10px;
  font-size: 1.5em;
}

.ts-team-content-classic p {
  margin: 5px 0;
  font-size: 0.9em;
  color: #000000;
}
.dark-mode .ts-team-content-classic p {
  color: #ffffff; /* Color blanco para modo oscuro */
}

.btn-primary {
  background-color: #be0e0e;
  border: none;
  padding: 10px 20px;
  color: #fff;
  border-radius: 5px;
  cursor: pointer;
}

.btn-primary:hover {
  background-color: #000000;
}

.modal {
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.5);
}

.modal-content {
  background-color: #fff;
  margin: 15% auto;
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
  max-width: 500px;
  border-radius: 10px;
  text-align: center;
}

.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
}

.close:hover {
  color: #000;
}

.hidden {
  display: none;
}

.team-social-icons {
  margin-top: 20px;
}

.team-social-icons a {
  margin: 0 10px;
  color: #000000;
  font-size: 1.5em;
}

.team-social-icons a:hover {
  color: #be0e0e;
}

/*-- Boton de chat bot reclutamiento  --*/

/* Contenedor del botón */
.button-container {
  display: flex; /* Activa Flexbox */
  justify-content: center; /* Centra horizontalmente */
  align-items: center; /* Centra verticalmente */
  margin: 20px 0; /* Espaciado superior e inferior */
  height: auto; /* Ajusta la altura automáticamente según el contenido */
}

/* Botón */
.bt-reclutchat {
  background-color: #f0ec10; /* Color de fondo */
  color: rgb(0, 0, 0); /* Color del texto */
  padding: 15px 30px; /* Espaciado interno */
  border: none; /* Sin borde */
  border-radius: 5px; /* Esquinas redondeadas */
  font-size: 16px; /* Tamaño de la fuente */
  cursor: pointer; /* Cambia el cursor al pasar sobre el botón */
  transition: background-color 0.3s ease; /* Transición suave del color de fondo */
}

.bt-reclutchat:hover {
  background-color: #be0e0e;
}


/*-- Precios table  --*/
.ts-Precios-box {
  margin: 20px 0;
  padding: 0;
  text-align: center;
  background: #f9f9f9;
}

.ts-Precios-box .ts-Precios-header {
  background: #252525;
  color: #fff;
  position: relative;
  padding: 30px 20px;
}

.ts-Precios-box .ts-Precios-name {
  font-size: 18px;
  line-height: normal;
  margin: 0 0 5px 0;
  color: #fff;
}

.ts-Precios-box .ts-Precios-price {
  font-size: 44px;
  color: #fff;
  margin: 15px 0 0;
  display: inline-block;
}

.ts-Precios-box .ts-Precios-price > small {
  font-size: 16px;
  line-height: 16px;
  display: block;
  margin-top: 15px;
  color: #fff;
}

.ts-Precios-box .ts-Precios-features {
  padding: 15px 0;
}

.ts-Precios-box .ts-Precios-features ul {
  padding: 0 20px;
}

.ts-Precios-box .ts-Precios-features ul > li {
  padding: 20px 0;
  border-top: 1px dotted #e5e5e5;
}

.ts-Precios-box .ts-Precios-features ul > li:first-child {
  border-top: 0;
}

.ts-Precios-box .plan-action {
  padding-bottom: 40px;
}

/* Precios featured */
.ts-Precios-box.ts-Precios-featured .ts-Precios-header {
  background: #ff9800;
}

/* Contacto Us
================================================== */
.map {
  height: 450px;
  z-index: 1;
}

.Contacto-info-box {
  margin-top: 20px;
}

.Contacto-info-box i {
  float: left;
  font-size: 24px;
  color: #b91f1f;
}

.Contacto-info-box-content {
  padding-left: 40px;
}

.Contacto-info-box-content h4 {
  font-size: 16px;
  margin-top: 0;
  line-height: normal;
  font-weight: 700;
}

.Contacto-info-box-content p {
  margin-bottom: 0;
}

label {
  font-weight: 400;
}

/* Contacto page 2 */
.ts-service-box.text-center .ts-service-icon.icon-squre i {
  float: none;
  margin-bottom: 20px;
}

.ts-service-box.text-center .ts-service-box-content {
  margin: 0;
}

/* News Listing
================================================== */
.post {
  border-bottom: 1px solid #dadada;
  padding: 0 0 30px;
  margin: 0 0 45px;
}

.post.last {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.post-body {
  padding: 20px 0 5px;
}

.entry-header .entry-title {
  font-size: 24px;
  margin: 5px 0 15px;
  position: relative;
  line-height: 34px;
  text-transform: capitalize;
}

.entry-header .entry-title a {
  color: #303030;
}

.entry-header .entry-title a:hover {
  color: #b91f1f;
}

.post-single .entry-header .entry-title {
  font-size: 28px;
}

/* Meta */
.post-meta {
  padding-bottom: 10px;
}

.post-meta a {
  color: #303030;
}

.post-meta a:hover {
  color: #b91f1f;
}

.post-meta span {
  margin-right: 10px;
  padding-right: 10px;
  border-right: 1px solid #dadada;
  line-height: 12px;
  display: inline-block;
}

.post-meta i {
  color: #bbb;
  margin-right: 3px;
}

.post-meta .post-comment {
  border-right: 0;
}

.post-meta .post-comment .comments-link {
  margin-left: 5px;
}

.post-footer .btn.btn-primary {
  font-size: 12px;
  margin-top: 10px;
}

/* Pagination */
.paging {
  margin-bottom: -5px;
}

.pagination li a {
  border-radius: 0 !important;
  margin-right: 8px;
  color: #7c7c7c;
}

.pagination > .active > a,
.pagination > .active > a:hover,
.pagination > li > a:hover {
  color: #fff;
  background: #b91f1f;
  border: 1px solid transparent;
}

/* News Single
================================================== */
.tags-area {
  margin: 20px 0;
}

.post-tags a {
  border: 1px solid #dadada;
  color: #7c7c7c;
  display: inline-block;
  font-size: 12px;
  padding: 3px 10px;
  margin-left: 3px;
}

.post-tags a:hover {
  background: #b91f1f;
  color: #fff;
  border: 1px solid transparent;
}

/* Post social */
.post-social-icons > li {
  display: inline-block;
}

.post-social-icons a i {
  margin-left: 5px;
  font-size: 12px;
  width: 28px;
  height: 26px;
  line-height: 26px;
  color: #fff;
  text-align: center;
}

.post-social-icons a i.fa-facebook-f {
  background: #41578a;
}

.post-social-icons a i.fa-twitter {
  background: #64bae2;
}

.post-social-icons a i.fa-google-plus {
  background: #c0343d;
}

.post-social-icons a i.fa-linkedin {
  background: #3397b6;
}

/* Author box */
.author-box {
  border: 1px solid #dadada;
  padding: 20px 20px 15px;
  margin: 20px 0;
}

.author-img img {
  width: 110px;
  height: 110px;
  margin-right: 30px;
}

.author-info h3 {
  margin-top: 0;
  margin-bottom: 5px;
  font-size: 18px;
  font-weight: 600;
}

.author-info h3 span {
  font-size: 12px;
  color: #999;
  border-left: 1px solid #AFAFAF;
  padding-left: 10px;
  margin-left: 10px;
  font-weight: 500;
}

/* Comments area */
.comments-area {
  margin: 40px 0;
}

.comments-list .comment-content {
  margin: 15px 0;
}

.comments-list .comment-reply {
  color: #303030;
  font-weight: 400;
}

.comments-list .comment-reply:hover {
  color: #b91f1f;
}

.comments-counter {
  font-size: 18px;
}

.comments-counter a {
  color: #323232;
}

.comments-list {
  list-style: none;
  margin: 0;
  padding: 20px 0;
}

.comments-list .comment {
  border-bottom: 1px solid #e7e7e7;
  padding-bottom: 20px;
  margin-bottom: 30px;
}

.comments-list .comment.last {
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}

.comments-list img.comment-avatar {
  width: 84px;
  height: 84px;
  margin-right: 30px;
}

@media (max-width: 575px) {
  .comments-list img.comment-avatar {
    width: 40px;
    height: 40px;
    margin-right: 25px;
  }
}

.comments-list .comment-author {
  margin-bottom: 0;
  margin-top: 0;
  font-weight: 600;
  font-size: 16px;
  color: #303030;
}

.comments-list .comment-date {
  color: #959595;
  margin-bottom: 5px;
  font-size: 12px;
}

@media (max-width: 575px) {
  .comments-list .comment-date {
    float: none !important;
    display: inline-block;
  }
}

.comments-reply {
  list-style: none;
  margin: 0 0 0 70px;
}

@media (max-width: 767px) {
  .comments-reply {
    margin: 0;
    padding: 0;
  }
}

.comments-form {
  margin-bottom: 0;
}

.comments-form .title-normal {
  margin-bottom: 20px;
}

.comments-form .btn.btn-primary {
  margin-top: 20px;
}

/* Sidebar
================================================== */
.sidebar .widget-title {
  font-size: 16px;
  font-weight: 700;
  position: relative;
  margin: 0 0 30px;
  padding-left: 15px;
  text-transform: uppercase;
  border-left: 3px solid #b91f1f;
}

/* Widget common */
.sidebar .widget {
  margin-bottom: 40px;
}

.sidebar-left .widget {
  margin-right: 20px;
}

.sidebar-right .widget {
  margin-left: 20px;
}

.sidebar .widget.box {
  padding: 25px;
}

.widget.box.solid {
  background: #f2f2f2;
}

.widget.box.red {
  background: #ec483b;
  color: #fff;
}

.widget.box.red .widget-title {
  color: #fff;
}

.widget ul li {
  line-height: 30px;
}

.sidebar .widget ul li a {
  color: #303030;
}

.sidebar .widget ul li a:hover {
  color: #b91f1f;
}

.sidebar .widget ul li i {
  margin-right: 5px;
}

.sidebar .btn {
  font-weight: 700;
  font-size: 12px;
  margin-top: 15px;
  padding: 10px 25px;
}

/* Sidebar nav */
.sidebar ul.nav-tabs {
  border: 0;
}

.sidebar ul.nav-tabs li {
  width: 100%;
}

.sidebar ul.nav-tabs li a {
  color: #303030;
  border-radius: 0;
  padding: 15px 0;
  padding-left: 0;
  font-weight: 400;
  border-bottom: 1px solid #ddd;
  display: block;
  transition: 400ms;
}

.sidebar ul.nav-tabs li.active a,
.sidebar ul.nav-tabs li:hover a {
  color: #b91f1f;
}

.sidebar ul.nav-tabs li {
  color: #303030;
  line-height: normal;
}

.sidebar ul.nav-tabs li:last-child a {
  border-bottom: 0;
}

/* Service menu */
.sidebar ul.service-menu li {
  width: 100%;
}

.sidebar ul.service-menu li a {
  background-color: #f4f4f4;
  padding: 15px 20px;
  border: 0;
  margin-bottom: 8px;
  position: relative;
  transition: 400ms;
  display: block;
}

.sidebar ul.service-menu li.active a,
.sidebar ul.service-menu li:hover a {
  background: #b91f1f;
  color: #fff;
  cursor: pointer;
}

/* Recent News */
.widget.recent-posts .widget-title {
  margin-bottom: 35px;
}

.widget.recent-posts ul li {
  border-bottom: 1px solid #dadada;
  padding-bottom: 15px;
  margin-bottom: 17px;
}

.widget.recent-posts ul li:last-child {
  border: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}

.widget.recent-posts .posts-thumb img {
  margin-right: 15px;
  width: 90px;
  height: 70px;
}

.widget.recent-posts .post-info .entry-title {
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  margin: 0;
}

.widget.recent-posts .post-info .entry-title a {
  color: #303030;
  display: inline-block;
}

.widget.recent-posts .post-info .entry-title a:hover {
  color: #b91f1f;
}

.widget.recent-posts .post-date {
  font-weight: 400;
  color: #999;
  text-transform: capitalize;
}

/* Widget tags */
.widget-tags ul > li {
  float: left;
  margin: 3px;
}

.sidebar .widget-tags ul > li a {
  border: 1px solid #dadada;
  color: #303030;
  display: block;
  font-size: 14px;
  padding: 3px 15px;
  transition: all 0.3s ease 0s;
}

.sidebar .widget-tags ul > li a:hover {
  background: #b91f1f;
  color: #fff;
  border: 1px solid transparent;
}

/* Error page
================================================== */
.error-page .error-code h2 {
  display: block;
  font-size: 200px;
  line-height: 200px;
  color: #303030;
  margin-bottom: 20px;
}

.error-page .error-body .btn {
  margin-top: 30px;
  font-weight: 700;
}

/*# sourceMappingURL=style.css.map */


/* =====================
   Boton de imagen de reclamación
====================== */

/* Estilos para el contenedor del botón de imagen con la clase 'bt_ldr' */
/* Estilos para el contenedor del botón de imagen con la clase 'bt_ldr' */
.bt_ldr {
  position: relative; /* Ajustamos para que esté dentro del div */
 
  align-items: center;
  margin-top: 15px; /* Agregamos un margen para separar del texto */
}

/* Estilos para la imagen dentro del botón con la clase 'bt_ldr-img' */
.bt_ldr-img {
  width: 100px; /* Tamaño de la imagen */
  height: 100px; /* Asegúrate de que la imagen tenga un tamaño adecuado */
  transition: transform 0.3s ease, box-shadow 0.3s ease; /* Transición suave para el hover */
}

/* Efecto cuando el mouse pasa sobre la imagen */
.bt_ldr-img:hover {
  transform: scale(1.1); /* Agranda la imagen cuando se pasa el ratón */
  box-shadow: 0 0 15px 5px rgba(202, 45, 6, 0.6); /* Brillo amarillo al pasar el ratón */
}


.google-map {
  position: relative;
  width: 100%;
  overflow: hidden;
  border: 1px solid #dfdfdf; /* Borde para que se vea bien en modo claro */
}

/* Hacer el mapa responsive */
.google-map iframe {
  width: 100%;
  height: 450px; /* Altura fija, puedes ajustarla según tus necesidades */
}

/* Estilos para modo oscuro */
@media (prefers-color-scheme: dark) {
  .google-map {
    border: 1px solid #555; /* Borde más claro para modo oscuro */
  }

  .google-map iframe {
    filter: brightness(0.9); /* Reduce el brillo del mapa para que no desentone en modo oscuro */
  }
}


/* Estilos para el botón DECARGAR BROCHURE */
.animated-btn {
    animation: pulse 2s infinite; /* Aplica la animación de pulso */
}

@keyframes pulse {
    0% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(0, 0, 0, 0.2);
    }
    50% {
        transform: scale(1.03);
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(0, 0, 0, 0.2);
    }
}

.animated-btn:hover {
    background: linear-gradient(45deg, #343a40, #6c757d); /* Gradiente de color */
}

.animated-btn {
    position: relative;
    border: none;
}

.animated-btn::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #fff; /* Color del borde */
    transition: width 0.3s ease;
}

.animated-btn:hover::before {
    width: 100%; /* El borde se extiende al pasar el mouse */
}

.breadcrumb {
  padding: 0;
  background: none;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 12px;
}

.breadcrumb li a,
.breadcrumb .breadcrumb-item,
.breadcrumb li a:focus,
.breadcrumb li a:hover {
  color: #fff !important;
}

.breadcrumb .breadcrumb-item + .breadcrumb-item::before {
  color: #fff;
}

/* =============================================
   FORMULARIO DE CONTACTO DIMARZA - CSS ESPECÍFICO
   Archivo: dmz-contact.css
   Usar clases con prefijo "dmz-" para evitar conflictos
============================================= */

/* Contenedor principal del formulario de contacto */
.dmz-contact-form-section {
    background: url('../images/form_fondo.jpg') center/cover no-repeat;
    padding: 60px 0;
    position: relative;
}

.dmz-contact-form-container {
    background: rgba(255, 255, 255, 0.85);
    border-radius: 15px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
    padding: 40px;
    position: relative;
    overflow: hidden;
    height: 100%;
    backdrop-filter: blur(10px);
}

/* Contenedor de imagen */
.dmz-image-container {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 500px;
    padding: 20px;
}

.dmz-contact-illustration {
    width: 100%;
    height: auto;
    max-width: 500px;
    border-radius: 15px;
}

.dmz-contact-form-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: linear-gradient(90deg, #b91f1f 0%, #ff6b6b 100%);
}

/* Header del formulario */
.dmz-form-header {
    text-align: left;
    margin-bottom: 40px;
}

.dmz-form-header h2 {
    color: #333;
    font-size: 2.2rem;
    margin-bottom: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.dmz-form-header p {
    color: #666;
    font-size: 1rem;
    margin: 0;
    line-height: 1.5;
}

/* Campos del formulario */
.dmz-form-group {
    margin-bottom: 25px;
    position: relative;
}

.dmz-form-group label {
    display: block;
    margin-bottom: 8px;
    color: #333;
    font-weight: 600;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.dmz-form-control {
    width: 100%;
    padding: 15px 20px;
    border: 2px solid #e1e5e9;
    border-radius: 8px;
    font-size: 16px;
    transition: all 0.3s ease;
    background: #fff;
    color: #333;
    box-sizing: border-box;
}

/* Campo de área de interés específico */
.dmz-area-label {
    color: #4a90e2 !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.dmz-area-input {
    border-bottom: 2px solid #4a90e2 !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 10px 0 !important;
}

.dmz-form-control:focus {
    outline: none;
    border-color: #b91f1f;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(185, 31, 31, 0.1);
    transform: translateY(-2px);
}

.dmz-form-control.dmz-error {
    border-color: #dc3545;
    background: #000000;
}

.dmz-form-control.dmz-success {
    border-color: #00d1ae;
    background: #000000;
}

/* Textarea específico */
.dmz-form-control.dmz-textarea {
    resize: vertical;
    min-height: 120px;
    font-family: inherit;
}

/* Iconos en campos */
.dmz-form-group.dmz-has-icon {
    position: relative;
}

.dmz-form-group.dmz-has-icon .dmz-form-icon {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    font-size: 18px;
    pointer-events: none;
    transition: color 0.3s ease;
}

.dmz-form-group.dmz-has-icon .dmz-form-control:focus + .dmz-form-icon {
    color: #b91f1f;
}

/* Mensajes de error */
.dmz-error-message {
    color: #dc3545;
    font-size: 13px;
    margin-top: 5px;
    display: none;
    font-weight: 500;
}

.dmz-error-message.dmz-show {
    display: block;
}

/* Información de IP */
.dmz-ip-info {
    background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);
    border: 1px solid #ffc107;
    border-radius: 10px;
    padding: 15px;
    margin-bottom: 25px;
    text-align: center;
}

.dmz-ip-info i {
    color: #856404;
    margin-right: 8px;
    font-size: 18px;
}

.dmz-ip-info-text {
    color: #856404;
    font-size: 14px;
    margin: 0;
    font-weight: 600;
}

.dmz-ip-address {
    color: #b91f1f;
    font-weight: 700;
    font-family: 'Courier New', monospace;
}

/* Checkbox de políticas */
.dmz-checkbox-container {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-top: 2px;
    margin-bottom: 0;
}

.dmz-custom-checkbox {
    position: relative;
    display: inline-block;
}

.dmz-custom-checkbox input[type="checkbox"] {
    opacity: 0;
    position: absolute;
    left: 0;
    top: 0;
    width: 20px;
    height: 20px;
    cursor: pointer;
}

.dmz-checkbox-mark {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid #ddd;
    border-radius: 4px;
    background: #fff;
    position: relative;
    transition: all 0.3s ease;
    cursor: pointer;
    flex-shrink: 0;
}

.dmz-custom-checkbox input[type="checkbox"]:checked + .dmz-checkbox-mark {
    background: #b91f1f;
    border-color: #b91f1f;
}

.dmz-custom-checkbox input[type="checkbox"]:checked + .dmz-checkbox-mark::after {
    content: '\f00c';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    color: white;
    font-size: 12px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.dmz-policy-text {
    color: #555;
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

.dmz-policy-link {
    color: #b91f1f;
    text-decoration: none;
    font-weight: 600;
}

.dmz-policy-link:hover {
    text-decoration: underline;
    color: #b91f1f;
}

/* Estilos para el diseño de dos columnas */
.dmz-form-row {
    display: flex;
    gap: 30px;
    margin-bottom: 20px;
}

.dmz-form-column {
    flex: 1;
}

/* Estilos para el campo de teléfono */
.dmz-phone-container {
    display: flex;
    gap: 10px;
    align-items: center;
}

.dmz-country-select {
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    padding: 12px;
    color: white;
    font-size: 14px;
    min-width: 80px;
    width: 80px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.dmz-country-select:focus {
    outline: none;
    border-color: #007bff;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.dmz-country-select option {
    background: #2c3e50;
    color: white;
    padding: 8px;
}

.dmz-phone-input {
    flex: 1;
}

/* Estilos para el textarea */
.dmz-textarea {
    min-height: 120px;
    resize: vertical;
    font-family: inherit;
    line-height: 1.5;
}

/* Botón de envío */
.dmz-submit-btn {
    background: #be0e0e; /* igual que .btn-primary */
    color: #fff; /* igual que .btn-primary */
    border: none;
    padding: 10px 20px; /* igual que .btn-primary */
    border-radius: 5px; /* igual que .btn-primary */
    font-size: 14px; /* consistente con botones generales */
    font-weight: 700; /* igual que .btn */
    text-transform: uppercase; /* igual que .btn */
    cursor: pointer;
    transition: all 0.3s ease;
    width: auto;
    display: inline-block;
    position: relative;
    overflow: hidden;
    margin-top: 4px; /* mantenemos el espacio mínimo */
}

.dmz-submit-btn:hover {
    background: #000000; /* igual que .btn-primary:hover */
    transform: none;
    box-shadow: none;
}

.dmz-submit-btn:active {
    transform: none;
}

.dmz-submit-btn:disabled {
    background: #6c757d;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.dmz-submit-btn .dmz-btn-text {
    transition: opacity 0.3s ease;
}

.dmz-submit-btn.dmz-loading .dmz-btn-text {
    opacity: 0;
}

.dmz-submit-btn .dmz-loading-spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.dmz-submit-btn.dmz-loading .dmz-loading-spinner {
    opacity: 1;
}

.dmz-spinner {
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    border-top: 2px solid white;
    width: 20px;
    height: 20px;
    animation: dmz-spin 1s linear infinite;
}

@keyframes dmz-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Mensajes de estado */
.dmz-status-message {
    padding: 15px 20px;
    border-radius: 10px;
    margin-bottom: 20px;
    font-weight: 600;
    text-align: center;
    display: none;
}

.dmz-status-message.dmz-success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.dmz-status-message.dmz-error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.dmz-status-message.dmz-show {
    display: block;
    animation: dmz-slideInDown 0.3s ease;
}

@keyframes dmz-slideInDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Modal de políticas */
.dmz-policy-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    z-index: 9999;
    justify-content: center;
    align-items: center;
}

.dmz-policy-modal-content {
    background: white;
    padding: 30px;
    border-radius: 15px;
    max-width: 600px;
    max-height: 80vh;
    overflow-y: auto;
    margin: 20px;
}

.dmz-policy-modal h3 {
    color: #333;
    margin-bottom: 20px;
}

.dmz-policy-modal-text {
    color: #666;
    line-height: 1.6;
}

.dmz-policy-close-btn {
    background: #b91f1f;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 5px;
    margin-top: 20px;
    cursor: pointer;
}

.dmz-policy-close-btn:hover {
    background: #8b0000;
}

/* Responsive */
@media (max-width: 768px) {
    .dmz-contact-form-container {
        margin: 20px 0;
        padding: 30px 20px;
    }

    .dmz-form-header h2 {
        font-size: 1.8rem;
    }

    .dmz-image-container {
        min-height: 300px;
        margin-top: 30px;
        order: 2;
    }

    .dmz-contact-illustration {
        max-width: 350px;
    }

    .dmz-checkbox-container {
        flex-direction: column;
        gap: 10px;
    }

    .dmz-submit-btn {
        padding: 12px 30px;
        font-size: 14px;
        width: 100%;
    }

    .dmz-phone-container {
        flex-direction: column;
        gap: 15px;
    }

    .dmz-country-select {
        width: 100%;
        min-width: auto;
    }

    .dmz-phone-input {
        width: 100%;
    }

    .dmz-form-row {
        flex-direction: column;
        gap: 0;
    }

    .dmz-form-column {
        width: 100%;
    }

    .col-lg-6:first-child {
        order: 1;
    }
}

/* Modo oscuro */
@media (prefers-color-scheme: dark) {
    .dmz-contact-form-section {
        background: url('../images/form_fondo.jpg') center/cover no-repeat;
    }

    .dmz-contact-form-container {
        background: rgba(51, 51, 51, 0.85);
        color: #fff;
        backdrop-filter: blur(10px);
    }

    .dmz-form-header h2,
    .dmz-form-group label {
        color: #fff;
    }

    .dmz-form-header p {
        color: #ccc;
    }

    .dmz-form-control {
        background: #444;
        border-color: #555;
        color: #fff;
    }

    .dmz-form-control:focus {
        background: #555;
    }

    .dmz-ip-info {
        background: linear-gradient(135deg, #3a3a00 0%, #4a4a00 100%);
        border-color: #666;
    }

    .dmz-ip-info-text {
        color: #ffeb3b;
    }



    .dmz-policy-text {
        color: #ccc;
    }

    .dmz-checkbox-mark {
        background: #555;
        border-color: #666;
    }

    /* Cards de contacto en modo oscuro */
    .dmz-contact-card {
        background: rgba(51, 51, 51, 0.85) !important;
        backdrop-filter: blur(10px) !important;
    }

    .dmz-contact-card h4 {
        color: #fff !important;
    }

    .dmz-contact-card p {
        color: #ccc !important;
    }

    .dmz-contact-card .ts-service-icon {
        background: #b91f1f !important;
        color: white !important;
    }

    .dmz-policy-modal-content {
        background: #333;
        color: #fff;
    }

    .dmz-policy-modal h3 {
        color: #fff;
    }

    .dmz-policy-modal-text {
        color: #ccc;
    }
}

/* Estilos para la cuadrícula de noticias */
.news-grid .post {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
    height: 100%;
}

.news-grid .post:hover {
    transform: translateY(-5px);
}

.news-grid .post-media {
    height: 200px;
    overflow: hidden;
    border-radius: 8px 8px 0 0;
}

.news-grid .post-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.news-grid .post:hover .post-media img {
    transform: scale(1.1);
}

.news-grid .post-body {
    padding: 15px;
}

.news-grid .entry-title {
    font-size: 1.2rem;
    margin: 10px 0;
    line-height: 1.4;
}

.news-grid .entry-content {
    margin-bottom: 15px;
}

.news-grid .short-text {
    font-size: 0.9rem;
    line-height: 1.5;
    max-height: 4.5em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.news-grid .post-meta {
    font-size: 0.8rem;
    margin-bottom: 10px;
}

.news-grid .post-footer {
    padding: 10px 15px;
    border-top: 1px solid #eee;
}

.news-grid .btn-sm {
    padding: 5px 15px;
    font-size: 0.8rem;
}

/* Ajustes para cuadrícula de 4 columnas */
.news-grid .col-md-3 {
    padding: 10px;
}

.news-grid .post {
    margin-bottom: 0;
}

.news-grid .entry-title {
    font-size: 1rem;
    margin: 8px 0;
}

.news-grid .post-media {
    height: 160px;
}

/* Responsive para tablets y móviles */
@media (max-width: 991px) {
    .news-grid .col-md-3 {
        width: 50%;
    }
}

@media (max-width: 576px) {
    .news-grid .col-md-3 {
        width: 100%;
    }
}

/* =====================
   Mining map layout
   - Alinea el mapa a la izquierda y limita su ancho en pantallas grandes
====================== */
#mining-map .container {
  text-align: left !important; /* Anula .text-center si quedara en el HTML */
}
#mining-map .map-frame {
  width: 55%;
  max-width: 820px; /* evita que se haga demasiado grande en pantallas anchas */
  margin-left: auto; /* alinea a la derecha */
  margin-right: 0;
}
#mining-map .map-frame .flourish-embed {
  width: 100% !important; /* asegura que el embed respete el contenedor */
}
@media (max-width: 992px) {
  #mining-map .map-frame {
    width: 100%; /* en móviles ocupa el ancho completo */
  }
}

/* ============== Mining map layout (extendido con banderas) ============== */
#mining-map .map-layout {
  display: flex;
  align-items: flex-start;
  gap: 24px; /* separación entre banderas y mapa */
}
/* Estructura de dos columnas en desktop */
@media (min-width: 993px) {
  #mining-map .map-layout { flex-wrap: nowrap; }
  #mining-map .flag-stack { flex: 0 0 40%; max-width: 40%; }
  #mining-map .map-frame { flex: 1 1 60%; width: auto; max-width: none; }
  /* Grid de dos columnas: bandera | info */
  #mining-map .flag-stack { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; row-gap: 10px; align-items: center; }
  /* La caja de logos ocupa todo el ancho de la columna izquierda (ambas columnas internas) */
  #mining-map .logos-box { grid-column: 1 / -1; }
}
#mining-map .flag-stack {
  /* En móvil base sigue siendo flex; en desktop se sobreescribe a grid */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 12px;
  position: relative;
  left: 0;
  top: 0;
  flex: 0 0 45%;
  max-width: 45%;
}
#mining-map .flag-btn {
  display: inline-flex;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 8px;
  line-height: 0; /* elimina espacio interno */
  transition: transform .15s ease, box-shadow .15s ease;
}
#mining-map .flag-btn:focus-visible {
  outline: 2px solid #1e88e5;
  outline-offset: 2px;
}
#mining-map .flag-btn:hover {
  transform: translateY(-2px);
}
#mining-map .flag-img {
  display: block;
  width: 160px; /* tamaño equilibrado por defecto */
  max-width: 22vw; /* limita en pantallas muy anchas */
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.10);
}
/* Responsivo */
@media (max-width: 1200px) {
  #mining-map .flag-img { width: 140px; max-width: 28vw; }
}
@media (max-width: 992px) {
  #mining-map .map-layout { flex-direction: column; align-items: center; }
  #mining-map .flag-stack { flex-direction: row; justify-content: center; left: 0; top: 0; max-width: 100%; flex: 0 0 auto; }
  #mining-map .map-frame { width: 100%; max-width: 100%; }
  #mining-map .flag-img { width: 110px; max-width: 30vw; }
}
@media (max-width: 576px) {
  #mining-map .flag-img { width: 95px; max-width: 38vw; }
}

/* =====================
   Info a la derecha de cada bandera
====================== */
#mining-map .flag-info {
  margin-left: 14px;
  padding: 6px 10px;
  background: rgba(255,255,255,0.65);
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 8px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  color: #222;
  font-size: 14px;
  line-height: 1.35;
}
#mining-map .flag-info .flag-info-name { font-weight: 600; margin-bottom: 2px; color: #000000; }
#mining-map .flag-info .flag-info-site,
#mining-map .flag-info .flag-info-mail { display: inline-block; color: #000000; text-decoration: none; font-weight: 500; }
#mining-map .flag-info .flag-info-site:hover,
#mining-map .flag-info .flag-info-mail:hover { text-decoration: underline; }

#mining-map .flag-btn + .flag-info { margin-top: 0; }
#mining-map .flag-stack > .flag-btn { display: inline-flex; align-items: center; }
#mining-map .flag-stack > .flag-info { display: block; width: 100%; }
  #mining-map .flag-stack { flex-direction: column; align-items: center; }
  #mining-map .flag-info { margin-left: 0; width: 100%; max-width: 420px; text-align: center; }


.dark-mode #mining-map .flag-info { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.22); color: #e5e5e5; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.dark-mode #mining-map .flag-info .flag-info-name { color: #ffffff !important; }
.dark-mode #mining-map .flag-info .flag-info-site,
.dark-mode #mining-map .flag-info .flag-info-mail { color: #ffffff; }

@media (min-width: 993px) {
  /* En escritorio: pares bandera | info en la misma fila */
  #mining-map .flag-stack {
    display: grid !important;
    grid-template-columns: 130px 1fr;
    column-gap: 16px;
    row-gap: 14px;
    align-items: center;
  }
  #mining-map .flag-btn { justify-self: start; }
  #mining-map .flag-img { width: 130px; max-width: none; }
  #mining-map .flag-btn + .flag-info { margin-top: 0; }
  #mining-map .flag-info {
    margin: 0;
    display: block;
    padding: 6px 10px;
  }
  /* La caja de logos ocupa ambas columnas internas */
  #mining-map .logos-box { grid-column: 1 / -1; }
}

/* =====================
   Flag Hover Effects - Logo Extraction
====================== */

/* Estilos para logos extraídos durante hover de banderas */
.extracted-logo {
  position: fixed;
  z-index: 1000;
  transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  pointer-events: none;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  filter: brightness(1.1) drop-shadow(0 2px 4px rgba(0,0,0,0.2));
  background: rgba(255,255,255,0.95);
  padding: 8px;
  backdrop-filter: blur(2px);
}

/* Efecto de hover mejorado en banderas cuando están activas */
.flag-btn:hover .flag-img {
  transform: scale(1.05);
  box-shadow: 0 4px 16px rgba(0,0,0,0.2);
}

/* Animación de pulsación sutil en banderas durante hover */
.flag-btn.extracting {
  animation: flagPulse 0.6s ease-in-out;
  transform: scale(1.1);
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
  z-index: 999;
}

@keyframes flagPulse {
  0% { transform: scale(1.1); }
  50% { transform: scale(1.15); }
  100% { transform: scale(1.1); }
}

/* Transiciones suaves para banderas */
.flag-btn {
  transition: all 0.3s ease;
}

/* Efecto de desvanecimiento para banderas inactivas */
.flag-btn.hidden,
#mining-map .flag-info.hidden {
  opacity: 0;
  transform: scale(0.98);
  pointer-events: none;
  /* Evitar que ocupen espacio y empujen el layout cuando hay una activa */
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* Efecto de desvanecimiento en logos originales durante extracción */
.carousel-logo.extracting {
  opacity: 0.3;
  transition: opacity 0.3s ease;
}

/* Modo oscuro para logos extraídos */
.dark-mode .extracted-logo {
  background: rgba(30,30,30,0.95);
  border: 1px solid rgba(255,255,255,0.1);
  filter: brightness(1.2) drop-shadow(0 2px 4px rgba(255,255,255,0.1));
}

/* Responsivo para logos extraídos */
@media (max-width: 992px) {
  .extracted-logo {
    width: 80px !important;
    height: 80px !important;
  }
}

@media (max-width: 576px) {
  .extracted-logo {
    width: 60px !important;
    height: 60px !important;
  }
}

/* Efecto hover para imágenes de noticias */
.latest-post-media {
  position: relative;
  overflow: hidden;
}

.latest-post-media::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0;
  background: rgba(0, 0, 0, 0.6);
  transition: height 0.4s ease-in-out;
  z-index: 1;
}

.latest-post-media:hover::after {
  height: 100%;
}

.latest-post-media .read-more-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #b91f1f;
  color: white;
  padding: 8px 16px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
  z-index: 2;
  display: inline-block;
}

.latest-post-media .read-more-btn:hover {
  background: #a01818;
  color: white;
  text-decoration: none;
}

.latest-post-media:hover .read-more-btn {
  opacity: 1;
}

.latest-post-media img {
  transition: transform 0.4s ease-in-out;
}

.latest-post-media:hover img {
  transform: scale(1.05);
}

/* Cuadro verde para logos bajo la bandera activa */
#mining-map .logos-box {
  width: 100%;
  max-width: 100%;
  min-height: 260px;
  border: 3px solid #666666; /* gris oscuro medio */
  border-radius: 8px;
  margin-top: 12px;
  padding: 12px;
  display: grid;
  grid-template-columns: repeat(3, minmax(100px, 1fr));
  grid-auto-rows: 100px;
  gap: 12px;
  background: rgba(255,255,255,0.6);
}
#mining-map .logos-box .logo-item {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  padding: 8px;
  transition: transform .25s ease, opacity .25s ease;
}
#mining-map .logos-box .logo-item.appear {
  opacity: 1;
  transform: scale(1);
}
#mining-map .logos-box .logo-item {
  opacity: 0;
  transform: scale(0.9);
}
@media (max-width: 992px) {
  #mining-map .logos-box {
    width: 100%;
    max-width: 100%;
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 576px) {
  #mining-map .logos-box {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 80px;
  }
}

/* ---- Ajustes adicionales para interacción con banderas ---- */
/* Mostrar/ocultar caja de logos por estado activo */
#mining-map .logos-box { display: none; position: relative; padding-top: 48px; }
#mining-map .logos-box[data-active="true"] { display: grid; }

/* Botón de cierre (X) dentro del cuadro de logos */
#mining-map .logos-close {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgb(190, 14, 14);
  color: #fff;
  border: none;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  transition: transform .2s ease, background .2s ease, opacity .2s ease;
  opacity: 0;
  z-index: 5;
}
#mining-map .logos-box[data-active="true"] .logos-close { opacity: 1; }
#mining-map .logos-close:hover { transform: scale(1.05); background: #ff6b6d; }

/* Asegurar transición de los logos */
#mining-map .logo-item { transition: transform .25s ease, opacity .25s ease; }
#mining-map .logo-item.appear { opacity: 1 !important; transform: scale(1) !important; }

