/*
 * ============================================================
 *  TEMA PERSONALIZADO — SOLO AMTEGA
 *  Basado en el tema Solo para Drupal
 *
 *  Documentación de variables de región:
 *  https://www.drupal.org/docs/extending-drupal/themes/contributed-themes/solo/instructions-for-developers-on-using-colors-in-solo-theme
 *
 *  ÍNDICE
 *  ──────────────────────────────────────────────────────────
 *   1)  Tipografía
 *   2)  Variables globales (raíz)
 *   3)  Layout base / Regiones
 *   4)  Header
 *   5)  Navegación principal (Superfish / wrapper)
 *   6)  Menú lateral (Primary Sidebar)
 *   7)  Hero / Slideshow (VVJS)
 *   8)  Carrusel simple
 *   9)  Logo y branding
 *  10)  Galerías / Miniaturas
 *  11)  Contenido / Medios / Tablas
 *  12)  Pestañas (Paragraph: PB Tabs)
 *  13)  Acordeones (Paragraph: Accordion)
 *  14)  Tarjetas / Vista página principal
 *  15)  Footer / Copyright
 *  16)  Botón "Back to top"
 *  17)  Vista de logos
 *  18)  Utilidades / Botón genérico
 *  19)  No Centro
 * ============================================================
 *
 *  PALETA PRINCIPAL
 *  --azul-primario:  #007bc4
 *  --azul-oscuro:    #002b4a
 *  --blanco:         #ffffff
 * ============================================================
 */


/* ============================================================
 * 1) TIPOGRAFÍA
 * ============================================================ */

@font-face {
  font-family: 'Xunta Sans';
  src: url('../fonts/xunta-sans/XuntaSans-Regular.woff2') format('woff2'),
    url('../fonts/xunta-sans/XuntaSans-Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

body,
h1,
h2,
h3,
.site-name,
.site-slogan {
  font-family: 'Xunta Sans', sans-serif;
}

/* Contenedor genérico centrado */
.container-amtega {
  max-width: 1312px !important;
  margin: 0 auto !important;
  padding: 0 16px !important;
}

#primary-menu {
  z-index: 1 !important;
}

/* ojo revisar esto */
/* Ocultar menú primario en móvil (<768px) */
#primary-menu {
  background-color: var(--portada-xunta-default);

  #primary-menu-inner {
    background-color: var(--portada-xunta-default);

    #superfish-main--2 {
      background-color: var(--portada-xunta-default);

      >li {
        background-color: var(--portada-xunta-default);

        >span {
          color: #FFF;
        }

        .sf-sub-indicator::before {
          background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='1,4 6,9 11,4' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E");
        }
      }

      .sf-depth-2 {

        span,
        a {
          color: var(--portada-xunta-dark);
        }

        &:hover {
          background-color: var(--portada-xunta-25);
        }

        &.active-trail {
          background-color: var(--portada-xunta-default);

          span,
          a {
            color: #FFF;
          }
        }
      }
    }
  }
}

@media (max-width: 767px) {
  .primary-menu {
    display: none !important;
  }
}

@media (min-width: 768px) {
  #primary-menu .primary-menu-inner {
    padding-left: var(--solo-gap);
    padding-right: var(--solo-gap);
  }
}

@media (max-width: 767px) {
  .portada-proximas-datas div.views-col {
    padding: 10px 0px !important;
  }

  .portada-proximas-datas div.data {
    font-size: 13px;
    max-width: 55px;
    line-height: 20px;
  }

  .portada-proximas-datas div.titulo {
    font-size: 13px;
    max-width: 150px;
    line-height: 20px;
  }
}

/* ============================================================
 * 2) VARIABLES GLOBALES (RAÍZ)
 * ============================================================ */

:root {
  /* Calendario FullCalendar */
  --cal-blue-dark: #007bc4;
  --cal-blue-mid: #80bedc;
  --cal-blue-light: #e5f1f8;
  --cal-accent: #1a6bc7;
  --cal-white: #ffffff;
  --cal-text: #222222;
  --cal-muted: #b0b8c4;
  --cal-border: #d0dce8;
  --cal-bg-other: #f0f4f8;

  /* Portada */
  --portada-xunta-dark: #002b4a;
  --portada-xunta-default: #007bc4;
  --portada-xunta-25: #bfddf0;
  --portada-xunta-10: #e5f1f8;
  --portada-orange: #ee731b;
  --portada-punto-laranxa-10: #FEF1E9;
  --portada-punto-laranxa-30: #FAD5BB;
  --portada-white: #fff;
  --portada-bg-50: #fff;
  --portada-bg-200: #f3f3f6;
  --portada-bg-400: #E9E9EC;
  --portada-text-800: #2d3232;
  --portada-text-400: #5f6363;
  --portada-text-200: #bababa;
  --portada-hero-overlay: rgba(0, 43, 74, 0.25);
  --portada-hero-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
  --portada-hero-max-width: 1312px;
  --portada-font: "Xunta Sans", "Open Sans", Arial, sans-serif;
  --portada-semantic-error-50: #fad9d9;
  --portada-semantic-error-500: #e64343;
  --portada-semantic-warning-50: #fbe8c9;
  --portada-semantic-warning-700: #bd7905;
  --portada-stroke-100: #dddddd;
}


/* ============================================================
 * 3) LAYOUT BASE / REGIONES
 * ============================================================ */

.page-wrapper>.solo-outer>.solo-inner:not(.primary-sidebar-menu-inner,
  .page-node-type-pb-content .main-container-inner) {
  max-width: 1312px;
}

/* Fondo blanco general de página */
.page-wrapper {
  --r-bg: #ffffff;
}

/* Fondo blanco en welcome-text y contenido principal */
.welcome-text,
.main-container .main-box {
  background-color: var(--solo-white);
}

/* Altura mínima contenido principal */
div#main-container {
  min-height: calc(100vh - 629px) !important;
}

/* Color de enlaces genéricos (excluye menús, botones y headings) */
.page-wrapper h3 a {
  color: #007bc4 !important;
}

.page-wrapper a:not(.nav__menu-link,
  .button,
  .site-name-link,
  .site-logo,
  h1 a, h2 a, h3 a) {
  color: #007bc4;
}

.solo-outer .region-inner {
  padding: 0;
}

.active-main-1>.solo-inner>div {
  width: 100%;
}

.active-main-1>.solo-inner {
  padding-top: 0;
}


/* ============================================================
 * 4) HEADER
 * ============================================================ */
/* Header fijo en la parte superior */
.header {
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* Fondo del header: blanco */
.header.header {
  background-color: #ffffff;
}

/* Page-title con fondo azul (páginas interiores) */
div.page-title.lone {
  background-color: #007bc4;
}

/* Pequeño margen superior interno del header */
.header-inner {
  margin-top: 5px;
  flex-wrap: nowrap;
}

/* xs */
@media (max-width: 767.98px) {
  #header {
    height: auto;
  }

  #header-inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    padding: 22px 16px;
    min-height: 89px !important;
  }
}

button.solo-button-menu {
  padding: 0px 10px;
}

/* xs */
@media (max-width: 767.98px) {
  button.solo-button-menu {
    padding: 0px 0px;
  }
}



button.boton-abrir-menu.menu-abierto .navbar-toggler-icon-animated {}

.navbar-toggler-icon-animated {
  height: 22px;
  position: relative;
  transition: all .2s ease-in-out;
  width: 30px;
}

.navbar-toggler-icon-animated span:first-child {
  top: 0;
}

.navbar-toggler-icon-animated span:nth-child(2) {
  top: 10px;
}

.navbar-toggler-icon-animated span:nth-child(3) {
  top: 20px;
  width: 60%;
  left: 40%;
}


/* xs */
@media (min-width: 767.98px) {

  button.solo-button-menu:hover .navbar-toggler-icon-animated span:first-child,
  button.solo-button-menu:hover .navbar-toggler-icon-animated span:nth-child(3) {
    left: 25%;
    width: 50%
  }

  button.solo-button-menu:focus .navbar-toggler-icon-animated span:first-child,
  button.solo-button-menu:focus .navbar-toggler-icon-animated span:nth-child(3) {
    left: 25%;
    width: 50%
  }

}

.navbar-toggler-icon-animated span {
  display: inline-block !important;
  min-width: auto !important;
  padding: 0px !important;
  background: #fff;
  border-radius: 10px;
  height: 3px;
  left: 0;
  position: absolute;
  transition: all .2s ease-in-out;
  width: 100%;
}

.navbar-toggler-icon-animated span {
  background: #007bc4;
}

button.boton-abrir-menu.menu-abierto .navbar-toggler-icon-animated span:first-child {
  top: 10px;
  left: 0;
  width: 100%;
  transform: rotate(45deg);
}

button.boton-abrir-menu.menu-abierto .navbar-toggler-icon-animated span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

button.boton-abrir-menu.menu-abierto .navbar-toggler-icon-animated span:nth-child(3) {
  top: 10px;
  left: 0;
  width: 100%;
  transform: rotate(-45deg);
}


#sidebar-button-open button span {
  padding-block: 0px !important;
  padding-inline: 0px !important;
}

/* BUSCADOR */
#fixed-search-block {
  background-color: var(--portada-bg-200);
}

#fixed-search-block-inner * {
  all: revert;
  box-sizing: border-box;
  /* Muy recomendado para mantener el control de los tamaños */
}



.solo-search-block-form .form-type-search::before {
  width: 0;
  height: 0;
}

#fixed-search-block .fixed-search-block-inner {
  max-width: 1312px;
}

#fixed-search-block-inner {
  .fixed-search-wrapper {
    width: 100%;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;

    form {
      display: flex;
      flex-wrap: nowrap;
      flex-grow: 1;
      margin-right: 40px;
      gap: 10px;

      .form-type-search {
        flex-grow: 1;

        label {
          display: none;
        }

        input {
          background-color: #FFF;
          background-image: url("../images/search.svg");
          background-repeat: no-repeat;
          background-position: left 10px center;
          background-size: 16px 16px;
          border: 1px solid var(--portada-stroke-100);
          width: 100%;
          height: 40px;
          border-radius: 8px;
          background-position: 24px;
          padding: 8px 32px 8px 50px;
        }

        input:focus-visible {
          border-color: var(--portada-text-200);
          outline: none;
        }
      }

      .form-actions input {
        display: inline-block;
        background-color: #007bc4;
        border: 0px;
        font-size: 18px;
        color: #fff;
        padding: 8px 16px !important;
        border-radius: 8px;
        transition: background-color 0.3s ease;
      }

      .form-actions input:hover,
      .form-actions input:focus {
        cursor: pointer;
        background-color: #002b4a;
      }
    }
  }

  .search-button-close {
    button {
      position: relative;
      width: 40px;
      height: 40px;
      border: none;
      background-color: transparent;
      cursor: pointer;
    }

    button::before,
    button::after {
      content: "";
      position: absolute;
      inset: 0;
      background-repeat: no-repeat;
      background-position: center;
      background-size: 32px 32px;
      transition: opacity 0.25s ease, transform 0.25s ease;
    }

    button::before {
      background-image: url("../images/close.svg");
      opacity: 1;
      transform: rotate(0deg);
    }

    button::after {
      background-image: url("../images/arrow-up.svg");
      opacity: 0;
      transform: rotate(-20deg);
    }

    button:hover::before,
    button:focus::before {
      opacity: 0;
      transform: rotate(20deg);
    }

    button:hover::after,
    button:focus::after {
      opacity: 1;
      transform: rotate(0deg);
    }

    span {
      display: none;
    }
  }
}

/* BUSCADOR FIN */

@media (max-width: 767px) {
  #sidebar-button-open {
    display: block;
  }
}

#search-button-open button {
  display: block;
  width: 52px;
}

#search-button-open button span {
  min-width: inherit;
}

@media (max-width: 767px) {
  #search-button-open {
    display: none;
  }
}

#sidebar-button-close {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  box-sizing: border-box;
  padding: 16px 16px 10px 16px;
  gap: 32px;
}

/* xs */
@media (max-width: 767.98px) {
  #sidebar-button-close {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    box-sizing: border-box;
    padding: 16px 16px;
    gap: 8px;
    flex-wrap: nowrap;
  }

  #sidebar-button-close img.sidebar-logo-centro {
    max-width: inherit !important;
    min-width: inherit !important;
    width: auto !important;
  }
}

#sidebar-button-close button {
  width: auto;
  background-color: #FFF;
  padding: 0px;
}

#sidebar-button-close img {
  max-width: 300px !important;
}

.solo-button-menu {
  flex-shrink: 0;
  /* Obliga al botón a mantener su tamaño sin encogerse */
}

#sidebar-button-close svg {
  width: 46px;
  height: 36px;
  min-width: 32px !important;
  color: var(--portada-xunta-default);
}

/* xs */
@media (max-width: 767.98px) {
  #primary-sidebar-menu {
    min-width: 320px !important;
    max-width: 98% !important;
    width: 98% !important;
  }
}

@media (min-width: 767.98px) {
  header#header #sidebar-button-open {
    display: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

  header#header #search-button-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;

  }

  header.scrolling #header-inner {
    padding: 8px 16px;
    transition: all 0.3s ease
  }

  header.scrolling #sidebar-button-open {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  header.scrolling #search-button-open {
    display: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

  header.scrolling .site-logo img,
  header.scrolling .logo-centro img {
    width: auto;
    max-height: 42px;
  }
}

header.scrolling {
  animation: headerShadow 0.3s ease forwards;
}

@keyframes headerShadow {
  from {
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  }

  to {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  }
}



/* ============================================================
 * 5) NAVEGACIÓN PRINCIPAL (SUPERFISH / WRAPPER)
 * ============================================================ */

/* ── Nivel 1: fondo azul primario, texto blanco ── */
.solo-inner .navigation__menubar:not(.navigation__megamenu) li.nav__menu-item>a,
.page-wrapper .hamburger-icon button,
.page-wrapper .main-navigation-wrapper ul,
.page-wrapper .main-navigation-wrapper .sf-depth-1,
.page-wrapper .main-navigation-wrapper {
  /* colores eliminados para control manual */
}

/* ── Submenús (nivel 2+): fondo azul oscuro ── */
.page-wrapper .main-navigation-wrapper .sf-depth-2,
.page-wrapper .main-navigation-wrapper .sf-depth-2 ul,
.page-wrapper .main-navigation-wrapper .sf-depth-2 li,
.page-wrapper .main-navigation-wrapper .sf-depth-2 li>a,
.page-wrapper .main-navigation-wrapper .sf-depth-2 li>button {
  /* colores eliminados para control manual */
}

/* ── Hover nivel 1: oscurecer a azul oscuro ── */
.page-wrapper .login-button-open:hover,
.page-wrapper .hamburger-icon button:hover,
.page-wrapper .main-navigation-wrapper .sf-depth-1:hover,
.page-wrapper .main-navigation-wrapper li:hover,
.page-wrapper .header li.nav__menu-item>a:hover {
  /* colores eliminados para control manual */
}

/* ── Hover en submenús (no nivel 1): realce suave ── */
.page-wrapper .main-navigation-wrapper li>a:not(.sf-depth-1):hover,
.page-wrapper .main-navigation-wrapper li>span.nolink:not(.sf-depth-1):hover {
  /* colores eliminados para control manual */
}

/* ── span.nolink nivel 1 menú lateral: hover y abierto ── */
#primary-sidebar-menu-inner .sf-depth-1:hover,
#primary-sidebar-menu-inner .sf-depth-1.sf-clicked {
  background-color: var(--portada-bg-400);
}

#primary-sidebar-menu-inner .sf-depth-1.sf-clicked {
  font-weight: bold;
}

#primary-sidebar-menu-inner .sf-depth-1.sf-clicked~ul li {
  background-color: var(--portada-bg-200);
}

#primary-sidebar-menu-inner .sf-depth-1.sf-clicked~ul li:hover {
  background-color: var(--portada-xunta-25);
}

#primary-sidebar-menu-inner .is-active.sf-depth-2 {
  background-color: var(--portada-xunta-default);
  color: #FFF;
}

#block-solo-amtega-account-menu {
  margin-top: 20px;
}

/* ── Altura fija del bloque de búsqueda ── */
#fixed-search-block.toggled {
  max-height: 111.98px !important;
  overflow: hidden;
}

/* ── Botones de búsqueda y hamburguesa ── */
/* Fondo blanco con icono azul (estado normal) */
#search-button-open button span {
  background-color: #ffffff;
  color: #007bc4;
}

/* Hover: fondo oscuro con icono blanco */
/*
#search-button-open button span:hover,
#sidebar-button-open button span:hover {
  background-color: #002b4a;
  color: #ffffff;
}*/

/* Tamaño de iconos (desktop) */
#search-button-open svg {
  width: var(--solo-px28);
  height: var(--solo-px28);
}


/* ── Flecha de submenú Superfish: SVG inline + rotación ── */
/* Flecha de submenú (Superfish) con SVG y rotación */
ul.sf-menu .sf-sub-indicator:after {
  content: none !important;
}

/* Flecha en el PRIMER nivel */
ul.sf-menu>li>a .sf-sub-indicator::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0.4em;
  left: auto;
  width: 0.6em;
  height: 0.6em;
  transform: translateY(-50%) rotate(0deg);
  transition: transform 0.3s ease;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='1,4 6,9 11,4' fill='none' stroke='white' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

ul.sf-menu>li.sfHover>a .sf-sub-indicator::before,
ul.sf-menu>li:hover>a .sf-sub-indicator::before {
  transform: translateY(-50%) rotate(180deg);
}

/* Mostrar flecha solo desde el SEGUNDO nivel en adelante */
ul.sf-menu .sf-menu li .sf-sub-indicator::before,
ul.sf-menu li ul li .sf-sub-indicator::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0.4em;
  left: 6px;
  width: 0.6em;
  height: 0.6em;
  transform: translateY(-50%) rotate(0deg);
  transition: transform 0.3s ease;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='1,3 5,7 9,3' fill='none' stroke='white' stroke-width='3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

ul.sf-menu li ul .sf-clicked .sf-sub-indicator::before {
  transform: translateY(-50%) rotate(180deg);
}

/* Flecha en el PRIMER nivel (span.nolink) */
ul.sf-menu>li>span.nolink .sf-sub-indicator::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0.4em;
  left: auto;
  width: 0.6em;
  height: 0.6em;
  transform: translateY(-50%) rotate(0deg);
  transition: transform 0.3s ease;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='1,4 6,9 11,4' fill='none' stroke='%23007bc4' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

ul.sf-menu>li.sfHover>span.nolink .sf-sub-indicator::before,
#primary-menu ul.sf-menu>li:hover>span.nolink .sf-sub-indicator::before {
  transform: translateY(-50%) rotate(180deg);
}

/* Animación de border-bottom en hover (primer nivel) */
ul.sf-menu>li>a::after,
ul.sf-menu>li>span.nolink::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 3px;
  background-color: var(--portada-xunta-25);
  transition: width 0.3s ease;
}

ul.sf-menu>li:hover>a::after,
ul.sf-menu:not(.sf-vertical)>li:hover>span.nolink::after,
ul.sf-menu>li.sfHover>a::after,
ul.sf-menu:not(.sf-vertical)>li.sfHover>span.nolink::after {
  width: 100%;
}

/* CAMBIOS NUEVOS DISEÑO */
#block-solo-amtega-navegacionprincipal>ul.sf-menu>li {
  margin: 0 8px;
}

@media (min-width: 992px) {
  #block-solo-amtega-navegacionprincipal>ul.sf-menu>li {
    margin: 0 16px;
  }
}

#block-solo-amtega-navegacionprincipal>ul.sf-menu>li:first-child {
  margin-left: 0;
}

#block-solo-amtega-navegacionprincipal ul.sf-menu .sf-sub-indicator {
  right: 8px;
}

#block-solo-amtega-navegacionprincipal>ul.sf-menu>li>span.nolink {
  padding-left: 0 !important;
  padding-right: 2em !important;
}

@media (max-width: 991px) {
  #block-solo-amtega-navegacionprincipal>ul.sf-menu>li>span.nolink {
    font-size: 14px;
  }
}

#block-solo-amtega-navegacionprincipal ul.sf-menu li>ul {
  border-radius: 0 0 8px 8px !important;
  overflow: hidden !important;
}

#block-solo-amtega-navegacionprincipal ul.sf-menu li:hover>ul,
#block-solo-amtega-navegacionprincipal ul.sf-menu li.sfHover>ul {
  top: 48px !important;
}

@media (max-width: 991px) {

  #block-solo-amtega-navegacionprincipal ul.sf-menu li:hover>ul,
  #block-solo-amtega-navegacionprincipal ul.sf-menu li.sfHover>ul {
    top: 42px !important;
  }
}

#block-solo-amtega-navegacionprincipal a:hover {
  transform: none !important;
}

#block-solo-amtega-navegacionprincipal .sf-depth-2 {
  background-color: #FFF;
}

#block-solo-amtega-navegacionprincipal .is-active.sf-depth-2 {
  background-color: var(--portada-xunta-default);
}

ul.sf-menu.sf-vertical {
  width: 100%;
  padding: 0 16px;
}

ul.sf-menu.sf-vertical ul {
  width: 100% !important;
}

/* ── Responsive: móvil (≤576px) ── */
@media (max-width: 576px) {

  /* Ocultar bloque de navegación principal en móvil */
  #block-solo-amtega-navegacionprincipal {
    /*visibility: hidden;*/
    display: none;
  }

  /* Iconos más pequeños en móvil */
  #search-button-open svg {
    width: var(--solo-px18);
    height: var(--solo-px18);
  }

  #sidebar-button-open svg {
    height: var(--solo-px18);
    margin-top: 5px;
    margin-bottom: 2px;
  }
}


/* ============================================================
 * 6) MENÚ LATERAL (PRIMARY SIDEBAR)
 * ============================================================ */

/* Contenedor del sidebar: visible y fondo oscuro */
.primary-sidebar-menu-inner {
  display: block !important;
  /* --r-bg eliminado para control manual */
}

/* Tamaño y posición del panel lateral */
#primary-sidebar-menu {
  inset-block-start: auto;
  width: min-content;
  background-color: white;
}

/* Eliminar bordes y sombras de los elementos Superfish del sidebar */
#primary-sidebar-menu li,
#primary-sidebar-menu ul,
#primary-sidebar-menu span,
#primary-sidebar-menu a {
  border: none !important;
  box-shadow: none !important;
}

#primary-sidebar-menu a {
  padding: 10px;
  color: var(--portada-xunta-dark);
}

/* ── Todos los niveles de profundidad: fondo azul oscuro ── */
.primary-sidebar-menu-inner ul.sf-menu span.nolink,
.primary-sidebar-menu-inner .menu__item--expanded>a,
.primary-sidebar-menu-inner .menu__link,
.primary-sidebar-menu-inner .sf-depth-1,
.primary-sidebar-menu-inner .sf-depth-2,
.primary-sidebar-menu-inner .sf-depth-3,
.primary-sidebar-menu-inner .sf-depth-4,
.primary-sidebar-menu-inner .sf-depth-5,
.primary-sidebar-menu-inner .sf-depth-6,
.primary-sidebar-menu-inner .sf-depth-7 {
  /* colores eliminados para control manual */
}

/* Separadores y ancho completo (solo nivel 1 y ítems concretos) */
.primary-sidebar-menu-inner ul.sf-menu span.nolink,
.primary-sidebar-menu-inner .menu__item--expanded>a,
.primary-sidebar-menu-inner .menu__link,
.primary-sidebar-menu-inner .sf-depth-1 {
  padding: 10px;
  /* box-shadow eliminado para control manual */
  box-sizing: border-box;
  width: 100%;
  /* colores eliminados para control manual */
}

/* Enlace del menubar dentro del sidebar */
.primary-sidebar-menu-inner .navigation__menubar:not(.navigation__megamenu) li.nav__menu-item>a {
  padding: 10px;
}

/* ── Hover en árbol lateral: azul primario ── */
.primary-sidebar-menu-inner ul.sf-menu span.nolink:hover,
.primary-sidebar-menu-inner .menu__item--expanded:hover>a,
.primary-sidebar-menu-inner .menu__link:hover,
.primary-sidebar-menu-inner .sf-depth-1:hover,
.primary-sidebar-menu-inner .sf-depth-1:hover>a,
.primary-sidebar-menu-inner .sf-depth-2:hover,
.primary-sidebar-menu-inner .sf-depth-3:hover,
.primary-sidebar-menu-inner .sf-depth-4:hover,
.primary-sidebar-menu-inner .sf-depth-5:hover,
.primary-sidebar-menu-inner .sf-depth-6:hover,
.primary-sidebar-menu-inner .sf-depth-7:hover,
.primary-sidebar-menu-inner .sf-depth-7 ul:hover,
.primary-sidebar-menu-inner .sf-depth-7 li:hover,
.primary-sidebar-menu-inner .sf-depth-7 li:hover>a,
.primary-sidebar-menu-inner .sf-depth-7 li:hover>button,
.primary-sidebar-menu-inner .navigation__menubar:not(.navigation__megamenu) li.nav__menu-item>a:hover {
  /* colores eliminados para control manual */
}

/* Botón cerrar sidebar */
#sidebar-button-close button {
  /* colores eliminados para control manual */
}

/* ── Submenús en vertical (expandir/colapsar) ── */
.primary-sidebar-menu-inner ul ul {
  position: static !important;
  display: none;
  margin: 0;
  padding-left: 1rem;
}

.primary-sidebar-menu-inner .menu__item--open>ul {
  display: block !important;
}

/* ------------- NUEVOS ----------------- */
#block-solo-amtega-account-menu {
  display: none;
}

.page-wrapper #primary-sidebar-menu ul {
  background-color: #FFF;

  li {
    background-color: #FFF;
  }
}

.sidebar-search-wrapper * {
  all: revert;
  box-sizing: border-box;
  /* Muy recomendado para mantener el control de los tamaños */
}

.sidebar-search-wrapper {
  .form-actions {
    display: none;
  }

  .form-type-search {
    width: 100%;
    padding: 0 16px;

    label {
      display: none;
    }

    input {
      background-color: #FFF;
      background-image: url("../images/search.svg");
      background-repeat: no-repeat;
      background-position: left 10px center;
      background-size: 16px 16px;
      border: 1px solid var(--portada-stroke-100);
      width: 100%;
      height: 40px;
      border-radius: 8px;
      background-position: 24px;
      padding: 8px 32px 8px 50px;
    }

    input:focus-visible {
      border-color: var(--portada-text-200);
      outline: none;
      box-shadow: none;
    }
  }
}

/* ============================================================
 * 7) HERO / SLIDESHOW (VVJS)
 *    Imágenes: 1920×495 px
 *    La imagen se ve completa y centrada en todos los dispositivos
 * ============================================================ */

/* ── 7.1 Contenedor principal ──
   min-height garantiza 495px en desktop,
   aspect-ratio escala en pantallas menores,
   overflow visible para que los dots queden fuera del recorte */
.vvjs .vvjs-inner {
  position: relative;
  width: 100%;
  height: auto !important;
  aspect-ratio: 1920 / 495;
  min-height: unset;
  overflow: visible !important;
}

/* ── 7.2 Imagen del slide: completa, centrada, sin recorte ── */
.vvjs.hero-slideshow .vvjs-item .vvjs-hero-image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
}

/* ── 7.3 Flechas de navegación ── */
.next-arrow svg,
.prev-arrow svg {
  fill: #ffffff;
}

.vvjs .slide-indicators .prev-arrow {
  left: 10px;
}

.vvjs .slide-indicators .next-arrow {
  right: 10px;
}

.vvjs .vvjs-inner.not-zero>.slide-indicators,
.vvjs .vvjs-inner.dots.not-zero>.slide-indicators {
  top: calc(45%);
}

.vvjs.arrows-top .slide-indicators {
  opacity: 0.4;
}

/* ── 7.4 Barra de dots ──
   position: relative saca los dots del flujo del vvjs-inner
   y los coloca naturalmente debajo de la imagen */
.vvjs>.nav-dots-numbers,
.vvjs+.nav-dots-numbers,
.nav-dots-numbers.dots,
.vvjs.br-576 .nav-dots-numbers,
.vvjs.br-576+.nav-dots-numbers {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  background-color: transparent !important;
}

/* Sobrescribir la regla del tema VVJS que en ≥576px fuerza
   position: absolute y saca los dots del flujo */
@media (min-width: 36rem) {
  .vvjs.br-576.hero-slideshow .nav-dots-numbers {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    min-height: 60px !important;
    display: flex !important;
    margin: 0 !important;
  }
}

/* ── 7.5 Dots inactivos: pequeños y semitransparentes ── */
.nav-dots-numbers .dots-numbers-button {
  width: 6px !important;
  height: 6px !important;
  min-width: 6px !important;
  min-height: 6px !important;
  max-width: 6px !important;
  max-height: 6px !important;
  border-radius: 50% !important;
  background-color: #007bc4 !important;
  border: 2px solid #007bc4 !important;
  opacity: 0.4 !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  display: inline-flex !important;
  box-sizing: border-box !important;
  transition: background-color 0.3s ease,
    transform 0.2s ease,
    opacity 0.3s ease,
    width 0.2s ease,
    height 0.2s ease;
}

/* ── 7.6 Dot activo ── */
.nav-dots-numbers .dots-numbers-button.active,
.nav-dots-numbers .dots-numbers-button[aria-selected="true"] {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
  background-color: #007bc4 !important;
  border-color: #007bc4 !important;
  border-radius: 50% !important;
  clip-path: none !important;
  opacity: 1 !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ── 7.7 Dot hover ── */
.nav-dots-numbers .dots-numbers-button:hover {
  background-color: #002b4a !important;
  border-color: #002b4a !important;
  opacity: 0.7 !important;
}

/* ── 7.8 Botón play / pause: solo icono, sin círculo ── */
.nav-dots-numbers .play-pause-button {
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  width: 20px !important;
  height: 20px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.nav-dots-numbers .play-pause-button svg {
  fill: #007bc4 !important;
  width: 20px !important;
  height: 20px !important;
  overflow: hidden !important;
}

/* Cambia el viewBox vía CSS no funciona, hay que usar clip-path */
.nav-dots-numbers .play-pause-button svg {
  clip-path: inset(22% 22% 22% 22%) !important;
  transform: scale(1.6) !important;
}

.nav-dots-numbers .play-pause-button:hover svg {
  fill: #002b4a !important;
}

.nav-dots-numbers .play-pause-button:focus {
  outline: none !important;
  box-shadow: none !important;
}

/* ── 7.9 Enlaces en títulos h2 sobre el hero ── */
.page-wrapper h2 a,
.page-wrapper h2 span {
  color: #ffffff;
}

/* Ocultar el overlay cuando el h2 está vacío */
.vvjs.hero-slideshow .vvjs-hero-content:has(h2.field-content:empty) {
  display: none !important;
}

/* ── 7.10 Responsive: tablet (≤1300px) ──
   Se elimina min-height para que aspect-ratio controle la altura */
@media (max-width: 1300px) {
  .vvjs .vvjs-inner {
    min-height: unset;
    height: auto !important;
  }
}

/* ── 7.11 Responsive: tablet media (≤768px) ── */
@media (max-width: 768px) {
  .vvjs.hero-slideshow .vvjs-items .vvjs-hero-content {
    width: 70%;
  }
}

/* ── 7.12 Responsive: móvil (≤576px) ── 
   - aspect-ratio mantiene la proporción 1920/495 → imagen siempre completa
   - Los dots se colocan debajo con position: relative
   - El texto se centra y se escala con clamp()
   - Las flechas se reposicionan al centro real de la imagen */

@media (max-width: 575.98px) {

  .vvjs .vvjs-inner {
    min-height: unset;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    /* más alto que 1920/495 en móvil */
    line-height: 0;
    font-size: 0;
  }

  .vvjs.hero-slideshow .vvjs-item {
    position: relative;
    width: 100%;
    height: 100%;
  }

  .vvjs.hero-slideshow .vvjs-item .vvjs-hero-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  .vvjs.hero-slideshow .vvjs-item .vvjs-hero-image a {
    display: block;
    width: 100%;
    height: 100%;
  }

  .vvjs.hero-slideshow .vvjs-item .vvjs-hero-image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
  }

  /* Dots: fuera del vvjs-inner, debajo de la imagen */
  .vvjs>.nav-dots-numbers,
  .vvjs+.nav-dots-numbers,
  .nav-dots-numbers.dots {
    margin-top: -25px;
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
  }

  /* Flechas: centradas verticalmente respecto a la imagen, no la pantalla */
  .vvjs .vvjs-inner.not-zero>.slide-indicators button,
  .vvjs .vvjs-inner.dots.not-zero>.slide-indicators button {
    top: 50% !important;
    transform: translateY(-50%);
  }

  /* Contenido de texto sobre el hero */
  .vvjs.hero-slideshow .vvjs-items .vvjs-hero-content {
    width: 85%;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* Centrado vertical dentro de la imagen */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .vvjs.hero-slideshow .vvjs-items .vvjs-hero-content h2,
  .vvjs.hero-slideshow .vvjs-items .vvjs-hero-content a {
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: break-word;
    line-height: 1.3 !important;
    /* Se escala desde 0.75rem en pantallas muy estrechas hasta 1rem */
    font-size: clamp(0.75rem, 2.8vw, 1rem) !important;
    text-align: center;
    margin-bottom: 50px;
  }

  h2 {
    /*background-color: rgba(0, 123, 196, 0.8);*/
    /* Revisar el color */
    padding: 5px 10px;
  }

}


/* ============================================================
 * 8) CARRUSEL SIMPLE
 * ============================================================ */

/* Espacio lateral para que los botones no tapen el contenido */
.simple-carousel {
  position: relative;
  overflow: visible;
  padding: 0 50px !important;
}

/* Botones de navegación */
.simple-carousel-button a {
  width: 2rem;
  height: 2rem;
  background: #ffffff;
  font-size: 0;
  opacity: 0.8;
  color: #007bc4 !important;
}

.simple-carousel-button.button--previous {
  left: -50px;
}

.simple-carousel-button.button--next {
  right: -50px;
  background: transparent;
}

/* Iconos de flecha mediante pseudo-elemento */
.simple-carousel-button.button--previous a::before {
  content: "←";
  font-size: 1.3rem;
  color: #007bc4 !important;
}

.simple-carousel-button.button--next a::before {
  content: "→";
  font-size: 1.3rem;
  color: #007bc4 !important;
}

/* Efecto zoom en imagén */
#simple-carousel-logos_bloques .simple-carousel-item {
  transition: transform 0.3s ease;
}

#simple-carousel-logos_bloques .simple-carousel-item:hover {
  transform: scale(1.06);
}


/* ============================================================
 * 9) LOGO Y BRANDING
 * ============================================================ */

/* Tamaño del logo principal y logo centro */
.site-logo img,
.logo-centro img {
  width: auto;
  max-height: 48px;
  transition: all 0.3s ease;
}

/* Agrupar logo + logo centro con espacio entre ellos */
.branding-wrapper {
  display: flex;
  align-items: center;
  gap: 50px;
}

/* Logo centro alineado */
.logo-centro {
  display: flex;
  align-items: center;
}

/* Ocultar logo del bloque hamburguesa en desktop */
#block-solo-amtega-logocentro .logo-centro {
  display: none;
}

/* ── Móvil (≤768px) ── */
@media (max-width: 768px) {

  /* Ocultar logo centro en móvil */
  .logo-centro {
    display: none;
  }

  /* Excepción: mostrar logo dentro del sidebar lateral */
  .primary-sidebar-menu .logo-centro {
    display: block !important;
  }

  /* Situar el logo encima de los iconos de búsqueda/hamburguesa */
  .header-inner {
    flex-wrap: wrap-reverse;
  }
}


/* ============================================================
 * 10) GALERÍAS / MINIATURAS
 * ============================================================ */

/* Rejilla de 6 columnas (desktop) */
.path-node article.node.node--type-galeria .field--name-field-image {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
}

/* Móvil (≤576px): reducido a 2 columnas */
@media (max-width: 576px) {
  .path-node article.node.node--type-galeria .field--name-field-image {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px;
  }
}


/* ============================================================
 * 11) CONTENIDO / MEDIOS / TABLAS
 * ============================================================ */

/* Centrar tablas */
.page-wrapper table {
  margin: 0 auto;
}

/* Imágenes en artículos: responsivas y centradas */
.solo-image {
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

/* Centrado universal de medios Drupal */
.media,
.file,
.drupal-media,
figure.media {
  text-align: center !important;
}

img,
audio,
iframe,
embed,
object,
picture {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 100%;
}

video {
  max-width: 100%;
  padding: 0px !important;
  margin: 0px !important;
  width: 100%;
}

/* Bordes en celdas de tabla (.table) */
.table td,
.table th {
  border: 1px solid #000;
  padding: 10px;
}

/* Imágenes del accordion: ancho mínimo */
a.img--is-clickable {
  min-width: 85% !important;
}

/* Accordion de jQuery UI: cabecera a ancho completo */
.ui-accordion .ui-accordion-header {
  width: 100%;
  float: none;
}

/* Ocultar icono RSS (ocupa espacio pero no se muestra) */
.solo-clear .feed-icon {
  visibility: hidden;
}

/* ── Centrado de medios en móvil (≤768px) ── */
@media (max-width: 768px) {

  .field--type-entity-reference.field--name-field-media,
  .media,
  .media__content,
  .media__element {
    display: block;
    text-align: center;
    margin: 0 auto;
  }

  .media img,
  .media video,
  .media audio,
  .media iframe {
    float: none !important;
    margin: 0 auto !important;
    width: 100% !important;
  }
}


/* ============================================================
 * 12) PESTAÑAS (PARAGRAPH: PB TABS)
 * ============================================================ */

/* Pestaña activa: borde superior y laterales */
.paragraph--type--tabs-bundle .pb__tabs-bundle .pb__tabs-button>.pb__active {
  font-weight: bold;
  text-decoration: none;
  border-top: 2px solid #e6e6e6;
  border-right: 2px solid #e6e6e6;
  border-left: 2px solid #e6e6e6;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
}

/* Panel de contenido de la pestaña: borde inferior y laterales */
.pb__row .pb__tabs-pane {
  border-bottom: 2px solid #e6e6e6;
  border-right: 2px solid #e6e6e6;
  border-left: 2px solid #e6e6e6;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
}


/* ============================================================
 * 13) ACORDEONES (PARAGRAPH: ACCORDION)
 * ============================================================ */

/* Cabecera del acordeón: negrita y tamaño grande */
.paragraph--type--accordion-bundle .pb__accor-button>* {
  font-weight: bold;
  font-size: large;
}


/* ============================================================
 * 20) VISTA DE LOGOS (Por definir)
 * ============================================================ */

/* Fondo azul claro para el bloque "Portal Educativo" */
#block-solo-amtega-portaleducativo {
  background-color: #e5f1f8;
}

/* Propiedades base del item (anulando defaults del tema) */
.view-id-logos.view-display-id-block_1 .views-view-responsive-grid__item {
  border-radius: unset;
  box-shadow: unset;
  background-color: unset;
  height: clamp(100px, 20vw, 122px);

  /* Hover y transición */
  transition: transform 0.35s ease, box-shadow 0.35s ease, background-color 0.35s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  position: relative;
  overflow: hidden;
  will-change: transform, box-shadow;
}

/* GAP configurable */
.view-id-logos.view-display-id-block_1 {
  --gap: 25px;
}

/* Grid → Flexbox para centrar última fila */
.view-id-logos.view-display-id-block_1 .views-view-responsive-grid {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--gap);
  padding: 10px 0;
}

/* Ancho proporcional de cada logo */
.view-id-logos.view-display-id-block_1 .views-view-responsive-grid__item {
  flex: 1 1 calc((100% - (var(--views-responsive-grid--column-count, 4) - 1) * var(--gap)) / var(--views-responsive-grid--column-count, 4)) !important;
  max-width: calc((100% - (var(--views-responsive-grid--column-count, 4) - 1) * var(--gap)) / var(--views-responsive-grid--column-count, 4)) !important;
}

/* ── Efecto shimmer (overlay diagonal en hover) ── */
.view-id-logos.view-display-id-block_1 .views-view-responsive-grid__item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
      rgba(255, 255, 255, 0.0) 0%,
      rgba(255, 255, 255, 0.4) 50%,
      rgba(255, 255, 255, 0.0) 100%);
  opacity: 0;
  transform: translate(-80%, -80%) rotate(5deg);
  transition: all 0.55s ease;
  pointer-events: none;
  z-index: 2;
}

.view-id-logos.view-display-id-block_1 .views-view-responsive-grid__item:hover::before {
  opacity: 1;
  transform: translate(0, 0) rotate(5deg);
}

/* Hover: elevar y escalar ligeramente */
.view-id-logos.view-display-id-block_1 .views-view-responsive-grid__item:hover {
  transform: translateY(-7px) scale(1.03);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.12);
  background-color: #f4f8fd;
}

/* Contenido interno apilado y centrado */
.view-id-logos.view-display-id-block_1 .views-view-responsive-grid__item-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 25px 20px;
  text-align: center;
}

/* Imágenes sin deformación */
.view-id-logos.view-display-id-block_1 .views-field-pb-content-paragraph-in-block img {
  max-width: 120px;
  max-height: 80px;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  transition: transform 0.35s ease;
}

/* Escalar imagen en hover */
.view-id-logos.view-display-id-block_1 .views-view-responsive-grid__item:hover .views-field-pb-content-paragraph-in-block img {
  transform: scale(1.08);
}

/* Texto debajo del logo */
.view-id-logos.view-display-id-block_1 .views-field-info {
  margin-top: 12px;
  width: 100%;
  display: flex;
  justify-content: center;
}

.view-id-logos.view-display-id-block_1 .views-field-info .field-content {
  width: 100%;
  text-align: center !important;
  font-weight: 600;
  font-size: 1.05rem;
  color: #073B5C;
}

/* Posicionamiento relativo para efectos de hover */
.views-view-responsive-grid__item {
  position: relative;
}

/* Imagen: overflow oculto y transición suave */
.views-view-responsive-grid__item .pb__img-wrapper {
  position: relative;
  overflow: hidden;
}

.views-view-responsive-grid__item .pb__img-wrapper img {
  display: block;
  transition: transform 0.4s ease, filter 0.4s ease;
}

/* Hover: escalar y atenuar la imagen */
.views-view-responsive-grid__item:hover .pb__img-wrapper {
  transform: scale(1.06);
}

/* Hover en el texto del logo: fondo azul y texto blanco */
.views-field.views-field-info.text-center {
  transition: all 0.3s ease;
}

.views-field.views-field-info.text-center:hover {
  background-color: #007bc4;
  color: #ffffff;
}

.views-field.views-field-info.text-center:hover a {
  color: #ffffff;
}

/* ── Responsive ── */

/* Tablet (≤1024px): 3 columnas */
@media (max-width: 1024px) {
  .view-id-logos.view-display-id-block_1 {
    --gap: 22px;
  }

  .view-id-logos.view-display-id-block_1 .views-view-responsive-grid__item {
    flex: 1 1 calc((100% / 3) - var(--gap)) !important;
    max-width: calc((100% / 3) - var(--gap)) !important;
  }
}

/* Móvil (≤768px): 2 columnas */
@media (max-width: 768px) {
  .view-id-logos.view-display-id-block_1 {
    --gap: 15px;
  }

  .view-id-logos.view-display-id-block_1 .views-view-responsive-grid__item {
    flex: 1 1 calc((100% / 2) - var(--gap)) !important;
    max-width: calc((100% / 2) - var(--gap)) !important;
  }

  .view-logos {
    padding: 0 !important;
  }
}


/* ============================================================
 * 22) UTILIDADES / BOTÓN GENÉRICO (enlace Ler máis)
 * ============================================================ */

/* Alinear el campo "ver nodo" a la derecha */
.views-field-view-node {
  text-align: right;
}

/* Botón genérico azul redondeado */
.boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 18px;
  height: 28px;
  background-color: #007bc4;
  font-size: 12px;
  color: #ffffff;
  border: none;
  border-radius: 20px;
  cursor: pointer;
  float: right;
  margin-top: 15px;
  margin-bottom: -30px;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.boton:hover {
  background-color: #005a91;
}

.boton:active {
  background-color: #002b4a;
}

/* Grid bundle: alineación normal (no centrada) */
.paragraph--type--grid-bundle .pb__grid-wrapper {
  justify-items: normal;
}

/* ============================================================
 * 23) VISTA NO CENTRO
 * ============================================================ */


/* Texto inferior: transición suave de fondo y color */
.view-id-logos_bloques_centro.view-display-id-block_1 .views-view-responsive-grid__item .views-field.views-field-info.text-center {
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Hover: fondo azul en el bloque de texto */
.view-id-logos_bloques_centro.view-display-id-block_1 .views-view-responsive-grid__item:hover .views-field.views-field-info.text-center {
  background-color: #007bc4;
  color: #ffffff;
}

/* Hover: enlaces en blanco dentro del bloque de texto */
.view-id-logos_bloques_centro.view-display-id-block_1 .views-view-responsive-grid__item:hover .views-field.views-field-info.text-center a {
  color: #ffffff;
}

/* ============================================================
 * 24) PREFOOTER CONTACTO
 * ============================================================ */

.portada-contacto {
  flex: 1 1 auto;
}

/* Contacto: lista de elementos icona + título + descrición. */
.portada-contacto__list {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
}

.portada-contacto__item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 12px 16px;
}

.portada-contacto__icono {
  flex: 0 0 auto;
}

.portada-contacto__icono img,
.portada-contacto__icono svg {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.portada-contacto__content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.portada-contacto__titulo {
  color: var(--portada-text-800);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.4;
}

.portada-contacto__descricion,
.portada-contacto__descricion a {
  color: var(--portada-text-400) !important;
  font-size: 16px;
  line-height: 1.4;
}

.portada-contacto__descricion a:hover {
  color: var(--portada-xunta-default) !important;
}

/* PREFOOTER PARA EL RESTO DE PÁGINAS QUE USAN LOS DATOS DE PORTADA */
.prefooter-contacto {
  background-color: var(--portada-bg-200);
  padding: 32px 0;

  .portada-section__title {
    display: none !important;
  }

  .portada-contacto__list {
    justify-content: start;

    .portada-contacto__item {
      padding: 0;
      flex: 1;
      border-right: 1px solid var(--portada-xunta-25);
    }

    .portada-contacto__item:last-child {
      border-right: none;
    }
  }
}

@media (max-width: 992px) {
  .prefooter-contacto .portada-contacto__list {
    flex-wrap: wrap;
    gap: 16px;
  }

  .prefooter-contacto .portada-contacto__item {
    flex: 1 1 calc(50% - 8px) !important;
    border-right: none !important;
  }
}

@media (max-width: 768px) {
  .portada-contacto__list {
    flex-direction: column;
    gap: 16px;
  }

  .prefooter-contacto .portada-prefooter {
    flex-direction: row;
  }

  .prefooter-contacto .portada-contacto__list .portada-contacto__item {
    border-bottom: 1px solid var(--portada-xunta-25) !important;
    padding-bottom: 16px;
  }

  .prefooter-contacto .portada-contacto__list .portada-contacto__item:last-child {
    border-bottom: none !important;
    padding-bottom: 0;
  }
}

.page-node-type-portada .prefooter-contacto {
  display: none;
}

/* ============================================================
 * 25) PAGINADOR
 * Figma: node 6591:9215
 * ============================================================ */
nav.pager {
  justify-content: end;
}

.pager__items li a {
  border: none !important;
  background: transparent !important;
  color: var(--portada-text-200, #bababa) !important;
  text-decoration: none;
  font-size: 16px;
  text-decoration: none !important;
}

.pager__items li.is-active {
  border-bottom: 3px solid var(--portada-xunta-default);
  border-radius: 0;
}

.pager__items li.is-active a {
  color: var(--portada-text-800, #2d3232) !important;
}

.pager__items li.pager__item--first a,
.pager__items li.pager__item--previous a,
.pager__items li.pager__item--next a,
.pager__items li.pager__item--last a {
  color: var(--portada-text-400, #5f6363) !important;
}

.pager__items li.pager__item--next a {
  display: inline-block;
  width: 20px;
  height: 20px;
  font-size: 0;
  background-image: url("../images/icons/CaretRight.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

.pager__items li.pager__item--next a span {
  display: none;
}

.pager__items li.pager__item--last a {
  display: inline-block;
  width: 20px;
  height: 20px;
  font-size: 0;
  background-image: url("../images/icons/CaretLineRight.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

.pager__items li.pager__item--last a span {
  display: none;
}

.pager__items li.pager__item--previous a {
  display: inline-block;
  width: 20px;
  height: 20px;
  font-size: 0;
  background-image: url("../images/icons/CaretLeft.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

.pager__items li.pager__item--previous a span {
  display: none;
}

.pager__items li.pager__item--first a {
  display: inline-block;
  width: 20px;
  height: 20px;
  font-size: 0;
  background-image: url("../images/icons/CaretLineLeft.svg") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

.pager__items li.pager__item--first a span {
  display: none;
}

.pager__items li a:hover {
  color: var(--portada-text-800, #2d3232) !important;
}

/* ============================================================
 * 26) BREADCRUMB
 * Estilos xenéricos para todas as páxinas interiores
 * ============================================================ */

/* Eliminar fondo do tema base nos ul/li do breadcrumb */
ul.breadcrumb-menu,
ul.breadcrumb-menu li {
  background: transparent !important;
}

.solo__bc-scroll ul.breadcrumb-menu {
  flex-wrap: wrap;
}

/* Contenedor exterior: imaxe de fondo + gradiente azul escuro - IMAGEN POR DEFECTO */
#breadcrumb {
  background: linear-gradient(90deg, #002B4A 20.67%, rgba(0, 123, 196, 0.00) 100%), linear-gradient(0deg, rgba(0, 128, 198, 0.50) 0%, rgba(0, 128, 198, 0.50) 100%), linear-gradient(0deg, rgba(0, 43, 74, 0.50) 0%, rgba(0, 43, 74, 0.50) 100%), url("/sites/default/files/default_images/actualidade.png") lightgray 50% / cover no-repeat;
  background-blend-mode: normal, color, normal, normal;
  padding: 64px 0;
}

/* Imaxe específica para contacto */
.page-node-type-contacto #breadcrumb {
  background: linear-gradient(90deg, #002B4A 20.67%, rgba(0, 123, 196, 0.00) 100%), linear-gradient(0deg, rgba(0, 128, 198, 0.50) 0%, rgba(0, 128, 198, 0.50) 100%), linear-gradient(0deg, rgba(0, 43, 74, 0.50) 0%, rgba(0, 43, 74, 0.50) 100%), url("/sites/default/files/default_images/contacto.png") lightgray 50% / cover no-repeat;
}

/* Imaxe específica para aplicacions e servizos */
.page-node-type-aplicacions-e-servizos #breadcrumb {
  background: linear-gradient(90deg, #002B4A 20.67%, rgba(0, 123, 196, 0.00) 100%), linear-gradient(0deg, rgba(0, 128, 198, 0.50) 0%, rgba(0, 128, 198, 0.50) 100%), linear-gradient(0deg, rgba(0, 43, 74, 0.50) 0%, rgba(0, 43, 74, 0.50) 100%), url("/sites/centros.edu.xunta.gal.curso150/files/2026-08/header-small-dixital-tic.webp") lightgray 50% / cover no-repeat !important;
}

/* Imaxe específica para equipo directivo */
.page-node-type-equipo-directivo #breadcrumb{
  background: linear-gradient(90deg, #002B4A 20.67%, rgba(0, 123, 196, 0.00) 100%), linear-gradient(0deg, rgba(0, 128, 198, 0.50) 0%, rgba(0, 128, 198, 0.50) 100%), linear-gradient(0deg, rgba(0, 43, 74, 0.50) 0%, rgba(0, 43, 74, 0.50) 100%), url("/sites/default/files/default_images/contacto.png") lightgray 50% / cover no-repeat;
}

/* Imaxe específica para Punto Laranxa (webform) */
body.path-webform.page-alias-alumnado-e-familias-puntolaranxa-form div#breadcrumb,
body.path-node-16.page-alias-alumnado-e-familias-puntolaranxa div#breadcrumb {
  background: linear-gradient(90deg, rgba(238, 115, 27, 1) 21%, rgba(238, 115, 27, 0) 100%), linear-gradient(0deg, rgba(238, 115, 27, 0.5) 0%, rgba(238, 115, 27, 0.5) 100%), linear-gradient(0deg, rgba(238, 115, 27, 0.5) 0%, rgba(238, 115, 27, 0.5) 100%), url("/sites/default/files/default_images/cabeceira-punto-laranxa.jpg") lightgray 50% / cover no-repeat !important;
  background-blend-mode: normal, color, normal, normal;
}

body.path-node-59.page-alias-profesorado-comunicacion-de-incidencia-tic div#breadcrumb {
  background: linear-gradient(90deg, #002B4A 20.67%, rgba(0, 123, 196, 0.00) 100%), linear-gradient(0deg, rgba(0, 128, 198, 0.50) 0%, rgba(0, 128, 198, 0.50) 100%), linear-gradient(0deg, rgba(0, 43, 74, 0.50) 0%, rgba(0, 43, 74, 0.50) 100%), url("/sites/centros.edu.xunta.gal.curso150/files/2026-08/header-small-dixital-tic.webp") lightgray 50% / cover no-repeat !important;
}

/* Breadcrumb: texto branco bold 14px */
.breadcrumb-menu a {
  color: #fff !important;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.breadcrumb-menu a:hover {
  color: #fff;
  text-decoration: none;
}

.breadcrumb-title {
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

/* Separador SVG do breadcrumb: fill branco */
.breadcrumb-sep path {
  fill: #fff;
}

/* Icono home do breadcrumb */
.breadcrumb-menu .breadcrumb-home-icon {
  margin-right: 16px;
}

/* Separador: espazado lateral */
.breadcrumb-menu .breadcrumb-sep {
  margin: 0 8px;
}

/* Título da páxina H1: branco, 40px bold */
h1.page-title-text {
  color: #fff;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.5;
  margin: 8px 0 0;
  padding: 0;
}

/* Responsive breadcrumb */
@media (max-width: 992px) {
  #breadcrumb {
    padding: 48px 0;
  }

  #breadcrumb-inner {
    padding: 0 32px;
  }

  h1.page-title-text {
    font-size: 36px;
  }
}

@media (max-width: 768px) {
  #breadcrumb {
    padding: 32px 0;
  }

  #breadcrumb-inner {
    padding: 0 20px;
  }

  h1.page-title-text {
    font-size: 32px;
  }
}

@media (max-width: 576px) {
  #breadcrumb {
    padding: 24px 0;
  }

  #breadcrumb-inner {
    padding: 0 16px;
  }

  h1.page-title-text {
    font-size: 26px;
  }
}

/* ============================================================
 * 27) MARGINS Y PADDING .node__content
 * Estilos xenéricos para todas as páxinas interiores
 * ============================================================ */

[class*="node__content"]:not(.node__content--portada) {
  margin: 64px 0;
}

@media (max-width: 992px) {
  [class*="node__content"]:not(.node__content--portada) {
    margin: 48px 0;
  }
}

@media (max-width: 768px) {
  [class*="node__content"]:not(.node__content--portada) {
    margin: 32px 0;
  }
}

@media (max-width: 576px) {
  [class*="node__content"]:not(.node__content--portada) {
    margin: 24px 0;
  }
}


.aviso-categoria {
  display: inline-block;
  padding: 2px 7.8px;
  font-size: 12px;
  font-weight: 700;
  color: #FAD9D9;
  background-color: #FAD9D9;
  border-radius: 4px;
  text-decoration: none;
}

/* 22 - Importante*/
.aviso-categoria.aviso-categoria--22 {
  color: #E64343;
  background-color: #FAD9D9;
}

/* 23 - Prazo aberto*/
.aviso-categoria.aviso-categoria--23 {
  color: #BD7905;
  background-color: #FAD9D9;
}

/* 24 - Prazo pechado */
.aviso-categoria.aviso-categoria--24 {
  color: #8B5E3C;
  background-color: #FBE8C9;
}

/* 27 - Información*/
.aviso-categoria.aviso-categoria--27 {
  color: #007BC4;
  background-color: #E5F1F8;
}

/* ==========================================================================
   Nodo: Avisos
   Figma: node 6517:23568
   ========================================================================== */

/* Filtros listado */
.view-avisos.view-display-id-page_1 .attachment .views-view-responsive-grid .views-view-responsive-grid__item div {
  display: flex;
  flex-direction: row;
  gap: 8px;
}

.view-avisos.view-display-id-page_1 .attachment .views-view-responsive-grid .views-view-responsive-grid__item {
  width: fit-content !important;
  border: 1px solid var(--portada-xunta-default, #007bc4) !important;
  border-radius: 4px !important;
}
.view-avisos.view-display-id-page_1 .attachment .views-view-responsive-grid .views-view-responsive-grid__item:hover {
  border: 1px solid var(--portada-xunta-dark, #007bc4) !important;
}
.view-avisos.view-display-id-page_1 .views-field-field-categoria-aviso-1 {
  color: var(--portada-xunta-default, #007bc4);
}

.view-avisos.view-display-id-page_1 .attachment .views-view-responsive-grid .views-view-responsive-grid__item .views-field-field-categoria-aviso-1::before {
  content: '(';
  margin-right: -7px;
}

.view-avisos.view-display-id-page_1 .attachment .views-view-responsive-grid .views-view-responsive-grid__item .views-field-field-categoria-aviso-1::after {
  content: ')';
  margin-left: -6px;
}




/* Tooltip */
.fullcalendar-day-tooltip {
  position: absolute;
  z-index: 9999;
  width: auto;
  max-width: 250px;
  padding: 4px 15px;
  background: #2D3232;
  border: 1px solid #2D3232;
  border-radius: 6px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
  opacity: 0;
  visibility: hidden;
  transform: translateY(5px);
  transition: opacity 0.15s ease, transform 0.15s ease;
  pointer-events: none;
}

/* Mostrar tooltip */
.fullcalendar-day-tooltip.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Flecha */
.fullcalendar-day-tooltip::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 50%;
  width: 14px;
  height: 14px;
  background: #2D3232;
  border-right: 1px solid #2D3232;
  border-bottom: 1px solid #2D3232;
  transform: translateX(-50%) rotate(45deg);
}

/* Fila de cada evento */
.fullcalendar-day-tooltip__event {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 10px;
}

/* Separación entre eventos */
.fullcalendar-day-tooltip__event+.fullcalendar-day-tooltip__event {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #2D3232;
}

/* Fecha */
.fullcalendar-day-tooltip__date {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  color: #fff;
}

/* Título */
.fullcalendar-day-tooltip__title {
  color: #fff;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  line-height: 1.4;
}

.fc-title {
  color: #fff;
}

.fc-title:hover {
  color: #fff;
}

.fc-title:focus {
  color: #fff;
}



#primary-sidebar-menu {
  z-index: -100 !important;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  position: fixed !important;
  overflow: auto;
  top: 112px;
  left: 0px;
  right: 0px;
  min-width: inherit;
  max-width: inherit;
  width: 100% !important;
  max-width: 100% !important;
  min-width: inherit !important;
  height: auto;
  min-height: auto;
  transform: translateY(-112px) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition:
    transform .35s ease,
    opacity .35s ease,
    visibility .35s;
}

#primary-sidebar-menu.toggled {
  z-index: 1001 !important;
  transform: translateY(0) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

#primary-sidebar-menu.scrolling {
  top: 90px !important;
}

#primary-sidebar-menu-inner {
  width: 1280px !important;
  margin: 0 auto;
  height: auto !important;
  max-height: calc(100vh - 120px) !important;
  padding-bottom: 20px;
  padding-top: 20px;
}

#sidebar-button-close {
  justify-content: flex-end;
}

ul#superfish-main {
  padding: 0px !important;
}

div.js-form-type-search {
  padding: 0px 16px !important
}
.page-alias-search-node #block-solo-amtega-content .item-list:not(:has(.node_search-results)){
  padding: 0 16px;
}
.page-alias-search-node #block-solo-amtega-content h2{
  padding: 0 16px;
}

/* xs */
@media (max-width: 767.98px) {

  #primary-sidebar-menu {
    top: 86px !important;
    width: 100% !important;
  }

  #primary-sidebar-menu-inner {
    width: 100% !important;
    margin: 0 auto;
    height: auto !important;
    max-height: calc(100vh - 120px) !important;
    padding-bottom: 20px;
  }
}


ol.node_search-results {
  min-height: 30vh;
}



form.search-form .button--primary {
  background-color: rgb(0, 123, 196);
  font-size: 18px;
  color: rgb(255, 255, 255);
  transition: background-color 0.3s;
  border: 0px;
}

form.search-form .button--primary:hover,
form.search-form .button--primary:focus {
  background-color: #002b4a;
  color: #fff;
}




div.fc-view-container {
  display: flex;
  flex-wrap: wrap;
}

div.portada-calendario-legend {
  order: 2;
}

div.fc-view {
  order: 1;
}


.fc-day-top.fc-day-non-lectivo {
  position: relative;
}

.fc-day-top.fc-day-non-lectivo .fc-day-number {
  position: relative;
  color: inherit;
}

.fc-day-top.fc-day-non-lectivo .fc-day-number::after {
  content: "";
  position: absolute;
  left: 5px;
  right: 5px;
  top: 110%;
  height: 2px;
  background: #ee731b;
  pointer-events: none;
}

.portada-calendario .js-drupal-fullcalendar[data-calendar-display="block_1"] .fc-dayGridMonth-view td.fc-event-container.fc-event-single-non-lectivo::after { display: none; }

.webform-access-denied{
  padding: 0 16px;
}

