/*
 * Responsive site styles
 */
 @media only screen and (min-width:768px) {

    main section:has(+ .pull-top) {
        padding-bottom: 10rem;
    }
    
    .pull-top > div {
        margin-top:-10rem;
    }

    /* Card Styles */

    .card-wrapper > div,
    .card-wrapper.row-4 > div
    {
        flex-basis: calc((100% / 2) - ((var(--gap-size) * 1) / 2));
    }

    .card-wrapper.noGap > div,
    .card-wrapper.noGap.row-4 > div
    {
        flex-basis: calc(100% / 2); 
    }

}

@media only screen and (min-width: 992px) {
    :root {
        --section-padding: 8rem;
    }

    body {
        text-align: unset;
    }

    picture.cover,
    picture.contain,
    picture.scale-up {
        position:absolute;
        inset: 0;
    }
    
    .pb-lg-6 {
        padding-bottom: 5rem !important;
    }

    .pt-lg-6 {
        padding-top: 5rem !important;
    }

    .mx-lg-unset {
        margin-inline: unset;
    }

    .social {
        justify-content: unset;
    }

    .underline:after {
        margin: 1rem auto 0 0;
    }

    .text-lg-left {
        text-align:left;
    }

    h1,
    .h1 {
        font-size: 4rem;
    }

    h2,
    .h2 {
        font-size: 3rem;
    }

    .content-width {
        max-width: 100ch;
    }
    
    .logo {
        padding-block: 1rem;
    }

    /* Header */

    header.desktop-sticky {
        top: 0;
        z-index: 100;
        transition: all var(--transition-type) var(--transition-speed);
    }

    header nav .navbar-collapse {
        align-items: center;
    }

    header:has(button[aria-expanded="true"]) li:not(.button) > a {
        color: unset;
    }

    header:has(button[aria-expanded="true"]) nav li.current-menu-item:not(.button) > a {
        color: var(--secondary-colour);
    }

    header nav .menu-item-has-children:hover > a:after {
        transform:rotate(90deg);
    }
    
    header nav .sub-menu {
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        position: absolute;
        transition: all var(--transition-type) var(--transition-speed);
        min-width: 220px;
        background:#ffffff;
        box-shadow: 0 1rem 1rem 0.25rem rgba(150,150,150,.25);
        z-index: 10;
        line-height: 1.15;
        border-radius: calc(var(--border-radius) / 2);
    }
    
    header nav .sub-menu > li {
        border-left: solid 3px transparent;
        transition:all var(--transition-type) var(--transition-speed);
    }
    
    header nav li.menu-item-has-children:hover > .sub-menu,
    header nav li.menu-item-has-children:focus > .sub-menu
    header nav li.menu-item-has-children:focus-within > .sub-menu {
        max-height:100svh;
        opacity: 1;
    }

    header img {
        display:block;
    }

    header .menu-item.button {
        padding-left: var(--ui-size);
    }

    .mobile-icons {
        padding-block:0;
        padding-right: calc(var(--bs-gutter-x) * .5);
        padding-left: calc(var(--bs-gutter-x) * .5);
        justify-content: flex-end;
    }

    .mobile-icons > * {
        flex:unset;
    }

    .mobile-icons i {
        display: inline-block;
        font-size: 1rem;
    }

    .mobile-icons .value {
        font-size: 1rem;
        font-weight: 400;
    }

    /* Hero Slider */

    .hero[data-overlay="true"]:before {
        content: "";
        position:absolute;
        inset: 0;
        --_overlay: linear-gradient(180deg, rgba(12,54,100,1) 0%, rgba(12,54,100,0) 90%, rgba(12,54,100,0) 100%);
        background: var(--_overlay);
        z-index: 1;
    }

    .slide-content-wrapper, .hero-content-wrapper {
        padding-top:10rem;
    }

    .slide-content {
        max-width: 50%;
        margin-inline: 0;
    }

    .slide-content-wrapper {
        min-height: 75vh;
    }

    /* Main Content */
    .row > *:not(.card) {
        padding-right: calc(var(--bs-gutter-x) * .5);
        padding-left: calc(var(--bs-gutter-x) * .5);
    }

    /* Card Styles */

    .row.card-wrapper {
        margin-inline: 0;
    }

    .card-wrapper > div {
        flex-basis: calc((100% / 3) - ((var(--gap-size) * 2) / 3)); /* Three columns to a row */
    }

    .card-wrapper.noGap > div {
        flex-basis: calc(100% / 3); /* Three columns to a row with no gap */
    }

    .card-wrapper.row-4 > div {
        flex-basis: calc((100% / 4) - ((var(--gap-size) * 3) / 4)); /* Four columns to a row */
    }

    .card-wrapper.row-4.noGap > div {
        flex-basis: calc(100% / 4); /* Four columns to a row with no gap */
    }
    .card-wrapper .title {
        flex: 1;
    }

    .card-content {
        padding:2rem;
    }

    .card-content .post-meta span:has(+ span) {
        padding-right: .5rem;
        border-right: solid thin var(--main-colour, #333);
        font-weight: 600;
    }

    /* Footer */

    .terms-menu {
        justify-content: flex-end;
    }
}

@media only screen and (max-width: 575px) {
    #heroCarousel .carousel-item .carousel-content h1 {
        line-height: 60px !important;
    }
    .accent {
        bottom: 0px;
        min-width: 100%;
        z-index: 99;
        right: -1px;
    }
    .search-wrapper.main {
        position: relative;
        bottom: 0;
        left: 0;
        transform: none;
    }
    .search-wrapper .search-item {
        border-radius: 0;
    }
    .menu-item .wrapper a, header nav .menu-item a {
        width: 100%;
    }
    #menu-item-35486 {
        margin-bottom: 15px;
    }
    .cta-menu {
        margin-left: 1rem;
        width: 92%;
    }
    .card-content {
        padding: 2rem 0;
    }
	.news .card-content,
	.blogs .card-content {
		padding: 2rem;
	}
	.blogs .card-content .button-wrapper {
		justify-content: center;
		align-items: center;
	}
	.blogs .card-content .button {
		flex: 0 0 auto;
		align-self: center;
		width: fit-content;
		min-width: 10rem;
		margin-inline: auto;
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

@media only screen and (max-width: 767px) {
	#contact .container {
		overflow: hidden;
	}

	#contact .contact-form.row {
		display: flex !important;
		flex-wrap: wrap;
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding: 1.5rem 1.25rem;
		box-sizing: border-box;
	}

	#contact .contact-form > .col-12 {
		padding-left: 0;
		padding-right: 0;
		max-width: 100%;
	}

	#contact .wpcf7-form.init {
		padding: 0;
		width: 100%;
		max-width: 100%;
	}

	#contact .wpcf7-form .row {
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	#contact .wpcf7-form .row > [class*="col-"] {
		flex: 0 0 100%;
		max-width: 100%;
		padding-left: 0;
		padding-right: 0;
	}

	#contact .form_control,
	#contact input.form_control,
	#contact textarea.form_control {
		display: block;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	#contact textarea.form_control {
		min-height: 9rem;
	}

	#contact .domar_button .wpcf7-submit {
		width: auto;
		max-width: 100%;
		margin-inline: auto;
		display: block;
	}

	section.footer-top .col-lg-3.col-md-6.col-12 {
		margin-top: 1rem;
	}

	section.footer-top .row > .col-lg-3:last-child {
		margin-top: 0.75rem;
	}

	.footer-top .row > .col-lg-3:last-child > h2.title {
		display: none;
	}

	.footer-top .row > .col-lg-3:last-child > div {
		padding-top: 0 !important;
		margin-top: 0.5rem !important;
	}

	.tvc-widget {
		padding-top: 1rem;
		padding-bottom: 0;
	}

	.tvc-widget #tvc-frame {
		display: block;
		width: 100%;
		height: 360px;
		max-width: 100%;
	}

	.features {
		padding-top: 1.5rem;
		padding-bottom: 2.5rem;
	}

	.services.bg-light {
		padding-bottom: 2rem;
	}

	.services.bg-light + .news.bg-light {
		padding-top: 2rem;
	}

	.services .row.mt-5 {
		margin-top: 1.5rem !important;
	}

	.news .row.mb-5 {
		margin-bottom: 1.5rem !important;
	}

	.single-service .hero .button-wrapper {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		text-align: center;
	}

	.single-service .service-content .button-wrapper {
		justify-content: center;
		align-items: center;
		text-align: center;
	}

	.single-service .service-content table {
		width: auto;
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
		border: none;
	}

	.single-service .service-content table tbody,
	.single-service .service-content table tr {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 0.75rem;
		width: 100%;
	}

	.single-service .service-content table td {
		display: block;
		width: auto;
		padding: 0;
		border: none;
		text-align: center;
	}

	.single-service .service-content table td .button,
	.single-service .service-content a.button {
		display: inline-block;
		margin-left: auto;
		margin-right: auto;
	}

	.page-content .content-width {
		max-width: 100%;
		padding-inline: 0.25rem;
	}

	.page-content .contact-form {
		padding: 1.25rem 1rem;
		margin-inline: 0;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		overflow: hidden;
	}

	.page-content .contact-form .wpcf7,
	.page-content .contact-form .wpcf7-form,
	.page-content .contact-form .wpcf7-form.init {
		width: 100%;
		max-width: 100%;
		padding: 0;
		box-sizing: border-box;
	}

	.page-content .contact-form .wpcf7-form-control-wrap,
	.page-content .contact-form p {
		display: block;
		width: 100%;
		max-width: 100%;
	}

	.page-content .contact-form input,
	.page-content .contact-form select,
	.page-content .contact-form textarea,
	.page-content .contact-form .form_control,
	.page-content .contact-form .wpcf7-date,
	.page-content .contact-form .wpcf7-select {
		display: block;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		font-size: 16px;
	}

	.page-content .contact-form input[type="date"],
	.page-content .contact-form .wpcf7-date {
		appearance: auto !important;
		-webkit-appearance: auto !important;
		min-height: 3.25rem;
		padding: 0.85rem 1rem !important;
		line-height: 1.3;
	}

	.page-content .contact-form select,
	.page-content .contact-form .wpcf7-select {
		appearance: none !important;
		-webkit-appearance: none !important;
		min-height: 3.25rem;
		padding: 0.85rem 2.75rem 0.85rem 1rem !important;
		background-color: #fff !important;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%230b7dc4' d='M1.4.6 6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E") !important;
		background-repeat: no-repeat !important;
		background-position: right 1rem center !important;
		background-size: 12px 8px !important;
		text-overflow: ellipsis;
		white-space: nowrap;
		overflow: hidden;
	}

	.page-content .contact-form h3 {
		font-size: 1rem;
		margin: 0.75rem 0 0.5rem;
		text-align: left;
	}

	.page-content .contact-form,
	.page-content .contact-form p,
	.page-content .contact-form label {
		text-align: left;
	}

	.page-content .contact-form .wpcf7-submit {
		width: 100%;
		max-width: 100%;
		margin-top: 0.5rem;
	}

	.page-content img.aligncenter,
	.page-content img.size-large {
		display: block;
		width: 100%;
		max-width: 100%;
		height: auto;
		margin-inline: auto;
	}
}

/* Cholera (and similar) custom vaccine HTML blocks — mobile only */
@media only screen and (max-width: 767px) {
	.ctc-chol {
		max-width: 100% !important;
		overflow-x: hidden;
		padding-inline: 0;
		box-sizing: border-box;
	}

	.ctc-chol .ctc-hero-pad {
		padding: 2.5rem 1.25rem !important;
		margin-bottom: 2.5rem !important;
		border-radius: 1rem !important;
	}

	.ctc-chol .ctc-hero-title {
		font-size: 1.85rem !important;
		line-height: 1.25 !important;
	}

	.ctc-chol .ctc-hero-sub {
		white-space: normal !important;
		font-size: 0.95rem !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.ctc-chol .ctc-grid-4,
	.ctc-chol .ctc-grid-2 {
		grid-template-columns: 1fr !important;
		gap: 0.85rem !important;
	}

	.ctc-chol table.ctc-btn-table,
	.ctc-chol table.ctc-btn-table tbody,
	.ctc-chol table.ctc-btn-table tr,
	.ctc-chol table.ctc-btn-table td {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		text-align: center !important;
		box-sizing: border-box !important;
	}

	.ctc-chol a.ctc-btn-primary,
	.ctc-chol a.ctc-btn-outline,
	.ctc-chol a.ctc-btn-navy {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: auto !important;
		max-width: 100% !important;
		margin: 0.35rem auto !important;
		white-space: normal !important;
		text-align: center !important;
		box-sizing: border-box !important;
		float: none !important;
		position: static !important;
	}

	.ctc-chol details.ctc-faq > summary {
		cursor: pointer;
		list-style: none;
		padding-right: 1.5rem;
	}

	.ctc-chol details.ctc-faq > summary::-webkit-details-marker {
		display: none;
	}

	.ctc-chol details.ctc-faq > summary::after {
		content: "+";
		float: right;
		font-size: 1.25rem;
		color: #1b63c6;
		font-weight: 700;
	}

	.ctc-chol details.ctc-faq[open] > summary::after {
		content: "\2212";
	}

	.ctc-chol > div {
		box-sizing: border-box;
		max-width: 100%;
	}
}

/* Our Clinics custom HTML — mobile only */
@media only screen and (max-width: 767px) {
	.ctc-clinics,
	.page-content div[style*="max-width: 1240px"],
	.page-content div[style*="max-width:1240px"] {
		max-width: 100% !important;
		width: 100% !important;
		padding: 1.25rem 0.75rem 2.5rem !important;
		box-sizing: border-box !important;
		overflow-x: hidden;
	}

	.ctc-clinics > div[style*="text-align: center"],
	.page-content div[style*="max-width: 1240px"] > div[style*="text-align: center"],
	.page-content div[style*="max-width:1240px"] > div[style*="text-align: center"] {
		max-width: 100% !important;
		margin-bottom: 1.75rem !important;
	}

	.ctc-clinics > div[style*="text-align: center"] p,
	.page-content div[style*="max-width: 1240px"] > div[style*="text-align: center"] p {
		font-size: 0.95rem !important;
		line-height: 1.7 !important;
	}

	.ctc-clinics-grid,
	.page-content div[style*="minmax(360px"],
	.page-content div[style*="minmax(360px,"] {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 1.25rem !important;
		width: 100% !important;
		max-width: 100% !important;
		align-items: stretch !important;
	}

	.ctc-clinics-grid > div,
	.page-content div[style*="minmax(360px"] > div {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		height: auto !important;
	}

	.ctc-clinics-grid > div > div[style*="padding: 30px"],
	.page-content div[style*="minmax(360px"] > div > div[style*="padding: 30px"] {
		padding: 1.25rem 1rem 1rem !important;
	}

	.ctc-clinics-grid h2,
	.page-content div[style*="minmax(360px"] h2 {
		font-size: 1.5rem !important;
	}

	.ctc-clinics-grid img,
	.page-content div[style*="minmax(360px"] img {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		margin: 0 auto 1rem !important;
	}

	.ctc-clinics-grid iframe,
	.page-content div[style*="minmax(360px"] iframe {
		width: 100% !important;
		max-width: 100% !important;
		height: 220px !important;
	}

	.ctc-clinics-grid > div > div[style*="padding: 0 30px"],
	.page-content div[style*="minmax(360px"] > div > div[style*="padding: 0 30px"] {
		padding: 0 1rem 1.25rem !important;
	}

	.ctc-clinics-cta,
	.page-content div[style*="linear-gradient(135deg, #12395b"] {
		padding: 1.75rem 1.15rem !important;
		margin-top: 1.75rem !important;
		border-radius: 1rem !important;
	}

	.ctc-clinics-cta h2,
	.page-content div[style*="linear-gradient(135deg, #12395b"] h2 {
		font-size: 1.5rem !important;
	}

	.ctc-clinics-cta p,
	.page-content div[style*="linear-gradient(135deg, #12395b"] p {
		font-size: 0.95rem !important;
		margin-bottom: 1rem !important;
	}

	.ctc-clinics-cta a,
	.page-content div[style*="linear-gradient(135deg, #12395b"] a {
		display: inline-block !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		padding: 0.85rem 1.25rem !important;
		white-space: normal !important;
	}
}

/* Our Team custom HTML */
.ctc-team details.ctc-team-bio > summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	font-weight: 700;
	color: #0f766e;
	font-size: 0.95rem;
	padding: 0.65rem 0 0.15rem;
}

.ctc-team details.ctc-team-bio > summary::-webkit-details-marker {
	display: none;
}

.ctc-team details.ctc-team-bio > summary::after {
	content: "›";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 999px;
	background: #dff6f3;
	color: #0f766e;
	font-size: 1.35rem;
	line-height: 1;
	transform: rotate(90deg);
	transition: transform 0.2s ease;
	flex-shrink: 0;
}

.ctc-team details.ctc-team-bio[open] > summary::after {
	transform: rotate(-90deg);
}

.ctc-team details.ctc-team-bio .ctc-team-bio-body {
	padding-top: 0.5rem;
}

@media only screen and (max-width: 767px) {
	.ctc-team {
		padding: 1.5rem 0.75rem !important;
		max-width: 100% !important;
		overflow-x: hidden;
	}

	.ctc-team > div[style*="padding: 50px"] {
		padding: 1.75rem 1.15rem !important;
		margin-bottom: 1.5rem !important;
	}

	.ctc-team-lead {
		padding: 1.25rem !important;
		margin-bottom: 1.75rem !important;
	}

	.ctc-team-lead-media,
	.ctc-team-lead-copy {
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		display: block !important;
	}

	.ctc-team-lead-media {
		margin-bottom: 1rem !important;
	}

	.ctc-team-lead-media img {
		width: 100% !important;
		max-height: 320px !important;
		object-fit: cover !important;
		object-position: center top !important;
	}

	.ctc-team-lead-copy > * {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.ctc-team-lead-copy {
		text-align: center !important;
	}

	.ctc-team-lead-copy > p[style*="inline-block"] {
		display: inline-block !important;
		width: auto !important;
	}

	.ctc-team-lead-copy details.ctc-team-bio > summary {
		justify-content: center !important;
	}

	.ctc-team-lead h2,
	.ctc-team h2 {
		font-size: 1.6rem !important;
	}

	.ctc-team-lead-copy h2 {
		text-align: center !important;
	}

	.ctc-team-grid {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		gap: 1.25rem !important;
		align-items: stretch !important;
	}

	.ctc-team-card {
		width: 100% !important;
		max-width: 100% !important;
	}

	.ctc-team-card img {
		height: 280px !important;
	}

	.ctc-team-card > div {
		text-align: center !important;
	}

	.ctc-team-card h3,
	.ctc-team-card p {
		text-align: center !important;
	}

	.ctc-team-card details.ctc-team-bio > summary {
		justify-content: center !important;
	}

	.ctc-team-cta {
		padding: 1.5rem 1.15rem !important;
	}

	.ctc-team-cta-buttons {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 0.75rem !important;
		width: 100% !important;
	}

	.ctc-team-cta-buttons .button {
		margin-left: auto !important;
		margin-right: auto !important;
		width: fit-content !important;
		max-width: 100% !important;
		text-align: center !important;
	}
}