*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; height: auto; }
html { scroll-behavior: smooth; -moz-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%;}
.js-stop-css-transitions * {
	transition: none !important;
}

:root {
	--font-heading: Poppins, sans-serif;
	--font-text: Montserrat, sans-serif;
	--color-almost-white: #f8f8f8;
	--color-primary-light: #e3e8f1;
	--color-primary-medium: #598ee3; /* slightly darkened #7ba5e9 to meet AA contrast*/ 
	--color-primary-dark: #0c1f3b;
	--color-secondary: #ffc94f;
	--spacing-sides: 24px;
	--spacing-section-vertical: 60px;
}

/* START - Some styles from normalize.css */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}
button,
select { /* 1 */
	text-transform: none;
	border:0;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}
/* END - Some styles from normalize.css */

body {
	font-family: var(--font-text);
	letter-spacing: -0.01em;
	color: var(--color-primary-dark);
	margin: 0;
	line-height: 1.75;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	color: var(--color-primary-medium);
	line-height: 1.4;
	margin-top: .5em;
	margin-bottom: .5em;
}
h1, h2 {
	font-size: 2.25rem;
}
h1 {
	margin-top: 1em;
}
h3,
.callout,
.callout p,
.ready-to-be-seen h2 {
	font-family: var(--font-heading);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--color-primary-dark);
}
.services-list h3 {
	font-size: 1.5em;
	margin-top: 1em;
}
h1:first-child {
	margin-top: 0;
}
h2:first-child {
	margin-top: 0;
}
.disclaimer-page h2 {
	font-size: 1.125rem;
	color: var(--color-primary-dark);
}
main p {
	font-size: 1rem;
	line-height: 1.8;
}
a {
	text-decoration: none;
	color: var(--color-primary-medium);
}
a:hover,
a:focus {
	color: var(--color-secondary);
}
main a:not(.button) {
	font-weight: bold;
	text-decoration: underline;
}
main a:not(.button):hover,
main a:not(.button):focus {
	color: var(--color-primary-dark);
}
.centered {
	text-align: center;
}
img[src$=".jpg"] {
	border-radius: 20px;
}
picture img {
	width: 100%;
	height: auto;
}



.button {
	padding: .5em 1.9em;
	border-radius: 40px;
	display: inline-block;
	font-size: 1.25rem;
	font-family: var(--font-heading);
	font-weight: 500;
}
.button.primary {
	background: var(--color-primary-dark);
	color: #fff;
}
.button.secondary {
	background: var(--color-primary-light);
	color: var(--color-primary-dark);
}
.button.primary:hover,
.button.primary:focus,
.button.secondary:hover,
.button.secondary:focus {
	background: var(--color-primary-medium);
	color: #fff;
}
.button + .button {
	margin-left: 10px;
	margin-top: 20px;
}
.rounded {
	border-radius: 20px;
}

/* Google Map Embed Start */
.map-responsive {
	width: 100%;
	aspect-ratio: 2 / 2; 
	overflow: hidden;
	border: 1px solid #ccc;
	margin: auto;
}
.map-responsive iframe {
	display: block; 
	width: 100%;
	height: 100%;
	border: 0;
}
@media (max-width: 949px) {
	.map-responsive {
		max-width: 500px;
	}
}
/* Google Map Embed End */

main > section,
footer {
	overflow: hidden;
}
.white {
	background-color: #fff;
}
.almost-white {
	background-color: var(--color-almost-white)
}
.light {
	background-color: var(--color-primary-light)
}
.medium {
	background-color: var(--color-primary-medium)
}


/* Services List */
.services-list ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}
.services-list ul li {
	text-align: center;
}
.services-list .button{
	margin-top: var(--spacing-section-vertical);
}
.faq .button,
.accepted-insurance .button{
	margin-top: calc(var(--spacing-section-vertical) / 2);
}
.our-team .cta .button {
	margin-top: var(--spacing-section-vertical);
}




/* Pull Quotes */
figure {
	margin: 0;
	text-align: center;
	padding-bottom: 20px;
}
.quotes figure {
	background:
		url(/img/quote-open.svg) no-repeat,
		url(/img/quote-close.svg) bottom right no-repeat
	;
	padding: 50px 0;
	padding-bottom: 50px;
	margin-bottom: 20px;
}
figure figcaption {
	text-align: center;
	font-weight: 600;
}
blockquote {
	margin: 0;
}
.single-quote {
	max-width: 1100px;
	margin: auto;
}
.single-quote strong {
	font-size: 1.125rem;
}

html body .visible-on-mobile-only {
	display: none;
}

/* Navbar */
.page-nav {
	border-bottom: 2px solid var(--color-primary-light);
}


/* Page Footer */
.page-footer {
	background: var(--color-primary-dark);
	line-height: 1.5;
	/* padding: 20px; */
}
.page-footer .page-wrapper {
	display: grid;
}
.page-footer * {
	color: #fff;
}
.page-footer .logo-footer {
	width: 45px;
	max-width: 100%;
	line-height: 0;
	margin: 0;
}
.page-footer .address {
	font-weight: 700;
}
.page-footer .copyright {
	color: var(--color-primary-medium);
	margin-bottom: 0;
}

.page-footer section {
	padding: 15px 0;
}
.page-footer .hours,
.page-footer .contact,
.page-footer .read-more {
	white-space: nowrap;
}
.page-footer section:last-of-type {
	padding-top: 30px;
	padding-bottom: 0;
}
.page-footer .fine-print {
	border-bottom: none;
}
.page-footer section {
	border-bottom: 1px solid var(--color-almost-white);
}
.page-footer section.contact a {
	padding-left: 2.4em;
	background-repeat: no-repeat;
	background-position: left center;
	background-size: 1.3em auto;
	min-height: 20px;
	display: inline-block;
}
.page-footer .phone {
	background-image: url(/img/icon-phone.svg);
}
.page-footer .fax {
	background-image: url(/img/icon-fax.svg);
}
.page-footer .emessage {
	background-image: url(/img/icon-emessage.svg);
}
.page-footer h3,
.page-footer p {
	font-family: var(--font-text);
	margin: 1rem 0;
}
.page-footer h3 {
	font-size: 1.25rem;
}


.page-wrapper.callout {
	padding-top: 0;
}
.page-wrapper.callout p {
	text-align: center;
	line-height: 1.4;
	margin-left: auto;
	margin-right: auto;
}


/* FAQS */
.accordion {
	width: 100%;
	max-width: 740px;
	margin: auto;
}
.accordion-button {
	font-size: 1.125rem;
	display: flex;
	gap: 10px;
	align-items: center;
	width: 100%;
	text-align: left;
	background: transparent;
	border: none;
	padding: 1.75rem 0;
	line-height: 1.6;
	font-weight: 600;
	cursor: pointer;
}
.accordion-button:hover,
.accordion-button:focus,
.accordion-button.expanded {
	color: var(--color-primary-medium);
}
.accordion-button::after {
	content: '';
	background-image: url(/img/icon-arrow-in-circle.svg);
	background-size: 100%;
	background-position: right center;
	background-repeat: no-repeat;
	width: 39px;
	height: 39px;
	display: inline-block;
	transition: all .2s ease-out;
	margin-left: auto;
	flex-shrink: 0;
	transition: all .2s ease-out;
	opacity: .4;
	transform: scale(.9);
}
.accordion-button:hover::after,
.accordion-button:focus::after {
	opacity: 1;
	transform: scale(1);
}
.accordion-button.expanded::after {
	rotate: 90deg;
}
.accordion-section {
	max-height: 0em;
	overflow: hidden;
	border-bottom: 2px solid #afafaf;
	transition: all .2s ease-out;
}
.accordion-section.open {
	max-height: 25em;
	overflow: auto;
	visibility: visible;
	animation: hide-scroll .2s backwards;
}
@keyframes hide-scroll {
	from, to { overflow: hidden; } 
 }
@keyframes hide-scroll {
	from, to { overflow: hidden; } 
}
.accordion-section p {
	margin-top: 0;
	margin-bottom: 1.75rem;
}

.page-nav ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}
.page-nav a:not(.button) {
	color: var(--color-primary-dark);
	font-weight: 600;
}
.page-nav a:not(.button):hover,
.page-nav a:not(.button):focus {
	color: var(--color-primary-medium)
}
#toggle svg * {
	transition: stroke .2s ease-out;
}
#toggle:hover svg *,
#toggle:focus svg * {
	stroke: var(--color-primary-medium);
}
.page-nav .logo {
	display: flex;
}

.page-wrapper {
	max-width: 1440px;
	padding-top: var(--spacing-section-vertical);
	padding-bottom: var(--spacing-section-vertical);
	padding-left: max(var(--spacing-sides), env(safe-area-inset-left));
	padding-right: max(var(--spacing-sides), env(safe-area-inset-right));
	margin: auto;
	overflow: hidden;
}
.narrow-width {
	max-width: 615px;
	margin: auto;
}
.medium-width,
.top-rated h2 {
	max-width: 890px;
	margin: auto;
}


.faq-page .personalized-care,
.services-page .personalized-care {
	background-color: var(--color-almost-white);
}


.header-location .address a {
	text-decoration: none;
	color: var(--color-primary-dark);
}
.header-location .address a:hover,
.header-location .address a:focus {
	color: var(--color-primary-medium);
}
.header-location .hours p {
	margin-top: 0;
}
.header-location .hours p:not(:last-child) {
	margin-bottom: 0;
}

.home-page-banner-below-header .page-wrapper {
	font-weight: 600;
	padding-top: 40px;
	padding-bottom: 40px;
}

.home-page-banner-below-header p {
	margin: 0 auto;
	max-width: 20ch;
}

.services-list h2,
.how-we-are-different h2,
.top-rated h2,
.accepted-insurance h2 {
	margin-bottom: var(--spacing-section-vertical);
}
.how-we-are-different .col-3 {
	align-items: start;
}




/* Slider */
.slider-wrapper {
	max-width: 1100px;
	margin: auto;
	padding: 20px;
	font-weight: 700;
}
.slider-wrapper figcaption {
	font-weight: 500;
}
.highlight {
	color: var(--color-primary-medium);
}

button#prev {
	transform: scaleX(-1);
}
button#prev, 
button#next {
	cursor: pointer;
}
button#prev svg,
button#next svg {
	vertical-align: middle;
	margin: 2px 0;
}
button img {
	display: block;
}
button:hover *,
button:focus * {
	stroke: #fff;
}
.slider-controls {
	margin-top: 20px;
}




.get-treated-steps .img-col {
	max-width: 500px;
	margin: auto;
}
.get-treated-steps .page-wrapper {
	padding-bottom: 0;
}


.services-page .single-quote,
.services-page .single-quote figcaption,
.about-page .single-quote,
.about-page .single-quote figcaption {
	text-align: left;
}


.insurance-logos {
	margin-top: var(--spacing-sides);
	margin-bottom: var(--spacing-sides);
	padding: var(--spacing-sides);
}
.insurance-logos .col-3 {
	justify-items: center;
}
.insurance-logos .col {
	margin: calc( var(--spacing-sides) / 2 ) 0;
}

/* The Team */
.our-team .slider-controls button {
	margin-top: 0;
}
.team-member-wrapper {
	padding: 20px;
}
.team-member {
	background-color: #fff;
	display: inline-block;
	border-radius: 20px;
}
.team-member img {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
	display: block;
}
.team-member-info {
	padding: 30px 0
}
.team-member-name {
	font-weight: 700;
	margin: 0;
}
.team-member-title {
	margin: 0;
}

.location-page .img-col img {
	max-width: 100%;
	border: 1px solid #ccc;
}


/* Slider dot styling (first got from a11y demo file) */
.a11y-slider-dots {
	display: flex;
	justify-content: center;
	align-items: center;
	list-style: none;
	margin: 0;
	margin-bottom: 20px;
	padding: 0;
}

.a11y-slider-dots > li {
	display: block;
	margin: 0 10px;
}

.a11y-slider-dots > li > button {
	border: 1px solid #aaa;
	border-radius: 100%;
	background: none;
	text-indent: -9999px;
	width: 14px;
	height: 14px;
	padding: 0;
}

.a11y-slider-dots > li > button.active {
	background: #aaa;
}



@media (max-width: 369px) {
	.page-footer {
		font-size: 0.905rem;
		padding: 0;
	}
}

@media (max-width: 400px) {
	.page-nav .logo {
		width: 170px;
	}
}
@media (min-width: 600px) and (max-width: 1100px) {
	.col-3.col-2-on-tablet-last-line-centered {
		display: grid;
		gap: 20px 60px;
		grid-template-columns: repeat(4, 1fr);
		justify-content: center;
	}
	.col-2-on-tablet-last-line-centered .col {
		grid-column: span 2;
	}
	.col-2-on-tablet-last-line-centered .col:nth-last-child(1):nth-child(odd) {
		grid-column: 2 / span 2;
	}
}
@media (min-width: 401px) and (max-width: 1022px) {
	.page-nav .logo {
		width: 190px;
	}
}

@media (max-width: 599px) {
	.header-location .page-wrapper,
	.disclaimer-page .page-wrapper {
		padding-top: 35px;
	}
}


@media (min-width: 600px) and (max-width: 949px) {
	.services-list ul {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 60px;
	}
}



@media (min-width: 700px) {
	h1, h2 {
		font-size: 3rem;
	}
	h3,
	.callout,
	.callout p,
	.ready-to-be-seen h2 {
		font-size: 2.625rem;
	}
	.disclaimer-page h2 {
		font-size: 1.25rem;
	}
	main p {
		font-size: 1.1875rem;
		line-height: 1.8;
	}
	.page-wrapper {
		padding-top: var(--spacing-section-vertical);
		padding-bottom: var(--spacing-section-vertical);
	}
	.page-footer .page-wrapper {
		padding-top: 40px;
		padding-bottom: 20px;
	}
	.header-faq .page-wrapper {
		padding-top: 20px;
	}
	.accordion-button {
		font-size: 1.25rem;
	}

	figure {
		padding: 40px;
	}
	.slider-wrapper {
		padding: var(--spacing-section-vertical);
	}
	.quotes figure {
		padding: 50px;
		padding-bottom: 0;
	}
	.single-quote strong {
		font-size: 1.5rem;
	}
	.slider-controls {
		margin-top: 0;
	}
}

@media (max-width: 949px) {
	html body .hidden-on-mobile {
		display: none;
	}
	.centered-mobile-only {
		text-align: center;
	}
	.page-nav a {
		font-size: 1.125rem;
	}
	html body .visible-on-mobile-only {
		display: block;
	}
	.page-nav .visible-on-mobile-only {
		display: list-item;
	}
	.page-footer .about,
	.page-footer .fine-print {
		text-align: center;
	}
	.page-footer .logo-footer {
		margin: auto;
	}

	/* Mobile Navbar */
	.mobile-navbar-wrapper {
		display: flex;
		padding: 20px;
		padding-left: max(var(--spacing-sides), env(safe-area-inset-left));
		padding-right: max( calc(var(--spacing-sides) - 10px), env(safe-area-inset-right));
	}
	.page-nav .page-wrapper {
		padding: 0;
	}
	.page-nav .logo {
		margin-right: auto;
	}
	.page-nav #menu {
		padding: 20px;
		padding-left: max(var(--spacing-sides), env(safe-area-inset-left));
		padding-right: max(var(--spacing-sides), env(safe-area-inset-right));
		overflow: hidden;
	}
	.page-nav #menu li {
		margin-bottom: 30px;
	}
	.page-nav #menu a {
		font-weight: 700;
	}
	.page-nav #menu .faq-mobile-nav {
		font-weight: 500;
		border-top: 2px solid var(--color-primary-light);
		padding-top: 30px;
		display: block;
	}

	/* Mobile Navbar Menu */
	.no-js #toggle {
		display: none;
	}
	#toggle svg {
		overflow: visible;
	}
	#toggle {
		display: flex;
		align-items: center;
		border: 0;
		background: transparent;
		padding: 10px;
		cursor: pointer;
	}
	.page-nav #menu {
		display: none;
		background-color: var(--color-almost-white);
		border-top: 2px solid var(--color-primary-light);
	}
	.get-treated-steps .step {
		background-color: transparent;
		padding-bottom: 40px;
	}

	.col-2 .col:not(:first-child) {
		margin-top: 20px;
	}
	.col-2 .img-col img {
		max-width: 500px;
		width: 100%;
	}

	.home-page-banner-below-header .col:not(:last-child) {
		margin-bottom: 40px;
	}
	.services-page .quotes div.img-col,
	.about-page .quotes div.img-col {
		margin-top: var(--spacing-section-vertical);
	}
}

@media (max-width: 1250px) {
	.page-footer .read-more {
		display: none;
	}
	.page-footer .row .contact {
		padding-right: 0;
	}
}


@media (min-width: 950px) {
	:root {
		--spacing-sides: 50px;
		--spacing-section-vertical: 100px;
	}
	.page-footer .logo-footer {
		max-width: 456px;
		width: 100%;
	}
	.page-footer .row {
		display: flex;
	}
	.page-footer h3 {
		margin-top: 0;
	}
	.page-footer .row section {
		padding-right: 60px;
		padding-top: 0;
	}
	.page-footer .row section:last-of-type {
		padding-right: 0;
	}
	.page-footer .about {
		flex-grow: 1;
	}
	.page-footer .contact,
	.page-footer .read-more {
		order: 2;
	}
	.page-footer .fine-print {
		display: flex;
	}
	.page-footer .copyright {
		margin-top: 0;
		order: -1;
		margin-right: auto;
	}

	#toggle {
		display: none !important;
	}
	#menu {
		display: block !important;
		height: auto !important;
	}
	#menu li {
		opacity: 1 !important;
		translate: none !important;
		transform: none !important;
		rotate: none !important;
		scale: none !important;
	}

	.page-nav .page-wrapper {
		display: flex;
		align-items: center;
		padding-top: 20px;
		padding-bottom: 20px;
	}
	.mobile-navbar-wrapper {
		margin-right: auto;
	}
	.page-nav a {
		font-size: 1.25rem;
	}
	.page-nav li {
		display: inline-block;
	}
	.page-nav li:not(:last-child) {
		margin-right: 1.6em;
	}


	.header-faq .page-wrapper {
		padding-top: 50px;
	}


	.col-2 {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 60px;
		align-items: center;
	}
	.col-2.large-left {
		grid-template-columns: 60fr 40fr;
	}
	.col-2.large-right {
		grid-template-columns: 47fr 53fr;
	}
	.col-3 {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 60px;
		align-items: center;
	}

	.home-page-banner-below-header .col {
		display: flex;
	}
	.home-page-banner-below-header p {
		margin-left: 20px;
	}

	.location-page .img-col,
	.services-page .header-location .img-col {
		order: -1;
	}
	.about-page .header-location .img-col {
		order: 2;
	}
	.about-page .meaningful-care .img-col {
		order: 2;
	}
	


	.get-treated-steps .step {
		padding: 40px;
		display: flex;
		align-items: center;
		gap: 60px;
		margin: var(--spacing-section-vertical) 0;
	}
	.get-treated-steps .step:last-child {
		margin-bottom: 0;
	}
	.get-treated-steps .step:nth-child(even) .col:first-child {
		order: 2;
	}
	.get-treated-steps .step .col {
		width: 45%;
	}
	.get-treated-steps .step .img-col {
		width: 55%;
		max-width: none;
	}
	.get-treated-steps .step .img-col img {
		width: 100%;
		max-width: none;
	}
	.get-treated-steps h3 {
		font-size: 2.625rem;
	}


	.services-list ul {
		margin: 0;
		padding: 0;
		list-style-type: none;
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 90px;
	}
}

@media (min-width: 1100px) {
	h1, h2 {
		font-size: 3.75rem;
	}
	.disclaimer-page h2 {
		font-size: 1.5rem;
	}
	main p {
		font-size: 1.25rem;
	}
	.page-wrapper {
		padding-top: 110px;
		padding-bottom: 110px;
	}

	.team-member-wrapper {
		max-width: 33%;
		display: inline-block;
	}
	.team-member-wrapper.primary {
		max-width: 500px;
	}
	.our-team .slider-controls {
		display: none;
	}
	.team-member-name {
		font-size: 1.5rem;
	}
}

@media (min-width: 950px) and (max-width: 1022px) {
	.page-nav a {
		font-size: 1.15rem;
	}
	.page-nav .logo {
		width: 220px;
	}
}

@media (min-width: 950px) and (max-width: 1100px) {
	.page-footer .row section {
		padding-right: 30px;
	}
}
