*,
*::before,
*::after {
box-sizing: border-box;
}

html,
body{
  padding: 0;
  margin: 0;
  color: #00328B;
  font-size: 10px;
  font-weight: 400;
  font-style: normal;
  font-family: 'Carnero', Arial, Helvetica, sans-serif;
}

h2{ font-weight: 400; }
p{ font-size: 1.8rem; line-height: 1.5; margin-bottom: 3.2rem; }

img{ width: 100%; }

section{
    height: 100dvh;
    width: 100%;
}

.logo{
    position: absolute;
    top: 0;
    left: 12rem;
    z-index: 2;
    width: 18rem;
}
.logo img{
    width: 100%;
    height: auto;
    display: block;
}

/* Responsive video wrapper */
.video-container {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;  /* keep a nice ratio; remove if you want auto height */
  background: #000;      /* prevents layout shift while loading */
  margin: 0 auto;
}

/* Make the video fill the container cleanly */
.video-container .responsive-video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;     /* or 'contain' if you prefer letterboxing */
  object-position: right;
}

.side-panel{
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0;
    width: 100%;
    max-width: 50vw;
    height: 100dvh;
    background-color: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(10px);
    padding: 10rem 5rem 5rem;
    overflow-y: auto;
    overflow-x: hidden;
    box-shadow: -2px 0 5px rgba(0,0,0,0.1);
    transition: opacity 800ms ease-in-out, max-width 800ms ease-in-out;
}
.side-panel.active{
    max-width: 44rem;
    opacity: 1;
}
.side-panel .side-panel-content{
    text-align: center;
    opacity: 0;
    width: 100%;
    max-width: 34rem;
    transition: opacity 800ms ease-in-out;
}
.side-panel .side-panel-content .grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}
.side-panel.active .side-panel-content{
    opacity: 1
}
.side-panel .grid .grid-item a{
    display: grid;
    grid-template-columns: 2.4rem auto;
    justify-content: flex-start;
    align-items: center;
    gap: .75rem;
    font-size: 1.6rem;
    margin-bottom: 3.2rem;
    text-decoration: none;
    color: #00328B;
}

.side-panel .footer{
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #00328B;
    color: white;
    padding: 1.6rem;
    text-align: left;
    font-size: 1.2rem;
}

.side-panel .footer a{
    color: white;
    text-decoration: none;
    border-bottom: 1px solid white;
}

@media screen and (max-width: 768px) {
    .logo{
        left: 50%;
        transform: translateX(-50%);
    }
    .side-panel{
        max-width: 100%;
        left: -101vw;
        transition: opacity 800ms ease-in-out, left 800ms ease-in-out
    }
    .side-panel.active{
        left: 0;
        opacity: 1;
        padding-left: 3rem;
        padding-right: 3rem;
        max-width: 50rem;
    }
    .side-panel .side-panel-content{
        max-width: 100%;
    }
    .video-container .responsive-video{
        object-position: center;
    }
    .side-panel .grid .grid-item a{
        grid-template-columns: 3rem auto;
    }
    .side-panel .side-panel-content .grid{
        gap: 1rem;
    }
}


@media screen and (max-width: 400px) {
    .side-panel.active{
        padding-left: 2rem;
        padding-right: 2rem;
    }
}
