/*----------------------*/
/* colors
/*----------------------*/

:root {
    --blue: #31a7df;
    --darkerblue: #2c88b4;
    --black: #242424;
    --almostwhite: #f3f3f3;
    --lightgray: #8D8D8D;
    --gray: #707070;
}

/*----------------------*/
/* styles
/*----------------------*/

*, ::after, ::before {padding: 0; margin: 0; box-sizing: border-box;}
html {font-size: clamp(15px, 1.15vw, 20px); scroll-behavior: smooth;}
body {font-size: 0.75rem; color: var(--black); font-family: 'Merriweather', serif;}
.container {max-width: 57.5rem; margin: 0 auto; padding: 0 1rem;}
img {max-width: 100%; display: block;}
h1,h2,h3 {line-height: 1.3;}
.twocols {display: grid; grid-template-columns: 50% calc(50% - 5rem); grid-gap: 5rem; padding-top: 0.25rem;}
@media (max-width: 850px) {
    .twocols {grid-template-columns: 100%; grid-gap: 3.5rem;}
    .twocols > div > *:last-child {margin-bottom: 0;}
    .twocols > div.contentblock + div.contentblock {margin-top: -1rem;}
    .hiddenmobile {display: none;}
}
.threecols {display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); grid-gap: 2.25rem 1.4rem; }
a {color: var(--blue); text-decoration: none;}
a.iconlink {text-decoration: none; font-weight: bold;}
a.iconlink img {display: inline-block; height: 0.92em; vertical-align: middle; margin-right: 0.4em;}
.info {color: var(--lightgray); font-weight: 300;}
.more_overlay {position: relative;}
.more_overlay::after {
    content: "Meer informatie";
    position: absolute;
    color: white;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%; 
    background: rgba(0,0,0,0.5);
    z-index: 1;
    font-weight: bold;
    opacity: 0;
    transition: all 0.2s ease-in-out;
}
a:hover .more_overlay::after {opacity: 1;}

.button, button {
    display: inline-block;
    background: var(--blue);
    color: white;
    border: 0;
    border-radius: 0.15rem;
    border-bottom: 0.2rem solid var(--darkerblue); 
    font-size: 0.8rem;
    font-weight: bold;
    padding: 0.65rem 1rem;
    text-decoration: none;
    margin-right: 0.45rem;
    position: relative;
    font-family: 'Merriweather', serif;
    cursor: pointer;    
}
.button.icon {height: 3rem; width: 3rem; vertical-align: middle; padding: 0; margin-right: 0.3rem;}
.button.icon img {filter: invert(1) contrast(1.5); height: 1.25rem; position: relative; top: 50%; left: 50%; transform: translate(-50%,-50%);}

/*----------------------*/
/* header
/*----------------------*/

header .topbar {background: var(--blue); color: white; font-size: 0.7rem; padding: 0.625rem 0; font-weight: bold;}
header .topbar .container {display: flex; justify-content: space-between;}
header .topbar a {color: white; text-decoration: none; margin-right: 1.5rem;}
header .topbar a img {filter: invert(1) contrast(1.5);}
header nav {background: white; border-bottom: 1px solid rgba(0,0,0,0);}
header nav .container {font-size: 0.8rem;}
header nav .container > a {position: absolute; z-index: 3; margin-top: 1rem;}
header nav .container > a img {width: 7.5rem; height: auto;}
header nav .container > div ul {display: flex; justify-content: flex-end; gap: 2rem;}
header nav .container > div ul li {list-style: none; padding: 2.05rem 0;}
header nav .container > div ul li a {color: var(--gray); text-decoration: none; position: relative; transition: color 0.15s ease-in-out;}
header nav .container > div ul li.active a,
header nav .container > div ul li a:hover {color: var(--blue);}
header nav .container > div ul li a::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    left: 0;
    bottom: 0;
    background: var(--blue);
    margin-bottom: -0.4rem;
    transform: scaleX(0);
    transition: transform 0.15s ease-in-out;
}
header nav .container > div ul li.active a::after,
header nav .container > div ul li a:hover::after {transform: scaleX(1);}
header nav .container > div .button {display: none;}
header nav .container > button {
    background: url(/img/menu.svg) center center / contain no-repeat; 
    border: 0; 
    margin: 0.5rem 0;
    padding: 0;
    width: 3rem;
    height: 3rem;
    display: none;
}
header + .content {padding-top: 2.25rem;}
@media (max-width: 800px) {
    header nav .container > button {display: inline-block;}
    header nav .container > a {left: 1rem;}
    header nav .container > a img {width: 6rem;}
    header nav .container {text-align: right;}
    header nav .container > div {
        display: block;
        position: fixed;
        z-index: 2;
        background: #f3f3f3;
        right: 0;
        top: 0;
        width: calc(100% - 8.2rem);
        max-width: 25rem;
        margin-top: 6.175rem;
        padding-bottom: 1.9rem;
        height: calc(100vh - 6.175rem);
        transform: translateX(100%);
        transition: transform 0.2s ease-in-out;
    }
    header nav .container::after {
        content: ""; 
        opacity: 0; 
        transition: opacity 0.2s ease-in-out; 
        pointer-events: none;
        position: fixed; 
        margin-top: 6.175rem; 
        display: block; 
        left: 0;
        top: 0; 
        width: 100%; 
        height: 100vh; 
        background: rgba(0,0,0,0.15);
        z-index: -1;
    }
    header nav .container > div .button {display: inline-block; position: relative; right: 1.45rem;}
    header nav .container > div ul {flex-direction: column; gap: 0; margin-bottom: 1.5rem;}
    header nav .container > div ul li {padding: 0;}
    header nav .container > div ul li a {padding: 1.2rem 1.75rem; display: block; border-bottom: 1px solid rgba(0,0,0,0.1); background: white;}
    header nav .container > div ul li a::after {content: none;}
    body.menushown header {position: sticky; top: 0; z-index: 3;}
    body.menushown header nav {border-bottom: 1px solid rgba(0,0,0,0.1);}
    body.menushown header nav .container > div {transform: translateX(0%);}
    body.menushown header nav .container::after {opacity: 1;}
    body.menushown header nav .container > button {background-image: url(/img/close.svg);}
    
}
@media (max-width: 500px) {
    header .topbar .container {justify-content: flex-start;}
    header .topbar .container > *:nth-child(1) {display: none;}
}

/*----------------------*/
/* banner
/*----------------------*/

.banner {background: url(/uploads/header.png) center center / cover no-repeat; color: white; position: relative; padding-bottom: 3.3rem;}
.banner::after {content: ""; opacity: 0.3; background: black; left: 0; top: 0; width: 100%; height: 100%; position: absolute; z-index: 0;}
.banner .container {position: relative; min-height: 29.6rem; display: flex; flex-direction: column; justify-content: flex-end; z-index: 1;}
.banner .container h1 {font-size: 3.9rem; padding-bottom: 1rem;}

/*----------------------*/
/* content
/*----------------------*/

.content {font-size: 0.9rem; font-weight: 300; line-height: 1.94;}
.content p {margin-bottom: 1.94em;}
.content h1 {margin-bottom: 2.4rem; font-size: 2.4rem;}
.content h2 {margin-bottom: 2.5rem; font-size: 1.7rem;}
.content * + h2 {margin-bottom: 1.7rem; margin-top: 4rem; font-size: 1.7rem;}
.content .twocols h2 {margin-bottom: 1.4rem; font-size: 1.7rem;}
.content h3 {font-size: 1rem; margin-top: 2.8rem; margin-bottom: 0.5rem;}
.content ol, .content ul {margin-left: 2em; margin-bottom: 1.94em;}
.content .container {padding-top: 2.5rem;}
.content .container > .featuredimg:first-child + *,
.content .container > *:first-child {margin-top: 2.5rem;}
.content .container > *:last-child {margin-bottom: 2.5rem;}
.content .container .featuredimg {float: right; width: 50%; display: flex; justify-content: flex-end; align-items: flex-start; margin-top: 0.25rem; padding: 0 0 2.5rem 5rem;}
.content .container .featuredimg:first-child {margin-top: 2.75rem;}
.content .container .featuredimg.quicksleeper {float: left; padding: 0 5rem 2.5rem 0;}
.content h1 + .info, .content h1 + .info + .info {margin-top: -1.4rem; margin-bottom: 1.4rem;}
.content h1 + .info + .info {margin-bottom: 2.4rem;}
@media (max-width: 600px) {
    body:not(.section_people) .content .container .featuredimg.portrait {display: none;}
    .content .container .featuredimg {float: none; padding: 0 0 2.5rem 0; width: 100%;}
}

/*----------------------*/
/* breadcrumbs
/*----------------------*/

.breadcrumbs {display: flex; gap: 0 3rem; margin-bottom: 2.4rem; font-size: 0.8rem; margin-left: 0!important; flex-wrap: wrap;}
.breadcrumbs li {list-style: none;}
.breadcrumbs li a {color: var(--black); text-decoration: none; white-space: nowrap;}
.breadcrumbs li::after {
    content:""; 
    display: inline-block; 
    width: 1rem; 
    height: 1.25rem; 
    background: url(/img/arrowright.svg) center center / contain no-repeat;
    vertical-align: middle;
    position: relative;
    bottom: 0.1rem;
    left: 1.4rem;
}
.breadcrumbs li:last-child::after {content: none;}

/*----------------------*/
/* map
/*----------------------*/

.map {background: #f0f0f0 url(/img/map.png) center center / auto 23.75rem no-repeat; padding: 4.4rem 0 3rem; position: relative;  border-top: 2.5rem solid white;}
.map::after {content: ""; background: url(/img/marker.svg) center calc(50% - 1.35rem) / auto 3.25rem no-repeat; left: 0; top: 0; width: 100%; height: 100%; position: absolute; z-index: 0;}
.map .container {display: flex; justify-content: flex-end; position: relative; z-index: 1;}
.map .container > div {background: white; padding: 2.2rem 2rem 0.75rem 2.2rem; font-size: 0.9rem; font-weight: 300; line-height: 1.94; width: 100%; max-width: 21rem;}
.map .container > div h3 {font-size: 1.7rem; padding-bottom: 0.75rem;}
.map .container > div p {padding-bottom: 1.25rem;}
@media (max-width: 700px) {
    .map .container {justify-content: center;}
}

/*----------------------*/
/* become a patient
/*----------------------*/

.become-a-patient {
    background: var(--black); 
    color: white; 
    padding: 2.5rem 0 3.2rem; 
    font-size: 0.9rem; 
    font-weight: 300;
    line-height: 1.94; 
    clear: both;
    border-top: 2.5rem solid white;
}
.become-a-patient h3 {font-size: 1.7rem; margin-bottom: 1.2rem;}
.become-a-patient > .container > div:nth-child(1) {grid-column-start: 1; grid-column-end: 3;}
.become-a-patient > .container > div:nth-child(2) {display: flex; justify-content: center; align-items: center;}

/*----------------------*/
/* actueel
/*----------------------*/

ul.actueel {margin: 0!important;}
h1 + ul.actueel {margin-top: 2.8rem!important;}
ul.actueel li {list-style: none; margin-bottom: 1.1rem;}
ul.actueel li a {
    display: flex; 
    gap: 2.1rem; 
    background: white;
    border: 1px solid rgba(0,0,0,0.1);
    text-decoration: none;
    color: var(--black);
    position: relative;
    box-shadow: 0px 0px 0.35rem rgba(0,0,0,0.15);
    transition: box-shadow 0.15s ease-in-out;
}
ul.actueel li a::after {
    content: "Meer lezen";
    position: absolute;
    bottom: 1rem;
    right: 2.1rem;
    color: var(--lightgray);
    font-weight: bold; 
}
ul.actueel li a > div {flex: 1;}
ul.actueel li a > div:nth-child(2) {padding-right: 2.1rem;}
ul.actueel li a h3 {font-size: 1rem; margin: 2rem 0 0;}
ul.actueel li a .info {padding: 0.5rem 0 0.8rem;}
ul.actueel + button {position: relative; left: 50%; transform: translateX(-50%); margin-top: 2rem;}
@media (max-width: 900px) {
    ul.actueel {display: grid; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); grid-gap: 1rem 2rem;}
    ul.actueel li a {flex-direction: column; gap: 0.75rem;}
    ul.actueel li a h3 {margin: 0;}
    ul.actueel li a > div:nth-child(2) {padding: 1rem 1.5rem 2.1rem;}
}

/*----------------------*/
/* treatments
/*----------------------*/

.treatments {clear: both;}
.treatments h2 {margin-bottom: 2.5rem; font-size: 1.7rem;}
.treatments ul li {list-style: none;}
.treatments ul li a {text-decoration: none; color: var(--lightgray); font-size: 0.9rem; display: block;}
.treatments ul li a span {display: block; font-weight: bold; margin-bottom: 1.2em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.treatments ul li a div {position: relative;}
header + .content + .treatments {padding-top: 5rem;}

/*----------------------*/
/* team
/*----------------------*/

.team {clear: both; border-top: 2.5rem solid white;}
.team h2 {margin-bottom: 2.5rem; font-size: 1.7rem;}
.team ul li {list-style: none;}
.team ul li a {display: block; text-decoration: none; color: var(--lightgray); font-size: 0.9rem; line-height: 2; padding-bottom: 0.5rem;}
.team ul li a div + span {font-weight: bold; color: var(--black); font-size: 1rem;}
.team ul li a span {display: block; font-weight: 300;}
.team ul li a div {position: relative; margin-bottom: 0.6rem;}

/*----------------------*/
/* openinghours
/*----------------------*/

.openinghours > div {display: flex; gap: 1.4rem;}
.openinghours > div > div {flex: 1;}
.openinghours > div > div:nth-child(1) {font-weight: bold;}
.openinghours > div > div:nth-child(2) {flex: 2;}
.openinghours > div .short {display: none;}

/*----------------------*/
/* contentblock
/*----------------------*/

.contentblock {padding: 2.4rem 2.4rem 2.8rem; background: var(--almostwhite);}
.contentblock h2 {margin-bottom: 1.8rem; font-size: 1.4rem!important;}
.contentblock a.iconlink {color: var(--black);}
.contentblock.blue {color: white; background: var(--blue);}
.contentblock.blue h2 {font-size: 1.7rem!important;}
.contentblock.blue a.iconlink {color: white;}
.contentblock.blue a.iconlink img {filter: invert(1) contrast(1.5);}
.contentblock .openinghours {line-height: 2.2;}
.contentblock p {margin-bottom: 1.15em;}

/*----------------------*/
/* before_and_after
/*----------------------*/

ul.before_and_after {display: flex; margin: 0; gap: 2.4rem 1.4rem; flex-wrap: wrap;}
ul.before_and_after li {list-style: none; width: calc(50% - 0.7rem);}
ul.before_and_after li div {margin-bottom: 0.65rem;}
ul.before_and_after li span {display: block; font-style: italic; color: var(--lightgray);}

/*----------------------*/
/* details
/*----------------------*/

@keyframes animate {from {grid-template-rows: 0fr;} to {grid-template-rows: 1fr;}}
details {border-top: 1px solid rgba(0,0,0,0.25);}
details > div {display: grid; grid-template-rows: 0fr;}
details > div > div {overflow: hidden; padding: 0 0 2.2rem 0;}
details[open] > div {animation: animate 0.15s 0s 1 normal forwards;}
details summary {font-weight: bold; padding: 1.5rem 0; cursor: pointer; line-height: 1.6;}
div.expand {display: none;}
h2.open + div.expand {display: block;}
h2 + div.expand details:first-child {border-top: 0;}
div.expand + h2 {margin-top: 0.25rem;}
details + p {margin-top: 2rem;}
h2.faqtitle {
    background: var(--almostwhite); 
    padding: 1rem 4rem 1rem 1.75rem; 
    margin-bottom: 0;
    cursor: pointer;
    position: relative;
}
h2.faqtitle::after {
    content: "";
    width: 1.75rem;
    height: 100%;
    background: url(/img/collapse.svg) center center / 1.75rem auto no-repeat;
    position: absolute;
    right: 1rem;
    top: 0;
    transition: transform 0.15s ease-in-out;
}
h2.faqtitle.open::after {transform: scaleY(-1);}
details.indent {padding-left: 1.75rem; padding-right: 1.75rem;}
@media (max-width: 500px) {
    h2.faqtitle {padding: 1rem 4rem 1rem 1rem; margin-left: -1rem; margin-right: -1rem;}
    details.indent {padding-left: 0rem; padding-right: 0rem;}
}


/*----------------------*/
/* logos
/*----------------------*/

.logos {margin: 0 0 3rem!important; display: flex; align-items: center; gap: clamp(1rem,4vw,3rem);}
.logos li {list-style: none; width: 25%;}
@media (max-width: 500px) {
    .logos {flex-wrap: wrap; gap: 2rem  3rem;}
    .logos li {width: calc(50% - 1.5rem);}
}

/*------------------------*/
/* forms
/*------------------------*/

form {columns: 20rem; column-gap: 5rem;}
form > div {display: flex; flex-direction: column; gap: 0.25rem; margin-bottom: 1rem; break-inside: avoid-column;}
form > div.radio + div.radio {margin-top: -1rem;}
input, textarea, select {
    font-family: 'Heebo', sans-serif;
    font-size: 1rem;
    padding: 0.5em 0.5em;
    border: 1px solid rgba(0,0,0,0.2);
    color: black;
    border-radius: 0;
}
textarea {resize: vertical; height: 6.8rem;}
input[type="checkbox"], input[type="radio"] {margin-right: 0.5rem;}
form > .button, button {
    display: inline-block;
    background: var(--blue);
    color: white;
    border: 0;
    border-radius: 0.15rem;
    border-bottom: 0.2rem solid var(--darkerblue); 
    font-size: 0.8rem;
    font-weight: bold;
    padding: 0.65rem 1rem;
    text-decoration: none;
    margin-right: 0.45rem;
    position: relative;
    font-family: 'Merriweather', serif;
    cursor: pointer;    
}
form > .button.icon {height: 3rem; width: 3rem; vertical-align: middle; padding: 0; margin-right: 0.3rem;}
form > .button.icon img {filter: invert(1) contrast(1.5); height: 1.25rem; position: relative; top: 50%; left: 50%; transform: translate(-50%,-50%);}

/*----------------------*/
/* footer
/*----------------------*/

footer {background: var(--almostwhite); clear: both; border-top: 2.5rem solid white;}
footer > .container {padding: 3.5rem 1rem 3rem; font-size: 0.9rem; font-weight: 300; line-height: 1.9;}
footer > .container p {margin-bottom: 1.5rem;}
footer > .container h3 {font-size: 1.7rem; margin-bottom: 1.7rem;}
footer > .container > div:nth-child(1) > a {margin-bottom: 1.25rem; display: inline-block;}
footer > .container > div:nth-child(1) > a img {width: 7.5rem;}
footer > .container > div:nth-child(1) > p a {font-weight: bold; text-decoration: none;}
footer > .container > div:nth-child(2) {line-height: 2.3;}
footer > .container > div:nth-child(2) a {font-weight: bold; color: var(--black);}
footer > .container > div:nth-child(3) a.iconlink {color: var(--black); position: relative; bottom: 0.5rem;}
footer .openinghours {margin-top: 0.5rem;}
footer .openinghours > div .short {display: inline;}
footer .openinghours > div .short + span {display: none;}

footer .bottombar {background: var(--black); color: white; font-size: 0.7rem; font-weight: bold; padding: 1.25rem 0;}
footer .bottombar a {color: white; text-decoration: none;}
footer .bottombar .container {display: flex; justify-content: space-between;}

@media (max-width: 700px) {
    footer > .container {display: flex; flex-direction: column-reverse; gap: 4rem;}
}
@media (max-width: 500px) {
    footer .bottombar .container {flex-direction: column; gap: 0.5rem;}
}