/* BASIS
-------------------------------------------------- */
/* Brand Kit Kleuren 040FIT/040FYSIO */
:root {
	--brand-primary: #003DA5;      /* PMS 293 C - Blauw */
	--brand-secondary: #B1B3B3;    /* PMS Cool Grey 5 C - Grijs */
	--brand-white: #ffffff;        /* Wit */
	--brand-dark: #1A1A1A;         /* Donker voor tekst */
	--brand-accent: #FF5900;       /* Oranje accentkleur - 040FIT huisstijl */
}

body {
	font-family: "Barlow", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-variation-settings: "slnt" 0;
	font-size: 18px;
	padding-top: 93px;
}

.hero {
    position: relative;
    z-index: 0;
}

.cta-block {
    position: relative;
    z-index: 10;
}

li {
	font-size: 16px;
}

.hero svg {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 1;
    pointer-events: none;
}

a {
	text-decoration: none;
	color: var(--brand-primary);
}

.wpcf7 form.sent .wpcf7-response-output {
	border-radius: 20px !important;
	border-color: var(--brand-primary) !important;
	border-width: 1px !important;
	color: #000 !important;
	font-size: 16px !important;
	padding-bottom: 5px !important;
}

.mob-nav a {
	color: var(--brand-primary);
	font-weight: 400;
}

*:focus {
    box-shadow: none !important;
}

.zorgtraject-dynamic {
	padding: 125px 0px;  
	background-image: linear-gradient(to bottom, #90c1c8, #7aaebe, #6a9ab4, #5f86a8, var(--brand-primary)); 
}

.zorgtraject-dynamic h2 {
	color: #fff;
}

body.home .zorgtraject-dynamic {
	background-image: unset;
	padding: 70px 0px;  
}

body.home .zorgtraject-dynamic h2 {
	color: #000;
}

.mega-sub-menu {
	top: 50px !important;
}

.mega-sub-menu .mega-sub-menu {
	top: 0px !important;
}

.checkit ul {
	/*list-style-type: none;
	padding-left: 0px;*/
	margin-bottom: 0px;
}

.checkit:hover {
	cursor: pointer;
}

.specialismeSwiper h3 {
	font-size: 1.25rem
}

.page-template-overons-template-php .form-select {
	border-radius: 20px;
	border: 0 none;
	background-color: #fff;
	-webkit-box-shadow: 5px 5px 15px 5px rgba(0,0,0,0.06);
  	box-shadow: 5px 5px 15px 5px rgba(0,0,0,0.06);
}

.wpcf7-form-control {
	padding: .375rem .75rem !important;
	color: #6c757d !important;
}

.content p:last-child {
	margin-bottom: 0px;
}

select {
	padding-left: 20px !important;
}

.wave {
    background: rgb(255 255 255 / 25%);
    border-radius: 1000% 1000% 0 0;
    position: fixed;
    width: 200%;
    height: 12em;
    animation: wave 10s -3s linear infinite;
    transform: translate3d(0, 0, 0);
    opacity: 0.8;
    bottom: 0;
    left: 0;
    z-index: -1;
}

.wave:nth-of-type(2) {
    bottom: -1.25em;
    animation: wave 18s linear reverse infinite;
    opacity: 0.8;
}

.wave:nth-of-type(3) {
    bottom: -2.5em;
    animation: wave 20s -1s reverse infinite;
    opacity: 0.9;
}

@keyframes wave {
    2% {
        transform: translateX(1);
    }

    25% {
        transform: translateX(-25%);
    }

    50% {
        transform: translateX(-50%);
    }

    75% {
        transform: translateX(-25%);
    }

    100% {
        transform: translateX(1);
    }
}

a:hover, .nav-link:focus, .nav-link:hover {
	color: var(--brand-primary);
}

.btn-warning:hover {
	background-color: #000;
  	border-color: #000;
}

header {
	background-color: var(--brand-white);
	z-index: 999999 !important;
}

header.scrolled {
	box-shadow: 0px 25px 20px -20px rgba(0,0,0,0.25);
}

h1, h2, h3 {
	font-family: 'Russo One', sans-serif;
	text-transform: initial;
}

.btn {
	border-radius: 20px;
	font-family: "Barlow", sans-serif;
}

.content img {
	border-radius: 20px;
}

.btn-warning {
	background-color: var(--brand-primary);
	border-color: var(--brand-primary)
}

.btn-info {
	background-color: #fef59f;
	border-color: #fef59f
}

.object-fit-cover {
	object-fit: cover;
}

span.mega-indicator {
	margin-left: 0px !important;
}

body:not(.page-template-contact-template) .hero {
	background-image:
		url(https://www.040fysio.nl/wp-content/uploads/2024/06/pexels-kampus-6111595-scaled.jpg);
	background-size: cover;
	background-repeat: no-repeat;
	/*padding: 500px 0px 225px 0px;*/
	background-position: center;
	z-index: 2;
	padding-bottom: 200px !important;
}

.accordion-item, .accordion-button {
	border-width: 6px !important;
	border-color: #f2f2f2 !important;
	border-radius: 20px !important;
}

.accordion-button:not(.collapsed) {
  	color: var(--brand-white);
  	background-color: var(--brand-primary);
  	border-color: var(--brand-primary);
  	box-shadow: none !important;
}

.accordion-button:not(.collapsed)::after {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.page-template-contact-template .hero {
    height: 75vh; 
    overflow: hidden;
}

.page-template-contact-template .hero video {
    object-fit: cover;
    z-index: 0;
    background-color: black;
}

.cta-block, .scroll-down {
    z-index: 1;
    padding: 20px;
}

.hero.small {
	padding: 250px 0px 225px 0px;
	background-attachment: scroll;
	background-position: bottom;
}

.hero.smaller {
	padding: 125px 0px 110px 0px !important;
	background-attachment: scroll !important;
	background-position: bottom !important;
}

.scroll-down {
	position: absolute;
	left: 50%;
    transform: translate(-50%, -50%);
}

.services-overview .block-image {
	position: relative;
	width: 100%;
	display: block;
	background-color: transparent;
	transition: .5s;
}

.services-overview .image-link {
	width: 100%;
	padding-bottom: 100%;
	position: relative;
	display: block;
}

.kiezenvoor ul {
	list-style-type: none;
	padding-left: 0px;
}

img.cat-product-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	-o-object-fit: cover;
	object-fit: cover;
	mix-blend-mode: multiply;
	display: block;
	border-radius: 20px;
}

.service-item {
    position: relative;
    overflow: hidden;
}

.block-content {
    position: absolute;
    top: 365px; /* Begin bovenaan */
    left: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end; /* Zorgt ervoor dat de inhoud onderaan blijft */
    background-color: rgba(255, 255, 255, 0.9); /* Semi-transparante achtergrond */
    padding: 20px;
    transition: transform 0.5s ease, opacity 0.5s ease;
    opacity: 0.9;
}

.team-content { 
	 position: absolute;
	bottom: 0px;
}

.service-item:hover .block-content {
	transform: translateY(-70px); /* Verplaatsing omhoog bij hover */
}

.service-item.nothome:hover .block-content {
    transform: translateY(-140px); /* Verplaatsing omhoog bij hover */
}


.nav-pills .nav-link.active, .nav-pills .show>.nav-link {
	background-color: #f2f2f2;
}

.nav-pills .nav-link:hover {
	background-color: #f8f8f8;
}

.nav-link {
	color: #000;
}

.nav-pills .nav-link {
	border-radius: 20px;
	background-color: #f2f2f2;
}

.service-item {
	position: relative;
	flex-grow: 0;
	flex-shrink: 1;
	height: 437.5px;
	overflow: hidden;
	border-top-left-radius: 25px;
	border-top-right-radius: 25px;
}

.nav-pills .nav-link.active {
	color: var(--brand-primary);
	font-weight: bold;
}

.content p {
	font-size: 16px;
}


.offcanvas:not(#offcanvasNavigation) {
	margin: 20px 0px;
	border-top-left-radius: 20px;
	border-bottom-left-radius: 20px; 
}

.service-item:not(.nothome) .bi {
	font-size: 32px;
	color: var(--brand-primary);
}

#infoModal {
	z-index: 999999;
}

/*.col:hover .block-image img {
    transform: scale(1.05);
}*/
.welcome-block {
	position: relative;
	z-index: 3;
	background-color: var(--brand-primary);
}

.content-img, .cat-product-image {
	transition: transform 0.3s ease;
}

.content-img:hover, .block-image img:hover {
	transform: scale(1.1);
}

.home .services-overview {
	background: rgb(255, 254, 254); background : linear-gradient( 180deg,
	rgba( 255, 254, 254, 1) 0%, rgba( 243, 247, 251, 1) 100%);
	background: linear-gradient(180deg, rgba(255, 254, 254, 1) 0%,
		rgba(243, 247, 251, 1) 100%);
}

.location-item {
	background-color: #fff;
	border-radius: 10px;
	box-shadow: 0px 6px 25px -4px rgba(0, 0, 0, .1);
}

.swiper-button-next, .swiper-button-prev {
	background-color: var(--brand-white);
	height: 40px;
	width: 40px;
	color: var(--brand-primary) !important;
	border-radius: 50%;
	text-align: center;
	padding-top: 3px;
}

.swiper-button-next::after, .swiper-button-prev::after {
	font-size: 12px;
}

.whatsapp {
	z-index: 9999;
	display: none;
	position: fixed;
	right: 1.25rem;
	width: 100%;
	bottom: 50px;
}

.whatsapp .whatsapp-button {
	position: absolute;
	right: 0;
	bottom: 0;
	height: 4.5rem;
	width: 4.5rem;
	background-color: #25d366;
	border-radius: 50%;
	box-shadow: 8px 9px 19px -9px rgba(107, 107, 107, .53);
	transition: .5s ease-out 0s;
	color: #fff;
	text-align: center;
	padding: 8px 5px 5px 5px;
	z-index: 999998 !important;
}

.whatsapp .whatsapp-button .bi {
	font-size: 34px;
}

footer.fixed-bottom {
	background-color: #000;
	display: none;
}

footer.fixed-bottom p, footer.fixed-bottom a {
	font-size: 18px;
}

footer.fixed-bottom a {
	font-weight: bold;
	color: var(--brand-primary);
}

footer.fixed-bottom a:hover {
	text-decoration: underline;
	color: #fff;
}

.fixed-bottom {
	z-index: 9999999;
}

.logo {
	background-color: #fff;
	display: inline;
	margin-right: 20px;
}

.logos img {
	box-shadow: 0px 6px 25px -4px rgba(0, 0, 0, .1);
	max-width: 70px;
	height: 70px;
	object-fit: contain;
	border-radius: 25px;
	padding: 15px;
}

.locations {
	background-size: cover;
	background-repeat: no-repeat;
	background-attachment: fixed;
}

.site-footer {
	background-color: var(--brand-primary);
	padding-bottom: 40px;
}

.site-footer p, .site-footer a {
	color: #fff;
}

.site-footer .menu {
	list-style-type: none;
	padding-left: 0px;
}

.site-footer .menu li {
	padding-bottom: 10px;
}

.site-footer .menu li a:hover {
	color: var(--brand-secondary);
}

.site-footer hr {
	opacity:1;
	border-color:#b9c0cd;
	border-width: 3px;
}

.site-footer .menu li::before {
	margin-right: 10px;
	content: '\F138';
  	font-family: "bootstrap-icons";
	color: var(--brand-secondary);
}

/* VERANDEREN */
.checkit {
	padding: 50px 0px !important;
	position: relative;
}

.checkitimages {
	position: absolute !important;
	right: 33.75px;
	width: 50%;
	border-radius: 28.75px;
	overflow: hidden;
}

.checkit .whiteradius {
	position: relative;
}

.whiteradius {
	background-color: #ffffff;
	border-radius: 25px;
}

.checkitout {
	width: 40%;
	padding: 31.25px 31.25px 31.25px 37.5px !important;
	margin-top: 162.5px;
}

.checkitout:hover::after {
	background: var(--brand-primary);
}

.checkitout::after {
	content: 'LEES MEER';
	background: var(--brand-secondary);
	border-radius: 25px;
	padding: 50.5px 0px;
	display: block;
	width: 35%;
	left: 106%;
	position: absolute;
	top: 0;
	color: var(--brand-white);
	line-height: 57.5px;
	font-weight: 700;
	transition: all 300ms linear;
	z-index: 99999;
	text-align: center;
}

.checkit .whiteradius {
	position: relative;
	z-index: 999997;
}


.image-container {
    position: relative;
    width: 100%;
    height: auto;
    overflow: hidden;
}

.image-container img {
    display: block;
    width: 100%;
    height: auto;
}

.hero svg {
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: auto;
}

#infoModal, .routemodal {
	background-color: var(--brand-primary);
}

.modal-content {
	border-radius: 20px;
}

.modal-title {
	font-size: 32px;
}

.swiper-button-lock {
  pointer-events: auto;
  opacity: 1;
  cursor: pointer;
}

.swiper-button-prev,
.swiper-button-next {
  display: block;
}

/* HIGHLIGHT CARD BLOCK
-------------------------------------------------- */
.highlight-card-section {
    padding: 60px 0;
    background: #f4f6f7;
}

.highlight-card {
    background: #ffffff;
    display: flex;
    gap: 40px;
    align-items: center;
    border-radius: 22px;
    padding: 40px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.12);
    max-width: 950px;
    margin: 0 auto;
}

.highlight-photo-block {
    width: 320px;
    min-width: 320px;
    height: 360px;
    border-radius: 22px;
    overflow: hidden;
    position: relative;
}

.highlight-photo-block img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.highlight-photo-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.35) 100%);
}

.highlight-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 500px;
}

.highlight-label {
    background: var(--brand-secondary);
    color: white;
    display: inline-block;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 20px;
    width: max-content;
}

.highlight-title {
    font-size: 32px;
    color: var(--brand-dark);
    margin: 0;
    line-height: 1.2;
}

.highlight-title strong {
    color: var(--brand-primary);
}

.highlight-desc {
    color: #4a4a4a;
    font-size: 16px;
    margin: 0;
}

ul.highlight-features {
    padding: 0;
    margin: 10px 0 0 0;
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 24px;
    max-width: 420px;
}

.highlight-features li {
    display: flex;
    gap: 8px;
    font-size: 14px;
    color: #444;
}

.highlight-features .feature-icon {
    flex: 0 0 18px;
}

.highlight-cta {
    margin-top: 16px;
    background: var(--brand-primary);
    color: white;
    padding: 12px 20px;
    border: none;
    border-radius: 14px;
    font-weight: 700;
    font-size: 15px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: 0.2s ease;
    text-decoration: none;
    width: max-content;
}

.highlight-cta:hover {
    background: #002d7a;
    transform: translateX(4px);
    color: white;
}

/* ACCENT KLEUR STYLING
-------------------------------------------------- */
.text-accent {
    color: var(--brand-accent);
}

.bg-accent {
    background-color: var(--brand-accent);
}

.btn-accent {
    background-color: var(--brand-accent);
    border-color: var(--brand-accent);
    color: var(--brand-white);
}

.btn-accent:hover {
    background-color: #E05000;
    border-color: #E05000;
    color: var(--brand-white);
}

/* LOCATIE PAGINA STYLING
-------------------------------------------------- */
.locatie-info-section {
    background-color: var(--brand-white);
}

.kaart-wrapper {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0px 6px 25px -4px rgba(0, 0, 0, .1);
}

.kaart-embed {
    position: relative;
    padding-bottom: 75%;
    height: 0;
    overflow: hidden;
    border-radius: 20px;
}

.kaart-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 20px;
}

.kaart-placeholder {
    background-color: #808080;
    border-radius: 20px;
    height: 350px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-white);
    font-weight: 600;
    font-size: 18px;
}

.adres-info {
    padding: 15px 0;
}

.adres-info p {
    font-size: 18px;
    color: var(--brand-dark);
}

.adres-info a {
    color: var(--brand-primary);
    text-decoration: none;
}

.adres-info a:hover {
    text-decoration: underline;
}

.openingstijden-wrapper {
    background-color: #ffffff;
    border-radius: 20px;
    padding: 30px;
    height: 100%;
    min-height: 350px;
    box-shadow: 0px 6px 25px -4px rgba(0, 0, 0, .1);
}

.openingstijden-titel {
    color: var(--brand-dark);
    font-size: 22px;
    font-weight: 700;
}

.openingstijden-lijst {
    list-style: none;
    padding: 0;
    margin: 0;
}

.openingstijden-lijst li {
    border-color: rgba(0, 0, 0, 0.1) !important;
}

.openingstijden-lijst .dag-naam {
    color: var(--brand-dark);
    font-weight: 500;
}

.openingstijden-lijst .dag-tijden {
    color: var(--brand-dark);
    font-weight: 400;
}

.openingstijden-lijst .dag-tijden.text-muted {
    color: rgba(0, 0, 0, 0.5) !important;
}

.locatie-content {
    padding-top: 40px;
}

/* Locatie Content Placeholder */
.locatie-content-placeholder {
    background-color: #808080;
    border-radius: 20px;
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-white);
    font-weight: 600;
    font-size: 18px;
    margin: 40px 0;
}

/* TEXT PRIMARY KLEUR
-------------------------------------------------- */
.text-primary {
    color: var(--brand-primary) !important;
}

/* LOCATIE CONTACT BUTTON
-------------------------------------------------- */
.locatie-contact-cta .btn {
    font-size: 16px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.locatie-contact-cta .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 61, 165, 0.3);
}