@charset "UTF-8";
/* =================================================================
   RCH Web -- global.css
   Ported from legacy Sitio Web estilos.css to modern CSS.
   - owl-carousel  -> CSS scroll-snap carousel
   - fancybox      -> native <dialog> lightbox
   - Vendor prefixes removed where no longer needed (2024+ browsers)
   ================================================================= */

/* -----------------------------------------------------------------
   0. GOOGLE FONTS IMPORT
   ----------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Roboto+Condensed:wght@700&display=swap');

/* -----------------------------------------------------------------
   1. CSS CUSTOM PROPERTIES
   ----------------------------------------------------------------- */
:root {
  --azul:    #0079B9;
  --verde:   #00935C;
  --violeta: #8185E6;

  --azul-dark:    #006098;
  --verde-dark:   #007A4E;
  --violeta-dark: #6568B4;

  --celeste: #49B3FF;
  --azul-hover: #2999ED;

  --font-body:    'Lato', sans-serif;
  --font-heading: 'Roboto Condensed', sans-serif;

  --max-width: 1200px;
  --header-h-mobile: 64px;
  --header-h-desktop: 90px;

  --shadow-header: 0 2px 5px rgba(0,0,0,0.15);
}

/* -----------------------------------------------------------------
   1. CSS RESET (from legacy)
   ----------------------------------------------------------------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: top;
  background: transparent;
}

body {
  font-size: 16px;
  line-height: 1;
  color: #000;
  font-family: var(--font-body);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

ol, ul { list-style: none; }
blockquote, q { quotes: none; }
:focus { outline: 0; }
table { border-collapse: collapse; border-spacing: 0; }
a img { border: none; }
* { margin: 0; }

a:link, a:visited, a:hover, a:active {
  color: #333;
  text-decoration: none;
}

*, *::after, *::before { box-sizing: border-box; }
input, select { border-radius: 0; }
html { -webkit-text-size-adjust: 100%; }

.clear { clear: both; display: block; }
.last  { margin-right: 0 !important; }

.clearfix::after {
  content: "";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}


/* -----------------------------------------------------------------
   2. GENERAL
   ----------------------------------------------------------------- */
.wrapper {
  width: 100%;
  max-width: var(--max-width);
  display: block;
  padding: 0 1em;
  margin: auto;
  position: relative;
}

main .contenido { padding-top: 3em; }

header, main, footer { font-size: 0.8em; }

@media only screen and (min-width: 480px) {
  header, main, footer { font-size: 0.85em; }
}
@media only screen and (min-width: 768px) {
  header, main, footer { font-size: 1em; }
}


/* -----------------------------------------------------------------
   3. GRADIENT UTILITY
   ----------------------------------------------------------------- */
.gradient {
  background: linear-gradient(to right, var(--azul) 0%, var(--verde) 50%, var(--violeta) 100%);
}

.btn-big {
  font-family: var(--font-heading);
  color: #FFF !important;
  text-transform: uppercase;
  display: block;
  font-size: 1.2em;
  line-height: 1.2em;
  padding: 0.5em;
  text-align: center;
  background: linear-gradient(to right, var(--violeta) 0%, var(--violeta) 5%, var(--celeste) 95%, var(--celeste) 100%);
}


/* -----------------------------------------------------------------
   4. YOUTUBE EMBED RESPONSIVE
   ----------------------------------------------------------------- */
.embed-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;
  margin: 2em 0;
}

.embed-container iframe,
.embed-container object,
.embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


/* -----------------------------------------------------------------
   5. HEADER
   ----------------------------------------------------------------- */

/* -- Fixed top container ----------------------------------------- */
.top {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 15;
}
.scrolled .top { position: fixed; }
.not-fixed .top { position: relative; }

/* -- Fixtures toggle bar ----------------------------------------- */
.show-fixtures .top-fixtures { display: block; }
.top-fixtures {
  width: 100%;
  height: 85px;
  display: none;
  position: relative;
  z-index: -10;
}

/* -- Top banners ------------------------------------------------- */
.top-banners { background: #222; }
.top-banners .d { display: none; }
.top-banners img {
  display: block;
  width: 100%;
  height: auto;
  margin: auto;
  max-width: 1068px;
}

@media (min-width: 600px) {
  .top-banners .m { display: none; }
  .top-banners .d { display: block; }
}

/* -- Header bar -------------------------------------------------- */
header {
  height: var(--header-h-mobile);
  width: 100%;
  box-shadow: var(--shadow-header);
}

header .contenido { background: #FFF; }
header .wrapper   { height: 60px; }

header h1 {
  width: 76px;
  height: 50px;
  background: url("../images/logo-rch30.gif") no-repeat;
  background-size: 100% 100%;
  position: relative;
  top: 3px;
  margin: auto;
}
header h1 a {
  display: block;
  width: 100%;
  height: 100%;
  text-indent: -9999px;
}

header .gradient {
  height: 4px;
  opacity: 0.6;
}

/* -- Hamburger toggle -------------------------------------------- */
header .menutoggle {
  display: block;
  position: absolute;
  top: 10px;
  right: 10px;
  overflow: hidden;
  width: 40px;
  height: 40px;
  font-size: 0;
  text-indent: -9999px;
  cursor: pointer;
  transition: background 0.3s;
}
header .menutoggle span {
  display: block;
  position: absolute;
  top: 18px;
  left: 7px;
  right: 7px;
  height: 4px;
  border-radius: 4px;
  background: var(--azul);
  transition: background 0s 0.3s;
}
header .menutoggle span::before,
header .menutoggle span::after {
  position: absolute;
  display: block;
  left: 0;
  width: 100%;
  height: 4px;
  border-radius: 4px;
  background: var(--azul);
  content: "";
  transition-duration: 0.3s, 0.3s;
  transition-delay: 0.3s, 0s;
}
header .menutoggle span::before {
  top: -10px;
  transition-property: top, transform;
}
header .menutoggle span::after {
  bottom: -10px;
  transition-property: bottom, transform;
}

/* Animated X state */
.show-menu header .menutoggle { background-color: var(--azul-hover); }
.show-menu header .menutoggle span { background: none; }
.show-menu header .menutoggle span::before {
  top: 0;
  transform: rotate(45deg);
}
.show-menu header .menutoggle span::after {
  bottom: 0;
  transform: rotate(-45deg);
}
.show-menu header .menutoggle span::before,
.show-menu header .menutoggle span::after {
  transition-delay: 0s, 0.3s;
  background: #FFF;
}

/* -- Fixtures toggle button -------------------------------------- */
header .fixturestoggle {
  position: absolute;
  top: 0;
  left: 1em;
  width: 50px;
  height: 19px;
  background: url("../images/fixturestoggle.png") no-repeat;
  background-size: 100% 200%;
  background-position: 0 100%;
  text-indent: -9999px;
}
.show-fixtures header .fixturestoggle {
  background-position: 0 0;
  top: -19px;
}

/* -- Overlay for mobile menu ------------------------------------- */
.overbody {
  z-index: 100;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.3);
}

/* -- Date display ------------------------------------------------ */
.menu-fecha {
  color: rgba(255,255,255,0.7);
  border-top: 1px solid rgba(255,255,255,0.3);
  font-size: 0.8em;
  padding-top: 1em;
  margin-top: 1em;
}

/* -- Desktop header ---------------------------------------------- */
@media (min-width: 768px) {
  header {
    height: var(--header-h-desktop);
    box-shadow: none;
    position: relative;
    z-index: 15;
  }
  header .wrapper { height: 90px; }
  header, header .wrapper {
    transition: all 0.3s ease;
  }
  header h1 {
    width: 150px;
    height: 98px;
    position: absolute;
    left: 0.5em;
    top: 10px;
    margin: 0;
    transition: all 0.3s ease;
  }
  header .gradient { display: none; }
  header .menutoggle { display: none; }

  .menu-wrap {
    height: 30px;
    width: 100%;
    z-index: 10;
    transition: all 0.3s ease;
  }
  header .fixturestoggle {
    left: 50%;
    width: 40px;
    height: 15px;
    margin-left: -20px;
  }
  .show-fixtures header .fixturestoggle { top: -15px; }

  .menu-fecha {
    color: #666;
    position: absolute;
    right: 180px;
    top: 5px;
    border: none;
    padding: 0;
    margin: 0;
    text-align: right;
    width: 220px;
  }
}


/* -----------------------------------------------------------------
   6. MENU
   ----------------------------------------------------------------- */
.menu-mobile  { display: block; }
.menu-desktop { display: none; }
.menu-row     { display: none; }

.menu-link {
  font-family: var(--font-heading);
  color: #FFF !important;
  text-transform: uppercase;
  font-size: 1.1rem;
  position: relative;
}
.menu-link .fa {
  font-size: 0.8em;
  display: block;
  color: rgba(255,255,255,0.5);
}
.menu-link .fa-chevron::before { content: "\f078"; }
.menu-item.loc .menu-link { background: var(--azul); }
.menu-item.int .menu-link { background: var(--verde); }
.menu-item.active .menu-link .fa-chevron::before {
  content: "\f077";
  color: #FFF;
}

/* Sub-items */
.menu-subitem { display: none; padding: 1em; }
.menu-subitem .listado ul { padding-top: 1em; }
.menu-subitem .listado > ul { font-size: 0.9em; line-height: 1.1em; }
.menu-subitem .listado > ul > li { margin-bottom: 1em; }
.menu-subitem .listado > ul > li ul li ul { padding: 0.5em 0 0 0; }
.menu-subitem .listado > ul > li ul li { font-size: 0.9em; margin-bottom: 0.5em; }
.menu-subitem .listado > ul > li ul li ul li a { position: relative; padding-left: 16px; }
.menu-subitem .listado > ul > li ul li ul li a::before {
  border-top: 3px solid transparent;
  border-left: 3px solid rgba(255,255,255,0.6);
  border-bottom: 3px solid transparent;
  position: absolute;
  left: 8px;
  top: 7px;
  content: "";
}
.menu-subitem .listado > ul > li > a { font-weight: 700; }
.menu-subitem .listado > ul > li > span { color: #FFF; font-weight: 700; }
.menu-subitem a, .menu-subitem span { color: #FFF; line-height: 1.2em; }

.menu-item.loc .menu-subitem {
  background: linear-gradient(to right, rgba(0,121,185,0.9) 0%, rgba(0,121,185,0.3) 100%);
}
.menu-item.int .menu-subitem {
  background: linear-gradient(to right, rgba(0,147,92,0.9) 0%, rgba(0,147,92,0.3) 100%);
}

/* -- Mobile slide-out menu --------------------------------------- */
@media (max-width: 767px) {
  .menu-wrap {
    position: fixed;
    z-index: 2000;
    top: 0;
    width: 300px;
    height: 100%;
    background: rgba(0,0,0,0.9);
    transform: translate3d(-310px, 0, 0);
    transition: transform 0.4s cubic-bezier(0.7, 0, 0.3, 1);
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .show-menu .menu-wrap {
    transform: translate3d(0, 0, 0);
    transition: transform 0.8s cubic-bezier(0.7, 0, 0.3, 1);
    box-shadow: 0 3px 5px rgba(0,0,0,0.5);
  }
  .menu-wrap .menu-container { flex: 1; overflow: auto; }
  .menu-wrap .gradient { height: 4px; }
  .menu-subitem .wrapper { padding: 0; }
  .menu-container .menu-link {
    font-size: 1em;
    display: block;
    padding: 0.75em 1em;
  }
  .menu-container .menu-link .fa {
    float: right;
    pointer-events: none;
  }
}

/* -- Desktop horizontal bar -------------------------------------- */
@media (min-width: 768px) {
  .menu-mobile  { display: none; }
  .menu-desktop { display: inline-block; margin-left: -100px; }

  .menu-wrap .blanco {
    background: #FFF;
    height: 30px;
    position: absolute;
    top: 0;
    left: 0;
  }
  .menu-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
  }

  /* Menu row (violet gradient bar) */
  .menu-row {
    position: relative;
    display: block;
    background: linear-gradient(to right, var(--violeta) 0%, var(--violeta) 60%, rgba(129,133,230,0) 100%);
    font-size: 0;
  }
  .menu-row .wrapper {
    height: 30px;
    transition: all 0.3s ease;
    position: static;
  }
  .menu-row .logo-back {
    width: 210px;
    height: 30px;
    background: url("../images/head-logo-back.png") no-repeat;
    background-position: top right;
    z-index: 10;
    transition: all 0.3s ease;
    position: relative;
    display: inline-block;
  }

  .menu-row .menu-item { display: inline-block; }
  .menu-row .menu-link {
    font-size: 1.1rem;
    line-height: 30px;
    height: 30px;
    display: block;
    padding: 0 1.5em;
  }

  /* Triangular notch after loc / int menu items */
  .menu-row .menu-item.loc .menu-link::after,
  .menu-row .menu-item.int .menu-link::after {
    content: "";
    position: absolute;
    left: 100%;
    top: 0;
    width: 0;
    height: 0;
    border-top: 1.7em solid #CCC;
    border-right: 0.9em solid transparent;
    z-index: 5;
  }
  .menu-row .menu-item.loc .menu-link::after { border-top-color: var(--azul); }
  .menu-row .menu-item.int .menu-link::after { border-top-color: var(--verde); }
  .menu-row .menu-link .fa { position: absolute; right: 5px; top: 7px; }
  .menu-row .menu-item.loc .menu-link { padding-left: 80px; }

  /* Mega dropdown */
  .menu-subitem {
    font-size: 1rem;
    position: absolute;
    top: 30px;
    left: 0;
    width: 100%;
    padding: 0 1em;
    min-height: 310px;
  }
  .menu-subitem .back {
    background: url("../images/menu-subitem-logoback.png") no-repeat;
    position: absolute;
    top: 0;
    left: 0;
    width: 158px;
    height: 310px;
  }
  .menu-subitem .logo {
    position: absolute;
    top: 30px;
    left: 34px;
    width: 90px;
  }
  .menu-row .menu-item.loc .menu-subitem .logo {
    background: url("../images/menu-subitem-logoloc.png") no-repeat;
    height: 99px;
  }
  .menu-row .menu-item.int .menu-subitem .logo {
    background: url("../images/menu-subitem-logoint.png") no-repeat;
    height: 153px;
  }
  .menu-subitem .wrapper {
    position: relative !important;
    height: auto;
    padding-left: 180px;
  }
  .menu-subitem .listado > ul > li > span { padding: 3px 8px; }
  .menu-subitem .listado {
    display: flex;
    max-width: 700px;
  }
  .menu-subitem .listado > ul {
    padding: 2em 1em 0 0;
    flex: 1;
  }
  .menu-subitem .listado > ul > li ul li { margin: 0; }
  .menu-subitem .listado > ul > li ul li ul { padding: 0; }
  .menu-subitem .listado ul a,
  .menu-subitem .listado ul span {
    display: block;
    padding: 3px 8px;
  }
  .menu-subitem .listado ul a:hover { background: rgba(255,255,255,0.2); }

  .menu-item.loc .menu-subitem {
    background: linear-gradient(to right, var(--azul) 0%, rgba(0,121,185,0.65) 85%, rgba(0,121,185,0.2) 100%);
  }
  .menu-item.int .menu-subitem {
    background: linear-gradient(to right, var(--verde) 0%, rgba(0,147,92,0.65) 85%, rgba(0,147,92,0.2) 100%);
  }
}

@media (min-width: 1000px) {
  .menu-row .menu-link { padding: 0 2em; }
}

/* -- Mini (scrolled) desktop header ------------------------------ */
.mini.d .extra-links .social,
.mini.d .fixturestoggle,
.mini.d .menu-fecha { display: none; }
.mini.d header,
.mini.d header .wrapper { height: 35px; }
.mini.d header h1 { width: 84px; height: 55px; top: 5px; }
.mini.d .extra-links .rch-links { top: 0; }
.mini.d .extras-desktop { top: 10px; }
.mini.d .menu-wrap {
  top: 35px;
  box-shadow: 0 1px 5px rgba(0,0,0,0.1);
}
.mini.d .menu-row .logo-back { width: 170px; }


/* -----------------------------------------------------------------
   7. SEARCH FORM
   ----------------------------------------------------------------- */
.search-mobile  { display: block; }
.search-desktop { display: none; }

.search-form {
  padding: 1em;
  height: 60px;
  background: linear-gradient(to right, #CCC 0%, #EFEFEF 100%);
}
.search-form .fields {
  height: 30px;
  display: flex;
  flex-direction: row;
}
.search-form input {
  flex: 1;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 0.8em;
  height: 100%;
  -webkit-appearance: none;
  border: none;
  padding: 0 1em;
  border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  color: #333;
}
.search-form button {
  width: 40px;
  border: 0;
  background: #666;
  color: #FFF;
  cursor: pointer;
  font-size: 1em;
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}

@media (min-width: 768px) {
  .search-mobile  { display: none; }
  .search-desktop {
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    height: 30px;
    padding: 4px 1em 0 0;
    font-size: 1rem;
  }
  .search-form {
    height: 22px;
    padding: 0;
    background: none;
  }
  .search-form .fields { height: 22px; }
  .search-form button  { width: 30px; }
  .search-form input   { max-width: 130px; font-size: 0.7em; padding: 0 0.5em; }
}

@media (min-width: 840px) {
  .search-form input { max-width: 220px; padding: 0 0.75em; }
}


/* -----------------------------------------------------------------
   8. EXTRA LINKS (social, RCH links)
   ----------------------------------------------------------------- */
.extras-mobile  { display: block; }
.extras-desktop { display: none; }

.extra-links {
  padding: 1em;
  display: flex;
  flex-direction: column-reverse;
}
.extra-links .rch-links { margin-bottom: 1em; }
.extra-links .rch-links li { margin-bottom: 1px; }
.extra-links .rch-links li a {
  background: rgba(255,255,255,0.2);
  color: #EEE;
  display: block;
  font-size: 0.8em;
  padding: 0.6em;
}
.extra-links .rch-links li.japon2019 a { background: #ED2737; color: #FFF; }
.extra-links .rch-links li.old { margin-top: 1em; }
.extra-links .rch-links li.old a { background: rgba(129,132,230,0.5); color: #EEE; }

.extra-links .social { display: flex; justify-content: space-between; }
.extra-links .social li a { color: rgba(255,255,255,0.6); font-size: 1.2em; }

@media (min-width: 768px) {
  .extras-mobile  { display: none; }
  .extras-desktop {
    display: block;
    position: absolute;
    top: 20px;
    right: 1em;
  }
  .extra-links { padding: 0; flex-direction: column; position: relative; }

  .extra-links .social {
    justify-content: flex-end;
    padding-bottom: 0.4em;
    margin-bottom: 0.4em;
    border-bottom: 1px solid #EFEFEF;
  }
  .extra-links .social li { font-size: 0.9em; margin-left: 1em; }
  .extra-links .social li:first-child { margin-left: 0; }
  .extra-links .social li a { color: #CBCBCB; }
  .extra-links .social li a:hover { color: #AAA; }

  .extra-links .rch-links {
    margin: 0;
    position: absolute;
    top: 32px;
    right: 0;
    width: 600px;
    text-align: right;
    transition: all 0.3s ease;
  }
  .extra-links .rch-links li {
    margin: 0 0 0 0.5em;
    display: inline-block;
  }
  .extra-links .rch-links li:nth-child(2) { opacity: 0.9; }
  .extra-links .rch-links li:nth-child(3) { opacity: 0.85; }
  .extra-links .rch-links li:nth-child(4) { opacity: 0.8; }
  .extra-links .rch-links li:nth-child(5) { opacity: 0.75; }
  .extra-links .rch-links li:nth-child(6) { opacity: 0.7; }
  .extra-links .rch-links li a {
    position: relative;
    background: #777;
    font-size: 0.7em;
    color: #FFF;
    padding: 0.3em 0.3em 0.4em;
  }
  .extra-links .rch-links li a::before {
    content: "";
    position: absolute;
    right: 100%;
    top: 0;
    width: 0;
    height: 0;
    border-bottom: 1.7em solid #777;
    border-left: 0.8em solid transparent;
  }
  .extra-links .rch-links li a::after {
    content: "";
    position: absolute;
    left: 100%;
    top: 0;
    width: 0;
    height: 0;
    border-top: 1.7em solid #777;
    border-right: 0.8em solid transparent;
  }
  .extra-links .rch-links li a:hover { background: var(--violeta); }
  .extra-links .rch-links li a:hover::before { border-bottom-color: var(--violeta); }
  .extra-links .rch-links li a:hover::after  { border-top-color: var(--violeta); }

  .extra-links .rch-links li.japon2019 { display: none; }
  .extra-links .rch-links li.old { margin: 0 0 0 0.5em; }
  .extra-links .rch-links li.old a { background: var(--violeta); }
  .extra-links .rch-links li.old a::before { border-bottom-color: var(--violeta); }
  .extra-links .rch-links li.old a::after  { border-top-color: var(--violeta); display: none; }
  .extra-links .rch-links li.old a:hover { background: #6366B4; }
  .extra-links .rch-links li.old a:hover::before { border-bottom-color: #6366B4; }
  .extra-links .rch-links li.old a:hover::after  { border-top-color: #6366B4; }

  .extra-links .rch-links li a span { display: none; }
}

@media (min-width: 900px) {
  .extra-links .rch-links { width: 760px; }
  .extra-links .rch-links li a { padding: 0.3em 0.6em 0.4em; }
  .extra-links .rch-links li.japon2019 { display: inline-block; }
  .extra-links .rch-links li.japon2019 a::before { border-bottom-color: #ED2737; }
  .extra-links .rch-links li.japon2019 a::after  { display: none; }
  .extra-links .rch-links li.japon2019 a:hover { background: #BD1E2C; }
  .extra-links .rch-links li.japon2019 a:hover::before { border-bottom-color: #BD1E2C; }
}

@media (min-width: 1000px) {
  .extra-links .rch-links { width: 800px; }
  .extra-links .rch-links li a span { display: inline; }
}


/* -----------------------------------------------------------------
   9. MAIN CONTENT (article + aside)
   ----------------------------------------------------------------- */
main { margin-top: -4px; margin-bottom: 2em; }
main .contenido { display: flex; flex-direction: column; }
article { width: 100%; margin-bottom: 3em; }
aside   { width: 100%; max-width: 320px; margin: auto; }

aside audio { width: 100%; height: 30px; margin-bottom: 0.2em; }
aside .note { font-size: 0.7em; margin-bottom: 2em; text-align: center; color: #666; }

.text-box {
  background: #F5F5F5;
  margin-bottom: 2em;
  text-transform: uppercase;
  font-size: 0.7em;
  line-height: 1.5em;
  padding: 1em;
}

@media (min-width: 768px) {
  main { margin-top: -30px; }
  main .contenido { flex-direction: row; }
  article { flex: 2; margin: 0 1em 0 0; }
  aside   { flex: 1; min-width: 0; max-width: none; margin: 0; }
}

@media (min-width: 1000px) {
  article { flex: 3; }
}


/* -----------------------------------------------------------------
   10. NEWS GRID (#news)
   ----------------------------------------------------------------- */
#news {
  max-width: 360px;
  font-size: 0;
  margin: 0 auto 1rem;
}
#news .news-item {
  font-size: 1rem;
  display: inline-block;
  margin-bottom: 1em;
}
#news .news-item a {
  display: block;
  background: #F8F8F8;
  padding-bottom: 2em;
  position: relative;
}
#news .news-item .head { position: relative; margin-bottom: 0.5em; }

/* Date ribbon */
#news .news-item time {
  position: absolute;
  background: var(--violeta);
  color: #FFF;
  font-size: 0.7em;
  padding: 0.4em 1em;
  left: -3px;
  bottom: -0.7em;
}
#news .news-item time::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0;
  width: 0;
  height: 0;
  border-top: 1.8em solid var(--violeta);
  border-right: 0.9em solid transparent;
}

#news .news-item img { width: 100%; height: auto; }
#news .news-item .txt { padding: 1em; }
#news .news-item h3,
#news .news-item h4 {
  font-family: var(--font-heading);
  text-transform: uppercase;
}
#news .news-item h3 { font-size: 1.1em; line-height: 1.1em; margin-bottom: 0.5em; }
#news .news-item h4 { font-size: 0.8em; margin-bottom: 0.3em; color: var(--azul); }
#news .news-item p {
  font-size: 0.8em;
  line-height: 1.2em;
  margin-bottom: 1em;
  position: relative;
  width: 100%;
  max-height: 3.6em;
  overflow: hidden;
}
#news .news-item ul li { display: inline-block; margin: 0 0.2em 0.3em 0; }
#news .news-item ul li span {
  display: block;
  font-size: 0.7em;
  color: #666;
  background: #EFEFEF;
  padding: 0.3em 1em 0.5em;
  border-radius: 1em;
}

/* "Ver mas" button */
#news .news-item .mas {
  font-family: var(--font-heading);
  text-transform: uppercase;
  display: block;
  color: #FFF;
  font-size: 0.8em;
  padding: 0.4em 1em 0.3em;
  background: #888;
  position: absolute;
  right: -3px;
  bottom: 1em;
  transition: all 0.3s ease;
}
#news .news-item .mas::after {
  content: "";
  position: absolute;
  right: 100%;
  top: 0;
  width: 0;
  height: 0;
  border-top: 1.6em solid #888;
  border-left: 0.9em solid transparent;
  transition: all 0.3s ease;
}
#news .news-item a:hover .mas { background: var(--celeste); }
#news .news-item a:hover .mas::after { border-top-color: var(--celeste); }

@media (min-width: 600px) {
  #news { max-width: none; }
  #news .news-item { width: 48.5%; margin-right: 3%; }
  #news .news-item:nth-child(2n) { margin-right: 0; }
}

@media (min-width: 1000px) {
  #news .news-item { width: 32%; margin-right: 2% !important; }
  #news .news-item:nth-child(3n) { margin-right: 0 !important; }
}


/* -----------------------------------------------------------------
   11. PAGINATION (#paginacion)
   ----------------------------------------------------------------- */
#paginacion { text-align: right; }
#paginacion li { display: inline-block; }
#paginacion li a {
  background: #EEE;
  display: block;
  font-size: 0.8em;
  padding: 0.75em 1.25em;
  font-family: var(--font-heading);
  text-transform: uppercase;
  border-radius: 0.2em;
  color: #666;
}
#paginacion li a:hover { background: var(--verde); color: #FFF; }
#paginacion a.sel { background: var(--azul) !important; color: #FFF; }
#paginacion a span { font-size: 0.8em; }
#paginacion a .fa-chevron-left  { margin-right: 0.4em; }
#paginacion a .fa-chevron-right { margin-left: 0.4em; }


/* -----------------------------------------------------------------
   12. HOME PAGE (#hom)
   ----------------------------------------------------------------- */
#hom main .contenido { padding-top: 0; }
#hom .slides { background: #000; }
#hom .slides li img { height: auto; }
#hom .slides li a {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
#hom .slides li .content {
  background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, #000 100%);
  position: absolute;
  bottom: 0;
  width: 100%;
}
#hom .slides li .wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Category ribbon */
#hom .slides li span {
  position: relative;
  font-size: 0.9em;
  padding: 0.4em 1em 0.35em 0.75em;
  display: inline-block;
  font-weight: 400;
  text-transform: uppercase;
  color: #FFF;
  background: linear-gradient(to right, var(--violeta) 0%, var(--azul-hover) 25%, var(--celeste) 100%);
}
#hom .slides li span::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0;
  width: 0;
  height: 0;
  border-top: 1.7em solid var(--celeste);
  border-right: 0.95em solid transparent;
}
#hom .slides li h3 {
  text-transform: uppercase;
  font-weight: 300;
  font-size: 2.5em;
  line-height: 1em;
  display: inline-block;
  padding: 0.4em 1em 0.5em 0.8rem;
  color: #FFF;
  max-width: 360px;
}
#hom .slides li h3 em {
  line-height: 1.2em;
  font-style: normal;
  background: rgba(0,0,0,0.8);
  box-decoration-break: clone;
  box-shadow: 0.75rem 0 0 rgba(0,0,0,0.8), -0.75rem 0 0 rgba(0,0,0,0.8);
}

/* Dots (scroll-snap version) */
#hom .slides .carousel-dots {
  position: absolute;
  right: 1em;
  bottom: 1.5em;
  display: flex;
  gap: 0.4em;
}
#hom .slides .carousel-dots .dot {
  width: 0.8em;
  height: 0.8em;
  border: 1px solid rgba(255,255,255,0.4);
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  cursor: pointer;
}
#hom .slides .carousel-dots .dot.active { background: var(--celeste); }

#hom aside { max-width: 300px; }

@media (min-width: 600px) {
  #hom .slides li h3 { font-size: 2.75em; }
  #hom .slides li span { font-size: 0.9em; }
}
@media (min-width: 768px) {
  #hom .slides li h3 { font-size: 3em; max-width: 700px; }
  #hom article { flex: 1; }
  #hom aside { width: 300px; }
}
@media (min-width: 1000px) {
  #hom .slides li h3 { font-size: 3.2em; }
}


/* -----------------------------------------------------------------
   13. INTERIOR PAGES -- title container with grass background
   ----------------------------------------------------------------- */
.title-container {
  padding-top: 4em;
  background: url("../images/pasto.jpg") no-repeat;
  background-size: cover;
}
.title-container .content {
  background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 100%);
}
.title-container .wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.title-container span {
  position: relative;
  font-size: 0.9em;
  padding: 0.4em 1em 0.35em 0.75em;
  display: inline-block;
  font-weight: 400;
  text-transform: uppercase;
  color: #FFF;
  background: linear-gradient(to right, var(--violeta) 0%, var(--azul-hover) 25%, var(--celeste) 100%);
}
.title-container span::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0;
  width: 0;
  height: 0;
  border-top: 1.7em solid var(--celeste);
  border-right: 0.95em solid transparent;
}
.title-container h3 {
  font-weight: 300;
  font-size: 1.8em;
  line-height: 1.1em;
  background: url("../images/slider-content.png") no-repeat bottom right;
  background-size: contain;
  display: inline-block;
  padding: 0.4em 2em 0.5em 0;
  color: #FFF;
  max-width: 900px;
  margin-right: 20px;
}
.title-container h3 span {
  position: relative;
  font-size: inherit;
  padding: 0;
  display: block;
  font-weight: 300;
  text-transform: none;
  background: none;
  padding-left: 1.5em;
}
.title-container h3 span::after { content: none; }
.title-container h3 span:first-child { margin: 0.8em 0 0.3em; }
.title-container h3 span img {
  width: 1.1em;
  position: absolute;
  top: 0;
  left: 0;
}

@media (min-width: 600px) {
  .title-container h3 { font-size: 2em; }
  .title-container span { font-size: 0.9em; }
}
@media (min-width: 768px) {
  .title-container h3 span:first-child { margin-top: 0.4em; }
}
@media (min-width: 1000px) {
  .title-container h3 { font-size: 2.4em; }
}


/* -- Nuestra Historia (#his) ------------------------------------- */
#his .title-container h3 { font-size: 2.6em; }
#his article .main-img { width: 100%; height: auto; margin-bottom: 2em; }
#his article h4 { color: var(--azul-hover); font-size: 1.3em; line-height: 1.3em; margin-bottom: 1em; font-weight: 400; }
#his article h5 { font-family: var(--font-heading); text-transform: uppercase; font-size: 1.3em; line-height: 1.3em; margin: 2em 0 1em; font-weight: 700; }
#his article p, #his article ul { font-size: 1.1em; line-height: 1.3em; margin-bottom: 1em; }
#his article ul { margin-bottom: 2em; padding-left: 1em; list-style: disc; }
#his article blockquote {
  font-family: Georgia, 'Times New Roman', Times, serif;
  font-style: italic;
  font-size: 1.4em;
  line-height: 1.4em;
  color: var(--verde);
  margin: 2em 0;
  text-align: center;
}

@media (min-width: 600px) {
  #his .title-container h3 { font-size: 3em; }
}
@media (min-width: 768px) {
  #his article h4, #his article h5 { font-size: 1.1em; }
  #his article p, #his article ul { font-size: 0.9em; }
  #his article .cols::after {
    content: "";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
  }
  #his article .cols li { float: left; width: 48%; }
}
@media (min-width: 1000px) {
  #his .title-container h3 { font-size: 3.4em; }
  #his article { padding-right: 150px; }
}


/* -----------------------------------------------------------------
   14. TOURNAMENT PAGE (#torneo)
   ----------------------------------------------------------------- */
#torneo .title-container h3 {
  display: flex;
  justify-content: center;
  align-items: center;
}
#torneo article h3 { font-size: 2.4em; margin-bottom: 1em; font-weight: 300; }
#torneo article .banners-section { margin-bottom: 2em; }
#torneo article h4 { font-size: 2em; margin-bottom: 0.75em; font-weight: 300; color: #666; }

/* Positions table */
#torneo article table {
  font-size: 1em;
  width: 100%;
  margin-bottom: 2em;
  font-weight: 300;
}
#torneo article table th,
#torneo article table td {
  text-align: right;
  vertical-align: middle;
  padding: 0.5em;
}
#torneo article table th { font-weight: 400; }
#torneo article table .left { text-align: left; }
#torneo article table tr:nth-child(odd) { background: #F5F5F5; }
#torneo article table tr.clasif { background: #F1F2FB; border-bottom: 1px solid #e8eaff; }
#torneo article table thead tr { color: #FFF; }
#torneo article table abbr { text-decoration: none; }
#torneo article table img { width: 1.5em; vertical-align: middle; height: auto; margin-right: 0.5em; }
#torneo article table .team { font-weight: 700; width: 50%; }
#torneo article table .strong { font-weight: 700; }

/* Matches */
#torneo article .partidos { margin-bottom: 3em; }
#torneo article .partidos .ac-header { font-weight: 700; }
#torneo article .partidos .ac-header .fa { font-size: 0.9em; margin-right: 0.4em; }
#torneo article .partidos .ac-header .open .fa::before { content: "\f077"; }
#torneo article .partidos ul { margin-top: 1.5em; }
#torneo article .partidos li { margin-bottom: 0.25em; }
#torneo article .partidos li a,
#torneo article .partidos li .match {
  background: #F5F5F5;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0.5em;
  position: relative;
  border-radius: 0.3em;
}
#torneo article .partidos li a:hover { background: #EFEFEF; }
#torneo article .partidos .ac-contenido a::before,
#torneo article .partidos .ac-contenido .match::before {
  content: "-";
  position: absolute;
  width: 100%;
  text-align: center;
  left: 0;
  top: 1.1em;
}
#torneo article .partidos .next::before {
  content: "vs." !important;
  font-weight: bold;
  color: var(--azul);
}

/* Team rows */
#torneo article .partidos .equipo {
  font-size: 1em;
  height: 30px;
  display: flex;
  width: 50%;
  padding: 0 0.4em;
  float: left;
}
#torneo article .partidos .equipo img { width: 1.8em; }
#torneo article .partidos .equipo div { display: flex; align-items: center; }
#torneo article .partidos .equipo .nom { flex: 1; }
#torneo article .partidos .equipo .res {
  width: 1.8em;
  font-size: 1.1em;
  font-weight: bold;
  color: var(--azul);
}
#torneo article .partidos .next .equipo .res { width: 1em; }

#torneo article .partidos .equipo.loc { position: relative; }
#torneo article .partidos .equipo.loc .nom { justify-content: flex-end; padding-right: 0.4em; }
#torneo article .partidos .equipo.loc .res { justify-content: flex-end; }
#torneo article .partidos .equipo.loc .esc { justify-content: flex-end; }
#torneo article .partidos .equipo.vis .res { justify-content: flex-start; }
#torneo article .partidos .equipo.vis .esc { justify-content: flex-start; }
#torneo article .partidos .equipo.vis .nom { justify-content: flex-start; text-align: left; padding-left: 0.4em; }

#torneo article .partidos .data {
  font-size: 0.8em;
  line-height: 1.1em;
  color: #666;
  width: 100%;
  padding-top: 1em;
  clear: both;
  text-align: center;
}
#torneo article .partidos .data time { display: block; margin-bottom: 0.2em; }

@media (min-width: 768px) {
  #torneo article .partidos li a .data,
  #torneo article .partidos li .match .data { font-size: 0.7em; padding-top: 1.5em; }
  #torneo article .partidos li a .equipos,
  #torneo article .partidos li .match .equipos { font-size: 1.2em; }
  #torneo article .partidos .ac-contenido a::before { top: 0.9em; }
}

/* World Cup group colors - WC2019 */
#torneo.wc2019 .title-container h3 img { width: 2em; margin-right: 0.5em; }
#torneo.wc2019 article table.grupoA thead tr { background: linear-gradient(to right, #006098 0%, #54C8E8 100%); }
#torneo.wc2019 article table.grupoB thead tr { background: linear-gradient(to right, #AA182C 0%, #F4436C 100%); }
#torneo.wc2019 article table.grupoC thead tr { background: linear-gradient(to right, #00837B 0%, #2ED9C3 100%); }
#torneo.wc2019 article table.grupoD thead tr { background: linear-gradient(to right, #490E67 0%, #993DBB 100%); }
#torneo.wc2019 article .partidos.grupoA .ac-header .fa { color: #54C8E8; }
#torneo.wc2019 article .partidos.grupoB .ac-header .fa { color: #F4436C; }
#torneo.wc2019 article .partidos.grupoC .ac-header .fa { color: #2ED9C3; }
#torneo.wc2019 article .partidos.grupoD .ac-header .fa { color: #993DBB; }

/* World Cup group colors - WC2023 */
#torneo.wc2023 .title-container h3 img { width: 2em; margin-right: 0.5em; }
#torneo.wc2023 article table.grupoA thead tr { background: linear-gradient(90deg, #5BA881 0%, #78DCAA 100%); }
#torneo.wc2023 article table.grupoB thead tr { background: linear-gradient(90deg, #B565BE 0%, #CD73D7 100%); }
#torneo.wc2023 article table.grupoC thead tr { background: linear-gradient(90deg, #43A2BA 0%, #50C8E6 100%); }
#torneo.wc2023 article table.grupoD thead tr { background: linear-gradient(90deg, #D24861 0%, #FF5573 100%); }
#torneo.wc2023 article .partidos.grupoA .ac-header .fa { color: #78DCAA; }
#torneo.wc2023 article .partidos.grupoB .ac-header .fa { color: #CD73D7; }
#torneo.wc2023 article .partidos.grupoC .ac-header .fa { color: #50C8E6; }
#torneo.wc2023 article .partidos.grupoD .ac-header .fa { color: #FF5573; }


/* -- Tournament Bracket ------------------------------------------ */
.tournament-bracket-container {
  background: url("../images/torneo-back.jpg") no-repeat;
  background-position: center;
  background-size: cover;
  padding: 1em;
  position: relative;
}
.tournament-bracket-container .logo { display: none; }

.tournament-bracket {
  width: 100%;
  display: flex;
  flex-direction: column;
}
.tournament-bracket__round {
  display: flex;
  flex-direction: column;
  margin-left: -2px;
  flex: 1;
  position: relative;
}
.tournament-bracket__match { width: 100%; }
#torneo .tournament-bracket h3 {
  font-size: 1.5em;
  font-weight: 400;
  text-align: center;
  margin-bottom: 1em;
  color: #FFF;
}

.tournament-bracket__list {
  display: flex;
  flex-direction: column;
  flex-flow: row wrap;
  justify-content: center;
  height: 100%;
  min-height: 100%;
  border-bottom: 1px dotted #FFF;
  padding-bottom: 1.5em;
  margin-bottom: 1.5em;
}
.tournament-bracket__round:last-child .tournament-bracket__list {
  border: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
.tournament-bracket__list.tercer {
  border-bottom: 1px dotted #FFF !important;
  padding-bottom: 1.5em !important;
  margin-bottom: 1.5em !important;
}
.tournament-bracket__match h3 { display: none; }

.tournament-bracket__item {
  display: flex;
  flex: 0 1 auto;
  justify-content: center;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
  width: 100%;
  margin-bottom: 0.25em;
}
.tournament-bracket__list.final .tournament-bracket__item a,
.tournament-bracket__list.final .tournament-bracket__item .match {
  box-shadow: 0 0 10px 3px rgba(255,201,25,1);
}
.tournament-bracket__item a,
.tournament-bracket__item .match {
  background: #F5F5F5;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0.75em;
  position: relative;
  border-radius: 0.3em;
}
.tournament-bracket__item a:hover { background: #EFEFEF; }
.tournament-bracket__item a::before,
.tournament-bracket__item .match::before {
  content: "-";
  position: absolute;
  width: 100%;
  text-align: center;
  left: 0;
  top: 1.3em;
}
.tournament-bracket__item .next::before { content: "vs."; }

.tournament-bracket__item .equipo {
  font-size: 1em;
  height: 30px;
  display: flex;
  flex-direction: row;
  width: 50%;
  padding: 0 0.4em;
  float: left;
}
.tournament-bracket__item .equipo img { width: 1.8em; }
.tournament-bracket__item .equipo div { display: flex; align-items: center; }
.tournament-bracket__item .equipo .nom { flex: 1; }
.tournament-bracket__item .equipo .res {
  width: 1.8em;
  font-size: 1.1em;
  font-weight: bold;
  color: var(--azul);
}
.tournament-bracket__item .next .equipo .res { width: 1em; }

.tournament-bracket__item .equipo.loc { position: relative; }
.tournament-bracket__item .equipo.loc .nom { justify-content: flex-end; text-align: right; padding-right: 0.4em; }
.tournament-bracket__item .equipo.loc .res { justify-content: flex-end; }
.tournament-bracket__item .equipo.loc .esc { justify-content: flex-end; }
.tournament-bracket__item .equipo.vis .res { justify-content: flex-start; }
.tournament-bracket__item .equipo.vis .esc { justify-content: flex-start; }
.tournament-bracket__item .equipo.vis .nom { justify-content: flex-start; text-align: left; padding-left: 0.4em; }

.tournament-bracket__item .data {
  font-size: 0.8em;
  line-height: 1.1em;
  color: #666;
  width: 100%;
  padding-top: 1em;
  clear: both;
  text-align: center;
}
.tournament-bracket__item .data time { display: block; margin-bottom: 0.2em; }

@media (min-width: 600px) {
  .tournament-bracket-container .logo {
    display: block;
    position: absolute;
    top: 1em;
    right: 1em;
    height: auto;
    width: 5em;
  }
  #torneo .tournament-bracket h3 { display: none; }
  .tournament-bracket { flex-direction: row; }

  .tournament-bracket__list {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
  }
  .tournament-bracket__list.tercer {
    position: absolute;
    bottom: 0;
    display: block;
    height: auto;
    min-height: 0;
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    z-index: 10;
  }
  .tournament-bracket__list.tercer .tournament-bracket__match::before,
  .tournament-bracket__list.tercer .tournament-bracket__match::after { border: none; }

  .tournament-bracket__item { padding: 0.5em 1em; width: 100%; }
  .tournament-bracket__item:nth-child(odd),
  .tournament-bracket__item:nth-child(even) { margin: 0; }

  /* Bracket connector lines */
  .tournament-bracket__item::after {
    position: absolute;
    right: 0;
    content: '';
    display: block;
    width: 1em;
    height: 45%;
    border-right: 2px solid #FFF;
  }
  .tournament-bracket__item:nth-child(odd)::after {
    top: 50%;
    border-top: 2px solid #FFF;
    transform: translateY(-1px);
  }
  .tournament-bracket--rounded .tournament-bracket__item:nth-child(odd)::after {
    border-top-right-radius: 0.6em;
  }
  .tournament-bracket__item:nth-child(even)::after {
    bottom: 50%;
    border-bottom: 2px solid #FFF;
    transform: translateY(1px);
  }
  .tournament-bracket--rounded .tournament-bracket__item:nth-child(even)::after {
    border-bottom-right-radius: 0.6em;
  }
  .tournament-bracket__round:first-child .tournament-bracket__item { padding-left: 0; }
  .tournament-bracket__round:last-child .tournament-bracket__item { padding-right: 0; }
  .tournament-bracket__round:last-child .tournament-bracket__item::after { display: none; }

  /* Match incoming connector */
  .tournament-bracket__match::before,
  .tournament-bracket__match::after {
    position: absolute;
    left: 0;
    z-index: 1;
    content: '';
    display: block;
    width: 1em;
    height: 10%;
    border-left: 2px solid #FFF;
  }
  .tournament-bracket__match::before {
    bottom: 50%;
    border-bottom: 2px solid #FFF;
    transform: translate(0, 1px);
  }
  .tournament-bracket--rounded .tournament-bracket__match::before {
    border-bottom-left-radius: 0.6em;
  }
  .tournament-bracket__match::after {
    top: 50%;
    border-top: 2px solid #FFF;
    transform: translate(0, -1px);
  }
  .tournament-bracket--rounded .tournament-bracket__match::after {
    border-top-left-radius: 0.6em;
  }
  .tournament-bracket__round:first-child .tournament-bracket__match::before,
  .tournament-bracket__round:first-child .tournament-bracket__match::after { display: none; }

  /* Bracket match content rearranged */
  .tournament-bracket__item .equipo { width: 100%; }
  .tournament-bracket__item a::before,
  .tournament-bracket__item .match::before { display: none; }
  .tournament-bracket__item .equipo { padding: 0; }
  .tournament-bracket__item .equipo.loc { margin-bottom: 0.5em; }
  .tournament-bracket__item .equipo .esc { order: 1 !important; }
  .tournament-bracket__item .equipo .nom { order: 2 !important; justify-content: flex-start !important; text-align: left !important; padding: 0 0 0 0.4em !important; line-height: 1.1em; }
  .tournament-bracket__item .equipo .res { width: 2em !important; order: 3 !important; justify-content: flex-end !important; }
}

@media (min-width: 768px) {
  .tournament-bracket__item a .data,
  .tournament-bracket__item .match .data { font-size: 0.7em; padding-top: 1em; }
  .tournament-bracket__item a .equipos,
  .tournament-bracket__item .match .equipos { font-size: 1.2em; }
  .tournament-bracket__item .equipo { font-size: 0.75em; }
}

@media (min-width: 72em) {
  .tournament-bracket__item { padding: 0.5em 1.5em; }
  .tournament-bracket__item::after { width: 1.5em; }
  .tournament-bracket__match::before,
  .tournament-bracket__match::after { width: 1.5em; }
}


/* -----------------------------------------------------------------
   15. STAFF PAGE (#sta)
   ----------------------------------------------------------------- */
#sta article h3 { font-weight: 400; font-size: 1.8em; margin-bottom: 1em; }

.staff-list {
  margin: 0 auto 2rem;
  font-size: 0;
  text-align: left;
}
.staff-list li {
  position: relative;
  width: 48%;
  margin-bottom: 2em;
  display: inline-block;
  font-size: 1rem;
  margin-right: 4%;
}
.staff-list li:nth-child(2n) { margin-right: 0; }
.staff-list li .cv { display: none; padding-bottom: 1em; }
.staff-list li img { display: block; width: 100%; height: auto; margin-bottom: 1em; }
.staff-list li h4 { font-weight: 600; color: #333; font-size: 1.2em; line-height: 1.2em; margin-bottom: 0.3em; }
.staff-list li h5 { color: var(--azul); text-transform: uppercase; font-size: 0.8em; line-height: 1.2em; margin-bottom: 1em; }
.staff-list li p { color: #666; font-size: 0.8em; line-height: 1.5em; }
.staff-list li footer { padding: 0; text-align: left; margin-top: 1em; }
.staff-list li footer a {
  color: #CCC;
  display: inline-block;
  width: 2em;
  height: 2em;
  border: 1px solid #EEE;
  text-align: center;
}
.staff-list li footer a i { line-height: 2em; }
.staff-list li footer a:hover { color: #FFF; border-color: var(--verde); background: var(--verde); }

.staff-list li .toggle-cv {
  display: inline-block;
  background: var(--violeta);
  color: #FFF;
  border-radius: 3px;
  font-size: 0.85em;
  padding: 0.35em 1em 0.3em 0.5em;
}
.staff-list li .toggle-cv:hover { background: #993DBB; }
.staff-list li .toggle-cv .fa { position: relative; top: 1px; font-size: 0.85em; margin-right: 0.2em; }
.staff-list li .toggle-cv .fa::before { content: "\f067"; }
.staff-list li .toggle-cv.open .fa::before { content: "\f068"; }

@media only screen and (min-width: 600px) {
  .staff-list li { width: 32%; font-size: 0.9rem; margin-right: 2% !important; }
  .staff-list li:nth-child(3n) { margin-right: 0 !important; }
}
@media only screen and (min-width: 1000px) {
  .staff-list li,
  .staff-list li:nth-child(3n) { width: 24%; margin-right: 1.333% !important; }
  .staff-list li:nth-child(4n) { margin-right: 0 !important; }
}


/* -----------------------------------------------------------------
   16. VIDEOS LIST GRID
   ----------------------------------------------------------------- */
.videos-list {
  margin: 0 auto 2rem;
  display: grid;
  grid-gap: 1em;
}
.videos-list li { position: relative; margin-bottom: 1em; }
.videos-list li img { display: block; width: 100%; height: auto; margin-bottom: 1em; }
.videos-list li h4 { font-weight: 600; color: #333; font-size: 1.1em; line-height: 1.2em; margin-bottom: 0.3em; }
.videos-list li h5 { color: var(--azul); text-transform: uppercase; font-size: 0.8em; line-height: 1.2em; }

@media only screen and (min-width: 480px) {
  .videos-list { font-size: 0.9em; grid-template-columns: repeat(2, 1fr); }
}
@media only screen and (min-width: 600px) {
  .videos-list.cols3 { grid-template-columns: repeat(3, 1fr); }
}


/* -----------------------------------------------------------------
   17. NEWS DETAIL (#notdet)
   ----------------------------------------------------------------- */
#notdet aside { max-width: 300px; }

@media only screen and (min-width: 768px) {
  #notdet article { flex: 1; }
  #notdet aside { width: 300px; }
}

.nov-det .main-img { width: 100%; height: auto; margin-bottom: 2em; }
.nov-det h4 { color: var(--azul-hover); font-size: 1.3em; line-height: 1.3em; margin-bottom: 1em; font-weight: 400; }
.nov-det h5 {
  font-family: var(--font-heading);
  text-transform: uppercase;
  font-size: 1.3em;
  line-height: 1.3em;
  margin: 2em 0 1em;
  font-weight: 700;
}
.nov-det p, .nov-det ul { font-size: 1.2em; line-height: 1.3em; margin-bottom: 1em; }

/* Note intro box */
.nov-det .nota-intro { background: #F3F3F3; margin-bottom: 2em; }
.nov-det .nota-intro .content { position: relative; padding: 1em; }
.nov-det .nota-intro h3 { background: #333; color: #FFF; padding: 0.75rem 1rem; font-size: 1.2em; line-height: 1.2em; }
.nov-det .nota-intro p { margin: 0; font-size: 0.9em; line-height: 1.5em; }
.nov-det .nota-intro img { display: block; float: left; width: 12em; height: auto; padding: 0 1em 0 0; }
.nov-det .nota-intro .links { display: flex; }
.nov-det .nota-intro .content .links { margin-top: 1em; }
.nov-det .nota-intro .links a {
  display: inline-block;
  background: var(--verde);
  color: #EEE;
  font-size: 0.7em;
  line-height: 1.2em;
  padding: 0.8em 1.2em 0.75em;
  border-radius: 2em;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
}
.nov-det .nota-intro .links a:hover { background: var(--verde-dark); }
.nov-det .nota-intro .links a span { padding-top: 0.15em; margin-right: 0.5em; color: #FFF; }
.nov-det .nota-intro .links a.azul { background: var(--azul); }
.nov-det .nota-intro .links a.azul:hover { background: #3B5998; }
.nov-det .nota-intro .footer { background: #DDD; padding: 0.5rem 1rem; }
.nov-det .nota-intro .footer .links { justify-content: flex-end; }
.nov-det .nota-intro .link-icon { display: flex; justify-content: flex-start; align-items: center; }
.nov-det .nota-intro .link-icon img { display: inline-block; position: relative; top: 0; left: 0; width: 20%; min-width: 100px; max-width: 150px; }
.nov-det .nota-intro .link-icon p { color: var(--azul-dark); font-size: 1.2em; margin: 0; }

/* Sponsor inside article */
.nov-det .sponsor { position: relative; margin-bottom: 2em; }
.nov-det .sponsor .sponsor-img { display: block; width: 100%; height: auto; }
.nov-det .sponsor .sponsor-banner { display: block; position: absolute; bottom: 0; right: 0; width: 30%; height: auto; border-top-left-radius: 1em; }

@media (min-width: 768px) {
  .nov-det .nota-intro .content { padding-left: 9em; }
  .nov-det .nota-intro h3 { font-size: 1.1em; }
  .nov-det .nota-intro p { font-size: 0.75em; }
  .nov-det .nota-intro img { position: absolute; top: 1em; left: 1em; width: 8em; }

  .nov-det h4, .nov-det h5 { font-size: 1.1em; }
  .nov-det p, .nov-det ul { font-size: 0.9em; }
}

@media (min-width: 1000px) {
  .nov-det { padding-right: 110px; }
}

/* Gallery links */
.nov-det .gal-links { margin-bottom: 2em; text-align: right; }
.nov-det .gal-links div { display: inline-block; }
.nov-det .gal-links a {
  display: inline-block;
  background: #333;
  color: #EEE;
  font-size: 0.8em;
  padding: 0.75em 1em;
  border-radius: 2em;
}
.nov-det .gal-links a.link-img:hover { background: var(--verde); }
.nov-det .gal-links a.link-vid:hover { background: var(--azul); }
.nov-det .gal-links a span { margin-right: 0.5em; color: #FFF; }

/* Gallery grid */
.nov-det .gals { margin: 2em 0; }
.nov-det .gals ul { font-size: 0; max-width: 400px; margin: auto; }
.nov-det .gals li { font-size: 1rem; display: inline-block; }
.nov-det .gals li img { display: block; width: 100%; height: auto; }
.nov-det .gals li a { position: relative; display: block; }
.nov-det .gals li a::before {
  border: 6px solid #0FD18A;
  bottom: 0;
  content: "";
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: 10;
}
.nov-det .gals li a:hover::before { opacity: 1; }
.nov-det .gals li { width: 49%; margin: 0 2% 0.5em 0; }
.nov-det .gals li:nth-child(2n) { margin-right: 0; }

@media (min-width: 480px) {
  .nov-det .gals ul { max-width: none; }
  .nov-det .gals li { width: 32.666%; margin-right: 1%; }
  .nov-det .gals li:nth-child(2n) { margin-right: 1%; }
  .nov-det .gals li:nth-child(3n) { margin-right: 0; }
}
@media (min-width: 768px) {
  .nov-det .gals li { width: 24.25%; }
  .nov-det .gals li:nth-child(3n) { margin-right: 1%; }
  .nov-det .gals li:nth-child(4n) { margin-right: 0; }
}

/* Tags list */
.tags-list { background: #333; }
.tags-list ul li { display: inline-block; margin: 0.4em 0.2em 0.4em 0; }
.tags-list ul li a {
  display: block;
  font-size: 0.7em;
  color: #FFF;
  background: #666;
  padding: 0.5em 1em;
  border-radius: 1em;
}
.tags-list ul li a:hover { background: var(--azul-hover); color: #EEE; }


/* -----------------------------------------------------------------
   18. FOOTER
   ----------------------------------------------------------------- */
footer .gradient { height: 8px; }

/* Sponsors area -- CSS scroll-snap carousel instead of owl-carousel */
footer .sponsors { background: #F8F8F8; padding-top: 2em; }
footer .sponsors ul { text-align: center; width: 80%; margin: 0 auto -3%; }
footer .sponsors ul li { display: inline-block; }
footer .sponsors ul li a { display: block; }
footer .sponsors ul li img { margin: auto; width: 80% !important; }

/* Carousel nav arrows (CSS-only via scroll-snap, these are kept for JS progressive enhancement) */
footer .sponsors .carousel-nav { position: absolute; top: 50%; width: 100%; }
footer .sponsors .carousel-prev,
footer .sponsors .carousel-next { position: absolute; font-size: 2em; margin-top: -0.5em; background: none; border: none; cursor: pointer; }
footer .sponsors .carousel-prev { left: 0; }
footer .sponsors .carousel-next { right: 0; }
footer .sponsors .carousel-nav .fa { color: var(--azul); }

/* Footer boxes */
footer .boxes { background: #EEE; overflow: hidden; }
footer .boxes .divisor { width: 100%; height: auto; margin-bottom: 2em; }
footer .boxes h3 {
  background: #333;
  color: #FFF;
  text-transform: uppercase;
  display: inline-block;
  font-family: var(--font-heading);
  font-size: 1em;
  padding: 0.5em 2em 0.4em 0.5em;
  margin-bottom: 2em;
  position: relative;
}
footer .boxes h3::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0;
  width: 0;
  height: 0;
  border-top: 1.9em solid #CCC;
  border-right: 0.95em solid transparent;
}
footer .box { margin-bottom: 2.5em; }

/* Radio box */
footer .box.radio h3 { background: var(--azul); }
footer .box.radio h3::after { border-top-color: var(--azul); }
footer .box.radio a { display: flex; flex-direction: row; align-items: center; }
footer .box.radio img { margin-right: 2em; width: 120px; height: auto; }
footer .box.radio p { font-size: 0.9em; line-height: 1.2em; max-width: 300px; }
footer .box.radio span { color: var(--azul); }

/* News box (hidden on mobile) */
footer .box.news { display: none; }

/* Sitemap box */
footer .box.mapa h3 { background: var(--violeta); }
footer .box.mapa h3::after { border-top-color: var(--violeta); }
footer .box.mapa .list {
  column-count: 2;
  font-family: var(--font-heading);
  text-transform: uppercase;
  font-size: 0.95em;
}
footer .box.mapa .list > li:last-child { break-before: column; }
footer .box.mapa .list ul {
  margin: 1em 0 1.75em;
  font-family: var(--font-body);
  font-size: 0.9em;
  text-transform: none;
}
footer .box.mapa .list ul li { margin-bottom: 0.5em; }
footer .box.mapa .list a:hover { text-decoration: underline; }

/* Legales */
footer .legales {
  padding: 0.75em 0;
  background: #222;
  color: #CCC;
  text-align: center;
}
footer .legales p { font-size: 0.75em; line-height: 1.2em; }
footer .legales p:first-child { margin-bottom: 0.4em; }

@media (min-width: 480px) {
  footer .box.mapa .list { column-count: 3; }
  footer .box.mapa .list > li { break-before: column; }
}

@media (min-width: 600px) {
  footer .sponsors ul { width: 90%; }
  footer .box.radio a { flex-direction: column; align-items: flex-start; }
  footer .box.radio img { margin: 0 0 0.5em; width: 150px; }
  footer .box.radio p { font-size: 0.7em; }
  footer .boxes .wrapper { display: flex; }
  footer .boxes .radio,
  footer .boxes .mapa { flex: 1; padding-right: 3em; }
  footer .boxes .box:last-child { padding: 0; }
  footer .box.mapa .list { column-count: 2; }
  footer .box.mapa .list > li:nth-child(2) { break-before: avoid; }
}

@media (min-width: 768px) {
  footer .sponsors ul { display: block; width: 100%; }
  footer .sponsors ul li { width: 12%; margin: 0 2% 20px; }
  footer .sponsors ul li img { width: 90% !important; }
  footer .boxes .news,
  footer .boxes .mapa { flex: 2; }
  footer .boxes .news { padding-right: 5em; }
  footer .box.news { display: block; }
  footer .box.news h3 { background: var(--verde); }
  footer .box.news h3::after { border-top-color: var(--verde); }
  footer .box.news ul { font-size: 0.8em; line-height: 1.2em; }
  footer .box.news ul li a { padding: 0.75em 0; display: block; }
  footer .box.news ul li a:hover { text-decoration: underline; }
  footer .box.news ul li { border-bottom: 1px solid var(--verde); }
  footer .box.news ul li:first-child a { padding-top: 0; }
  footer .legales { padding: 0.5em 0; }
  footer .legales p { font-size: 0.65em; }
  footer .legales p:first-child { margin: 0; float: left; }
  footer .legales p:last-child { float: right; }
}

@media (min-width: 1000px) {
  footer .sponsors ul { margin-bottom: -10%; }
  footer .sponsors ul li { width: 11%; margin: 0 1.5% 25px; }
  footer .legales p { font-size: 0.75em; }
}


/* -----------------------------------------------------------------
   19. SLIDESHOW / CAROUSEL (CSS scroll-snap, replaces owl-carousel)
   ----------------------------------------------------------------- */
.carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.carousel::-webkit-scrollbar { display: none; }
.carousel > * {
  scroll-snap-align: start;
  flex-shrink: 0;
}

/* Slide item */
.carousel .slide {
  width: 100%;
  position: relative;
}
.carousel .slide img {
  display: block;
  width: 100%;
  height: auto;
}

/* Carousel nav buttons */
.carousel-nav {
  position: absolute;
  top: 50%;
  width: 100%;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  transform: translateY(-50%);
  z-index: 5;
}
.carousel-nav button {
  pointer-events: auto;
  background: rgba(0,0,0,0.4);
  color: #FFF;
  border: none;
  padding: 0.8em 1em;
  cursor: pointer;
  font-size: 1.2em;
  transition: background 0.3s;
}
.carousel-nav button:hover { background: rgba(0,0,0,0.7); }

/* Carousel dots */
.carousel-dots {
  display: flex;
  justify-content: center;
  gap: 0.4em;
  padding: 0.8em 0;
}
.carousel-dots .dot {
  width: 0.6em;
  height: 0.6em;
  border-radius: 50%;
  background: #CCC;
  border: none;
  cursor: pointer;
  transition: background 0.3s;
}
.carousel-dots .dot.active { background: var(--celeste); }

/* Slide animations */
@keyframes slideInUp {
  from { transform: translate3d(0, 100%, 0); visibility: visible; }
  to   { transform: translate3d(0, 0, 0); }
}
@keyframes slideOutUp {
  from { transform: translate3d(0, 0, 0); }
  to   { visibility: hidden; transform: translate3d(0, -100%, 0); }
}
.slideInUp  { animation: slideInUp 1s both; }
.slideOutUp { animation: slideOutUp 1s both; }
.animated   { animation-duration: 1s; animation-fill-mode: both; }

@media (prefers-reduced-motion: reduce) {
  .animated {
    animation-duration: 1ms !important;
    transition-duration: 1ms !important;
    animation-iteration-count: 1 !important;
  }
}


/* -----------------------------------------------------------------
   20. WIDGET TOURNAMENT (positions table, fixture carousel)
   ----------------------------------------------------------------- */
.widget-select { background: #555; padding: 0.4em; }
.widget-select select {
  width: 100%;
  cursor: pointer;
  font-size: 0.8em;
  background: #CCC;
  color: #333;
  border: none;
  height: 1.8em;
}

.widget-torneo { margin-bottom: 2em; }
.widget-torneo h3 {
  text-transform: uppercase;
  font-family: var(--font-heading);
  font-size: 1.2em !important;
  background: #333;
  color: #FFF;
  padding: 0.6em;
}

/* Selector tabs */
.widget-torneo .select { border-bottom: 1px solid #CCC; }
.widget-torneo .select.select-main,
.widget-torneo .select.select-ronda { display: flex; }
.widget-torneo .select.select-main li,
.widget-torneo .select.select-ronda li { flex: 1; }
.widget-torneo .select a {
  display: block;
  text-transform: uppercase;
  font-family: var(--font-heading);
  text-align: center;
  font-size: 0.9em;
  padding: 0.5em 0.2em !important;
  color: #FFF;
  border: none !important;
}
.widget-torneo .select.select-main a { background: var(--azul); }
.widget-torneo .select.select-main a:hover { background: var(--azul-dark); }
.widget-torneo .select.select-ronda a { background: var(--verde); }
.widget-torneo .select.select-ronda a:hover { background: var(--verde-dark); }
.widget-torneo .select .sel { background: #444 !important; }

.widget-torneo .select.select-fecha { background: #CCC; }
.widget-torneo .select.select-fecha a { background: var(--violeta-dark); }
.widget-torneo .select.select-fecha a:hover { background: #515391; }

/* Widget nav buttons (scroll-snap carousel nav) */
.widget-torneo .carousel-nav button {
  position: absolute;
  top: 0;
  width: 25px;
  height: 100%;
  background: var(--azul) !important;
  color: #FFF !important;
  z-index: 10;
  padding: 0;
  border-radius: 0;
}
.widget-torneo .carousel-nav button:hover { background: var(--azul-hover) !important; }
.widget-torneo .carousel-nav button.disabled { background: #666 !important; color: #AAA; cursor: default; }
.widget-torneo .carousel-nav .prev { left: 0; }
.widget-torneo .carousel-nav .next { right: 0; }

@media (min-width: 768px) {
  .widget-torneo { font-size: 0.8em; }
}

/* Positions table */
.widget-torneo table { font-size: 0.7em; width: 100%; }
.widget-torneo table th,
.widget-torneo table td { font-weight: normal; text-align: right; vertical-align: middle; }
.widget-torneo table .left { text-align: left; }
.widget-torneo table th { padding: 1em 0.3em; }
.widget-torneo table th.first { padding-left: 1em; }
.widget-torneo table td { padding: 0.5em 0.3em; }
.widget-torneo table td.section {
  text-align: left;
  padding: 0.75em 1em;
  font-weight: 400;
  color: #FFF;
  background: #666;
}
.widget-torneo table tr:nth-child(odd) { background: #F5F5F5; }
.widget-torneo table thead tr { background: var(--verde) !important; color: #FFF; }
.widget-torneo table abbr { text-decoration: none; }
.widget-torneo table img { display: block; height: 20px; width: auto; margin: auto; }

/* Fixture results */
.widget-torneo .ronda { background: #F5F5F5; }
.widget-torneo .ronda li a {
  display: block;
  width: 100%;
  height: 100%;
  border-bottom: 1px solid #FFF;
  padding-bottom: 0.5em;
}
.widget-torneo .ronda .equipo {
  font-size: 0.9em;
  height: 30px;
  display: flex;
  width: 50%;
  padding: 0 0.4em;
  float: left;
}
.widget-torneo .ronda .equipo.loc { flex-direction: row; }
.widget-torneo .ronda .equipo.vis { flex-direction: row-reverse; }
.widget-torneo .ronda .equipo img { max-height: 20px; max-width: 20px; }
.widget-torneo .ronda .equipo div { display: flex; align-items: center; }
.widget-torneo .ronda .equipo .esc { width: 25px; }
.widget-torneo .ronda .equipo .nom { flex: 1; }
.widget-torneo .ronda .equipo .res { width: 28px; font-size: 1.1em; font-weight: bold; }

.widget-torneo .ronda .equipo.loc .esc { justify-content: flex-start; }
.widget-torneo .ronda .equipo.vis .esc { justify-content: flex-end; }
.widget-torneo .ronda .equipo.loc .nom { justify-content: flex-start; padding-left: 3px; }
.widget-torneo .ronda .equipo.vis .nom { justify-content: flex-end; text-align: right; padding-right: 3px; }
.widget-torneo .ronda .equipo.loc .res { justify-content: flex-end; }
.widget-torneo .ronda .equipo.vis .res { justify-content: flex-start; }

.widget-torneo .ronda time {
  font-size: 0.75em;
  color: #666;
  width: 100%;
  display: flex;
  justify-content: center;
}
.widget-torneo .ronda h5 {
  text-transform: uppercase;
  font-family: var(--font-heading);
  color: #FFF;
  background: #000;
  font-size: 0.75em;
  padding: 0.5em 1em;
}

/* Fixtures widget */
.widget-fixtures { position: relative; background: #F5F5F5; }
.widget-fixtures::before,
.widget-fixtures::after {
  content: "";
  position: absolute;
  top: 0;
  width: 30px;
  height: 100%;
  background: #666;
  z-index: 5;
}
.widget-fixtures::before { left: 0; }
.widget-fixtures::after  { right: 0; }
.widget-fixtures li { border-right: 1px solid #FFF; padding: 0 0.5em; height: 100%; }
.widget-fixtures li a { display: block; width: 100%; height: 100%; }
.widget-fixtures .equipo { font-size: 0.7em; height: 30px; display: flex; }
.widget-fixtures .equipo img { max-height: 20px; max-width: 20px; }
.widget-fixtures .equipo div { display: flex; justify-content: center; align-items: center; }
.widget-fixtures .equipo .esc { justify-content: left; width: 25px; }
.widget-fixtures .equipo .nom { flex: 1; justify-content: left; padding-left: 3px; }
.widget-fixtures .equipo .res { width: 30px; justify-content: flex-end; font-weight: bold; }
.widget-fixtures time { font-size: 0.7em; display: flex; height: 25px; align-items: center; color: #666; }

.widget-fixtures li.torneo {
  font-weight: 700;
  height: 85px;
  display: flex;
  align-items: center;
  font-size: 0.75em;
  line-height: 1.2em;
  background: #EDEDED;
  padding: 0 30px 0 0.75em;
}
.widget-fixtures li.torneo span {
  display: flex;
  position: absolute;
  right: 0.75em;
  background: #CCC;
  color: #EDEDED;
  border-radius: 100%;
  padding-left: 2px;
  width: 20px;
  height: 20px;
  justify-content: center;
  align-items: center;
  font-size: 10px;
}

/* Fixtures carousel nav */
.widget-fixtures .carousel-nav button {
  position: absolute;
  top: 0;
  width: 30px;
  height: 100%;
  background: var(--azul) !important;
  color: #FFF !important;
  z-index: 10;
  padding: 0;
  border-radius: 0;
}
.widget-fixtures .carousel-nav button:hover { background: var(--azul-hover) !important; }
.widget-fixtures .carousel-nav .prev { left: 0; }
.widget-fixtures .carousel-nav .next { right: 0; }


/* -----------------------------------------------------------------
   21. BANNERS / ADS
   ----------------------------------------------------------------- */
.banner-high { display: block; width: 100%; height: auto; }
aside .banner-high { margin-bottom: 1em; }

.banners-main { background: #EEE; }
.banners-main .wrapper { padding: 0; }
.banners-main img { width: 100%; height: auto; }

.banners-section { margin-bottom: 1em; }
.banners-section .banner { display: block; width: 100%; border: 1px solid #CCC; }
.banners-section .banner img { display: block; width: 100%; height: auto; }
.banners-section .banners-row { margin-bottom: 0.5em; display: flex; justify-content: space-between; }
.banners-section .banners-row.center { justify-content: center; }
.banners-section .banners-row.col2 .banner { width: 48.5%; }
.banners-section .banners-row.col3 .banner { width: 32%; }
.banners-section .banners-row.col3.center .banner { margin: 0 1%; }
.banners-section .banners-row.col4 .banner { width: 24%; }

.banners-list { margin-bottom: 2em; border: 1px solid #CCC; }
.banners-list a { display: block; }

@media (min-width: 600px) {
  .banners-main { margin-bottom: 1em; }
  .banners-main .wrapper { padding: 0.5em 1em; }
  .banners-section { margin-bottom: 2em; }
}


/* -----------------------------------------------------------------
   22. NEWSLETTER BOX
   ----------------------------------------------------------------- */
.newsletter-box { margin-bottom: 1em; }
.newsletter-box img { margin-bottom: 0.2em; }
.newsletter-box ul {
  display: grid;
  grid-gap: 0.2em;
  grid-template-columns: repeat(2, 1fr);
}
.newsletter-box a {
  display: block;
  padding: 0.5em 0.25em;
  font-size: 0.7em;
  font-family: var(--font-heading);
  text-transform: uppercase;
  background: #666;
  color: #FFF;
  text-align: center;
}
.newsletter-box .news1 { background: var(--azul-dark); }
.newsletter-box .news1:hover { background: var(--azul); }
.newsletter-box .news2 { background: var(--verde-dark); }
.newsletter-box .news2:hover { background: var(--verde); }


/* -----------------------------------------------------------------
   23. LIGHTBOX (native <dialog>, replaces fancybox)
   ----------------------------------------------------------------- */
.lightbox {
  border: none;
  padding: 0;
  max-width: 90vw;
  max-height: 90vh;
  background: transparent;
}
.lightbox::backdrop {
  background: rgba(0,0,0,0.9);
}
.lightbox img {
  max-width: 100%;
  max-height: 85vh;
  object-fit: contain;
  display: block;
}
.lightbox .nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.6);
  color: #FFF;
  border: none;
  padding: 1em;
  cursor: pointer;
  font-size: 1.5em;
  transition: background 0.2s;
}
.lightbox .nav:hover { background: rgba(0,0,0,0.8); }
.lightbox .nav.prev { left: 0; }
.lightbox .nav.next { right: 0; }
.lightbox .close {
  position: absolute;
  top: 0.5em;
  right: 0.5em;
  background: rgba(0,0,0,0.6);
  color: #FFF;
  border: none;
  padding: 0.5em 0.8em;
  cursor: pointer;
  font-size: 1.2em;
  transition: background 0.2s;
}
.lightbox .close:hover { background: rgba(0,0,0,0.8); }

/* Caption inside lightbox */
.lightbox figcaption {
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0) 100%);
  color: #eee;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  padding: 2em 1em 1em;
  text-align: center;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

/* Loading spinner */
.lightbox .loading {
  animation: lightbox-rotate 1s linear infinite;
  border: 4px solid #888;
  border-bottom-color: #FFF;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  margin: auto;
}
@keyframes lightbox-rotate {
  100% { transform: rotate(360deg); }
}

/* Gallery thumbnails */
.lightbox-thumbs {
  display: flex;
  gap: 4px;
  padding: 0.5em;
  overflow-x: auto;
  background: rgba(0,0,0,0.6);
}
.lightbox-thumbs a {
  flex-shrink: 0;
  width: 75px;
  height: 75px;
  background-size: cover;
  background-position: center;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color 0.2s;
}
.lightbox-thumbs a:hover,
.lightbox-thumbs a.active {
  border-color: #0FD18A;
}


/* -----------------------------------------------------------------
   24. FONTAWESOME SUBSET (only icons used in legacy)
   ----------------------------------------------------------------- */
/* NOTE: Using SVG icons inline is recommended for production.
   This subset preserves compatibility with existing FA class usage. */
@font-face {
  font-family: 'FontAwesome';
  src: url("../fonts/fontawesome-webfont.woff") format('woff'),
       url("../fonts/fontawesome-webfont.ttf") format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.fa-angle-left::before    { content: "\f104"; }
.fa-angle-right::before   { content: "\f105"; }
.fa-chevron-left::before  { content: "\f053"; }
.fa-chevron-right::before { content: "\f054"; }
.fa-chevron-down::before  { content: "\f078"; }
.fa-chevron-up::before    { content: "\f077"; }
.fa-envelope::before      { content: "\f0e0"; }
.fa-facebook::before      { content: "\f09a"; }
.fa-flickr::before        { content: "\f16e"; }
.fa-search::before        { content: "\f002"; }
.fa-twitter::before       { content: "\f099"; }
.fa-instagram::before     { content: "\f16d"; }
.fa-youtube::before       { content: "\f16a"; }
.fa-picture-o::before     { content: "\f03e"; }
.fa-video-camera::before  { content: "\f03d"; }
.fa-play::before          { content: "\f04b"; }
.fa-plus::before          { content: "\f067"; }
.fa-minus::before         { content: "\f068"; }


/* -----------------------------------------------------------------
   PRINT STYLES
   ----------------------------------------------------------------- */
@media print {
  .top, .menu-wrap, .overbody, footer,
  .carousel-nav, .carousel-dots,
  .lightbox { display: none !important; }
  body { font-size: 12pt; }
  .wrapper { max-width: 100%; padding: 0; }
  main .contenido { padding-top: 0; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 0.8em; color: #666; }
}
