:root {
  --blue-main: #005782;
  --blue-secondary: #0095C8;
  --yellow-primary: #C4B200;
}

.text-blue-main {
  color: var(--blue-main);
}

.text-blue-secondary {
  color: var(--blue-secondary) !important;
}

.text-yellow-primary {
  color: var(--yellow-primary) !important;
}

.nav-tabs > li > a {
  font-size: 1.1rem !important;
}

.btn.text-blue-primary.btn-white-text {
  background-color: var(--blue-main) !important;
  color: white !important;
  font-weight: bold;
  padding: 1rem 2rem;
  text-decoration: none;
  display: inline-block;
  margin: 0 10px; /* espacio entre botones */
}

.btn.text-blue-secondary.btn-white-text {
  background-color: var(--blue-secondary) !important;
  color: white !important;
  font-weight: bold;
  padding: 1rem 2rem;
  text-decoration: none;
  display: inline-block;
  margin: 0 10px; /* espacio entre botones */
}

.form-button-send{
  background-color: var(--yellow-primary) !important;
  color: white;
  padding: 0.75rem 2rem;
  border-radius: 0.5rem !important;
}

.gsc-tabs .tabs_wrapper.tabs_vertical .tab-content .tab-pane {
  min-height: 100%;
}

#microorganismos {
  scroll-margin-top: 4rem;
}

form .form-item label{
  text-transform: none !important;
}
.form-contact-us{
  background-color:#f2f2f2;
  padding: 1rem;
  border-radius: 0.5rem;
}
.form-rounded{
  border-radius: 0.5rem;
}
.text-standard {
  text-align: justify;
}

.text-size-medium {
  font-size: 1.2rem !important;
}

.text-size-large {
  font-size: 1.5rem !important;
}

.ul-clean {
  margin-top: 0.5rem !important;
  margin-bottom: 1rem !important;
  padding-left: 2rem !important;
}

.btn-list-indent {
  margin-left: 1.5rem;
  margin-top: 0.4rem;
  margin-bottom: 0.8rem;
}

.login-columns-row .row-wrapper {
  column-gap: 3rem;
}

.product-background {
  background-color:#FAFAF9 !important;
}

.banner-primary {
  background-color: #57b0ad;
  padding: 2rem;
  text-align: center;
  border-radius: 1rem;
}
.btn-yellow {
  display: inline-block;
  background-color: var(--yellow-primary) !important;
  color: white !important;
  padding: 0.75rem 2rem;
  text-decoration: none;
  font-size: 0.875rem;
  border-radius: 0.5rem;
  font-weight: 500;
}
.banner-highlight {
  background-color: var(--blue-main) !important;
  color: white !important;
  padding: 0.6rem !important;
  font-weight: bold !important;
}

.banner-highlight-secondary {
  background-color: var(--blue-secondary) !important;
  color: white !important;
  padding: 0.6rem !important;
  font-weight: bold !important;
}

.post-block .post-image img{
  width: auto !important;
}

.full-width-image{
  width: 100% !important;
}
.flex-icons-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  padding: 2rem 0;
}

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

.icon-img {
  width: 250px;
  height: auto;
  border-radius: 0.5rem; /* si quieres efecto redondeado también en las imágenes */
}

.topbar {
  min-height: 2rem;
  padding: 0.4rem 0 !important;
}

.topbar .topbar-content-inner .topbar-content a {
  color: #fff !important;
}

.block-content .text-white {
  color: #fff !important;
}

.title-box {
  margin-bottom: 0px;
}

.header-title {
  display: none;
}

.title-box .title,
.header-title .title {
  border-bottom: 1px solid #e1e1e1;
  position: relative;
  color: #005782;
  font-weight: bold;
  font-size: 24px;
  margin: 0 0 12px 0 !important;
  padding: 30px 0;
  letter-spacing: normal !important;
  line-height: 1.2;
}

.title-box .title:before,
.header-title .title:before {
  background: #1e1e1e;
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  margin: 0 0 -1px;
  position: absolute;
  width: 40px;
}

.main-menu .gva-offcanvas-mobile {
  float: none !important;
}

header .site-branding-logo {
  padding: 10px 0 0 !important;
}

header.header-default .header-main-inner .header-inner {
  padding-left: 210px !important;
  margin-top: 0.2rem !important;
}

header.header-default .header-main-inner .header-inner .menu-item a {
  color: #1e1e1e !important;
  font-weight: 400 !important;
  font-size: 14px;
}

header.header-default .header-main-inner .header-inner .menu-item a .fa-chevron-down {
  display: none;
}

.block-dropdown-language {
  max-width: 6.5rem;
}

.block-dropdown-language .dropbutton-wrapper ul.dropbutton {
  left: 0;
}

.block-dropdown-language .dropbutton-wrapper.open {
  background: transparent;
  padding-top: 0;
}

.block-dropdown-language .dropbutton-wrapper.open ul.dropbutton>li>a {
  color: #000 !important;
  text-decoration: none !important;
  text-align: left;
}

.block-dropdown-language ::after {
  color: #fff !important;
}

#footer .footer-center {
  padding: 40px 0 40px 0 !important;
  font-size: 0.7rem !important;
}

/* Ocultar menús de navegación del footer */
#footer .footer-center .menu li {
  display: none !important;
}

/* Mostrar solo el ítem Talonarios */
#footer .footer-center .menu li:has(a[href*="talonarios"]) {
  display: block !important;
  padding: 0.1rem 0 !important;
}

#footer .footer-center .menu li a {
  font-size: 0.75rem !important;
  line-height: 1;
}

#footer .copyright {
  font-size: 0.65rem !important;
  border-top: 1px solid #e1e1e1 !important;
}

#footer .copyright .copyright-inner {
  padding: 0.9rem 0 !important;
}

#footer .copyright .copyright-inner p {
  margin-bottom: 0;
}

@media (max-width: 991.98px) {
  #footer .footer-second {
    margin-bottom: 0 !important;
  }
}

.gbb-row .bb-inner {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

.socials {
  display: flex !important;
  column-gap: 1rem;
}

.socials a i,
.socials a.icon-image {
  width: 2.2rem !important;
  height: 2.2rem !important;
  border-radius: 20% !important;
  -webkit-border-radius: 20% !important;
  -moz-border-radius: 20% !important;
  -ms-border-radius: 20% !important;
  -o-border-radius: 20% !important;
}

.socials a i {
  line-height: 2.2rem !important;
  font-size: 19px !important;
}

.socials a.icon-image {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}


element.style {
  top: 50%;
  transform: matrix(1, 0, 0, 1, -56, -18);
  left: 100%;
  /* visibility: hidden; */
  opacity: 1;
}

body .gavias_sliderlayer .tparrows {
  background: #005682 !important;
  border-radius: 20% !important;
  -webkit-border-radius: 20% !important;
  -moz-border-radius: 20% !important;
  -ms-border-radius: 20% !important;
  -o-border-radius: 20% !important;
}

body .gavias_sliderlayer .tparrows:before {
  color: white !important;
}

.video-box {
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
  height: 0;
  margin-bottom: 22px;
  overflow: hidden;
  padding-bottom: 56.25%;
  position: relative;
}

.video-box iframe {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.video-box video {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.post-style-grid.post-slideset .owl-stage {
  display: flex !important;

}

.post-style-grid.post-slideset .owl-item {
  border: 1px solid #dee2e6 !important;
}

.post-style-grid.post-slideset .owl-item:hover {
  -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, .13);
  -moz-box-shadow: inset 0 0 10px rgba(0, 0, 0, .13);
  box-shadow: inset 0 0 10px rgba(0, 0, 0, .13);
  -webkit-transition: color .2s linear, box-shadow .2s linear;
  transition: color .2s linear, box-shadow .2s linear;
}

.post-style-grid.post-slideset .owl-item .item {
  padding: 19px 15px !important;
}

.post-style-grid.post-slideset .post-title {
  line-height: 1;
  text-align: center;
  padding-top: 0.8rem;
}

.post-style-grid.post-slideset .post-title a {
  color: #2b4c6f !important;
  font-size: 20px;
  font-weight: normal;
}

.post-style-grid.post-slideset .post-image {
  text-align: center;
}

.section-title h2 {
  font-size: 2rem !important;
  color: #1d344b !important;
  letter-spacing: 0.04rem !important;
}

/*EMPIEZA EL CARROUSEL*/
.owl-dot span {
  display: none !important;
}

.instalaciones-slider .item img {
  width: 100%;
  height: 10rem;
  object-fit: cover;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}
.instalaciones-slider .item img:hover {
  transform: scale(1.03);
}
.instalaciones-slider {
  position: relative;
}
.instalaciones-slider .item {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 5px;
}

.instalaciones-slider {
  position: relative;
}

.owl-theme .owl-nav [class*=owl-] {
  background:  var(--blue-main) !important;
  border-radius: 0.3rem !important;
  top: 30% !important;
  right: 0.2rem !important;
}

.owl-theme .owl-nav [class*=owl-]:hover {
background:  var(--blue-secondary) !important;
}

/*TERMINA EL CARROUSEL*/

.checkbox-consent {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
}

.checkbox-consent input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--blue-main);
  cursor: pointer;
}

.checkbox-consent label {
  font-size: 1rem;
  line-height: 1.4;
  color: #333;
  cursor: pointer;
}

.info-text-legal {
  font-size: 0.75rem;
  font-style: italic;
  line-height: 1.4;
  margin-top: 8px;
  color: darkgray;
}

.info-text-legal a {
  color: var(--blue-secondary);
  text-decoration: underline;
}

.image-caption {
  color: #878785;
}

.border-left-yellow {
  border-left: 8px solid var(--yellow-primary); /* usa tu variable */
}

.references-block {
  margin-top: 2rem;
}

.references-block .separator {
  border: none;
  border-top: 1px solid #ccc;
  margin-bottom: 1rem;
}

.text-light-grey {
  color: lightgray;
  font-size: 0.9rem;
  text-align: justify;
  line-height: 1.5;
}

/* Estilos para overlay de videos bloqueados (YouTube y Vimeo) */
.video-blocked-overlay {
  position: relative;
  background: #f8f9fa;
  border: 2px solid #dee2e6;
  border-radius: 8px;
  padding: 40px 20px;
  text-align: center;
  min-height: 315px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.blocked-message {
  max-width: 400px;
}

.blocked-message h3 {
  color: #495057;
  margin-bottom: 15px;
  font-size: 1.2em;
}

.blocked-message p {
  color: #6c757d;
  margin-bottom: 20px;
  line-height: 1.5;
}

.accept-cookies-btn {
  background: #007bff;
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 14px;
  transition: background-color 0.3s;
}

.accept-cookies-btn:hover {
  background: #0056b3;
}

/* Estilos para formulario de login personalizado */
#custom-login-form {
  background: #f2f2f2;
  padding: 1rem;
  border-radius: 8px;
  width: 100%;
}

#custom-login-form .form-item {
  margin-bottom: 1.5rem;
}

#custom-login-form label {
  display: block;
  font-weight: 700;
  color: #000;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
}

#custom-login-form input[type="email"],
#custom-login-form input[type="password"],
#custom-login-form input[type="text"] {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  font-size: 1rem;
  background: #fff;
  box-sizing: border-box;
}

#custom-login-form input[type="email"]:focus,
#custom-login-form input[type="password"]:focus,
#custom-login-form input[type="text"]:focus {
  outline: none;
  border-color: var(--blue-main);
  box-shadow: 0 0 0 2px rgba(0, 87, 130, 0.1);
}

#custom-login-form button[type="submit"],
#custom-login-form .btn-yellow {
  background-color: var(--yellow-primary);
  color: white;
  border: none;
  padding: 0.75rem 2rem;
  border-radius: 4px;
  font-weight: 700;
  cursor: pointer;
  font-size: 1rem;
  width: 100%;
  margin-bottom: 1rem;
}

#custom-login-form button[type="submit"]:hover,
#custom-login-form .btn-yellow:hover {
  background-color: #a89900;
}

#custom-login-form a {
  color: var(--yellow-primary);
  text-decoration: none;
  font-size: 0.85rem;
  display: block;
  text-align: center;
}

#custom-login-form a:hover {
  text-decoration: underline;
}

/* Estilos para formularios de Drupal nativos */
.user-login-form .form-item {
  margin-bottom: 1.5rem;
}

.user-login-form label {
  display: block;
  font-weight: 700;
  color: #495057;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
}

.user-login-form input[type="email"],
.user-login-form input[type="password"],
.user-login-form input[type="text"] {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  font-size: 1rem;
  background: #fff;
  box-sizing: border-box;
}

.user-login-form input:focus {
  outline: none;
  border-color: var(--blue-main);
  box-shadow: 0 0 0 2px rgba(0, 87, 130, 0.1);
}

.user-login-form button[type="submit"],
.user-login-form .form-submit {
  background-color: var(--yellow-primary);
  color: white;
  border: none;
  padding: 0.75rem 2rem;
  border-radius: 4px;
  font-weight: 700;
  cursor: pointer;
  font-size: 1rem;
  width: 100%;
  margin-bottom: 1rem;
}

.user-login-form button[type="submit"]:hover,
.user-login-form .form-submit:hover {
  background-color: #a89900;
}

/* Enlaces de menú sin href (generados con <nolink>) */
/* Ítems expandibles con enlace "no link" */
.gva_menu li.menu-item--expanded > a:not([href]),
.gva_menu li.menu-item--expanded > a[href=""],
.gva_menu li.menu-item--expanded > a[href="#"] {
  cursor: default !important;
  text-decoration: none !important;
}




/* Estilos para estado loggeado */
#logged-in-message {
  padding: 1rem;
  border-radius: 8px;
  text-align: center;
  width: 100%;
}

#logged-in-message h3 {
  margin: 0 0 1rem 0;
  color: #000;
  font-weight: 700;
}

#logged-in-message p {
  color: #495057;
  margin-bottom: 1.5rem;
}

#logged-in-message .logout-btn {
  background-color: var(--yellow-primary);
  color: white;
  border: none;
  padding: 0.75rem 2rem;
  border-radius: 4px;
  font-weight: 700;
  cursor: pointer;
  font-size: 1rem;
  text-decoration: none;
  display: inline-block;
}

#logged-in-message .logout-btn:hover {
  background-color: #a89900;
}

/* Estilos personalizados para el banner de cookies Klaro */
#klaro-cookie-notice {
  position: fixed !important;
  bottom: 10px !important; /* Margen inferior */
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  width: 90% !important;
  max-width: 50% !important;
  transform: translateX(-50%) !important; /* Centrado horizontal */
  border-radius: 4px !important;
  margin: 0 !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15) !important;
  border: 2px solid var(--blue-main) !important; /* Borde azul primario */
  height: auto !important; /* Altura automática */
}

#klaro-cookie-notice .cookie-notice {
  max-width: 100% !important;
  margin: 0 auto !important;
  border-radius: 4px !important;
}

#klaro-cookie-notice .cn-body {
  padding: 12px 15px !important; /* Padding vertical aumentado */
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
}

#klaro-cookie-notice #id-cookie-notice {
  margin-right: 20px !important;
  flex: 1 !important;
}

#klaro-cookie-notice p {
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
}

#klaro-cookie-notice h2#id-cookie-title {
  display: none !important; /* Ocultar título para ahorrar espacio */
}

#klaro-cookie-notice .cn-ok {
  display: flex !important;
  align-items: center !important;
  margin-top: 0 !important; /* Eliminar margen superior */
  width: auto !important;
}

#klaro-cookie-notice .cn-buttons {
  display: flex !important;
  flex-wrap: nowrap !important; /* Evitar que los botones se envuelvan */
  gap: 5px !important; /* Reducir espacio entre botones */
}

#klaro-cookie-notice .cm-btn {
  margin: 0 5px !important;
  padding: 5px 10px !important; /* Botones más pequeños */
  border-radius: 3px !important;
  font-weight: bold !important;
  text-transform: none !important;
  font-size: 13px !important; /* Texto más pequeño */
  display: inline-block !important;
  min-width: 80px !important;
  text-align: center !important;
}


#klaro-cookie-notice .cm-btn.cm-btn-decline {
  background-color: #f2f2f2 !important;
  color: #333 !important;
  border: 1px solid #ccc !important;
}

#klaro-cookie-notice .cm-link.cn-learn-more {
  margin-right: 10px !important;
  color: var(--blue-secondary) !important;
  font-size: 13px !important; /* Texto más pequeño */
  display: inline-block !important;
  padding: 5px 10px !important;
  text-decoration: underline !important;
}

/* Estilos para el botón de cierre (X) */
#klaro-cookie-notice .klaro-close-btn {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  width: 30px !important;
  height: 30px !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 9999 !important;
  cursor: pointer !important;
  font-size: 20px !important;
  color: #333 !important;
  font-weight: bold !important;
  text-decoration: none !important;
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

#klaro-cookie-notice .klaro-close-icon {
  font-size: 24px !important;
  line-height: 24px !important;
  display: block !important;
}

#klaro-cookie-notice .klaro-close-btn::before,
#klaro-cookie-notice .klaro-close-btn::after {
  content: '' !important;
  position: absolute !important;
  width: 14px !important;
  height: 2px !important;
  background-color: #777 !important;
}

#klaro-cookie-notice .klaro-close-btn::before {
  transform: rotate(45deg) !important;
}

#klaro-cookie-notice .klaro-close-btn::after {
  transform: rotate(-45deg) !important;
}

#klaro-cookie-notice .klaro-close-btn:hover::before,
#klaro-cookie-notice .klaro-close-btn:hover::after {
  background-color: #333 !important;
}

/* Estilos responsive para el banner de cookies */

@media (max-width: 1050px) {
  #klaro-cookie-notice {
    width: 95% !important;
    max-width: 95% !important;
    bottom: 5px !important;
  }
  
  #klaro-cookie-notice .cn-body {
    flex-direction: column !important; /* Cambiar a columna en móvil */
    padding: 12px !important;
    align-items: flex-start !important;
  }
  
  #klaro-cookie-notice #id-cookie-notice {
    margin-right: 0 !important;
    margin-bottom: 10px !important;
    width: 100% !important;
    font-size: 12px !important;
    padding-right: 0.4rem !important; /* Espacio para el botón X */
  }
  
  #klaro-cookie-notice .cn-ok {
    width: 100% !important;
    justify-content: space-between !important;
    flex-direction: row !important;
    display: flex !important;
  }
  
  #klaro-cookie-notice .cn-buttons {
    display: flex !important;
    width: 100% !important;
    justify-content: space-between !important;
  }
  
  #klaro-cookie-notice .cm-btn {
    padding: 6px 10px !important;
    font-size: 12px !important;
    flex: 1 !important;
    margin: 0 4px !important;
    text-align: center !important;
  }
  
  #klaro-cookie-notice p {
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
  }
  
  #klaro-cookie-notice .cm-link.cn-learn-more {
    margin-right: 0 !important;
    margin-bottom: 8px !important;
    display: inline-block !important;
    width: auto !important;
    text-align: center !important;
    background-color: transparent !important;
    border: 1px solid var(--blue-secondary) !important;
    border-radius: 3px !important;
    padding: 6px 10px !important;
    text-decoration: none !important;
  }
}

@media (max-width: 480px) {
  #klaro-cookie-notice {
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 0 !important;
    border-width: 2px 0 0 0 !important;
  }
}

/* Invertir el orden de los botones del banner de cookies */
.klaro .cookie-modal .cm-modal .cm-footer-buttons,
.klaro.klaro-modal .cookie-modal .cm-modal .cm-footer-buttons,
.klaro .cookie-modal .cm-modal .cm-footer .cm-footer-buttons,
.cm-modal .cm-footer .cm-footer-buttons,
.cm-footer-buttons {
  display: flex !important;
  flex-flow: row-reverse !important;
  justify-content: space-between !important;
}

/* Estilos mejorados para el botón de cierre (X) */
#klaro-cookie-notice .klaro-close-btn {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  width: 24px !important;
  height: 24px !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 9999 !important;
  cursor: pointer !important;
  font-size: 20px !important;
  color: #333 !important;
  font-weight: bold !important;
  text-decoration: none !important;
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

#klaro-cookie-notice .klaro-close-icon {
  font-size: 24px !important;
  line-height: 24px !important;
  display: block !important;
}

#klaro-cookie-notice .klaro-close-btn::before,
#klaro-cookie-notice .klaro-close-btn::after {
  content: '' !important;
  position: absolute !important;
  width: 14px !important;
  height: 2px !important;
  background-color: #777 !important;
}

#klaro-cookie-notice .klaro-close-btn::before {
  transform: rotate(45deg) !important;
}

#klaro-cookie-notice .klaro-close-btn::after {
  transform: rotate(-45deg) !important;
}

#klaro-cookie-notice .klaro-close-btn:hover::before,
#klaro-cookie-notice .klaro-close-btn:hover::after {
  background-color: #333 !important;
}

.catalogo-link-box {
  display: inline-block;
  background-color: var(--blue-secondary);
  border: 2px solid var(--blue-secondary);
  border-radius: 1rem;
  padding: 0.5rem 1rem;
  padding-bottom: 0rem;
  margin-bottom: 1rem;
  padding-top: 1rem;
  color: #fff;
  text-align: center;
}

.catalogo-link-box-2 {
  display: inline-block;
  background-color: var(--blue-main);
  border: 2px solid var(--blue-main);
  border-radius: 1rem;
  padding: 0.5rem 1rem;
  padding-bottom: 0rem;
  padding-top: 1rem;
  margin-bottom: 1rem;
  color: #fff;
  text-align: center;
}

.catalogo-link-box-2 a {
  color: #fff;
  font-weight: bold;
  text-decoration: underline;
}

.catalogo-link-box-2 a:hover {
  text-decoration: none;
}

.catalogo-link-box a {
  color: #fff;
  font-weight: bold;
  text-decoration: underline;
}

.catalogo-link-box a:hover {
  text-decoration: none;
}

/* ═══════════════════════════════════════════════
   WEBFORM REGISTRO TALONARIOS
═══════════════════════════════════════════════ */

/* Caja card centrada */
.webform-submission-registro-talonarios-form {
  max-width: 640px !important;
  background: #fff !important;
  border-radius: 12px !important;
  box-shadow: 0 6px 32px rgba(0, 87, 130, 0.13) !important;
  padding: 40px 48px !important;
  overflow: hidden !important;
}

/* Progress tracker — colores Inmunotek */
.webform-submission-registro-talonarios-form .progress-marker {
  background-color: #dee2e6 !important;
  border-color: #dee2e6 !important;
}
.webform-submission-registro-talonarios-form .progress-step.is-active .progress-marker,
.webform-submission-registro-talonarios-form .progress-step.is-complete .progress-marker {
  background-color: #005782 !important;
  border-color: #005782 !important;
}
/* Líneas de conexión entre pasos — inactivas: gris claro */
.webform-submission-registro-talonarios-form .webform-progress-tracker .progress-marker::before,
.webform-submission-registro-talonarios-form .webform-progress-tracker .progress-step .progress-marker::after,
.webform-submission-registro-talonarios-form .progress-step .progress-marker::after,
.webform-submission-registro-talonarios-form .webform-progress-tracker .progress-step:hover .progress-marker::before {
  background-color: #dee2e6 !important;
}
/* Líneas de conexión — activas/completas: azul Inmunotek */
.webform-submission-registro-talonarios-form .progress-step.is-active .progress-marker::before,
.webform-submission-registro-talonarios-form .progress-step.is-complete .progress-marker::before,
.webform-submission-registro-talonarios-form .progress-step.is-active .progress-marker::after,
.webform-submission-registro-talonarios-form .progress-step.is-complete .progress-marker::after {
  background-color: #005782 !important;
}
.webform-submission-registro-talonarios-form .progress-step.is-active .progress-title {
  color: #005782 !important;
  font-weight: 700 !important;
}

/* Separación entre bloques dentro de las columnas del builder */
.gbb-widget + .gbb-widget {
  margin-top: 20px;
}

/* ═══════════════════════════════════════════════
   USER PROFILE CARD
═══════════════════════════════════════════════ */

.user-profile-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(0,87,130,0.10);
  padding: 36px 40px;
  max-width: 680px;
  margin: 0 auto;
}

.profile-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.profile-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #005782;
  color: #fff;
  font-size: 28px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.profile-name h2 {
  margin: 0 0 4px;
  font-size: 20px;
  color: #1e1e1e;
  border: none !important;
  padding: 0 !important;
}

.profile-email {
  font-size: 14px;
  color: #6c757d;
}

.profile-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 24px;
  margin-bottom: 20px;
}

.profile-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.profile-field-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #6c757d;
}

.profile-field-value {
  font-size: 15px;
  color: #1e1e1e;
}

.profile-divider {
  border: none;
  border-top: 1px solid #dee2e6;
  margin: 20px 0;
}

.profile-section-title {
  font-size: 15px;
  font-weight: 600;
  color: #005782;
  margin: 0 0 12px;
}

.profile-newsletter-check + label {
  font-size: 14px !important;
  color: #333 !important;
}

.profile-edit-link {
  margin-top: 16px;
  font-size: 13px;
}

.profile-edit-link a {
  color: #005782;
  text-decoration: none;
}

.btn-profile-save {
  margin-top: 16px;
  background: #005782 !important;
  color: #fff !important;
  border: none;
  border-radius: 50px !important;
  padding: 10px 28px !important;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

.btn-profile-save:hover {
  background: #003f5e !important;
}

/* ═══════════════════════════════════════════════
   NEWSLETTER LIST BLOCK
═══════════════════════════════════════════════ */

.newsletter-subscribers-table {
  width: 100%;
  border-collapse: collapse;
}

.newsletter-subscribers-table th,
.newsletter-subscribers-table td {
  padding: 10px 14px;
  border: 1px solid #dee2e6;
  font-size: 14px;
  text-align: left;
}

.newsletter-subscribers-table th {
  background: #005782;
  color: #fff;
  font-weight: 600;
}

.newsletter-subscribers-table tr:nth-child(even) {
  background: #f5f8fb;
}

.newsletter-subscribers-table .status-ok {
  color: #1a7a1a;
  font-weight: 600;
}

.newsletter-subscribers-table .status-pending {
  color: #c0392b;
  font-weight: 600;
}

.newsletter-subscribers-table ~ .views-data-export-feed,
.gva-view .csv-feed {
  order: -1;
  margin-bottom: 14px;
}

.gva-view:has(.csv-feed) {
  display: flex;
  flex-direction: column;
}

.views-data-export-feed a.feed-icon {
  display: inline-block;
  margin-top: 0;
  padding: 9px 20px;
  background: #005782;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600;
  text-decoration: none !important;
  text-indent: 0 !important;
  border-radius: 6px;
  letter-spacing: 0.5px;
  transition: background 0.2s;
  background-image: none !important;
  width: auto !important;
  height: auto !important;
}

.views-data-export-feed a.feed-icon:hover {
  background: #003f5e;
}

.views-data-export-feed a.feed-icon::before {
  content: '↓ ';
}

/* ═══════════════════════════════════════════════
   NEWSLETTER TOGGLE BLOCK
═══════════════════════════════════════════════ */

/* Ocultar título del bloque newsletter */
.block-inmunotek-newsletter-toggle .block__title,
.block-inmunotek-newsletter-toggle h2 {
  display: none;
}

/* Botón suscripción */
.btn-newsletter-subscribe,
.btn-newsletter-unsubscribe {
  border: none;
  border-radius: 8px !important;
  padding: 12px 28px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
}

.btn-newsletter-subscribe {
  background: #005782;
  color: #fff;
}

.btn-newsletter-subscribe:hover {
  background: #003f5e;
}

.btn-newsletter-unsubscribe {
  background: #b0bec5;
  color: #fff;
}

.btn-newsletter-unsubscribe:hover {
  background: #90a4ae;
}

/* Ocultar "1 of 4" */
.webform-submission-registro-talonarios-form ~ p,
.webform-submission-registro-talonarios-form + p { display: none !important; }
.webform-progress-fraction { display: none !important; }
.webform-progress__summary { display: none !important; }

/* Inputs y selects */
.webform-submission-registro-talonarios-form input[type="text"],
.webform-submission-registro-talonarios-form input[type="email"],
.webform-submission-registro-talonarios-form input[type="tel"],
.webform-submission-registro-talonarios-form select {
  width: 100% !important;
  padding: 11px 14px !important;
  border: 1.5px solid #d0d8e0 !important;
  border-radius: 6px !important;
  font-size: 15px !important;
  background: #fafbfc !important;
  color: #1e1e1e !important;
  box-sizing: border-box !important;
  margin-bottom: 16px !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}
.webform-submission-registro-talonarios-form input:focus,
.webform-submission-registro-talonarios-form select:focus {
  border-color: #0095C8 !important;
  box-shadow: 0 0 0 3px rgba(0, 149, 200, 0.15) !important;
  outline: none !important;
  background: #fff !important;
}

/* Labels */
.webform-submission-registro-talonarios-form .form-item label {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1d344b !important;
  margin-bottom: 5px !important;
  display: block !important;
  width: auto !important;
}


/* Botones */
.webform-submission-registro-talonarios-form .webform-button--next,
.webform-submission-registro-talonarios-form input[type="submit"] {
  background: #005782 !important;
  color: #fff !important;
  border: none !important;
  padding: 12px 32px !important;
  border-radius: 6px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
  letter-spacing: 0.3px !important;
}
.webform-submission-registro-talonarios-form .webform-button--next:hover,
.webform-submission-registro-talonarios-form input[type="submit"]:hover {
  background: #0095C8 !important;
}
.webform-submission-registro-talonarios-form .webform-button--previous {
  background: transparent !important;
  color: #005782 !important;
  border: 2px solid #005782 !important;
  padding: 10px 28px !important;
  border-radius: 6px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
}
.webform-submission-registro-talonarios-form .webform-button--previous:hover {
  background: #005782 !important;
  color: #fff !important;
}
.webform-submission-registro-talonarios-form .form-actions {
  display: flex !important;
  gap: 12px !important;
  margin-top: 24px !important;
}

/* Aviso no disponible */
.webform-submission-registro-talonarios-form .messages--warning {
  background: #fff8e1 !important;
  border-left: 4px solid #C4B200 !important;
  padding: 12px 16px !important;
  border-radius: 4px !important;
  color: #5a4a00 !important;
  font-size: 14px !important;
  margin: 8px 0 !important;
}

/* Descripción campos */
.webform-submission-registro-talonarios-form .form-item__description,
.webform-submission-registro-talonarios-form .description {
  font-size: 12px !important;
  color: #878785 !important;
  margin-top: 3px !important;
}

/* Checkbox — targeting todas las variantes de clase de Drupal 10 */
/* SIN display !important para no bloquear el show/hide de webform states JS */
.webform-submission-registro-talonarios-form .js-form-type-checkbox,
.webform-submission-registro-talonarios-form .form-type-checkbox,
.webform-submission-registro-talonarios-form .form-type--checkbox {
  position: relative !important;
  padding-left: 30px !important;
  min-height: 22px !important;
  margin: 8px 0 16px !important;
  cursor: pointer !important;
}
.webform-submission-registro-talonarios-form .js-form-type-checkbox input[type="checkbox"],
.webform-submission-registro-talonarios-form .form-type-checkbox input[type="checkbox"],
.webform-submission-registro-talonarios-form .form-type--checkbox input[type="checkbox"] {
  position: absolute !important;
  left: 0 !important;
  top: 2px !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  accent-color: #005782 !important;
  cursor: pointer !important;
}
.webform-submission-registro-talonarios-form .js-form-type-checkbox label,
.webform-submission-registro-talonarios-form .form-type-checkbox label,
.webform-submission-registro-talonarios-form .form-type--checkbox label {
  display: block !important;
  width: 100% !important;
  font-weight: 500 !important;
  color: #2b4c6f !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  cursor: pointer !important;
  font-size: 14px !important;
}

/* ═══════════════════════════════════════════════
   LOGIN FORM — /talonarios/login (columna izq)
═══════════════════════════════════════════════ */

#custom-login-form {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 32px rgba(0, 87, 130, 0.13);
  padding: 40px 48px;
  max-width: 480px;
}

#custom-login-form .form-item {
  margin-bottom: 20px;
}

#custom-login-form .form-item label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #1d344b;
  margin-bottom: 6px;
}

#custom-login-form input[type="text"],
#custom-login-form input[type="password"],
#custom-login-form input[type="email"] {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid #d0d8e0;
  border-radius: 6px;
  font-size: 15px;
  background: #fafbfc;
  color: #1e1e1e;
  box-sizing: border-box;
  transition: border-color 0.2s, box-shadow 0.2s;
}

#custom-login-form input[type="text"]:focus,
#custom-login-form input[type="password"]:focus,
#custom-login-form input[type="email"]:focus {
  border-color: #0095C8;
  box-shadow: 0 0 0 3px rgba(0, 149, 200, 0.15);
  outline: none;
  background: #fff;
}

#custom-login-form button[type="submit"] {
  width: 100%;
  background: #005782;
  color: #fff;
  border: none;
  padding: 13px 32px;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  letter-spacing: 0.5px;
  transition: background 0.2s;
  margin-bottom: 16px;
}

#custom-login-form button[type="submit"]:hover {
  background: #0095C8;
}

#custom-login-form a {
  display: block;
  text-align: center;
  font-size: 13px;
  color: #005782;
  text-decoration: none;
  font-weight: 600;
}

#custom-login-form a:hover {
  color: #0095C8;
  text-decoration: underline;
}

/* Ocultar título del bloque webform en la página de login/registro */
.block-webform .block__title,
.block-webform h2.block-title,
.block-webform > h2 {
  display: none !important;
}

/* Ocultar "1 of 4" del wizard */
.webform-progress-fraction,
.webform-submission-registro-talonarios-form ~ p,
.webform-submission-registro-talonarios-form + p {
  display: none !important;
}
