/* Overrides D11 — gaps de CSS de módulos D7 que prod agrega y aquí no cargamos. */

/* Delta BS5→BS3: BS5 subratlla els links per defecte (BS3/prod NO). Match prod. */
a {
  text-decoration: none;
}
a:hover {
  text-decoration: none;
}

/* ===== CAPA COMPAT BS3 (reboot) =====
   responsiu.css es va escriure per al reboot de BS3. BS5 canvia line-height (1.5),
   marges de p (1rem) i headings (mt:0, font-sizes rem) → el text flueix diferent i
   l'offset s'acumula. Restaurem els valors de BS3 (= prod) perquè responsiu.css encaixi. */
body {
  line-height: 1.428571429; /* BS3: 20px @ 14px */
}
p {
  margin: 0 0 10px;
}
h1, h2, h3, h4, h5, h6 {
  margin-top: 20px;
  margin-bottom: 10px;
  line-height: 1.1;
  font-weight: 500;
}
h1 { font-size: 36px; }
h2 { font-size: 30px; }
h3 { font-size: 24px; }
h4 { font-size: 18px; }
h5 { font-size: 14px; }
h6 { font-size: 12px; }

/* Gutters BS3 (30px) — BS5 usa 24px → columnes desplaçades 3px → header/text desalineats.
   responsiu.css i el layout D7 assumeixen els 15px de padding de BS3. */
.container {
  padding-left: 15px;
  padding-right: 15px;
}
.row {
  --bs-gutter-x: 30px;
  margin-left: -15px;
  margin-right: -15px;
}
.row > [class*="col-"] {
  padding-left: 15px;
  padding-right: 15px;
}
/* BS5 pad TOTS els fills de .row (.row > *); BS3 només .col-* → treure padding als no-col
   (ex. #header-centrescivics-menubar) perquè el menú tingui l'amplada completa i no s'ajusti a 2 files. */
.row > :not([class*="col-"]) {
  padding-left: 0;
  padding-right: 0;
}

/* Slider: margin-bottom del #slider = 10px com prod (nivo-slider.css el posa a 50px → +40px offset). */
#slider.nivoSlider {
  margin-bottom: 10px;
}

/* Skip-link "Vés al contingut" oculto (com prod). El core el mostra si el tema no l'amaga. */
.skip-link,
a[href="#main-content"],
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.skip-link:focus,
a[href="#main-content"]:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  clip: auto !important;
}

/* nice_menus: contener el float del ul#nice-menu-1 (nice_menus.css lo hace en prod; aquí no lo cargamos).
   Sin esto el wrapper #header-centrescivics-menubar colapsa a h=0 y descuadra el layout. */
#header-centrescivics-menubar,
#header-centrescivics-menubar-centre,
.region-menu-bar,
#block-nice-menus-1 {
  overflow: hidden;
}

/* Calendar module: la tabla mini debe ocupar el ancho de la columna (prod ~340px, width:100%). */
#block-views-calendari-block-1 .view-content table.mini {
  width: 100%;
  border-collapse: collapse;
}

/* Calendar header (mes/any) centrat com prod. */
#block-views-calendari-block-1 .date-heading .date-heading-title {
  display: block;
  text-align: center;
}

/* Calendar header: prev/next absolutos (izq/dcha) + heading centrado = barra única 45px (com prod).
   Sin el CSS del mòdul calendar, el pager s'apila → header 86px → descuadra la taula. */
#block-views-calendari-block-1 .date-nav-wrapper,
#block-views-calendari-block-1 .date-nav {
  position: relative;
}
#block-views-calendari-block-1 .date-nav .date-heading {
  text-align: center;
}
#block-views-calendari-block-1 .date-nav ul.pager {
  margin: 0;
  padding: 0;
  list-style: none;
}
#block-views-calendari-block-1 .date-nav ul.pager > li {
  list-style: none;
}
#block-views-calendari-block-1 .date-nav .date-prev {
  position: absolute;
  left: 0;
  top: 0;
}
#block-views-calendari-block-1 .date-nav .date-next {
  position: absolute;
  right: 0;
  top: 0;
}

/* Calendar cell: .calendar-empty col·lapsat (prod=1px; el nostre &nbsp; feia 2a línia → celda 57px vs 38px). */
#block-views-calendari-block-1 .calendar-empty {
  height: 1px;
  line-height: 1px;
  font-size: 1px;
  overflow: hidden;
}

/* Accessibilitat */
.cookies-table {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) minmax(100px, auto) 3fr;
    width: 100%;
}
.cookies-table__caption {
    grid-column: 1 / -1;
    font-weight: bold;
    padding: 8px 0;
}
.cookies-table__row {
    display: contents;
}
.cookies-table__cell {
    display: block;
    min-width: 0;
    overflow-wrap: break-word;
    word-break: break-word;
    padding: 8px;
    border-bottom: 1px solid #ccc;
}
.cookies-table__row--header .cookies-table__cell {
    font-weight: bold;
}
.cookies-table__cell--group {
    grid-column: 1 / -1;
    font-weight: bold;
    background-color: #f0f0f0;
}
.container-fluid.container-footer {
  margin-top: auto;
}

/* Botó SSO */
.page-route-user-login .container:has(#openid-connect-login-form) {
  margin: auto;
}
.page-route-user-login #edit-openid-connect-client-keycloak-login {
  background-color: #6E2745;
  border-color: transparent;
}