@font-face {
  font-family: 'Biennale';
  src: url('../fonts/Biennale-Medium (1).otf') format('opentype');
  font-style: normal;
}

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

body{
    font-family: 'Biennale';
    background:#e9e7df;
    color:#04232b;
}

/* =======================
   HEADER
======================= */

.header{
    width:100%;
    background:#fff;
    border-bottom:0.12rem solid #5ed7d4;
    padding:2vh 5vw;
    display:flex;
    justify-content:center;
    align-items:center;
}

.logo{
    display:flex;
    justify-content:center;
    align-items:center;
}

.logo img{
    width:9vw;
    min-width:120px;
    max-width:220px;
    height:auto;
    display:block;
}

/* =======================
   HERO
======================= */

.hero{
    width:100%;
    text-align:center;
        padding: 4vh 5vw 3vh;
}

.hero h1{
        font-size: clamp(2.2rem, 2.5vw, 5rem);
    font-weight:800;
    line-height:1.1;
    max-width:90%;
    margin:auto;
}

/* =======================
   GRID
======================= */

.locations{
        width: 90%;
    margin:auto;
    padding-bottom:5vh;

    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:2rem;
}

/* =======================
   CARD
======================= */

.location-card{
 background: #fff;
    padding: 1.35rem;
    min-height: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.badges{
    display:flex;
    gap:0.5rem;
    margin-bottom:1.2rem;
}

.badge{
    background:#04232b;
    color:#fff;
    font-size:0.95rem;
    font-weight:700;
    padding:0.45em 0.9em;
}

.location-title{
    font-size:1.4rem;
    font-weight:700;
    margin-bottom:0.4rem;
}

   .location-card:nth-child(4) {
    grid-column: auto;
}

.hours{
    font-size: .85rem;
    margin-bottom:1.5rem;
}

.bottom-row{
    margin-top:0rem;
}

.info-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:1rem;
    margin-top:1rem;
    margin-bottom:1.5rem;
}

.address{
    font-size:0.9rem;
    line-height:1.6;
}

.view-link{
    color:#04232b;
    font-size:0.9rem;
    font-weight:700;
    text-decoration:underline;
    white-space:nowrap;
    cursor:pointer;
}

.buttons{
    display:flex;
    gap:0.8rem;
}

.btn{
    flex:1;
    border:none;
    border-radius:0.6rem;
    padding:1rem;
    cursor:pointer;
    font-size: 0.95rem;
    font-weight:700;
    transition:.3s;
}

.btn-dark{
    background:#04232b;
    color:white;
}

.btn-light{
    background:#f5f5f5;
    color:#04232b;
}

.btn:hover{
    transform:translateY(-2px);
}

   footer {
      height: 7vh;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1rem;
      background: #000;
    }

    footer a {
      color: #fff;
      text-decoration: none;
    }

/* =======================
   TABLET
======================= */

@media(max-width:1024px){

    .locations{
        grid-template-columns:repeat(2,1fr);
    }

    .location-title{
        font-size:1.6rem;
    }
}

/* =======================
   MOBILE
======================= */

@media(max-width:768px){

    .hero{
       padding: 3vh 4vw;
    }

    .hero h1{
        font-size:2.2rem;
    }

    .locations{
        width:92%;
        grid-template-columns:1fr;
        gap:1.2rem;
    }
    
    .location-card:nth-child(4){
        grid-column:auto;
    }

    .location-card{
        padding:1.25rem;
    }

    .location-title{
        font-size:1.5rem;
    }

    .buttons{
        flex-direction:column;
    }

    .btn{
        width:100%;
    }

    .logo{
        font-size:2rem;
    }
}