/*
 * Lo que añade la web nueva sobre el CSS de la antigua (calco.css, que no se
 * toca: lo regenera scripts/calco/importar.py). Aquí va lo que antes hacía el
 * JavaScript de WordPress y las piezas nuevas: selector de idioma, errores de
 * los formularios, visor de la galería y las landings.
 */

/* --- Carrusel de la portada ---------------------------------------------- */
.jet-carousel .calco-ventana { overflow: hidden; }
.jet-carousel .calco-pista { display: flex; will-change: transform; }
.jet-carousel .calco-pista > .jet-carousel__item { flex: 0 0 100%; min-width: 100%; }
.jet-carousel:not(.calco-listo) > .jet-carousel__item:not(:first-of-type) { display: none; }
.jet-carousel .jet-arrow { cursor: pointer; z-index: 2; }

/* --- Carrusel de logos ------------------------------------------------------ */
.elementor-widget-image-carousel .swiper { overflow: hidden; }
.elementor-widget-image-carousel .swiper-wrapper { display: flex; }
.elementor-widget-image-carousel .swiper-slide { flex-shrink: 0; }

/* --- Galería del equipo ------------------------------------------------------ */
.elementor-gallery__container { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.elementor-gallery__container .e-gallery-item { position: relative; display: block; overflow: hidden; }
.elementor-gallery__container .e-gallery-image { padding-bottom: 66.8%; background-size: cover; background-position: center; transition: transform .6s; }
.elementor-gallery__container .e-gallery-item:hover .e-gallery-image { transform: scale(1.06); }
@media (max-width: 1024px) { .elementor-gallery__container { grid-template-columns: repeat(2, 1fr); gap: 4px; } }
@media (max-width: 767px) { .elementor-gallery__container { gap: 2px; } }
.calco-visor { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center; background: rgba(0, 0, 0, .88); cursor: zoom-out; }
.calco-visor.abierto { display: flex; }
.calco-visor img { max-width: 92vw; max-height: 88vh; box-shadow: 0 10px 40px rgba(0, 0, 0, .5); }
.calco-visor button { position: absolute; top: 12px; right: 18px; font-size: 40px; line-height: 1; color: #fff; background: none; border: 0; cursor: pointer; }

/* --- Selector de idioma (donde estaba el de GTranslate, con su mismo aspecto) */
.calco-idiomas { text-align: right; }
.calco-idiomas .glink { color: var(--e-global-color-text, #6E737D); font-size: 14px; text-decoration: none; white-space: nowrap; }
.calco-idiomas .glink:hover span { color: var(--e-global-color-primary, #171695); }
.calco-idiomas .glink img { width: 24px; height: 24px; }

/* --- Formularios ---------------------------------------------------------- */
.trampa { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.calco-form .calco-error { display: block; width: 100%; margin-top: 4px; font-size: 12px; color: #b3261e; }
.calco-form [aria-invalid="true"] { border-color: #b3261e !important; }
.calco-form-error:empty { display: none; }
.calco-form-error { width: 100%; margin: 0 0 10px; font-size: 13px; color: #b3261e; }

/* --- /servicios/: los servicios sin tarjeta, bajo la entradilla ------------ */
.calco-mas-servicios { margin-top: 20px; }
.calco-mas-servicios .elementor-icon-list-item a { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 14px; color: var(--e-global-color-secondary, #2D3543); }
.calco-mas-servicios .elementor-icon-list-item a:hover { color: var(--e-global-color-primary, #171695); }
.calco-mas-servicios .elementor-icon-list-icon i { font-size: 12px; color: var(--e-global-color-primary, #171695); }
.elementor-image-box-title a { color: inherit; }
#flota .elementor-icon-list-item a { display: flex; align-items: center; color: inherit; }
#flota .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--e-global-color-primary, #171695); }

/* --- Gracias y 404 ----------------------------------------------------------- */
.calco-simple { max-width: 1140px; margin: 0 auto; padding: 70px 20px 90px; font-family: var(--e-global-typography-primary-font-family, Prompt), sans-serif; color: var(--e-global-color-text, #6E737D); }
.calco-simple h2 { color: var(--e-global-color-secondary, #2D3543); }
.calco-simple a:not(.elementor-button) { color: var(--e-global-color-primary, #171695); }

/* --- Facebook y Google Maps: se cargan al pulsar ---------------------------- */
.calco-externo { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 300px; padding: 20px; text-align: center; background: #e9ecf3 center / cover no-repeat; }
.calco-externo small { max-width: 280px; font-size: 11px; line-height: 1.4; color: #2D3543; background: rgba(255, 255, 255, .85); padding: 4px 8px; }
.calco-externo-cargado { width: 100%; border: 0; display: block; }

/* --- Vídeo de fondo ------------------------------------------------------------ */
.elementor-background-video-container .elementor-background-video-hosted { width: 100%; height: 100%; object-fit: cover; }

/* --- Landings: las piezas de la web antigua con sus colores y tipografías ---- */
.calco-caja { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
.calco-eyebrow { margin: 0 0 6px; font-family: var(--e-global-typography-secondary-font-family), sans-serif; font-size: var(--e-global-typography-secondary-font-size); font-weight: var(--e-global-typography-secondary-font-weight); text-transform: uppercase; letter-spacing: var(--e-global-typography-secondary-letter-spacing); color: var(--e-global-color-primary); }
.calco-landing-intro { padding: 80px 0; }
.calco-landing-intro .calco-caja { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.calco-landing-foto img { display: block; width: 100%; height: auto; border-radius: 6px; box-shadow: 0 20px 40px rgba(23, 22, 149, .18); }
.calco-landing-nombre { margin: 0 0 18px; font-size: var(--e-global-typography-9cc78e9-font-size); font-weight: 600; line-height: 1.2em; text-transform: capitalize; color: var(--e-global-color-secondary); }
.calco-entradilla { margin: 0 0 26px; font-size: 16px; line-height: 1.7; color: var(--e-global-color-text); }
.calco-landing-cuerpo { padding: 80px 0; background: var(--e-global-color-05b4f9b); }
.calco-prosa { max-width: 900px; color: var(--e-global-color-text); font-size: 16px; line-height: 1.75; }
.calco-prosa h2 { margin: 48px 0 16px; font-size: var(--e-global-typography-1a59498-font-size); font-weight: 600; line-height: 1.3em; text-transform: capitalize; color: var(--e-global-color-secondary); }
.calco-prosa h2:first-child { margin-top: 0; }
.calco-prosa h3 { margin: 30px 0 10px; font-size: var(--e-global-typography-b08cda6-font-size); font-weight: 600; line-height: 1.4em; color: var(--e-global-color-secondary); }
.calco-prosa p { margin: 0 0 16px; }
.calco-prosa strong { color: var(--e-global-color-secondary); font-weight: 600; }
.calco-prosa ul { margin: 0 0 20px; padding: 0; list-style: none; }
.calco-prosa ul li { position: relative; margin: 0 0 8px; padding-left: 26px; }
.calco-prosa ul li::before { content: "\f00c"; position: absolute; left: 0; top: 1px; font-family: "Font Awesome 5 Free"; font-weight: 900; font-size: 13px; color: var(--e-global-color-primary); }
.calco-prosa ol { margin: 0 0 20px; padding-left: 22px; }
.calco-prosa a { color: var(--e-global-color-primary); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.calco-prosa table { width: 100%; margin: 10px 0 26px; border-collapse: collapse; background: #fff; font-size: 14px; box-shadow: 0 6px 20px rgba(45, 53, 67, .06); }
.calco-prosa th { padding: 12px 14px; text-align: left; background: var(--e-global-color-primary); color: #fff; font-weight: 600; }
.calco-prosa td { padding: 12px 14px; border-top: 1px solid var(--e-global-color-008723b); vertical-align: top; }
.calco-landing-relacionados { padding: 80px 0 40px; }
.calco-landing-relacionados + .calco-landing-relacionados { padding-top: 20px; }
.calco-landing-relacionados h2, .calco-landing-faq h2 { margin: 0 0 30px; font-size: var(--e-global-typography-1a59498-font-size); font-weight: 600; text-transform: capitalize; color: var(--e-global-color-secondary); }
.calco-tarjetas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.calco-tarjeta .elementor-image-box-img { margin: 0 0 18px; overflow: hidden; }
.calco-tarjeta .elementor-image-box-img img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.calco-tarjeta .elementor-image-box-title { margin: 0 0 10px; font-size: 16px; font-weight: 600; text-transform: capitalize; text-align: center; color: var(--e-global-color-secondary); }
.calco-tarjeta .elementor-image-box-description { margin: 0; font-size: 14px; line-height: 1.6; text-align: center; color: var(--e-global-color-text); }
.calco-landing-faq { padding: 60px 0 90px; }
.calco-landing-faq .elementor-toggle-item { border-bottom: 1px solid var(--e-global-color-79533a1); }
.calco-landing-faq .elementor-tab-title { display: flex; gap: 14px; align-items: center; padding: 18px 4px; cursor: pointer; font-size: 16px; font-weight: 600; color: var(--e-global-color-secondary); }
.calco-landing-faq .elementor-tab-title.elementor-active, .calco-landing-faq .elementor-tab-title:hover { color: var(--e-global-color-primary); }
.calco-landing-faq .elementor-toggle-icon { color: var(--e-global-color-primary); font-size: 12px; }
.calco-landing-faq .elementor-toggle-icon-opened { display: none; }
.calco-landing-faq .elementor-tab-title.elementor-active .elementor-toggle-icon-closed { display: none; }
.calco-landing-faq .elementor-tab-title.elementor-active .elementor-toggle-icon-opened { display: inline; }
.calco-landing-faq .elementor-tab-content { display: none; padding: 0 4px 20px 30px; font-size: 15px; line-height: 1.7; color: var(--e-global-color-text); }
.calco-landing-faq .elementor-tab-content p { margin: 0; }
#solicitud { scroll-margin-top: 20px; }
@media (max-width: 1024px) {
  .calco-landing-intro .calco-caja { gap: 40px; }
  .calco-tarjetas { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .calco-landing-intro { padding: 50px 0; }
  .calco-landing-intro .calco-caja { grid-template-columns: 1fr; gap: 30px; }
  .calco-landing-nombre { font-size: 30px; }
  .calco-landing-cuerpo, .calco-landing-relacionados { padding: 50px 0; }
  .calco-prosa h2 { font-size: 24px; }
  .calco-prosa table { display: block; overflow-x: auto; }
  .calco-tarjetas { grid-template-columns: 1fr; }
}

/* --- Aviso de cookies (colores del de Complianz de la web antigua) ----------- */
.calco-cookies { position: fixed; right: 10px; bottom: 10px; z-index: 9998; width: 526px; max-width: calc(100vw - 20px); box-sizing: border-box; padding: 18px 22px; background: #f9f9f9; color: #191e23; border-radius: 12px; box-shadow: 0 0 10px rgba(0, 0, 0, .35); font-size: 12px; line-height: 1.5; text-align: center; }
.calco-cookies[hidden], .calco-cookies-gestionar[hidden] { display: none; }
.calco-cookies-titulo { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.calco-cookies p { margin: 0 0 12px; }
.calco-cookies-botones { display: flex; gap: 10px; margin-bottom: 10px; }
.calco-cookies-botones button { flex: 1; padding: 10px; font-size: 15px; border-radius: 5px; border: 1px solid #f1f1f1; background: #f1f1f1; color: #008bcc; cursor: pointer; }
.calco-cookies-botones button[data-cookies="si"] { background: #008bcc; border-color: #008bcc; color: #fff; }
.calco-cookies a { color: #191e23; text-decoration: underline; font-size: 12px; }
.calco-cookies-gestionar { position: fixed; right: 40px; bottom: 0; z-index: 9997; padding: 6px 14px; font-size: 12px; border: 0; border-radius: 5px 5px 0 0; background: #f9f9f9; color: #191e23; box-shadow: 0 0 10px rgba(0, 0, 0, .25); cursor: pointer; }
