/* Correcciones de accesibilidad del layout turismogj. */

/* T08 · PLT-02 */
.buf_skip_link {
  position: fixed;
  top: 1rem;
  left: -10000px;
  z-index: 100000;
  padding: .75rem 1rem;
  background: #0b2e4e;
  color: #fff;
  font-weight: 600;
  text-decoration: underline;
}

.buf_skip_link:focus {
  left: 1rem;
  outline: 3px solid #fff;
  outline-offset: 2px;
}

.a11y-content-column {
  display: flex;
  flex-direction: column;
  padding: 0;
}

@media (max-width: 375px) {
  #footer a[href^="mailto:"] {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 575.98px) {
  .accesos .vm_table {
    margin-right: 0;
  }

  .contenido .buf_bs_card > :is(.buf_intro_card, .buf_leading_card).row {
    --bs-gutter-x: 0;
  }

  body.turismo-ornitologico .contenido table {
    max-width: 100%;
    table-layout: fixed;
  }

  body.turismo-ornitologico .contenido table img {
    max-width: 100%;
    height: auto;
  }
}

/* T09 · PLT-04, PLT-05, PLT-07, PLT-08, PLT-09, VM-01, MEN-03 */
:where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid #0b2e4e !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px #fff !important;
}

:where(#buf_topbar, .tm_navbar_wrapper, #footer, .n2-section-smartslider) :where(a, button):focus-visible {
  outline-color: #fff !important;
  box-shadow: 0 0 0 6px #0b2e4e !important;
}

.accesos .vm_menu_data .vm_title,
.accesos .vm_menu_data .vm_menu_title {
  color: #fff;
}

/* T11 · VM-02 */
:is(#dx_visual_module1, #starmountains, #puertos_ciclistas) .vm_menu_title h2.vm_title {
  padding: 4px 0 0 4px;
  font-size: 1.7rem;
  font-weight: normal;
  line-height: 1.6rem;
}

@media (max-width: 767px) {
  :is(#dx_visual_module1, #starmountains, #puertos_ciclistas) .vm_menu_title h2.vm_title {
    font-size: 1.2rem;
    line-height: 1.4rem;
  }
}

@media (min-width: 1025px) {
  :is(#dx_visual_module1, #starmountains, #puertos_ciclistas) .vm_menu_title h2.vm_title {
    padding-block: 8px;
    font-size: 1.5rem;
    line-height: 1.6rem;
  }
}

#footer {
  color: #fff;
}

#footer div.footer_contents {
  background: linear-gradient(#2f6f75 5%, #24575c 100%);
}

.render_municipio span.field-value {
  color: #1f7f99;
}

.redondo a,
.mini_logo,
a.mini_logo {
  color: #3d6b12;
}

/* Los colores editoriales están definidos en línea. */
body.merenderos-aguas-y-balnearios .contenido .color_rojo > span[style*="color: #3366ff" i] {
  color: #305fed !important;
}

body.turismo-en-familia .contenido a[style*="color: #ff00ff" i] {
  color: #cc00cc !important;
}

.btn-outline-primary {
  --bs-btn-color: #0a58ca;
  --bs-btn-border-color: #0a58ca;
  --bs-btn-hover-bg: #0a58ca;
  --bs-btn-hover-border-color: #0a58ca;
}

.form-select,
.form-control,
.input-group-text {
  border-color: #6c757d;
}

.contenido p,
.contenido li,
.contenidos .content-category p,
.contenidos .item-page p,
.contenidos .blog p,
.card-text {
  text-align: start;
}

.contenido :is(p, li)[style*="text-align: justify" i],
.contenido :is(p, li)[style*="text-align:justify" i] {
  text-align: start !important;
}

.tm_navbar_wrapper button.dxsubmenu {
  min-width: 24px;
  min-height: 24px;
}

/* T10 · MEN-02, MEN-04, MEN-05 */
.tm_navbar_wrapper button.dxlink {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: "Fira Sans", sans-serif;
  font-weight: inherit;
  text-align: start;
  transition: color .3s, transform .3s;
  cursor: pointer;
}

@media (min-width: 1025px) {
  #tm-91 ul.tmlevel-0 > li:hover > div.dxgroup > button.dxlink {
    color: var(--tm-d0-a-color);
    font-size: var(--tm-d0-a-size);
    line-height: var(--tm-d0-a-size);
  }
}

@media (max-width: 1024px) {
  #tm-91 .tm_navbar_wrapper button.dxlink {
    display: flex;
    flex-grow: 1;
    align-items: center;
  }
}

.izquierda p.tm_show_parent_desktop {
  margin: 0;
  padding: 0 0 4px;
  border-bottom: 1px solid #f5f5f5;
  color: #555;
  font-family: "Fira Sans", sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.2;
  text-shadow: 0 1px #ccc;
  text-transform: uppercase;
}

#tm-93.totalmenu_wrapper .tm_navbar ul.totalmenu li div.dxgroup > a[aria-current="page"] {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .2em;
}

#footer a[href] {
  display: inline-block;
  min-height: 24px;
  padding-block: 2px;
}

.nextend-arrow {
  min-width: 32px;
  min-height: 32px;
  padding: 6px;
  background: rgba(0, 0, 0, .55);
  border-radius: 50%;
}

.nextend-arrow > img {
  margin: auto;
}

body.star-mountains .n2-bullet[role="button"] {
  min-width: 10px;
  min-height: 10px;
}

/* Puntos de los carruseles (p. ej. concurso de fotografía, 14 px con 6 px de separación): WCAG 2.5.8 admite objetivos de menos
   de 24 px solo si los círculos de 24 px centrados en ellos no se cortan; con 6 px de margen a cada lado los centros quedan a 26 px. */
.n2-bullet[role="button"] {
  margin-inline: 6px !important;
}

body.jamon-d-o .redondo a {
  display: inline-block;
  min-height: 24px;
}

/* T13 · JCF-01 */
.jtcftableasync_item h2.card-title {
  margin: 0;
  font-weight: 600;
  line-height: 1.3;
}

.jtcftableasync_item h2.card-title button {
  font: inherit;
}

/* T12 · NEW-01 */
.card-title-link {
  font: inherit;
}

/* T15 · JCF-08 */
.jt_cf_td_img span[data-jtcf-modal-item-id] {
  cursor: pointer;
}

html {
  scroll-padding-top: 80px;
  scroll-padding-bottom: 80px;
}

#bufoc_button {
  background: rgba(255, 255, 255, .95);
  border-radius: 8px;
}

/* T09 · CNT-05, EMB-01 */
.contenido a,
.contenidos a {
  overflow-wrap: anywhere;
}

.contenido iframe,
.contenidos iframe {
  max-width: 100%;
}

.contenido iframe[src*="youtube"],
.contenidos iframe[src*="youtube"] {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

/* T24 · PLT-11: buscador del pie y mapa del sitio */
@media (min-width: 768px) and (max-width: 1199.98px) {
  #footer div.footer_contents {
    flex-wrap: wrap;
    gap: 1rem 2rem;
  }
}

@media (min-width: 1200px) {
  #footer div.footer_contents > nav {
    flex: 0 0 auto;
  }

  #footer div.footer_contents > nav li {
    white-space: nowrap;
  }
}

#footer search .mod-finder label {
  color: #fff;
}

.a11y-sitemap,
.a11y-sitemap ul {
  padding-left: 1.25rem;
}

/* T22 · EMB-01: fachada del vídeo de YouTube (Trufa negra). Miniatura a toda la caja 16:9 y botón «Reproducir el vídeo» centrado:
   texto blanco sobre negro al 85 % (≥ 15:1 sobre cualquier imagen) y rojo #b00000 al pasar el ratón o con el foco (7,4:1). */
.gj-video { background: #000; overflow: hidden; }
.gj-video__enlace { display: block; color: #fff; text-decoration: none; }
.gj-video__enlace img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gj-video__boton {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  display: inline-flex; align-items: center; gap: .6em; padding: .75em 1.3em;
  background: rgba(0, 0, 0, .85); color: #fff; border-radius: 999px; font-weight: 600; line-height: 1.2; white-space: nowrap;
}
.gj-video__icono { width: 0; height: 0; border-style: solid; border-width: .55em 0 .55em .95em; border-color: transparent transparent transparent #fff; }
.gj-video__enlace:hover .gj-video__boton, .gj-video__enlace:focus-visible .gj-video__boton { background: #b00000; }
.gj-video__enlace:focus-visible { outline: 3px solid #fff; outline-offset: -7px; box-shadow: inset 0 0 0 7px #000; }
