:root {
  --color-dark: #08262e;
  --color-light: #ffffff;
  --color-primary-dark: var(--color-dark);
  --color-primary-light: var(--color-light);
  --orange-100: #f1eae7;
  --orange-200: #f2ddc6;
  --orange-300: #f1be84;
  --orange-400: #f08a17;
  --orange-500: #7c5823;
  --orange-600: #363a29;
  --orange-700: #1f302c;
  --aqua-100: #e6eef0;
  --aqua-200: #c2e2e0;
  --aqua-300: #79c9c5;
  --aqua-400: #00a199;
  --aqua-500: #046464;
  --aqua-600: #063f43;
  --aqua-700: #073239;
  --blue-400: #2e2e83;
  --cyan-400: #019cd1;
  --purple-400: #991b80;
  --yellow-400: #fcb817;
  --dark-yellow-400: #f08a17;
  --red-400: #2e2e83;
  --pink-400: #e1287c;
  --violet-100: #ebe8ec;
  --violet-200: #d5c8db;
  --violet-300: #aa89b9;
  --violet-400: #7e31a2;
  --violet-500: #352457;
  --violet-600: #1a253e;
  --violet-700: #112636;
  --current-color-100: var(--violet-100);
  --current-color-fixed-100: var(--violet-100);
  --current-color-200: var(--violet-200);
  --current-color-fixed-200: var(--violet-200);
  --current-color-300: var(--violet-300);
  --current-color-fixed-300: var(--violet-300);
  --current-color-400: var(--violet-400);
  --current-color-fixed-400: var(--violet-400);
  --current-color-500: var(--violet-500);
  --current-color-fixed-500: var(--violet-500);
  --current-color-600: var(--violet-600);
  --current-color-fixed-600: var(--violet-600);
  --current-color-700: var(--violet-700);
  --current-color-fixed-700: var(--violet-700);
  --font-family: "Plus Jakarta Sans", sans-serif;
  --font-size-base: clamp(0.875rem, 0.8182rem + 0.1515vw, 1rem);
  --line-height-base: 1.4;
  --font-color: var(--color-primary-dark);
  --border-radius: 0.5rem;
  --border-radius-xs: 0.25rem;
  --header-height: 110px;
  --main-gap: 1rem;
  --sidenav-width: 100vw; }

@media screen and (min-width: 992px) {
  :root {
    --sidenav-width: 50vw; } }

@media screen and (min-width: 768px) {
  :root {
    --main-gap: 2rem; } }

html.dark-theme {
  --color-primary-dark: var(--color-light);
  --color-primary-light: var(--color-dark);
  --current-color-100: var(--violet-700);
  --current-color-200: var(--violet-600);
  --current-color-300: var(--violet-500);
  --current-color-400: var(--violet-400);
  --current-color-500: var(--violet-300);
  --current-color-600: var(--violet-200);
  --current-color-700: var(--violet-100); }

html,
body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  color: var(--font-color); }

h1,
.h1 {
  font-size: 3rem; }

h2,
.h2 {
  font-size: 3.4rem;
  line-height: 1.1;
  margin-top: 0;
  margin-bottom: 3rem; }
  @media screen and (max-width: 768px) {
    h2,
    .h2 {
      font-size: 2.5rem; } }
  @media screen and (max-width: 576px) {
    h2,
    .h2 {
      font-size: 2rem; } }
h3,
.h3 {
  font-size: 2rem;
  line-height: 0.94;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: var(--current-color-400); }

h4,
.h4 {
  font-size: 1.5rem;
  font-weight: 500; }

h5,
.h5 {
  font-size: 1.25rem; }

h6,
.h6 {
  font-size: 1rem; }

a {
  color: var(--font-color);
  transition: all 0.2s ease; }
  a:hover {
    color: var(--current-color-400); }

.heading-square {
  font-size: 1.25rem;
  color: var(--current-color-400);
  font-weight: 700;
  padding-left: 1.5rem;
  position: relative;
  display: flex;
  align-items: center; }
  .heading-square:before {
    content: "";
    position: absolute;
    left: 0;
    width: 1rem;
    height: 1rem;
    background-color: var(--current-color-400); }
  @media screen and (max-width: 576px) {
    .heading-square {
      padding: 0; }
      .heading-square:before {
        display: none; } }
.small {
  font-size: 0.5em; }

@media screen and (max-width: 576px) {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    word-break: break-word; } }

.fill-main {
  fill: var(--font-color); }

.btn {
  padding: 1rem 2rem;
  border-radius: 50px;
  text-decoration: none;
  background-color: var(--current-color-400);
  color: var(--color-light);
  font-size: 1.25rem;
  border: 2px solid var(--current-color-400);
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center; }
  .btn:before {
    position: absolute;
    content: "";
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    background-color: var(--color-primary-dark);
    border-radius: 50px;
    z-index: -1;
    transition: all 0.2s ease; }
  .btn:hover {
    color: var(--color-light); }
  .btn:hover:before {
    top: 0.4rem; }
  .btn-outline {
    border-color: var(--font-color);
    color: var(--font-color);
    background-color: var(--color-primary-light); }
    .btn-outline:before {
      background-color: var(--current-color-400); }
    .btn-outline:hover {
      color: var(--font-color); }
  @media screen and (max-width: 576px) {
    .btn {
      font-size: 1.1rem;
      padding: 0.75rem 1.5rem; } }
#programa {
  position: relative; }
  #programa .programa-header {
    position: relative;
    z-index: 100; }

.cards-programa {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  position: relative; }
  .cards-programa .card-programa {
    position: relative;
    background-color: var(--current-color-100);
    border-radius: var(--border-radius);
    padding: 2rem 1rem 1rem;
    flex: 0.35; }
    .cards-programa .card-programa h3 {
      color: var(--font-color);
      margin: 0 0 2rem 0;
      font-size: 4.4rem; }
      .cards-programa .card-programa h3 .small {
        display: block;
        line-height: 1.5; }
    .cards-programa .card-programa h4 {
      color: var(--current-color-400);
      margin: 0 0 1rem 0;
      font-size: 1.5rem;
      font-weight: 600; }
    @media screen and (max-width: 576px) {
      .cards-programa .card-programa h3 {
        font-size: 3.5rem; }
      .cards-programa .card-programa h4 {
        font-size: 1.25rem; } }
    .cards-programa .card-programa p {
      font-size: 1.25rem;
      line-height: 1.4; }
    .cards-programa .card-programa .card-programa-wrapper {
      display: flex;
      flex-direction: column;
      height: 100%; }
    .cards-programa .card-programa:last-child {
      margin-bottom: 0; }
    .cards-programa .card-programa .card-content {
      flex: auto;
      display: flex;
      gap: 3rem;
      box-sizing: border-box;
      margin-bottom: 1rem; }
      .cards-programa .card-programa .card-content img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        border-radius: var(--border-radius-xs); }
      .cards-programa .card-programa .card-content .card-content-left {
        padding-left: 1rem; }
      .cards-programa .card-programa .card-content .card-content-right {
        font-size: 1.25rem;
        aspect-ratio: 3 / 4;
        width: 40%;
        min-width: 40%;
        max-width: 40%; }
        .cards-programa .card-programa .card-content .card-content-right h3 {
          font-size: 4rem;
          margin-top: 0;
          margin-bottom: 1rem; }
        @media screen and (max-width: 768px) {
          .cards-programa .card-programa .card-content .card-content-right {
            display: none; } }
      .cards-programa .card-programa .card-content .card-actions {
        margin-top: 3rem;
        margin-bottom: 2rem;
        z-index: 0;
        position: relative;
        display: flex;
        gap: 1rem; }
  .cards-programa .card-programa-2 {
    background-color: var(--current-color-500);
    color: var(--color-primary-light);
    flex: 0.65; }
    .cards-programa .card-programa-2 h3 {
      color: var(--color-primary-light); }
    .cards-programa .card-programa-2 h4 {
      color: var(--current-color-300); }
    .cards-programa .card-programa-2 .card-footer {
      background: var(--current-color-600); }
      .cards-programa .card-programa-2 .card-footer .card-footer-wrapper svg path {
        fill: var(--color-primary-light); }
      .cards-programa .card-programa-2 .card-footer .card-footer-wrapper .card-footer-text {
        color: var(--color-primary-light); }
      .cards-programa .card-programa-2 .card-footer .card-footer-wrapper a {
        color: var(--color-primary-light); }
        .cards-programa .card-programa-2 .card-footer .card-footer-wrapper a:hover {
          color: var(--current-color-300); }
  .cards-programa .card-footer {
    padding: 1rem;
    background: var(--current-color-200);
    border-radius: var(--border-radius); }
    .cards-programa .card-footer .card-footer-wrapper {
      display: flex;
      text-decoration: none; }
      .cards-programa .card-footer .card-footer-wrapper svg {
        width: 3rem;
        height: 3rem;
        flex-shrink: 0; }
        .cards-programa .card-footer .card-footer-wrapper svg path {
          fill: var(--current-color-600); }
      .cards-programa .card-footer .card-footer-wrapper .card-footer-text {
        display: flex;
        flex-direction: column;
        gap: 0.3rem;
        margin-left: 1rem;
        line-height: 1.2;
        font-size: 1.25rem;
        font-weight: bold;
        color: var(--current-color-600); }
      .cards-programa .card-footer .card-footer-wrapper a {
        font-size: 1rem;
        color: var(--current-color-600); }
        .cards-programa .card-footer .card-footer-wrapper a:hover {
          color: var(--current-color-400); }
  .cards-programa .programa-spacer {
    min-height: 50vh; }
  @media screen and (max-width: 1200px) {
    .cards-programa {
      flex-direction: column; }
      .cards-programa .card-programa {
        padding: 1rem; }
        .cards-programa .card-programa .card-content .card-content-left,
        .cards-programa .card-programa .card-content .card-content-right {
          padding-left: 0; } }
.card .card-wrapper {
  background-color: var(--current-color-100);
  padding: 2rem;
  border-radius: var(--border-radius); }

.card *:first-child {
  margin-top: 0; }

.card h3 {
  margin-top: 1rem;
  margin-bottom: 1rem; }

.card h3 + p {
  margin-top: 1rem; }

.card img,
.card video {
  width: 100%;
  border-radius: var(--border-radius-xs); }

@media screen and (max-width: 576px) {
  .card .card-wrapper {
    padding: 1rem; } }

#sponsors {
  background-color: var(--color-light);
  color: var(--color-dark); }
  #sponsors.pin-wrapper h2 {
    padding-top: 2rem;
    padding-bottom: 2rem;
    background-color: var(--color-light);
    position: relative;
    z-index: 9;
    margin-bottom: 0; }
  #sponsors h3 {
    font-size: 1.25rem; }
    #sponsors h3.sponsors-xxl {
      font-size: 2rem;
      margin-bottom: 3rem; }
  #sponsors .list {
    display: flex;
    gap: 2rem 3rem;
    flex-wrap: wrap;
    margin-bottom: 5rem; }
    #sponsors .list .item img {
      width: auto;
      object-fit: contain; }
    #sponsors .list .item.sponsors-xxl img {
      height: 12rem;
      max-width: 20rem; }
    #sponsors .list .item.sponsors-xl img {
      height: 10rem;
      max-width: 15rem; }
    #sponsors .list .item.sponsors-l img {
      height: 8rem;
      max-width: 12rem; }
    #sponsors .list .item.sponsors-m img {
      height: 6rem;
      max-width: 9rem; }
    #sponsors .list .item.sponsors-s img {
      height: 5rem;
      max-width: 7.5rem; }
    @media screen and (max-width: 768px) {
      #sponsors .list {
        justify-content: center; } }
    @media screen and (max-width: 576px) {
      #sponsors .list .item.sponsors-xxl img, #sponsors .list .item.sponsors-xl img, #sponsors .list .item.sponsors-l img, #sponsors .list .item.sponsors-m img, #sponsors .list .item.sponsors-s img {
        height: auto;
        max-width: 100%; } }
#cta-sponsors {
  margin-top: 8rem; }
  #cta-sponsors .content {
    display: flex;
    gap: 2rem;
    padding: 0;
    background-color: var(--current-color-400); }
    #cta-sponsors .content .cta-video {
      width: 60%;
      min-width: 60%; }
      #cta-sponsors .content .cta-video video {
        width: 100%;
        height: 100%;
        min-height: 40vw;
        object-fit: cover; }
    #cta-sponsors .content .cta-text {
      padding: 3rem 2rem 2rem;
      display: flex;
      flex-direction: column;
      gap: 2rem; }
      #cta-sponsors .content .cta-text h2 {
        color: var(--color-light);
        margin: 0; }
      #cta-sponsors .content .cta-text p {
        font-size: 1.25rem;
        color: var(--color-light);
        margin: 0; }
  @media screen and (max-width: 1200px) {
    #cta-sponsors .content {
      flex-direction: column;
      gap: 0; }
      #cta-sponsors .content .cta-video {
        width: 100%;
        min-width: 100%; } }
#speakers .speakers-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  row-gap: 3rem; }

#speakers .speaker {
  color: var(--font-color);
  text-decoration: none; }
  #speakers .speaker h4 {
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    font-size: 1.5rem; }
  #speakers .speaker .card-text {
    margin: 0 0 0.5rem;
    font-size: 1rem;
    font-weight: 600; }
  #speakers .speaker .image-wrapper {
    width: 100%;
    aspect-ratio: 0.8;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 0 0 var(--current-color-400);
    border-radius: var(--border-radius-xs); }
  #speakers .speaker .image {
    width: 100%;
    display: block;
    aspect-ratio: 0.8;
    background-size: cover;
    background-position: center;
    transition: all 0.5s ease;
    border-radius: var(--border-radius-xs);
    transform-origin: 50% 95%; }
  #speakers .speaker:hover {
    color: var(--font-color); }
    #speakers .speaker:hover .image-wrapper {
      box-shadow: 0 0.7rem 0 var(--current-color-400); }
    #speakers .speaker:hover .image {
      scale: 1.1; }

@media screen and (min-width: 768px) {
  #speakers .speakers-list {
    grid-template-columns: repeat(3, 1fr); }
  #speakers .speaker h4 {
    font-size: 2rem;
    margin-bottom: 1rem; } }

@media screen and (min-width: 992px) {
  #speakers .speakers-list {
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    row-gap: 4rem; } }

@media screen and (min-width: 1200px) {
  #speakers .speakers-list {
    grid-template-columns: repeat(5, 1fr); } }

.tags {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.5rem; }
  .tags .tag {
    background-color: var(--current-color-500);
    color: var(--color-light);
    padding: 0.3rem 1rem;
    font-weight: 700; }
    .tags .tag-day {
      background-color: var(--current-color-400); }
    @media screen and (max-width: 576px) {
      .tags .tag {
        padding: 0.3rem 0.5rem; } }
#speaker .speaker-wrapper {
  display: flex;
  flex-direction: row;
  gap: 5rem;
  margin-bottom: 5rem;
  padding: 0 5rem; }
  #speaker .speaker-wrapper .speaker-left {
    max-width: 35%;
    width: 35%; }
    #speaker .speaker-wrapper .speaker-left img {
      max-width: 100%; }
  #speaker .speaker-wrapper .speaker-right {
    flex: 1; }
  #speaker .speaker-wrapper .speaker-title {
    background-color: var(--color-primary-light);
    z-index: 1;
    position: relative;
    padding-top: 2rem;
    padding-bottom: 0.5rem; }
  #speaker .speaker-wrapper h1 {
    margin-top: 0;
    margin-bottom: 1rem;
    line-height: 1;
    color: var(--current-color-400);
    font-size: 6rem; }
  #speaker .speaker-wrapper .position {
    color: var(--current-color-400);
    font-weight: 700;
    font-size: 1.5rem; }
  #speaker .speaker-wrapper .social-media {
    margin-bottom: 2rem; }
  #speaker .speaker-wrapper .bio {
    font-size: 1.25rem;
    margin-bottom: 4rem; }
  #speaker .speaker-wrapper .talk h2 {
    font-size: 2rem;
    margin-bottom: 1rem; }
  #speaker .speaker-wrapper .talk .tags {
    margin-bottom: 2rem; }
  #speaker .speaker-wrapper .talk .talk-title {
    font-size: 2rem;
    margin-bottom: 2rem;
    color: var(--current-color-400);
    font-weight: 600; }
  #speaker .speaker-wrapper .talk .talk-description {
    font-size: 1.25rem; }
  @media screen and (max-width: 768px) {
    #speaker .speaker-wrapper {
      flex-direction: column;
      padding: 0 var(--main-gap); }
      #speaker .speaker-wrapper .speaker-left {
        max-width: 100%;
        width: calc(100% - 10rem);
        padding: 0 5rem; } }
#speaker .image-wrapper {
  position: relative;
  margin-top: 2rem; }
  #speaker .image-wrapper img {
    z-index: 3;
    position: relative; }
  #speaker .image-wrapper .img-tag {
    position: absolute;
    left: -10%;
    bottom: 10%;
    max-width: 60%;
    transition: all 0.4s ease;
    z-index: 4; }
    #speaker .image-wrapper .img-tag svg {
      width: 100%;
      height: 100%; }
  #speaker .image-wrapper .fill-main {
    fill: var(--current-color-400); }
  #speaker .image-wrapper .shadow {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: all 0.4s ease; }
    #speaker .image-wrapper .shadow--1 {
      background-color: var(--current-color-400);
      bottom: -1rem;
      z-index: 2; }
    #speaker .image-wrapper .shadow--2 {
      background-color: var(--current-color-300);
      bottom: -2rem;
      z-index: 1; }
    #speaker .image-wrapper .shadow--3 {
      background-color: var(--current-color-200);
      bottom: -3rem;
      z-index: 0; }
  #speaker .image-wrapper:hover .img-tag {
    transform: rotate(25deg); }
  #speaker .image-wrapper:hover .shadow--1 {
    bottom: -1.5rem; }
  #speaker .image-wrapper:hover .shadow--2 {
    bottom: -3rem; }
  #speaker .image-wrapper:hover .shadow--3 {
    bottom: -4.5rem; }

#past-editions h1 {
  visibility: hidden;
  height: 0;
  margin: 0;
  padding: 0; }

.past-editions {
  margin: var(--main-gap) 0; }
  .past-editions .edition:first-child a {
    border-top: 2px solid var(--current-color-400); }
  .past-editions .edition:nth-child(even) a .img-tag {
    transform: rotate(15deg); }
  .past-editions .edition:nth-child(odd) a .img-tag {
    transform: rotate(-15deg); }
  .past-editions .edition a {
    border-bottom: 2px solid var(--current-color-400);
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 2rem;
    color: var(--current-color-400);
    text-decoration: none;
    margin-top: -2px;
    position: relative; }
    .past-editions .edition a:hover {
      background-color: var(--color);
      border-color: var(--color);
      color: var(--color-primary-light); }
      .past-editions .edition a:hover .img-tag {
        opacity: 1; }
    .past-editions .edition a .edition-year {
      font-size: 2.8rem;
      font-weight: 600;
      flex: 40%; }
    .past-editions .edition a .edition-data {
      flex: 15%; }
    .past-editions .edition a .img-tag {
      position: absolute;
      left: 15%;
      bottom: 20%;
      max-width: 20%;
      transition: none;
      opacity: 0; }
      .past-editions .edition a .img-tag svg {
        width: 100%;
        height: 100%; }
    @media screen and (max-width: 768px) {
      .past-editions .edition a .edition-year {
        flex: 30%; } }
    @media screen and (max-width: 576px) {
      .past-editions .edition a {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 0.5rem;
        padding: 1rem;
        background-color: var(--color);
        border-color: var(--color);
        color: var(--color-light); }
        .past-editions .edition a .img-tag {
          display: none; }
        .past-editions .edition a .edition-year {
          flex: 100%; }
        .past-editions .edition a .edition-data:not(.edition-data--empty) {
          flex: unset;
          border: 1px solid;
          padding: 0.1rem 0.4rem;
          border-radius: var(--border-radius); } }
#agenda h1 {
  visibility: hidden;
  height: 0;
  margin: 0;
  padding: 0; }

#agenda .breadcrumbs {
  padding-bottom: 0; }

.agenda-tabs {
  display: flex;
  gap: 1rem;
  justify-content: flex-end;
  padding: 2rem 4rem 0 1rem;
  background-color: var(--color-primary-light); }
  .agenda-tabs .tab-button {
    padding: 1rem 2rem;
    cursor: pointer;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-primary-light);
    transition: all 0.3s ease;
    border: none;
    border-radius: var(--border-radius) var(--border-radius) 0 0; }
    .agenda-tabs .tab-button:hover {
      text-decoration: underline; }
    .agenda-tabs .tab-button:focus, .agenda-tabs .tab-button:focus-visible, .agenda-tabs .tab-button:active {
      text-decoration: none; }
    .agenda-tabs .tab-button.active {
      z-index: 1; }
    @media screen and (max-width: 576px) {
      .agenda-tabs .tab-button {
        padding: 1rem 0.5rem;
        font-size: 1.2rem;
        flex: 1;
        text-align: center; } }
    .agenda-tabs .tab-button:first-child {
      background-color: var(--current-color-300); }
    .agenda-tabs .tab-button:last-child {
      background-color: var(--current-color-400); }

.tab-content {
  display: none;
  margin-top: -1px; }
  .tab-content.active {
    display: block; }

.agenda-table {
  width: 100%;
  margin: 0;
  overflow: hidden; }

.agenda-header {
  display: grid;
  grid-template-columns: 20rem 1fr 1fr;
  gap: 0.5rem;
  color: var(--color-primary-light);
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: 0.5rem; }
  .agenda-header .track-column {
    padding: 1rem;
    text-align: center;
    border-radius: var(--border-radius);
    background-color: var(--current-color-400); }
  @media screen and (max-width: 768px) {
    .agenda-header {
      grid-template-columns: 100px 1fr 1fr; }
      .agenda-header .time-column,
      .agenda-header .track-column {
        padding: 0.75rem 0.5rem;
        font-size: 1rem; } }
#agenda .content .tab-content#tab-viernes .agenda-row.header {
  background-color: var(--current-color-300); }

.agenda-row {
  display: grid;
  grid-template-columns: 20rem 1fr 1fr;
  margin-bottom: 0.5rem;
  align-items: start;
  gap: 0.5rem; }
  .agenda-row.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 2rem;
    background: var(--current-color-400);
    color: var(--color-primary-light);
    border-radius: 10px; }
    .agenda-row.header .day-title {
      font-size: 2.5rem;
      font-weight: 700; }
    .agenda-row.header .day-where {
      font-size: 1.25rem;
      font-weight: 400; }
  @media screen and (max-width: 768px) {
    .agenda-row {
      grid-template-columns: 100px 1fr 1fr;
      min-height: 60px; }
      .agenda-row.header {
        padding: 1rem;
        align-items: flex-start;
        gap: 0.2rem; }
        .agenda-row.header .day-title {
          font-size: 1.5rem;
          line-height: 1.1;
          font-weight: 700; }
        .agenda-row.header .day-where {
          font-size: 1rem;
          font-weight: 400; } }
.time-slot {
  padding: 1.5rem;
  background: var(--current-color-100);
  border-radius: var(--border-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 500; }
  @media screen and (max-width: 768px) {
    .time-slot {
      padding: 0.75rem 1rem;
      font-size: 1rem;
      width: auto;
      display: inline-block;
      border-radius: 10px;
      background: var(--current-color-400);
      color: white;
      font-weight: 700; } }
.session, .session--full {
  padding: 2rem;
  background: var(--current-color-100);
  border-radius: var(--border-radius);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  transition: background-color 0.2s ease;
  box-sizing: border-box;
  width: 100%; }
  .session h3, .session--full h3 {
    color: var(--font-color);
    font-size: 2.25rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.2;
    margin: 0; }
  .session .speaker, .session--full .speaker {
    margin: 0;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 700;
    color: var(--current-color-400);
    margin-top: 1rem; }
    .session .speaker a, .session--full .speaker a {
      color: var(--current-color-400);
      text-decoration: none; }
      .session .speaker a:hover, .session--full .speaker a:hover {
        text-decoration: underline; }
    .session .speaker span, .session--full .speaker span {
      display: block;
      font-size: 1.2rem;
      font-weight: 400;
      color: var(--current-color-400); }
  .session .empty-session, .session--full .empty-session {
    text-align: center;
    font-style: italic;
    font-size: 1.2rem; }
  @media screen and (max-width: 768px) {
    .session, .session--full {
      padding: 1rem 0.75rem; }
      .session h3, .session--full h3 {
        font-size: 1.1rem;
        line-height: 1.2; }
      .session .speaker, .session--full .speaker {
        font-size: 1rem;
        margin-top: 0.5rem; }
        .session .speaker span, .session--full .speaker span {
          font-size: 0.9rem; } }
.session--full {
  grid-column: 2 / -1; }

@media screen and (max-width: 768px) {
  .agenda-table {
    display: block; }
  .agenda-header {
    display: none; }
  .agenda-row {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem; }
    .agenda-row.single .session-full {
      grid-column: unset; }
    .agenda-row.parallel .session, .agenda-row.parallel .session--full {
      padding: 0;
      border-radius: var(--border-radius);
      overflow: hidden; }
      .agenda-row.parallel .session .track-name, .agenda-row.parallel .session--full .track-name {
        text-align: center;
        width: 100%;
        background: var(--current-color-300);
        color: var(--color-primary-light);
        padding: 0.3rem;
        font-weight: 700;
        font-size: 1rem; }
      .agenda-row.parallel .session .session-wrapper, .agenda-row.parallel .session--full .session-wrapper {
        padding: 1rem 0.75rem; } }

.agenda-content {
  margin-top: 3rem; }
  @media screen and (max-width: 768px) {
    .agenda-content .hidden-small {
      display: none; } }
  @media screen and (min-width: 769px) {
    .agenda-content .hidden-big {
      display: none; } }
#info {
  font-size: 1.25rem; }
  #info h1 {
    visibility: hidden;
    height: 0;
    margin: 0;
    padding: 0; }
  #info .row .card {
    max-width: 40%;
    width: 40%; }
    #info .row .card img {
      max-width: 100%; }
  @media screen and (max-width: 768px) {
    #info .row {
      flex-direction: column; }
      #info .row .card {
        max-width: 100%;
        width: 100%; } }
.breadcrumbs {
  font-size: 1.25rem;
  color: var(--font-color);
  padding: calc(var(--main-gap) * 2) var(--main-gap) var(--main-gap); }
  .breadcrumbs a {
    text-decoration: none; }
  .breadcrumbs span {
    color: var(--current-color-400); }

body.menu-open {
  overflow: hidden;
  height: 100vh;
  position: fixed;
  width: 100%; }
  body.menu-open .navbar-mobile .hamburger-wrapper {
    opacity: 0;
    pointer-events: none; }
  body.menu-open .navbar-mobile a.btn {
    background-color: var(--color-primary-light);
    color: var(--font-color); }

#mobile-menu {
  overflow-y: auto;
  max-height: 100vh;
  box-sizing: border-box;
  opacity: 0;
  left: calc(-1 * var(--sidenav-width));
  transition: opacity 0s 0.4s, left 0.4s ease; }

body.menu-open #mobile-menu {
  opacity: 1;
  left: 0;
  transition: opacity 0s, left 0.4s ease; }

.navbar-mobile {
  position: fixed;
  bottom: 2rem;
  padding-left: 2rem;
  z-index: 9999;
  display: flex;
  gap: 1rem;
  width: 100%;
  justify-content: center;
  align-items: center; }
  .navbar-mobile .hamburger-wrapper {
    background: var(--current-color-200);
    height: auto;
    display: flex;
    width: 4rem;
    aspect-ratio: 1;
    align-items: center;
    justify-content: center;
    border-radius: 50%; }
    @media screen and (max-width: 576px) {
      .navbar-mobile .hamburger-wrapper {
        width: 3.3rem; } }
.site-header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 999;
  background-color: var(--color-primary-light);
  transition: all 0.3s ease; }
  .site-header.scrolled {
    transform: translateY(calc(-1 * var(--header-height))); }
  .site-header.scrolling-up {
    transform: translateY(0); }
  .site-header .navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem var(--main-gap); }
    .site-header .navbar .navbar-left,
    .site-header .navbar .navbar-right {
      display: flex;
      align-items: center;
      gap: 2rem; }

/* Theme Toggle */
.theme-switch {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 28px;
  margin: 0 1rem; }
  .theme-switch input {
    display: none; }
  .theme-switch .slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--color-primary-light);
    border: 2px solid var(--color-primary-dark);
    transition: 0.4s;
    border-radius: 50px; }
    .theme-switch .slider::before {
      position: absolute;
      content: "";
      height: 20px;
      width: 20px;
      left: 3px;
      bottom: 2px;
      background-color: var(--color-primary-dark);
      transition: 0.4s;
      border-radius: 50%; }
  .theme-switch input:checked + .slider {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-light); }
    .theme-switch input:checked + .slider::before {
      transform: translateX(21px);
      background-color: var(--color-primary-light); }

/* Hamburger */
.hamburger {
  flex-direction: column;
  justify-content: space-around;
  width: 2rem;
  height: 2rem;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  transition: all 0.1s ease; }
  .hamburger .hamburger-line {
    display: inline-block;
    width: 2rem;
    height: 0.25rem;
    background: var(--color-primary-dark);
    border-radius: 10px; }
  .hamburger:hover {
    gap: 0.3rem; }
  @media screen and (max-width: 576px) {
    .hamburger {
      width: 1.8rem;
      height: 1.8rem;
      gap: 0.3rem; }
      .hamburger .hamburger-line {
        width: 1.8rem; } }
.logo-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: var(--font-color); }
  .logo-link:hover {
    color: var(--font-color); }
  @media screen and (max-width: 576px) {
    .logo-link svg {
      width: 2.7rem; } }
.logo {
  height: 2rem; }

.logo-text {
  display: flex;
  flex-direction: column;
  margin-left: 1rem;
  line-height: 1.2;
  font-size: 2rem;
  font-weight: bold; }
  .logo-text .event-place {
    opacity: 0.65; }
  @media screen and (max-width: 576px) {
    .logo-text {
      font-size: 1.25rem;
      margin-left: 0.7rem; } }
/* Sidenav */
.sidenav {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  max-height: 100dvh;
  position: fixed;
  z-index: 1000;
  top: 0;
  left: calc(-1 * var(--sidenav-width));
  width: var(--sidenav-width);
  background-color: var(--current-color-fixed-500);
  overflow-x: hidden;
  transition: left 0.4s ease; }
  .sidenav .logo-link {
    padding-top: 1rem;
    padding-left: 1.5rem; }
  .sidenav ul {
    list-style: none;
    padding: 0;
    margin: 0; }
  .sidenav .sidenav-menu {
    flex: auto;
    padding: 1rem 4rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: center; }
    .sidenav .sidenav-menu li a {
      text-decoration: none;
      color: var(--color-light);
      transition: all 0.2s ease; }
      .sidenav .sidenav-menu li a .nav-link-title {
        font-size: 3rem;
        font-weight: bold;
        display: block;
        margin-bottom: 0; }
      .sidenav .sidenav-menu li a .nav-link-desc {
        font-size: 1.25rem; }
      .sidenav .sidenav-menu li a:hover {
        color: var(--current-color-400); }
    @media screen and (max-width: 576px) {
      .sidenav .sidenav-menu {
        padding: 1rem 2rem; }
        .sidenav .sidenav-menu li a .nav-link-title {
          font-size: 2rem; } }
  .sidenav .sidenav-bottom {
    padding: 2rem 3rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem; }
    .sidenav .sidenav-bottom a {
      font-size: 1.5rem;
      font-weight: 600;
      color: var(--color-light); }
      .sidenav .sidenav-bottom a:hover {
        color: var(--current-color-400); }
    @media screen and (max-width: 576px) {
      .sidenav .sidenav-bottom {
        padding: 1rem 2rem; } }
  .sidenav .close-btn {
    position: absolute;
    top: 0.7rem;
    right: 3rem;
    font-size: 3rem;
    text-decoration: none;
    cursor: pointer;
    color: var(--color-light); }
    .sidenav .close-btn:hover {
      color: var(--current-color-400); }
  @media screen and (max-width: 576px) {
    .sidenav {
      padding-bottom: 8rem; } }
  .sidenav svg .fill-main {
    fill: var(--color-light); }
  .sidenav .logo-text {
    color: var(--color-light); }

.social-media {
  display: flex;
  gap: 1.5rem; }
  .social-media a {
    text-decoration: none; }
    .social-media a .fill-main {
      transition: all 0.2s ease; }
    .social-media a:hover .fill-main {
      fill: var(--current-color-400); }
  .social-media .social-icon {
    width: 2rem;
    height: 2rem;
    display: inline-block;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    background-color: var(--font-color); }
    .social-media .social-icon--x {
      -webkit-mask-image: url("/img/icons/icon-x.svg");
      mask-image: url("/img/icons/icon-x.svg"); }
    .social-media .social-icon--bluesky {
      -webkit-mask-image: url("/img/icons/icon-bluesky.svg");
      mask-image: url("/img/icons/icon-bluesky.svg"); }
    .social-media .social-icon--linkedin {
      -webkit-mask-image: url("/img/icons/icon-linkedin.svg");
      mask-image: url("/img/icons/icon-linkedin.svg"); }
    .social-media .social-icon--github {
      -webkit-mask-image: url("/img/icons/icon-github.svg");
      mask-image: url("/img/icons/icon-github.svg"); }
    .social-media .social-icon--instagram {
      -webkit-mask-image: url("/img/icons/icon-instagram.svg");
      mask-image: url("/img/icons/icon-instagram.svg"); }
    .social-media .social-icon--web {
      -webkit-mask-image: url("/img/icons/icon-web.svg");
      mask-image: url("/img/icons/icon-web.svg"); }
    .social-media .social-icon--telegram {
      -webkit-mask-image: url("/img/icons/icon-telegram.svg");
      mask-image: url("/img/icons/icon-telegram.svg"); }
    .social-media .social-icon:hover {
      background-color: var(--current-color-400); }

.languages {
  display: flex;
  gap: 0.5rem; }
  .languages a {
    text-decoration: none;
    border: 1px solid;
    padding: 0.3rem;
    opacity: 0.6; }
    .languages a.current {
      opacity: 1;
      pointer-events: none; }
    .languages a:hover {
      opacity: 1; }

#home-header h1 {
  visibility: hidden;
  height: 0;
  margin: 0;
  padding: 0;
  font-size: 0;
  width: 0; }

#home-header > .content {
  padding-top: 0;
  padding-bottom: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: calc(100dvh - calc(var(--header-height) + 2rem)); }
  @media screen and (max-width: 768px) {
    #home-header > .content {
      justify-content: flex-start; } }
#home-header .programa-header {
  margin-top: 1rem; }
  #home-header .programa-header .heading-square {
    margin-bottom: 0.5rem; }
  #home-header .programa-header h2 {
    margin-bottom: 1rem; }

.logo-header {
  width: 100%;
  height: 100%;
  flex: auto; }
  .logo-header svg {
    width: 100%;
    height: auto;
    overflow: visible; }
    .logo-header svg .capa1 {
      fill: var(--color-primary-dark); }
    .logo-header svg .capa2 {
      fill: var(--current-color-400); }
    .logo-header svg .capa3 {
      fill: var(--current-color-300); }
    .logo-header svg .capa4 {
      fill: var(--current-color-200); }
  @media screen and (max-width: 576px) {
    .logo-header {
      padding: 1rem 0; } }
footer {
  background-color: var(--color-dark);
  color: var(--color-light);
  padding-top: 1rem; }

#organizadores .orgs {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 1rem; }
  #organizadores .orgs .org {
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 1rem;
    background: var(--current-color-fixed-500);
    padding: 1rem 1.5rem 1rem 1rem;
    border-radius: var(--border-radius);
    color: var(--color-light);
    text-decoration: none;
    font-size: 1rem;
    font-weight: 700; }
    #organizadores .orgs .org img {
      aspect-ratio: 1;
      object-fit: cover; }
    #organizadores .orgs .org-name {
      font-size: 1.5rem;
      font-weight: 500;
      margin-bottom: 0; }
  @media screen and (max-width: 768px) {
    #organizadores .orgs {
      gap: 1rem; }
      #organizadores .orgs .org {
        flex: 1 1 100%; }
        #organizadores .orgs .org-name {
          font-size: 1.5rem; } }
#footer-menu {
  margin-bottom: 5rem; }
  #footer-menu .horizontal-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 2rem;
    justify-content: flex-start; }
    #footer-menu .horizontal-menu li a {
      color: var(--color-light);
      text-decoration: none;
      font-size: 1.2rem; }
      #footer-menu .horizontal-menu li a:hover {
        text-decoration: underline; }
  @media screen and (max-width: 576px) {
    #footer-menu {
      margin-bottom: 4rem; }
      #footer-menu .horizontal-menu {
        flex-direction: column;
        gap: 1.5rem; } }
#editions {
  margin-bottom: 5rem; }
  #editions .editions {
    color: var(--color-light);
    display: flex;
    gap: 1rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-start; }
    #editions .editions a,
    #editions .editions span {
      color: var(--color-light);
      font-weight: 600;
      font-size: 1.5rem; }
      #editions .editions a:hover:not(span):not(.current),
      #editions .editions span:hover:not(span):not(.current) {
        text-decoration: underline;
        color: var(--color); }
      #editions .editions a.current,
      #editions .editions span.current {
        background-color: var(--current-color-fixed-400);
        text-decoration: none;
        cursor: default;
        padding: 0.2rem 0.5rem;
        border-radius: var(--border-radius-xs); }

#contact {
  display: flex;
  gap: 1.5rem 5rem;
  margin-bottom: 4rem;
  flex-wrap: wrap; }
  #contact a {
    color: var(--current-color-fixed-400);
    font-size: 2.5rem; }
    #contact a .fill-main {
      fill: var(--current-color-fixed-400); }
    #contact a:hover {
      color: var(--color-light); }
      #contact a:hover .fill-main {
        fill: var(--color-light); }
  @media screen and (max-width: 768px) {
    #contact a {
      font-size: 2rem; } }
.tech {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 2rem; }
  .tech i {
    color: var(--current-color-fixed-400); }

body,
html {
  margin: 0; }

.main-content {
  padding: var(--header-height) 0 2rem;
  background-color: var(--color-primary-light); }
  .main-content > section {
    margin-bottom: 4rem; }

.content {
  padding: var(--main-gap); }

.row {
  display: flex;
  gap: 2rem;
  margin-bottom: 5rem;
  flex-wrap: wrap;
  align-items: flex-start; }
  .row .col {
    flex: 1;
    box-sizing: border-box; }

.block-heading {
  padding-top: 2rem;
  padding-bottom: 2rem;
  background-color: var(--color-primary-light);
  position: relative;
  z-index: 9;
  margin-bottom: 0; }
  .block-heading h2 {
    margin-bottom: 0.5rem; }
  .block-heading h3 {
    margin-top: 0.5rem;
    margin-bottom: 0; }

/* Responsive */
@media screen and (max-width: 767px) {
  .hide-on-mobile {
    display: none; } }

@media screen and (min-width: 768px) {
  .show-on-mobile-only {
    display: none; } }
