:root {
  --card-img-height: 200px;
}
/* *{
  border: 2px dotted red;
} */
body {
  font-family: "Poppins", sans-serif;
  color: #0c0c0c;
  box-sizing: border-box;
  /* background-color: #F0F0F4; */
  /* background-image: url(../images/background.svg); */
}

.layout_padding {
  padding: 75px 0;
}

.layout_padding2 {
  padding: 45px 0;
}

.layout_padding2-top {
  padding-top: 45px;
}

.layout_padding2-bottom {
  padding-bottom: 45px;
}

.layout_padding-top {
  padding-top: 75px;
}

.layout_padding-bottom {
  padding-bottom: 75px;
}

.custom_heading-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  text-align: center;
}

.custom_heading-container h2 {
  font-weight: bold;
  border-bottom: 1px solid #0200D0;
  padding-bottom: 5px;
  color: #0200D0;
  font-size: 40px;
  margin: auto;
}

/*header section*/
.hero_area {
  height: 75vh;
  background: -webkit-gradient(linear, left top, right top, from(#0200d0), to(#3d3ad2));
  background: linear-gradient(to right, #0200d0, #3d3ad2);
  background: #0200D0;
}

.hero_area::before {
  content: "";
  position: absolute;
  width: 58%;
  height: 66%;
  background-image: url(../images/hero-bg.png);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  top: 25px;
  right: 25px;
}

.sub_page .hero_area {
  height: auto;
}

.sub_page .hero_area::before {
  display: none;
}

.hero_area.sub_pages {
  height: auto;
}

.header_section {
  padding-top: 15px;
  padding-left: 20px;
}

.header_section .container-fluid {
  padding-right: 10px;
  padding-left: 10px;
}

.header_section .nav_container {
  margin: 0 auto;
}

.header_section .nav-item img {
  width: 40px;
}

.custom_nav-container.navbar-expand-lg .navbar-nav .nav-item .nav-link {
  padding: 10px 20px;
  color: #a8a9b4;
  text-align: center;
  text-transform: uppercase;
}

.custom_nav-container .dropdown-menu {
  text-align: center;
  margin: 0 auto;
  max-width: 3000px;
}

.custom_nav-container.navbar-expand-lg .navbar-nav .nav-item.active .nav-link {
  color: #f9fcfb;
} 

.custom_nav-container.navbar-expand-lg .navbar-nav .nav-item .nav-link:hover {
  color: #f9fcfb;
}

.navbar-username {
  color: #0200D0; /* Azul corporativo */
  font-weight: bold;
}

.sticky {
  display: flex;
  justify-content: flex-end;
}
li:last-child {
 margin-left: auto;
 color: #000000;
}

/* Center navbar items and avoid pushing the last item to the far right */
.custom_nav-container .navbar-nav {
  width: 100%;
  justify-content: center;
}
.custom_nav-container .navbar-nav li:last-child {
  margin-left: 0; /* override the global last-child rule inside the navbar */
}

a,
a:hover,
a:focus {
  text-decoration: none;
}

a:hover,
a:focus {
  color: initial;
}

.btn,
.btn:focus {
  outline: none !important;
  -webkit-box-shadow: none;
  box-shadow: none;
}

.navbar-brand,
.navbar-brand:hover {
  font-weight: bold;
  font-size: 24px;
  color: #fafcfd;
}

.custom_nav-container .nav_search-btn {
  background-image: url(../images/search-icon.png);
  background-size: 22px;
  background-repeat: no-repeat;
  background-position-y: 7px;
  width: 35px;
  height: 35px;
  padding: 0;
  border: none;
}

.navbar-brand {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.navbar-brand span {
  font-size: 40px;
  font-weight: 700;
  color: #f9fcfb;
  margin-left: 15px;
  /* text-transform: uppercase; */
}

@media (max-width: 750px) {
  .navbar-brand span {   
    font-size: 30px;
    padding: 0px;
  }
}

.custom_nav-container {
  z-index: 99999;
  padding: 5px 0;
}

.custom_nav-container .navbar-toggler {
  outline: none;
}

.custom_nav-container .navbar-toggler .navbar-toggler-icon {
  background-image: url(../images/menu.png);
  background-size: 40px;
}

.header_section social-box {
  align-items: flex-end;
}

/*end header section*/
/* slider section */
.slider_section {
  color: #ffffff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  height: 90%;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.slider_section .row {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.slider_section #carouselExampleIndicators {
  position: unset;
}

.slider_section .carousel_btn-container {
  width: 110px;
  position: absolute;
  bottom: 20;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  left: 2%;
  z-index: 999;
}

.slider_section .carousel_btn-container .carousel-control-prev,
.slider_section .carousel_btn-container .carousel-control-next {
  position: relative;
  width: 50px;
  height: 50px;
  border: none;
  border-radius: 100%;
  opacity: 1;
  background-repeat: no-repeat;
  background-size: 14px;
  background-position: center;
  background-color: #9596f1;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.slider_section .carousel_btn-container .carousel-control-prev:hover,
.slider_section .carousel_btn-container .carousel-control-next:hover {
  background-color: #595077;
}

.slider_section .carousel_btn-container .carousel-control-prev {
  background-image: url(../images/prev.png);
}

.slider_section .carousel_btn-container .carousel-control-next {
  background-image: url(../images/next.png);
}

.slider_section ol.carousel-indicators {
  margin: 0;
  width: 75px;
  bottom: 10%;
  left: 47.5%;
}

.slider_section ol.carousel-indicators li {
  width: 55px;
  height: 55px;
  border-radius: 100%;
  text-indent: 0px;
  text-align: center;
  line-height: 55px;
  color: #f9fcfb;
  background-color: #547bfe;
  opacity: 1;
  display: none;
}

.slider_section ol.carousel-indicators li.active {
  display: block;
}

.slider_detail-box h1 {
  font-weight: bold;
  margin-bottom: 25px;
}

.slider_detail-box .btn-box a {
  display: inline-block;
  padding: 12px 40px;
  background-color: #feb543;
  color: #f9fcfb;
  border-radius: 25px;
  -webkit-box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  -webkit-transition: all .3s;
  transition: all .3s;
  border: none;
  margin: 35px 0 50px 0;
}

.slider_detail-box .btn-box a:hover {
  -webkit-transform: translateY(-7px);
  transform: translateY(-7px);
}

.slider_img-box {
  width: 75%;
  margin: 0 auto;
}

.slider_img-box img {
  width: 100%;
}

.welcome_section {
  text-align: center;
}

.welcome_section .img-box {
  width: 65%;
  margin: 0 auto;
}

.welcome_section .img-box img {
  width: 100%;
}

.welcome_section .detail-box {
  margin-top: 45px;
}

.welcome_section .detail-box a {
  display: inline-block;
  padding: 12px 40px;
  background-color: #feb543;
  color: #f9fcfb;
  border-radius: 25px;
  -webkit-box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  -webkit-transition: all .3s;
  transition: all .3s;
  border: none;
  margin-top: 45px;
}

.welcome_section .detail-box a:hover {
  -webkit-transform: translateY(-7px);
  transform: translateY(-7px);
}

.welcome_section .feature_container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.welcome_section .feature {
  background-color: #f2f2f2;
  border: 1px solid #ccc;
  border-radius: 5px;
  flex-basis: calc(25% - 20px);
  margin-bottom: 20px;
  padding: 10px;
  text-align: center;
}

@media (max-width: 1000px) {
  .welcome_section .feature {   
    flex-basis: calc(50% - 20px);
  }
}

@media (max-width: 750px) {
  .welcome_section .feature {   
    flex-basis: calc(100% - 20px);
  }
}

.welcome_section .feature h2 {
  font-size: 32px;
  color: #0200D0;
  font-weight: bold;
  margin-bottom: 10px;
}

.welcome_section .feature p {
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 20px;
}

.welcome_section .cta {
  /* background: -webkit-gradient(linear, left top, right top, from(#0200d0), to(#3532ef));
  background: linear-gradient(to right, #0200d0, #3532ef);
  background: #0200D0;
  color: #fff;
  padding: 20px;
  text-align: center;
  margin-top: 40px; */

  background-color: #f2f2f2;
  border: 1px solid #ccc;
  border-radius: 30px;
  flex-basis: calc(25% - 20px);
  margin-bottom: 20px;
  padding: 20px;
  text-align: center;


}

.welcome_section .cta h2 {
  font-size: 32px;
  margin-bottom: 20px;
  color: #0200D0;
  font-weight: bold;
}

.welcome_section .cta p {
  font-size: 18px;
  line-height: 1.5;
  margin-bottom: 20px;
}

.welcome_section .cta button {
  background-color: #0200D0;
  color: #ffffff;
  border: none;
  border-radius: 30px;
  font-size: 18px;
  padding: 15px 30px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.welcome_section .cta button:hover {
  background-color: #1976D2;
  color: #fff;
}


.information_section {
  background-color: #f2f2f2;
  border: 1px solid #ccc;
  border-radius: 30px;
  flex-basis: calc(25% - 20px);
  margin: auto;
  padding: 20px;
  text-align: center;
}

.information_section h2 {
  font-size: 32px;
  margin-bottom: 20px;
  color: #0200D0;
  font-weight: bold;
}

.information_section p {
  font-size: 18px;
  line-height: 1.5;
  margin-bottom: 20px;
}

.information_section button {
  background-color: #0200D0;
  color: #ffffff;
  border: none;
  border-radius: 30px;
  font-size: 18px;
  padding: 15px 30px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.information_section button:hover {
  background-color: #1976D2;
  color: #fff;
}


/* download section  */
.download_section {
  color: #f9fcfb;
  background: -webkit-gradient(linear, left top, right top, from(#0200d0), to(#3532ef));
  background: linear-gradient(to right, #0200d0, #3532ef);
  background: #0200D0;
}

.download_section .custom_heading-container h2 {
  border-color: #f9fcfb;
  margin: 40px 0 55px 0;

  border-bottom: 1px solid #f2f2f2;
  padding-bottom: 5px;
  color: #f2f2f2;
}

.download_section .row .col-md-3 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: initial;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.download_section .row .col-md-3 .img-box {
  width: 200px;
  height: 100px;
  margin-right: 15px;
}

.download_section .row .col-md-3 .img-box img {
  height: 100%;
  width: 100%;
}

/* end download section  */


.service_section {
  text-align: center;
  color: #f9fcfb;
  background-image: url(../images/service-bg.png);
  background-size: 100% 100%;
  padding-top: 275px;
  padding-bottom: 125px;
  background-repeat: no-repeat;
  margin-top: -150px;
}

.service_section .custom_heading-container h2 {
  border-color: #f9fcfb;
}

.service_section .service_container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.service_section .service_container .service_box {
  width: 30%;
  min-width: 300px;
  margin: 35px 15px;
}

.service_section .service_container .service_box .img-box {
  border-radius: 18px;
  overflow: hidden;
}

.service_section .service_container .service_box .img-box img {
  width: 100%;
}

.service_section .service_container .service_box .detail-box {
  margin-top: 30px;
}

.service_section .service_container .service_box .detail-box h4 {
  font-weight: bold;
}

.service_section a {
  display: inline-block;
  padding: 12px 40px;
  background-color: #feb543;
  color: #f9fcfb;
  border-radius: 25px;
  -webkit-box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  -webkit-transition: all .3s;
  transition: all .3s;
  border: none;
}

.service_section a:hover {
  -webkit-transform: translateY(-7px);
  transform: translateY(-7px);
}

.sub_page .service_section {
  margin-top: 00px;
  margin-bottom: 150px;
}

.problem_section {
  text-align: center;
}

.problem_section .img-box {
  width: 65%;
  margin: 0 auto;
}

.problem_section .img-box img {
  width: 100%;
}

.problem_section .detail-box {
  margin-top: 45px;
}

.problem_section .detail-box a {
  display: inline-block;
  padding: 12px 40px;
  background-color: #feb543;
  color: #f9fcfb;
  border-radius: 25px;
  -webkit-box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  -webkit-transition: all .3s;
  transition: all .3s;
  border: none;
  margin-top: 45px;
}

.problem_section .detail-box a:hover {
  -webkit-transform: translateY(-7px);
  transform: translateY(-7px);
}

.why_section {
  color: #f9fcfb;
  background: -webkit-gradient(linear, left top, right top, from(#0200d0), to(#3532ef));
  background: linear-gradient(to right, #0200d0, #3532ef);
  background: #0200D0;
}

.why_section .custom_heading-container h2 {
  border-color: #f9fcfb;
}

.why_section p {
  text-align: center;
  margin: 40px 0 55px 0;
}

.why_section .row .col-md-3 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.why_section .row .col-md-3 .img-box {
  width: 45px;
  margin-right: 15px;
}

.why_section .row .col-md-3 .img-box img {
  width: 100%;
}

.client_section h2 {
  font-weight: bold;
  text-align: center;
}

.client_section .carousel-control-prev,
.client_section .carousel-control-next {
  width: 65px;
  height: 60px;
  border: none;
  opacity: 1;
  background-repeat: no-repeat;
  background-size: 14px;
  background-position: center;
  background-color: #383a90;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.client_section .carousel-control-prev:hover,
.client_section .carousel-control-next:hover {
  background-color: #feb543;
}

.client_section .carousel-control-prev {
  background-image: url(../images/prev.png);
}

.client_section .carousel-control-next {
  background-image: url(../images/next.png);
}

.client_container {
  width: 55%;
  margin: 0 auto;
}

.client_container .client_text {
  padding: 30px;
  border: 1px solid #bcbcbc;
  border-radius: 5px;
}

.client_container .detail-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-top: 30px;
}

.client_container .detail-box .img-box {
  width: 75px;
  margin-right: 15px;
  border: 10px solid #9852f2;
  border-radius: 100%;
  overflow: hidden;
}

.client_container .detail-box .img-box img {
  width: 100%;
}

.client_container .detail-box .name h5 {
  margin: 0;
}

.client_container .detail-box .name p {
  text-transform: uppercase;
  color: #0b93b1;
  margin: 0;
}

.contact_section .contact_heading, .contact_heading {
  text-align: center;
  margin-bottom: 45px;
}

.contact_section .contact_heading h2, .contact_heading h2{
  font-weight: bold;
  border-bottom: 1px solid #0200D0;
  padding-bottom: 5px;
  color: #0200D0;
}

.contact_section form .form-control {
  border: none;
  /* background-color: #f2f3f4; */
  background-color: #f2f3f4 !important;
  outline: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  border-radius: 0;
  height: 40px;
}

.contact_section form .form-control.inputTel {
  border: none;
  background-color: #f2f3f4;
  /* background-color: #2f5c89 !important; */
  outline: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  border-radius: 0;
  height: 50px;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;

}

.contact_section form .form-control#inputMessage {
  height: 120px;
}

.contact_section form select.form-control {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  position: relative;
  background-image: url(../images/down-arrow.png);
  background-repeat: no-repeat;
  background-position: 98%;
}

.contact_section button {
  background-color: #0200D0;
  color: #ffffff;
  border: none;
  border-radius: 30px;
  font-size: 18px;
  padding: 15px 30px;
  cursor: pointer;
  margin-top: 35px;
  transition: all 0.3s ease;
}

.contact_section button:hover {
  -webkit-transform: translateY(-7px);
  transform: translateY(-7px);
}

.contact_section input.invalid {
  background-color: #ffeeee;
  border: 1px solid #ff0000;
}

.contact_section select.invalid {
  background-color: #ffeeee;
  border: 1px solid #ff0000;
}

/* info section */
.footer_bg {
  background-image: url(../images/footer-bg3.png);
  background-size: cover;
  padding-top: 280px;
  margin-top: 20px;
}

.info_section {
  position: relative;
  font-family: "Poppins", sans-serif;
  border-bottom: #f50707;
}

.info_section h3 {
  /* text-transform: uppercase; */
  font-weight: bold;
  color: #f9fcfb;
  margin-bottom: 35px;
}

.info_section img {
  width: 100%;
}

.info_section ul {
  padding: 0;
}

.info_section ul li {
  list-style-type: none;
  margin: 10px 0;
}

.info_section ul li a,
.info_section ul li a:hover {
  color: #fff;
}

.info_section h5 {
  margin-bottom: 12px;
  font-size: 22px;
  color: #fff;
  padding: 1px 3px;
  border-bottom: 2px solid #F2F2F2;
}

.info_section .social-box {
  margin: 25px 0;
}

.info_section .social-box img {
  width: 35px;
  margin-right: 5px;
}

.form_container form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.info_section .form_container label {
  margin: 0;
  font-size: 18px;
  text-transform: uppercase;
  color: #fff;
}

.info_section .form_container input {
  width: 300px;
  height: 40px;
  border: none;
  outline: none;
  padding-left: 15px;
  background-color: #fff;
  margin-left: 45px;
  margin-right: 10px;
}

.info_section .form_container button {
  display: inline-block;
  padding: 8px 50px;
  background-color: #fd3f05;
  color: #f9fcfb;
  border-radius: 5px;
  -webkit-box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  box-shadow: 0px 2px 7px 0px rgba(32, 50, 117, 0.26);
  -webkit-transition: all .3s;
  transition: all .3s;
  border: none;
  border: none;
  text-transform: uppercase;
}

.info_section .form_container button:hover {
  -webkit-transform: translateY(-7px);
  transform: translateY(-7px);
}

.info_section .form_container button:hover {
  -webkit-transform: none;
  transform: none;
}

/* end info section */

/* footer section*/
.footer_section {
  font-weight: 500;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.footer_section p {
  color: #f9fcfb;
  margin: 0;
  text-align: center;
  padding: 20px 15%;
  border-top: 1px solid #f9fcfb;
}

.footer_section a {
  color: #f9fcfb;
}

.image-preview-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 180px;
  cursor: pointer;
}

.image-preview-container img {
  max-height: 100%;
  max-width: 100%;
  background-color: #c7c7c7;
}

#loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: black transparent black transparent;
  border-color: black transparent black transparent;
  z-index: 9999;
  display: none;
  justify-content: center;
  align-items: center;
}

#loading img {
  width: 60px;
  /* height: 20px; */
}

:root {
  --bg-body: #1a83c0;
  --bg-cont: #1a6a99;
  --bg-active: #F0F0F4;
}

.contact_section .tab-container {
  max-width: 1000px;
  /*  height: 400px; */
  margin: 0 auto;
  padding: 20px; 
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  /*  justify-content: space-between; */
  box-shadow: 3px 5px 10px rgba(0, 0, 0, .8);
  border-radius: 5px;
  overflow: hidden;
}

.contact_section .tab-container .title-center {
  text-align: center;
}

.contact_section .tab-container .title-center h2 {
  font-size: 24px;
  font-weight: bold;
  border-bottom: 1px solid #0200D0;
  padding-bottom: 5px;
  color: #0200D0;
}

.contact_section .options {
  margin: 10px;
  padding: 10px;
  display: flex;
  width: 100%;
  height: 15%;
  list-style: none;
}

.contact_section .option {
  flex-grow: 1;
  text-align: center;
  line-height: 60px;
  border: solid 0.5px rgba(0, 0, 0, .8);
  color: #020202;
  cursor: pointer;
}

.contact_section .option-active {
  background: var(--bg-active);
  border-bottom: 1px solid rgba(7, 63 95, .4);
}

@media (max-width: 768px) {
  .text-option {
    display: none;
  }
  
  .icon-option {
    display: block;
    font-size: 24px; /* Ajusta el tamaño de los iconos aquí */
  }

  .availability-table td {
    font-size: small !important;
    padding: 2px;
  }
  .availability-table th {
    font-size: small !important;
    padding: 2px;
  }
  .contact_section .tab-container {
    font-size: small !important;
  }
}

@media (min-width: 769px) {
  .icon-option {
    display: none;
  }
}


.contact_section .contents {
  width: 100%;
  height: 85%;
}

.contact_section .content {
  width: 100%;
  height: 100%;
  color: #020202;
  display: none;
  padding: 20px;
}

.contact_section .content-active {
  /* background: var(--bg-active); */
  display: block;
}

.contact_section .content h3 {
  text-align: center;
  padding-bottom: 10px;
  border-bottom: 1px solid #F2F2F2;
  /*   border-bottom: solid 1px rgba(255, 255, 255, .3); */
  letter-spacing: 2px;
  margin: 10px;
}

.contact_section .content p {
  margin: 15px;
  letter-spacing: 1px;
  text-align: justify;
}

.clickable {
  cursor: pointer;
}

tr.active, tr.active:hover, th.active, th.active:hover {
  color: green !important;
}

tr.pending, tr.pending:hover, th.pending, th.pending:hover {
  color: orange !important;
}

tr.inactive, tr.inactive:hover, th.inactive, th.inactive:hover {
  color: gray !important;
}

tr.blocked, tr.blocked:hover, th.blocked, th.blocked:hover {
  color: red !important;
}

.status-indicator {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 5px;
  border-radius: 50%;
}
.legend-table {
  font-size: small;
}

td span.active {
  background-color: green;
}

td span.pending {
  background-color: orange;
}

td span.inactive {
  background-color: gray;
}

td span.blocked {
  background-color: red;
}

th, td {
  text-align: center;
}

.td-photo {
  width: 70px !important;
}

.selected-cell {
  background-color: yellow;
}

#calendar {
  max-width: 800px;
  margin: 0 auto;
  min-height: 500px;
}

#calendar h1,#calendar h2{
  font-size: medium;
}

#calendar button{
  font-size: smaller;
}

#selectServicios {
  border: 1px solid #ced4da;
  margin-bottom: 10px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

fieldset {
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 10px;
    margin: 10px 0;
}

legend {
    font-weight: bold;
    padding: 5px;
    border-radius: 5px;
    font-size: smaller;
    width: auto;
    margin-bottom: 0;
}

.fc-non-business {
  background-color: rgba(32, 50, 117, 0.26) !important;
}

.availability-table
{
    /* width: 1px; */
    font-size: medium;
    margin-left:auto;
    margin-right:auto;
    border: none;
    min-width: 400px;
}

/* .availability-table thead th:first-child {
    pointer-events: none;
    background: white;
    border: none;
} */

.availability-table td {
  font-size: medium;
  vertical-align: middle;
}

.availability-table th
{
  text-align: center;
  background-color: #0200D0;
  color: #FFF;
}

/*
 * Custom checkbox CSS, below are three color classes, day, working-hours, and night
 */
.availability-checkbox {
  min-height: 1rem;
  padding-left: 0;
  margin-right: 0;
  cursor: pointer; 
}

.availability-checkbox .custom-control-indicator {
  content: "";
  display: inline-block;
  position: relative;
  width: 30px;
  height: 10px;
  background-color: #818181;
  border-radius: 15px;
  margin-right: 10px;
  -webkit-transition: background .3s ease;
  transition: background .3s ease;
  vertical-align: middle;
  box-shadow: none; 
}

.availability-checkbox .custom-control-indicator:after {
  content: "";
  position: absolute;
  display: inline-block;
  width: 18px;
  height: 18px;
  background-color: #f1f1f1;
  border-radius: 21px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
  left: -2px;
  top: -4px;
  -webkit-transition: left .3s ease, background .3s ease, box-shadow .1s ease;
  -moz-transition: left .3s ease, background .3s ease, box-shadow .1s ease;
  -o-transition: left .3s ease, background .3s ease, box-shadow .1s ease;
  transition: left .3s ease, background .3s ease, box-shadow .1s ease; 
}

.availability-checkbox .custom-control-input:focus ~ .custom-control-indicator {
    box-shadow: none !important; 
}

/*
 * Day color codes
 */
.checkbox-day .custom-control-input:checked ~ .custom-control-indicator {
  /* background-color: #5cb85c; */
  background-color: #428bca;
  background-image: none;
  box-shadow: none !important; 
}
.checkbox-day .custom-control-input:checked ~ .custom-control-indicator:after {
  background-color: #f1f1f1;
  left: 15px; 
}

/*
 * working-hours color codes
 */
.checkbox-working-hours .custom-control-input:checked ~ .custom-control-indicator {
  background-color: #f0ad4e;
  background-image: none;
  box-shadow: none !important; 
}

.checkbox-working-hours .custom-control-input:checked ~ .custom-control-indicator:after {
  background-color: #f0ad4e;
  left: 15px; 
}

/*
 * Night color codes
 */
.checkbox-night .custom-control-input:checked ~ .custom-control-indicator {
  background-color: #428bca;
  background-image: none;
  box-shadow: none !important; 
}
.checkbox-night .custom-control-input:checked ~ .custom-control-indicator:after {
  background-color: #f1f1f1;
  left: 15px; 
}

.availability-table .time-input {
  font-size: smaller;
}

.availability-table .time-input[disabled]{
  text-decoration: line-through;
}

.availability-table .workday, .availability-table .appointments {
  background-color: #FFF;
}

.availability-table .no-workday, .availability-table .no-appointments {
  background-color: #a4a2a2;
}

.table-container {
  max-height: 900px; /* Establece la altura máxima según sea necesario */
  overflow-y: auto; /* Activa el desbordamiento vertical */
}

button#searchReport  {
  padding: 15px;
  margin: auto;
  border-radius: 0%;
  width: 100%;
  margin-top: 5px;
}

option {
font-size: large;
}

.grid-container {
  display: grid;
  text-align: left;
  grid-template-columns: 2fr 0.5fr 12fr; /* Esto crea 3 columnas. */
  /*gap: 8px; /* Espacio entre componentes. */
}

.grid-container-unable {
  display: grid;
  text-align: left;
  background-color: #f2f2f2;
  grid-template-columns: 2fr 0.5fr 12fr; /* Esto crea 3 columnas */
  /*gap: 8px; /* Espacio entre componentes. */
}

.component-grid {
  margin-left: 5px; /* Espacio entre componentes. */
  vertical-align: middle;
  /*border: 1px solid black; /* Solo para visualizarlo. */
}

.complete-component-grid {
  font-size: small;
  margin-left: 5px; /* Espacio entre componentes. */
  vertical-align: middle;
  align-items: left;
  /*border: 1px solid black; /* Solo para visualizarlo. */
}

.complete-component-grid.name {
  font-weight: bold;
  /*border: 1px solid black; /* Solo para visualizarlo. */
}

.complete-component-grid.service {
  font-style: italic;
  /*border: 1px solid black; /* Solo para visualizarlo. */
}

.provider-clickable{
  text-align: left;
}

.provider-clickable .grid-container {
  display: grid;
  text-align: left;
  grid-template-columns: 2fr 12fr; /* Esto crea 2 columnas. */
  /*gap: 8px; /* Espacio entre componentes. */
}

.whatsapp-button {
  position: fixed;    /* Esto hace que el botón sea flotante y no se mueva con el desplazamiento. */
  bottom: 30px;       /* 10px desde el borde inferior de la ventana. */
  right: 30px;        /* 10px desde el borde derecho de la ventana. */
  z-index: 1000;      /* Esto asegura que el botón esté por encima de otros elementos. */
  
  /* Las siguientes propiedades son estéticas y puedes ajustarlas a tu gusto: */
  border: none;
  outline: none;
  cursor: pointer;
  padding: 1px;
  border-radius: 50%; /* Esto hace que el botón sea circular. */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); /* Agrega una sombra al botón. */
}

.whatsapp-button img {
  width: 60px;        /* Define el ancho del icono. */
  height: 60px;       /* Define el alto del icono. */
}

.appointment-item {
  font-size: smaller;
}

.appointment-item.BLOCKED {
  background-color: #f3efef;
  color: #a94442;
}

.appointment-item.BUSY {
  background-color: #e0e0e0;
  color: #757575;
}

.appointment-item.ASSIGNED {
  background-color: #fcf8e3;
  color: #8a6d3b;
}

.appointment-item.CONFIRMED {
  background-color: #dff0d8;
  color: #3c763d;
}

.appointment-item.MISSED {
  background-color: #f2dede;
  color: #a94442;
}

.appointment-item.FINISHED {
  background-color: #d9edf7;
  color: #31708f;
}

table {
  border-collapse: collapse;
  width: calc(100% - 100px); /* Reducir el ancho de la tabla para compensar el espacio ocupado por la columna estática */
  overflow: auto; /* Permitir desplazamiento horizontal y vertical */
}

th, td {
  border: 1px solid #ccc;
  padding: 8px;
  text-align: center;
}

th {
  background-color: #f2f2f2;
}

td {
  height: 40px;
}

.sticky-header {
  position: sticky;
  top: 0;
  background-color: #f2f2f2 !important; /* Fondo del encabezado fijo */
  z-index: 1; /* Asegurar que la fila de días esté por encima del contenido */
  width: 200px; /* Ancho fijo para la primera columna */
}

.sticky-header th {
  width: 300px; /* Ancho fijo para todas las celdas de la fila de días de la semana */
}

.form-flex-container {
    display: flex;
    align-items: center;
}

.rounded-pill {
    border-radius: 20px;
    padding: 8px 16px;
    font-size: 14px;
    border: 1px solid #ccc;
}

.table-container {
  max-width: 100%; 
  overflow-x: auto; 
}

.sticky-column {
  position: sticky;
  top: 0;
  background-color: white !important;
  z-index: 1; 
  left: 0;
  z-index: 1;
}

.sticky-column:hover {
  background-color: white;
}

.profesional-clickable {
  position: sticky;
  top: 0;
  background-color: white !important;
  z-index: 1; 
  font-size: 16px;
  color: #0200d0;
}

.profesional-clickable:hover {
  box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
  background-color: #f0f0f0;
}

.fixed-cell {
  width: 130px;
  height: 80px;
  overflow: auto;
}

.tablePersonal {
  margin-top: 100px;
}

.modal-dialog button{
  font-size: x-small;
}

.page_break {
  page-break-before: always;
}

@keyframes pulse-highlight {
  0% { box-shadow: 0 0 0 0 rgba(2, 0, 208, 0.7); }
  70% { box-shadow: 0 0 15px 10px rgba(2, 0, 208, 0); }
  100% { box-shadow: 0 0 0 0 rgba(2, 0, 208, 0); }
}

#searchReport.pulse {
  animation: pulse-highlight 1s ease-in-out;
}
td img[src$="user-photo.png"] {
  background-color: #c7c7c7;
  padding: 2px;
  border-radius: 50%;
}
.card-img-top {
  width: 100%;
  height: var(--card-img-height);
  object-fit: cover;
}

.hover-shadow{ transition: box-shadow .2s ease, transform .2s ease; }
.hover-shadow:hover{ box-shadow: 0 0.5rem 1rem rgba(0,0,0,.15); transform: translateY(-2px); }

@keyframes glow {
  0% { box-shadow: 0 0 5px 2px yellow; }
  50% { box-shadow: 0 0 15px 5px gold; }
  100% { box-shadow: 0 0 5px 2px yellow; }
}

.highlight-slot {
  animation: glow 2s ease-in-out;
}

@keyframes glow-assigned {
  0%   { box-shadow: 0 0 10px 3px #fcf8e3, 0 0 20px 6px #ecd668; }
  50%  { box-shadow: 0 0 25px 8px #fcf8e3, 0 0 40px 12px #8b7e38; }
  100% { box-shadow: 0 0 10px 3px #fcf8e3, 0 0 20px 6px #ecd668; }
}

@keyframes glow-confirmed {
  0%   { box-shadow: 0 0 10px 3px #dff0d8, 0 0 20px 6px #dff0d8; }
  50%  { box-shadow: 0 0 25px 8px #3c763d, 0 0 40px 12px #3c763d; }
  100% { box-shadow: 0 0 10px 3px #dff0d8, 0 0 20px 6px #dff0d8; }
}

@keyframes glow-missed {
  0%   { box-shadow: 0 0 10px 3px #f2dede, 0 0 20px 6px #f2dede; }
  50%  { box-shadow: 0 0 25px 8px #a94442, 0 0 40px 12px #a94442; }
  100% { box-shadow: 0 0 10px 3px #f2dede, 0 0 20px 6px #f2dede; }
}

@keyframes glow-finished {
  0%   { box-shadow: 0 0 10px 3px #d9edf7, 0 0 20px 6px #d9edf7; }
  50%  { box-shadow: 0 0 25px 8px #31708f, 0 0 40px 12px #31708f; }
  100% { box-shadow: 0 0 10px 3px #d9edf7, 0 0 20px 6px #d9edf7; }
}

/* Vincular la animación al estado + highlight */
.appointment-item.ASSIGNED.highlight-slot {
  animation: glow-assigned 1.5s ease-in-out infinite;
}
.appointment-item.CONFIRMED.highlight-slot {
  animation: glow-confirmed 1.5s ease-in-out infinite;
}
.appointment-item.MISSED.highlight-slot {
  animation: glow-missed 1.5s ease-in-out infinite;
}
.appointment-item.FINISHED.highlight-slot {
  animation: glow-finished 1.5s ease-in-out infinite;
}
/* Reports: make tables fully responsive and avoid overflow on mobile */
#contentReports table { width: 100% !important; }
#contentReports .table-responsive { overflow-x: auto; }
@media (max-width: 576px) {
  #contentReports .card .row > [class^="col-"] { margin-bottom: 8px; }
  #contentReports .btn { width: 100%; }
}

/* ===== Sticky columns for Reports (Occupancy & Payment) ===== */
/* Ensure the scroll container exists */
#contentReports .table-responsive { position: relative; }

/* OCCUPANCY: make columns # and Profesional sticky */
#tblOccupancy thead th,
#tblOccupancy tbody td { background: #fff; } /* avoid zebra bleed under sticky */

/* Fixed widths so left offsets are reliable */
#tblOccupancy thead th:nth-child(1),
#tblOccupancy tbody td:nth-child(1) { min-width: 56px; width: 56px; }
#tblOccupancy thead th:nth-child(2),
#tblOccupancy tbody td:nth-child(2) { min-width: 200px; }

#tblOccupancy thead th:nth-child(1),
#tblOccupancy tbody td:nth-child(1) { position: sticky; left: 0; z-index: 2; }
#tblOccupancy thead th:nth-child(2),
#tblOccupancy tbody td:nth-child(2) { position: sticky; left: 56px; z-index: 2; text-align: left; }

/* PAYMENT: columns #, Foto, and Profesional sticky so that Profesional stays visible */
#tblPayment thead th,
#tblPayment tbody td { background: #fff; }

/* Fixed widths */
#tblPayment thead th:nth-child(1),
#tblPayment tbody td:nth-child(1) { min-width: 56px; width: 56px; }
#tblPayment thead th:nth-child(2),
#tblPayment tbody td:nth-child(2) { min-width: 64px; width: 64px; }
#tblPayment thead th:nth-child(3),
#tblPayment tbody td:nth-child(3) { min-width: 220px; }

#tblPayment thead th:nth-child(1),
#tblPayment tbody td:nth-child(1) { position: sticky; left: 0; z-index: 2; }
#tblPayment thead th:nth-child(2),
#tblPayment tbody td:nth-child(2) { position: sticky; left: 56px; z-index: 2; }
#tblPayment thead th:nth-child(3),
#tblPayment tbody td:nth-child(3) { position: sticky; left: 120px; z-index: 2; text-align: left; }

/* Small shadow to separate sticky columns visually when scrolling */
#tblOccupancy tbody td:nth-child(2),
#tblPayment tbody td:nth-child(3) {
  box-shadow: 2px 0 0 rgba(0,0,0,.06);
}

@media (max-width: 576px) {
  /* Keep sticky behavior on mobile stacked layout only when in table mode */
  #tblOccupancy tbody tr,
  #tblPayment tbody tr { box-shadow: none; }
}

/* ===== Invoice: compact tables ===== */
#invoice .table.table-sm th,
#invoice .table.table-sm td { padding: .25rem .5rem; font-size: .9rem; }
#invoice .table tbody tr { height: 34px; }
#invoice h5 { margin-top: 1rem !important; margin-bottom: .5rem !important; }
#invoice p.text-muted.small { margin-bottom: .5rem; }
/* Numeric alignment */
#invoice #tableFactura th:nth-child(3),
#invoice #tableFactura td:nth-child(3),
#invoice #tableFactura th:nth-child(4),
#invoice #tableFactura td:nth-child(4) { text-align: right; }
#invoice #tableAppointments th:nth-child(4),
#invoice #tableAppointments td:nth-child(4) { text-align: right; }
/* Prevent date wrapping to keep rows short */
#invoice #tableAppointments td:nth-child(1) { white-space: nowrap; }
/* Slightly tighter on small screens */
@media (max-width: 576px) {
  #invoice .table.table-sm th,
  #invoice .table.table-sm td { padding: .20rem .4rem; font-size: .85rem; }
}
