*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html{
    font-size: 16px;
}


body {
  font-family: ui-sans-serif, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
  font-size: 1.05rem;
  font-weight: 400; /* 👈 KEY */
  line-height: 1.4;
  letter-spacing: 0.16px;
  color: black;
    background-color: #77A5B6;
}


h1 {
  font-family: 'Montserrat';
  font-size: 3.2rem;
  font-weight: 600;
  letter-spacing: -0.5px;
  line-height: 1.2;
  margin-bottom: 15px;
}

h2 {
    font-family: 'Montserrat', serif;
  font-size: 2.2rem;
  font-weight: 500;
}

h3 {
  font-size: 1.3rem;
  font-weight: 500;
}




.content-box{
    border-radius: 15px;
    background-color: white;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.1);
    margin: 20px;
    padding: 20px;

}

.button{
    display: inline-block;
    padding: 8px 16px;
    background-color: #77A5B6;
    text-decoration: none;
    border-radius: 4px;
    margin-top: 100px;
    color: white;
    align-self: flex-start;
}



nav{
    margin-top: 10px;
    margin-left: 20px;
    margin-right: 20px;
    border-radius: 15px;
    background-color: white;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.1);

}

nav ul{
    width: 100%;
    display: flex;
    list-style: none;
    justify-content: flex-end;
    align-items: center;
    font-size: 1.2rem;
}

nav li{
    height: 80px;
}

nav img{
    height: 100%;
    margin: auto;
}

nav a{
    height: 100%;
    padding: 0 30px;
    text-decoration: none;
    display: flex;
    align-items: center;
    color: black;
}

nav a:hover{
    background-color: #f0f0f0 ;
}

nav li:first-child{
    margin-right: auto ;
    margin-left: 25px;
}

.li-drop:hover .dropdown{
    display: block;
}

.sidebar{
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: 250px;
    z-index: 999;
    background-color: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    box-shadow: -10px 0 10px rgba(0,0,0,0.1);
    display: none;
    flex-direction: column ;
    align-items: flex-start;
    justify-content: flex-start;
}

.sidebar li{
    width:100%;
}

.sidebar a{
    width: 100%;
}

.menu-button{
    display: none;
}

@media(max-width: 800px){
    .hideOnMobile{
        display: none;
    }
    .menu-button{
        display: block;
    }


}
/* verberg op desktop/tablet */
@media (min-width: 801px) {
  .hideOnDesktop {
    display: none;
  }
}


@media(max-width: 400px){
    .sidebar{
        width: 100%;
    }
    .hero-section {
        flex-direction: column;
    }
    .hero-section > div {
        flex: 1 1 100%;
    }

}

svg{
    color: black;
}


.hero-section {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 20px;

  border-radius: 15px;
    flex-wrap: wrap;
}
@media (max-width: 800px){
  .hero-section{
    flex-direction: column;
  }
}

.hero-text {
  color: black;
}

.hero-text h1{
    font-size: 48px;
}
.hero-text p{
    margin: 0 0 1rem 0;
    font-size: 20px;
}

.hero-text,
.hero-image {
  flex: 1;
}

.hero-image img {
  width: 100%;
  height: auto;
  border-radius: 15px;
}

.hero-text p{
    margin: 0 0 1rem 0;
}
.hero-text .button{
    margin-top: 20px;
}



.card-container{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;

}
.card-container h2{
    width: 100%;
    text-align: center;
    margin-top: 20px;
}

.card{
    width: 325px;
    background-color: #f0f0f0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0px 2px 4px rgba(0,0,0,0.2) ;
    margin: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

}

.card svg{
    width: 70px ;
    height: 100px;
    padding-top: 5px;
    margin:0 auto;
    display: block;
    color: #77A5B6;
}
.card-content{
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 16px;
}

.card-content h3{
    font-size: 28px;
    margin-bottom: 8px;
    line-height: 1.2;
    min-height: calc(2 * 1.2em);
    display: block;
}
.card-content p{
    font-size: 16px;
    line-height: 1.3;
    margin-bottom: 10px;
}
.card-content .button{
    display: inline-block;
    padding: 8px 16px;
    background-color: #77A5B6;
    text-decoration: none;
    border-radius: 4px;
    margin-top: auto;
    color: white;
    align-self: flex-start;

}

.footer-container{
    margin-top: auto;
    background-color: #3d3939;
    padding: 2rem 0 4rem 0;
}
.footer{
  width: 80%;
  margin: 0 auto;
  padding: 2rem 0;
  background-color: #3d3939;
  color: white;

  /* maak er een grid van: 3 gelijke kolommen */
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  column-gap: 4rem;   /* horizontale ruimte tussen kolommen */
  row-gap: 2rem;      /* verticale ruimte als het breekt */
  align-items: start; /* titels en tekst netjes bovenaan */

}

/* kolom zelf iets smaller maken en prettige regelbreedte */
.footer-heading{
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.footer-heading p{
  max-width: 42ch; /* beperkt de lijnlengte = “smaller” kolom */
}

/* bestaande styles blijven prima */
.footer-heading h3{
  margin-bottom: 1rem;
  color: #77A5B6;
}
.footer-heading a{
  color: white;
  text-decoration: none;
}
.footer-heading a:hover{
  text-decoration: underline;
  color: #77A5B6;
  transition: .3s ease-out;
}

/* responsive: 2 kolommen op tablet, 1 kolom op mobiel */
@media (max-width: 900px){
  .footer{ grid-template-columns: repeat(2, minmax(220px,1fr)); }
}
@media (max-width: 600px){
  .footer{ grid-template-columns: 1fr; }
}

.footer-bottom{
    width: 80%;
    margin: 0 auto;
    padding: 2rem 0;
    display: flex;
    justify-content: center;
}


/* Team pagina */

.team-card{
        width: 325px;

    border-radius: 10px;
    position: relative;
    overflow: hidden;
    box-shadow: 5px 5px 15px rgba(0,0,0,0.5);
    justify-content: space-between;
    margin: 20px;
}

.team-cardMobile {
    width: 100%; /* Neemt breedte van container aan */
    max-width: 300px; /* Beperk breedte op mobiel */
    margin: 20px auto; /* Centreert de kaart zelf */
    text-align: center; /* Centreert alle tekst en inline elementen */
}

.team-cardMobile-inner {
    display: flex;
    flex-direction: column;
    align-items: center; /* Centreert de foto en tekst verticaal */
}

.team-card img{
    width: 100%;
    border-radius: 10px;
    display: block;
    transition: transform 0.5s;
}

.team-cardMobile img {
    width: 150px; /* Formaat van de ronde foto */
    height: 150px;
    border-radius: 50%; /* Maakt de foto perfect rond */
    object-fit: cover;
    border: 4px solid #77A5B6;
    margin-bottom: 15px;
    box-shadow: 0px 4px 10px rgba(0,0,0,0.1);
}

.overlay{
    height: 0;
    width: 100%;
    background:linear-gradient(transparent,#77A5B6 58%);
    border-radius: 10px;
    position: absolute;
    left: 0;
    bottom: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 0 40px;
    text-align: center;
    font-size: 14px;
    transition: height 0.5s;
}

.overlay h3{
    font-weight: 500;
    margin-bottom: 5px;
    margin-top: 80%;
    font-family: bebas neue;
    font-size: 30px;
    letter-spacing: 2px;
}
.NoOverlay h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 24px;
    color: #1C3D4A;
    margin-bottom: 5px;
    letter-spacing: 1px;
}

.overlay a{
    margin-top: 10px;
    background-color: #1C3D4A;
    padding: 5px 15px;
    text-decoration: none;
    font-size: 14px;
    border-radius: 50px;
    text-align: center;
    color : white;

}

.NoOverlay p {
    font-size: 14px;
    margin-bottom: 15px;
    font-style: italic;
}

.NoOverlay a {
    display: inline-block;
    background-color: #77A5B6;
    padding: 8px 20px;
    text-decoration: none;
    font-size: 14px;
    border-radius: 50px;
    color: white;
    transition: background 0.3s;
}

.team-card:hover img{
    transform: scale(1.2);
}

.team-card:hover .overlay{
    height: 100%;
}

/* afspraak pagina */
.afspraakBox{
    border-radius: 15px;
    background-color: white;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.1);
    padding: 20px;

    /* desktop / tablet */
    max-width: 420px;

    /* AANPASSING: Trek 40px af van de 100% breedte (20px links + 20px rechts) */
    width: calc(100% - 40px);

    margin: 40px auto;   /* Dit zorgt dat die berekende breedte netjes in het midden staat */

}

.afspraakBox h2{
    margin-bottom: 16px;
    color: #1C3D4A;
}

/* layout van het formulier */
.afspraak-form{
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.afspraak-form label{
    font-weight: 600;
    color: #1C3D4A;
    margin-top: 6px;
}

/* inputs en textarea in dezelfde stijl */
.afspraak-form input[type="text"],
.afspraak-form input[type="email"],
.afspraak-form input[type="tel"],
.afspraak-form input[type="date"],
.afspraak-form textarea{
    width: 100%;
    padding: 10px 12px;
    border-radius: 10px;
    border: 2px solid rgba(119, 165, 182, 0.45); /* #77A5B6 maar zachter */
    outline: none;
    font-family: inherit;
    font-size: 1rem;
    background: #fff;
}

/* focus state (klik in veld) */
.afspraak-form input[type="text"]:focus,
.afspraak-form input[type="email"]:focus,
.afspraak-form input[type="tel"]:focus,
.afspraak-form textarea:focus{
    border-color: #77A5B6;
    box-shadow: 0 0 0 3px rgba(119, 165, 182, 0.25);
}

/* textarea netjes */
.afspraak-form textarea{
    resize: vertical;
    min-height: 120px;
}

/* verzendknop: gebruik jouw bestaande .button, maar maak 'm form-friendly */
.afspraak-form .button{
    border: none;
    cursor: pointer;
    margin-top: 10px;
    padding: 10px 16px;
    align-self: flex-start; /* knop niet full width */
}

.afspraak-form p {
    font-size: 14px;
}

.afspraak-form input[type="date"] {
    width: 100%;
    max-width: 100%;
    display: block;
    padding: 10px 12px;
    border-radius: 10px;
    border: 2px solid rgba(119, 165, 182, 0.45);
    outline: none;
    font-family: inherit;
    font-size: 1rem;
    background: #fff;
    box-sizing: border-box;

    -webkit-appearance: none;
    appearance: none;
    min-height: 48px;
}

.afspraak-form input[type="date"]:focus {
    border-color: #77A5B6;
    box-shadow: 0 0 0 3px rgba(119, 165, 182, 0.25);
}

.afspraak-form input[type="date"]::-webkit-date-and-time-value {
    text-align: left;
}

.team-member-info {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 20px;

  border-radius: 15px;
    flex-wrap: wrap;
}

@media (max-width: 800px){
  .team-member-info{
    flex-direction: column;
  }
}

.member-text {
  color: black;
}

.member-text h1{
    font-size: 48px;
}
.member-text p{
    margin: 0 0 1rem 0;
    font-size: 18px;
}

.member-text,
.teamMember-image {
  flex: 1;
}
.teamMember-image{
    display: flex;
  justify-content: flex-end;
}

.teamMember-image img {
  width: 100%;
  max-width: 400px;
  height: auto;
  border-radius: 15px;

}

.member-text p{
    margin: 0 0 1rem 0;
}
.member-text .button{
    margin-top: 20px;
}
.phone {
    color: #007BFF;
    text-decoration: none;
    display: block;

}

.phone:hover {
    text-decoration: underline;
}

.tile-info{
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 20px;

  border-radius: 15px;
  flex-wrap: wrap;
}

.tile-text{
    color: black;
    flex: 1;


}

.tile-text h1{
  font-size: 40px;
}

.tile-text p{
  margin: 0 0 1rem 0;
  max-width: 1100px;
    font-size: 18px;
}

.tile-text ul{
  margin: 10px 0 0 22px;
  padding: 0;
}

.tile-text li{
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 6px;
}

.tile-text .button{
  margin-top: 24px;
}

/* rechter visual zoals profielfoto-blok */
.tile-svg{
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.tile-svg svg{
  width: 100%;
  max-width: 700px;
  height: auto;
  display:block;
  color: #77A5B6;
  fill: #77A5B6;
}

/* mobiel */
@media (max-width: 800px) {
  .tile-info {
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .tile-svg {
    width: 100%;
    justify-content: center;
  }

  .tile-svg svg {
    max-width: 220px;
  }
}


.TarievenBox{
    border-radius: 15px;
    background-color: white;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.1);
    padding: 20px;

    /* desktop / tablet */
    max-width: 440px;

    /* AANPASSING: Trek 40px af van de 100% breedte (20px links + 20px rechts) */
    width: calc(100% - 40px);

    margin: 40px auto;   /* Dit zorgt dat die berekende breedte netjes in het midden staat */
}



.tarief-lijst{
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.tarief-item{
    display: flex;
    align-items: center;
    font-size: 1.6rem;
    gap: 14px;
}

.tarief-naam{
    white-space: nowrap;
}

.tarief-lijn{
    flex: 1;
    border-bottom: 1px dotted #666;
    transform: translateY(2px);
}

.tarief-prijs{
    white-space: nowrap;
    color: #77A5B6;
    font-weight: 500;
}

@media (max-width: 700px){
    .tarief-item{
        font-size: 1.15rem;
    }
}

/* Hoofdtitel */
.privacy h1{
    font-size: 2.6rem;
    margin-bottom: 20px;
}

/* Sectietitels */
.privacy h2{
    font-size: 1.8rem;
    margin-top: 30px;
    margin-bottom: 10px;
    color: #77A5B6;
}

/* Tekst */
.privacy p{
    font-size: 1rem;
    margin-bottom: 12px;
}

/* Lijsten */
.privacy ul{
    padding-left: 20px;
    margin-bottom: 20px;
}

.privacy li{
    margin-bottom: 6px;
}