@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&amp;display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&amp;display=swap');

:root {
/* VARIABLES */
/* COLOR-VARIABLES */
--brown-100: hsl(20, 29%, 92%);
--brown-200: hsl(31, 85%, 88%);
--brown-300: hsl(40, 30%, 83%);
--brown-500: hsl(34, 58%, 70%);
--brown-700: hsl(0, 9%, 39%);
--brown-900: hsl(357, 55%, 15%);
--brown-900-shadows: 59, 17, 19;

--purple-100: hsl(60, 24%, 90%);
--purple-200: hsl(60, 24%, 75%);
--purple-300: hsl(261, 19%, 37%);
--purple-500: hsl(261, 72%, 35%);
--purple-700: hsl(261, 29%, 25%);
--purple-900: hsl(261, 50%, 10%);

--neutral-50: hsl(0, 100%, 100%);
--neutral-200: hsl(0, 0%, 80%);

/* TOKENS */
/* COLOR-TOKENS */
--color-background-white:        var(--neutral-50);
--color-background-lighter:      var(--purple-100);
--color-background-light:        var(--brown-300);
--color-background-medium:       var(--purple-500);
--color-background-dark:         var(--purple-700);
--color-background-darkest:      var(--brown-900);
--color-text-white:              var(--neutral-50);
--color-text-light:              var(--brown-100);
--color-text-medium:             var(--brown-700);
--color-text-dark:               var(--purple-700);
--color-text-darkest:            var(--purple-900);
--color-lines-light:             var(--neutral-200);
--color-btn-base:                var(--brown-300);
--color-btn-dark:                var(--brown-700);
--shadow-dark:                   var(--brown-900-shadows);
--color-menu-background:         var(--purple-300);
--color-menu-light:               var(--purple-100);
--color-menu-dark:               var(--purple-900);

/* VARIABLES */
/* FONT-VARIABLES */
--font-base-ff: Ubuntu; 
--font-base-fs: 1rem;
--font-base-lh: 1.25rem;
--font-base-fw: 300;

--font-base-small-ff: Ubuntu;
--font-base-small-fs: 0.9rem;
--font-base-small-lh: 1rem;
--font-base-small-fw: 300;

--font-base-large-ff: Ubuntu;
--font-base-large-fs: 1.2rem;
--font-base-large-lh: 1.4rem;
--font-base-large-fw: 200;

--font-title-ff: Ubuntu;
--font-title-fs: 1rem;
--font-title-lh: 1.2rem;
--font-title-fw: 600;
--font-title-ls: 0em; /* Letter spacing */

--font-title-small-ff: Ubuntu;
--font-title-small-fs: .9rem;
--font-title-small-lh: 1rem;
--font-title-small-fw: 300;
--font-title-small-ls: 0em; /* Letter spacing */

--font-display-ff: Bebas Neue;
--font-display-fs: calc(0.0875 * 100vw + 22px);
--font-display-lh: calc(0.9 * var(--font-display-fs));
--font-display-fw: 400;
--font-display-ls: 0em; /* Letter spacing */

--font-display-small-ff: Bebas Neue;
--font-display-small-fs: max(2rem, calc(.03 * 100vw));
--font-display-small-lh: calc(0.9 * var(--font-display-small-fs));
--font-display-small-fw: 400;
--font-display-small-ls: 0em; /* Letter spacing */

--font-hero-ff: Bebas Neue;
--font-hero-fs: calc(0.0175 * 100vw + 80px);
--font-hero-lh: calc(0.8 * var(--font-hero-fs));
--font-hero-fw: 400;
--font-hero-ls: 0; /* Letter spacing */

--font-hero-small-ff: Bebas Neue;
--font-hero-small-fs: calc((0.0175 * 100vw + 40px) / 2.25);
--font-hero-small-lh: calc(1.1 * var(--font-hero-small-fs));
--font-hero-small-fw: 400;
--font-hero-small-ls: 0;

--font-menu-ff: Bebas Neue;
--font-menu-fs: clamp(2rem, 2.9vw, 5rem);
--font-menu-lh: clamp(2.5rem, 3.1vw, 6rem);
--font-menu-fw: 400;
--font-menu-ls: 2px; /* Letter spacing */

--spacing-xs: .5rem;
--spacing-small: .8rem;
--spacing-base: clamp(1rem,3vw,4rem);
--spacing-big: clamp(1rem, 5vw, 6rem);
--spacing-large:clamp(3rem, 2rem + 5vw, 8rem);
--borderradius-base: 8px;

/* TOKENS */
/* MARGIN-TOKENS */
--margin-y-base: 2rem;
--margin-y-small: 1rem;
--margin-y-large: 4rem;


};

html {
  scroll-behavior: smooth;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.title-hero {
  font-family: var(--font-hero-ff);
  font-size: var(--font-hero-fs);
  font-weight: var(--font-hero-fw);
  line-height: var(--font-hero-lh);
  letter-spacing: var(--font-hero-ls);
  color: var(--color-text-white);
  text-transform: uppercase;
}

.subtitle-hero {
  font-family: var(--font-hero-small-ff);
  font-size: var(--font-hero-small-fs);
  font-weight: var(--font-hero-small-fw);
  line-height: var(--font-hero-small-lh);
  letter-spacing: var(--font-hero-small-ls);
  color: var(--color-text-white);
  text-transform: capitalize;
}

.title-section {
  font-family: var(--font-display-ff);
  font-size: var(--font-display-fs);
  font-weight: var(--font-display-fw);
  line-height: var(--font-display-lh);
  letter-spacing: var(--font-display-ls);
  color: var(--color-text-medium);
}

.subtitle-section {
  font-family: var(--font-display-small-ff);
  font-size: var(--font-display-small-fs);
  font-weight: var(--font-display-small-fw);
  line-height: var(--font-display-small-lh);
  letter-spacing: var(--font-display-small-ls);
  color: var(--color-text-medium);
}

.title {
  font-family: var(--font-title-ff);
  font-size: var(--font-title-fs);
  font-weight: var(--font-title-fw);
  line-height: var(--font-title-lh);
  letter-spacing: var(--font-title-ls);
  color: var(--color-text-darkest);
  text-transform: uppercase ;
}

.subtitle {
  font-family: var(--font-title-small-ff);
  font-size: var(--font-title-small-fs);
  font-weight: var(--font-title-small-fw);
  line-height: var(--font-title-small-lh);
  letter-spacing: var(--font-title-small-ls);
  color: var(--color-text-darkest);
}

.paragraph {
  font-family: var(--font-base-ff);
  font-size: var(--font-base-fs);
  font-weight: var(--font-base-fw);
  line-height: var(--font-base-lh);
  letter-spacing: var(--font-base-ls);
  color: var(--color-text-darkest);
  margin-bottom: var(--spacing-small);

}

.caption {
  font-family: var(--font-base-small-ff);
  font-size: var(--font-base-small-fs);
  font-weight: var(--font-base-small-fw);
  line-height: var(--font-base-small-lh);
  letter-spacing: var(--font-base-small-ls);
  color: var(--color-text-darkest);
}

/* BLOQUE HERO */

.blqHero {
  background-color: var(--color-background-lighter);
  background-image: url(../images/bers-background.svg);
  background-position: center right;
  background-size: cover;
  background-repeat: no-repeat;
  padding-inline: var(--spacing-large);
  display:grid;
}
.blqHero--regular {
  min-height: 100vh;
  grid-template-columns:repeat(12,1fr);
  grid-template-rows: repeat(3, 1fr);
}
.blqHero--small {
  min-height: 100px;
  grid-template-columns: 1fr;
}
.blqHero__mini-logo {
  width: 190px;
  justify-self: flex-end;
  align-self: center;
}
.blqhero__header {
  grid-column: 1 / 5;
  grid-row: 1 / 2;
  align-self: flex-end;
  margin-bottom: var(--spacing-base);
}
.blqHero__infocard {
  grid-column: 1 / 5;
  grid-row: 2 / 4;
}
.blqHero__dates {
  text-align: center;
}
.blqHero__img {
  grid-column: 6 / 13;
  grid-row: 1 / -1;
  align-self: center;
}
.blqHero__img img,
.blqHero__mini-logo img {
  display:block;
  max-width:100%;
}
.blqHero__paragraph {
  color: var(--color-text-white);
}
.blqHero-buttons {
  display: flex;
  gap: 1rem;
}

@media only screen and (max-width: 1100px) {
  .blqHero {
    background-image: url(../images/bers-background.svg);
    background-position: top left;
    padding-block: var(--spacing-base);
  }
  .blqhero__header {
    grid-column: 1 / 7;
    grid-row: 1 / 2;
    align-self: flex-end;
  }
  .blqHero__infocard {
    grid-column: 1 / 11;
    grid-row: 2 / 4;
  }
  .blqHero__img {
    grid-column: 7 / 11;
    grid-row: 1 / 2;
    align-self: flex-end;
  }

  .blqHero__title, .blqHero__subtitle, .paragraph-hero {
    color: var(--color-text-light);
  }
}

@media only screen and (max-width: 750px) {
  .blqHero {
    grid-template-rows: auto;
  }
  .blqhero__header,
  .blqHero__infocard,
  .blqHero__img {
    grid-column: 1 / -1;
  }
  .blqhero__header {
    grid-row: 2 / 3;
  }
  .blqHero__infocard {
    grid-row: 3 / 4;
  }
  .blqHero__img {
    grid-row: 1 / 2;
    padding-bottom: var(--spacing-small);
  }
}


.blqInstituciones {
  padding-block: var(--spacing-base);
  padding-inline: var(--spacing-base);
  display:flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--spacing-base);
}

.blqInstituciones img {
  display:block;
  max-height: 100px;
  max-width: max(100%,300px);
}

/* SECCIONES */

.blqSection {
  padding-block: var(--spacing-large);
  padding-inline: var(--spacing-large);
  background-color: var(--color-background-light);
}
.blqSection:nth-child(2n) {
  background-color: var(--color-background-lighter);
}

.blqSection__title {
  margin-bottom: var(--spacing-large);
  color: var(--color-text-medium);
}

.blqSection:nth-child(2n+1) > .blqSection__title {
  color: var(--color-text-dark);
}

.blqSection > div {
  margin-bottom: var(--spacing-large);
}

/* SPONSORS */

.sponsors__grid {
  width: 100%;
  display: grid;
  --grid-gap: 2rem;
  --grid-columns-number: 3;
  --grid-item-min-width: 300px;
  --grap-count: calc(var(--grid-columns-number) - 1);
  --total-gap-width: calc(var(--grap-count) * var(--grid-gap));
  --grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-columns-number));
  grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item-min-width), var(--grid-item-max-width)), 1fr));
  grid-gap: var(--grid-gap);
  margin-bottom: var(--spacing-large);
}

.sponsors__grid--gold {
  --grid-columns-number: 2;
}

.sponsors__category {
 margin-bottom: var(--spacing-small);
}

.sponsor {
  background-color: var(--color-background-white);
  padding: var(--spacing-small);
  border-radius: var(--borderradius-base);
}

.sponsor:hover {
  box-shadow: 0px 0px 30px rgba(var(--shadow-dark), 0.2);
}

.sponsor__logo img {
  width:100%;
  display: block;
  margin-bottom: var(--spacing-xs);
}
.sponsor__info {
  display: flex;
  flex-direction: column;
}

.sponsor__link {
  text-decoration: none;
}
.sponsor__link:hover {
  color: var(--color-text-darkest);
  text-decoration: underline;
}


/* COMITES */

.committee__grid {
  width: 100%;
  display: grid;
  --grid-gap: 2rem;
  --grid-columns-number: 3;
  --grid-item-min-width: 300px;
  --grap-count: calc(var(--grid-columns-number) - 1);
  --total-gap-width: calc(var(--grap-count) * var(--grid-gap));
  --grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-columns-number));
  grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item-min-width), var(--grid-item-max-width)), 1fr));
  column-gap: var(--grid-gap);
  row-gap: var(--grid-gap);
}
.committee { 
  margin-bottom: var(--spacing-big);
}
.committee__title {
  margin-bottom: var(--spacing-base);
}
.committee__member {
  margin-bottom: var(--spacing-small);
  background-color: var(--color-background-lighter);
  padding: 1rem;
  display:grid;
  grid-template-rows: 50px;
  gap: 1rem;
  align-items: center;
  border-radius: var(--borderradius-base);
}
.committee__member--confoto {
  grid-template-columns: 50px 1fr;
}
.committee__member-foto img {
  aspect-ratio: 1/1;
  width:100%;
  display: block;
  border-radius: 50%;
  box-shadow: 0px 0px 30px rgba(var(--shadow-dark), 0.2);
}
.committee__header {
  margin-bottom: var(--spacing-xs);
}


/* EDICIONES PASADAS */

.edition__grid {
  display: grid;
  grid-template-columns: min(350px, 100%) 1fr;
  grid-gap: var(--spacing-small);
}

@media only screen and (max-width: 750px) {
  .edition__grid {
    grid-template-columns: 1fr;
  }
}


/* GALERÍA DE IMÁGENES */

.gallery {
  width: 100%;
  display: grid;
  --grid-gap: var(--spacing-xs);
  --grid-item-width: 150px;
  grid-template-columns: repeat(auto-fill, var(--grid-item-width));
  column-gap: var(--grid-gap);
  row-gap: var(--grid-gap);
  grid-auto-flow: dense;
}
@media only screen and (max-width: 900px) {
  .gallery {
    --grid-item-width: 100%;
  }
}
.gallery__item {
  position: relative;
  overflow: hidden;
}
.gallery__item-link {
  position:absolute;
  bottom: 4px;
  right: 4px;
  display:flex;
  justify-content: center;
  align-items: center;
  border-radius: 4px;
  background:var(--color-background-lighter);
  width: 24px;
  aspect-ratio: 1/1;
  text-decoration: none;
  font-weight: 700;
  transition: transform .3s ease-out;
  transform: translateX(50px);
  color: var(--color-text-dark);
}
.gallery__item-link:hover { 
  background-color: var(--color-text-dark);
  color:var(--color-background-lighter);
}
.gallery__item:hover .gallery__item-link {
  transform: translateX(0);
}
.gallery__item--vertical {
  grid-row: span 3;
}
.gallery__item--horizontal {
  grid-column: span 2;
}
.gallery__item--horizontal-largo {
  grid-column: span 3;
}
.gallery img {
  display:block;
  width:100%;
  height: 100%;
  object-fit: cover;
  object-position: left;
}


/* HOTEL CARD */

.hotel__card {
  border-radius: var(--borderradius-base);
  background-color: var(--color-background-lighter);
  overflow: hidden;
  align-self: flex-start;
  display:flex;
  flex-direction: column;
  align-items: center;
}
.hotel__card:hover {
  box-shadow: 0px 0px 30px rgba(var(--shadow-dark), 0.2);
}
.hotel__card-photo {
  border-bottom: 8px solid var(--color-background-medium);
  margin-bottom: var(--spacing-xs)
}
.hotel__card-info {
  padding: var(--spacing-small);
  display:grid;
  row-gap: var(--spacing-xs);
}
.hotel__card-services {
  padding-top: var(--spacing-xs);
  display:grid;
  grid-template-columns: repeat(auto-fill, 24px);
  gap: var(--spacing-xs);
}
.hotel__card-footer {
  width:calc(100% - var(--spacing-small));
  border-top: 1px solid var(--color-lines-light);
  display: grid;
  grid-template-columns: 7fr 3fr;
  padding-block: var(--spacing-xs);
}
.hotel__card-stars {
  padding-inline: var(--spacing-xs);
  display:grid;
  grid-template-columns: repeat(auto-fill, 24px);
  gap: var(--spacing-xs);
  align-items: center;
}
.hotel__card-star img{
  filter: invert(1) brightness(0.5) saturate(0.3);
}
.hotel__card img {
  display:block;
  max-width:100%;
  max-height: 100%;
  object-fit: cover;
  object-position: left;
}
.hotel__card-buttons {
  display:flex;
  justify-content: space-between;
  gap: var(--spacing-xs);
}


/* PROGRAMA */

.programme__grid {
  width: 100%;
  display: grid;
  --grid-gap: 0.5rem;
  --grid-columns-number: 3;
  --grid-item-min-width: 300px;
  --grap-count: calc(var(--grid-columns-number) - 1);
  --total-gap-width: calc(var(--grap-count) * var(--grid-gap));
  --grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-columns-number));
  grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item-min-width), var(--grid-item-max-width)), 1fr));
  column-gap: var(--grid-gap);
  row-gap: var(--grid-gap);
}
.programme__day {
  display: grid;
  grid-template-rows: 50px repeat(3,1fr);
  gap:.5rem;
}
.programme__day-title {
  display:flex;
  align-items: center;
  justify-content: center;
  color:var(--color-background-white);
  background-color: var(--color-background-dark);
}
.programme__partOfDay {
  display:grid;
  grid-template-columns: 20px 1fr;
  background-color: var(--color-background-white);
  padding: var(--spacing-xs);
  gap: var(--spacing-xs);
  position: relative;
  min-height: 275px;
}
.programme__partOfDay--empty {
  background-color: rgba(255,255,255,0.6);
}
.programme__partOfDay-title {
  color:var(--color-text-medium);
  text-orientation: mixed;
  writing-mode: vertical-lr; 
  padding-top: var(--spacing-xs);
}
.programme__sessions {
display:flex;
flex-direction: column;
gap: var(--spacing-xs);
}
.programme__session {
  background-color: var(--color-background-light);
  border-radius: var(--borderradius-base);
  text-align: center;
  padding: var(--spacing-small);
  flex-grow: 1;
}
.programme__session--extended {
  --sesiones:2;
  grid-row: 1 / calc(1 + var(--sesiones));
}
.programme__buttons {
  display:flex;
  justify-content: end;
  width: 100%;;
  margin-bottom: var(--spacing-small);
}
.programme__session-title {
}

.programme__session-description {
}


/* COMMUNICACIONES TARJETAS */
.communications__card {
  padding: var(--spacing-small);
  border-radius: var(--borderradius-base);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-small);
  /* Para que todas las cards de la grid no tengan la misma altura */
  /* align-self: start; */
}

.communications__card--light {
  background-color: var(--color-background-lighter);
}

.communications__card--dark {
  background-color: var(--color-background-light);
}

.communications__card-info {
  flex-grow: 1 ;
}
.communications__card-title {
  margin-bottom: var(--spacing-xs);
  
}
.communications__card-date {
  margin-bottom: var(--spacing-small);
}

.communications__card-description {}

.communications__card-buttons {
  display: flex;
  justify-content: space-between;
  margin-top: var(--spacing-small);
}

.communications__card-list {
  font-family: var(--font-base-ff);
  font-size: var(--font-base-fs);
  font-weight: var(--font-base-fw);
  line-height: var(--font-base-lh);
  letter-spacing: var(--font-base-ls);
  color: var(--color-text-darkest);
  list-style: none;
  margin-bottom: var(--spacing-small);
  padding-left: var(--spacing-small);
}

.communications__card img {
  display:block;
  max-width: 100%;
}

/* BOTONES */

.btn, 
.btb:visited {
  display:inline-block;
  font-size: 1rem;
  font-family: Ubuntu;
  font-weight: 600;
  background-color: var(--color-btn-base);
  color: var(--color-text-medium);
  padding: 0.5rem 1rem;
  text-decoration: none;
  text-transform: capitalize;
  border-radius: 0.25rem;
}
.btn:hover, 
.btn:focus {
  background-color: var(--color-btn-dark);
  color: var(--color-text-light);
  transition: color .3s ease-in, background-color .3s ease-in;
}

.btn--outline {border: 1px solid var(--color-btn-dark);}

/* FOOTER */
.footer {
  display:flex;
  justify-content: center;
  gap:var(--spacing-small);
  padding-block: var(--spacing-base);
  background-color: var(--color-background-dark);
}

/* MENU */

.menu {
  position: fixed;
  top: 1.5rem;
  left: 1rem;
  z-index: 20;
}
.menu__checkbox:checked ~ .menu__options {
  transform: translateX(0);
}
.menu__icon::before {
  content: "";
  width: 16px;
  height: 16px;
  background-image: url("../images/menu-open-color.svg");
  background-size: 80% 80%;
  background-repeat: no-repeat;
  background-position: center center;
  background-color: var(--color-menu-light);
  padding: 1rem;
  border-radius: 50%;
  display: block;
  transition: transform 0.5s ease;
  box-shadow: 0px 0px 20px rgba(0,0,0,0.4);
}
.menu__icon:hover::before {
  transform: rotate(135deg);
}
.menu__checkbox:checked + .menu__icon:before {
  background-image: url("../images/menu-close.svg");
  width: 16px;
  height: 16px;
}
.menu__checkbox {
  display: none;
}
.menu__options {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2em;
  width: 100vw;
  position: fixed;
  top: 0;
  left: 0;
  color: var(--color-menu-light);
  background-color: var(--color-menu-background);
  min-height: 100vh;
  transform: translateX(-100%);
  transition: transform 0.5s ease-in;
  z-index: -1;
}
.menu__item {
  font-family: var(--font-menu-ff);
  font-size: var(--font-menu-fs);
  font-weight: var(--font-menu-fw);
  line-height: var(--font-menu-lh);
  letter-spacing: var(--font-menu-ls);
  text-align: center;
  color: transparent;
  text-decoration: none;
  display: block;
  overflow: hidden;
  position: relative;
}
.menu__item::after, .menu__item::before {
  content: attr(data-content);
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  transform: translateY(0%);
  transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
}
.menu__item::after {
  color: var(--color-menu-light);
  top: 0;
}
.menu__item::before {
  color: var(--color-menu-dark);
  top: 100%;
}
.menu__item:hover::after, .menu__item:hover::before, .menu__item:focus::after, .menu__item:focus::before {
  transform: translateY(-100%);
}
.menu__item:hover::after, .menu__item:focus::after {
  opacity: 0;
}
.menu__item:hover::before, .menu__item:focus::before {
  transition-delay: 0.2s;
}


