@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..700;1,400..700&display=swap');


* {
	box-sizing:border-box;
}


html {
	scroll-behavior:smooth;
}


body {
	margin:0;
	background:#ffffff;
	color:#1d1d1d;
	font-family:Seravek,"Gill Sans Nova",Ubuntu,Calibri,"DejaVu Sans",Arial,sans-serif;
	font-size:16px;
	line-height:1.65;
	-webkit-text-size-adjust:100%;
}


body.menu-open {
	overflow:hidden;
}


img,
video {
	max-width:100%;
}


a {
	color:inherit;
}


button,
input,
select,
textarea {
	font:inherit;
}


[hidden] {
	display:none !important;
}



/* =========================================================
   ACCESSIBILITY
   ========================================================= */


.skip {
	position:fixed;
	left:-10000px;
	top:.75rem;
	z-index:5000;
	padding:.8rem 1rem;
	background:#000000;
	color:#ffffff;
	text-decoration:none;
}


.skip:focus {
	left:.75rem;
	color:#ffffff !important;
	background:#d004fc !important;
	outline:3px dotted #a307fc;
	outline-offset:3px;
}


a:focus,
button:focus,
summary:focus,
a:focus-visible,
button:focus-visible,
summary:focus-visible {
	color:#ffffff !important;
	background:#d004fc !important;
	outline:3px dotted #a307fc !important;
	outline-offset:3px;
}



/* =========================================================
   SHARED PAGE WIDTH
   ========================================================= */


.section-shell {
	width:min(1200px,92%);
	margin:0 auto;
}



/* =========================================================
   HEADER
   ========================================================= */


.site-header {
	position:fixed;
	top:0;
	left:0;
	z-index:1000;
	width:100%;
	background:rgba(0,0,0,.74);
	transition:background .25s ease,box-shadow .25s ease;
}


.site-header.is-scrolled {
	background:rgba(255,255,255,.97);
	box-shadow:0 8px 30px rgba(0,0,0,.10);
}


.site-header-inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:1.5rem;
	width:min(1500px,94%);
	min-height:78px;
	margin:0 auto;
}


.site-brand {
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	color:#ffffff;
	text-decoration:none;
	line-height:1.05;
}


.site-brand-name {
	font-family:"Playfair Display",Georgia,serif;
	font-size:1.25rem;
	font-weight:600;
}


.site-brand-wellness {
	margin-top:.2rem;
	font-size:.72rem;
	font-weight:800;
	letter-spacing:.18em;
	text-transform:uppercase;
}


.site-header.is-scrolled .site-brand {
	color:#1d1d1d;
}


.header-actions {
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:.55rem;
	margin-left:auto;
}


.header-text-link,
.header-action-button,
.site-menu-button {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	text-decoration:none;
}


.header-text-link {
	padding:.65rem .55rem;
	color:#ffffff;
	font-size:.84rem;
	font-weight:700;
}


.header-action-button,
.site-menu-button {
	padding:.72rem .95rem;
	border:1px solid rgba(255,255,255,.78);
	border-radius:999px;
	font-size:.84rem;
	font-weight:800;
}


.header-action-button {
	color:#ffffff;
}


.header-action-button.primary {
	background:#ffffff;
	color:#1d1d1d;
}


.header-action-button.secondary {
	background:rgba(0,0,0,.8);
}


.site-menu-button {
	background:rgba(0,0,0,.8);
	color:#ffffff;
	cursor:pointer;
}


.site-header.is-scrolled .header-text-link {
	color:#1d1d1d;
}


.site-header.is-scrolled .header-action-button,
.site-header.is-scrolled .site-menu-button {
	border-color:#1d1d1d;
	color:#1d1d1d;
}


.site-header.is-scrolled .header-action-button.primary {
	background:#1d1d1d;
	color:#ffffff;
}


.site-header.is-scrolled .header-action-button.secondary,
.site-header.is-scrolled .site-menu-button {
	background:#ffffff;
}



/* =========================================================
   MENU
   ========================================================= */


.site-menu-panel {
	position:fixed;
	inset:0;
	z-index:1100;
	background:rgba(13,13,13,.98);
	overflow:auto;
}


.site-menu-inner {
	width:min(650px,90%);
	margin:0 auto;
	padding:2rem 0 4rem;
}


.site-menu-close {
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:46px;
	margin:0 0 2rem auto;
	padding:.7rem 1rem;
	border:1px solid #ffffff;
	border-radius:999px;
	background:#111111;
	color:#ffffff;
	font-weight:800;
	cursor:pointer;
}


.site-menu-panel ul {
	margin:0;
	padding:0;
	list-style:none;
}


.site-menu-panel li {
	border-bottom:1px solid rgba(255,255,255,.18);
}


.site-menu-panel a {
	display:block;
	padding:1rem .2rem;
	color:#ffffff;
	font-size:1.08rem;
	font-weight:700;
	text-decoration:none;
}



/* =========================================================
   VISION HEALTH ARTICLE
   ========================================================= */


.vision-article {
	padding:8.75rem 0 6rem;
	background:#ffffff;
}


.vision-article-inner {
	width:min(950px,90%);
	margin:0 auto;
}


.vision-article-eyebrow {
	margin:0 0 .75rem;
	color:#564631;
	font-size:.78rem;
	font-weight:800;
	letter-spacing:.18em;
	line-height:1.4;
	text-transform:uppercase;
}


.vision-article h1 {
	margin:0 0 2rem;
	color:#171717;
	font-family:"Playfair Display",Georgia,serif;
	font-size:clamp(2.35rem,4.4vw,4rem);
	font-weight:550;
	line-height:1.08;
	letter-spacing:-.025em;
}


.vision-article-lead {
	margin:0 0 1.75rem;
	color:#242424;
	font-size:1.16rem;
	line-height:1.8;
}


.vision-article p {
	margin:0 0 1.55rem;
	color:#242424;
	font-size:1.05rem;
	line-height:1.82;
	text-align: justify;
}


.vision-article h2 {
	margin:3.2rem 0 1rem;
	color:#171717;
	font-family:"Playfair Display",Georgia,serif;
	font-size:clamp(1.7rem,3vw,2.35rem);
	font-weight:550;
	line-height:1.2;
	letter-spacing:-.015em;
}


.vision-article h3 {
	margin:2.5rem 0 .65rem;
	color:#171717;
	font-family:"Playfair Display",Georgia,serif;
	font-size:1.45rem;
	font-weight:600;
	line-height:1.25;
}


.vision-article strong {
	color:#171717;
	font-weight:800;
}


.vision-article ul,
.vision-article ol {
	margin:0 0 1.75rem;
	padding-left:1.5rem;
}


.vision-article li {
	margin:.45rem 0;
	color:#242424;
	font-size:1.05rem;
	line-height:1.75;
}



/* =========================================================
   FOOTER
   ========================================================= */


.site-footer {
	padding:4.5rem 0 5rem;
	background:#f5f2ed;
	color:#1e1e1e;
}


.footer-grid {
	display:grid;
	grid-template-columns:1.1fr 1fr .8fr;
	gap:3rem;
	padding-bottom:2.5rem;
	border-bottom:1px solid #cbc4b9;
}


.footer-brand strong {
	display:block;
	margin-bottom:.55rem;
	font-family:"Playfair Display",Georgia,serif;
	font-size:1.65rem;
	font-weight:600;
}


.footer-brand p,
.footer-brand address,
.footer-grid p {
	margin:.35rem 0;
	color:#000000;
	line-height:1.65;
	font-style:normal;
}


.footer-brand > a {
	display:inline-block;
	margin-top:.65rem;
	font-weight:800;
}


.footer-grid h2 {
	margin:0 0 .7rem;
	font-family:"Playfair Display",Georgia,serif;
	font-size:1.35rem;
	font-weight:550;
}


.insurance-row {
	display:flex;
	align-items:center;
	gap:1rem;
	margin-top:2rem;
}


.insurance-row img {
	max-width:120px;
	max-height:62px;
	object-fit:contain;
}


.vsp-promo {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:.75rem;
	width:300px;
	height:96px;
	padding:.8rem 1rem;
	background:#111111;
	color:#ffffff;
	border-radius:4px;
}


.vsp-promo div {
	display:flex;
	flex-direction:column;
	line-height:1.25;
}


.vsp-promo strong {
	font-size:.95rem;
}


.vsp-promo span {
	margin-top:.25rem;
	color:#d9f4f7;
	font-size:.75rem;
}


.vsp-promo a {
	flex:0 0 auto;
	padding:.55rem .7rem;
	background:#ffffff;
	color:#000000;
	font-size:.78rem;
	font-weight:800;
	text-decoration:none;
	border-radius:3px;
}


.footer-book {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:48px;
	margin-top:.75rem;
	padding:.85rem 1.2rem;
	border:1px solid #1d1d1d;
	border-radius:999px;
	background:#1d1d1d;
	color:#ffffff;
	font-weight:800;
	text-decoration:none;
}


.footer-social {
	display:flex;
	justify-content:center;
	gap:.7rem;
	padding:1.8rem 0 1rem;
}


.footer-social a {
	display:flex;
	align-items:center;
	justify-content:center;
	width:70px;
	height:70px;
	border:1px solid #aaa39a;
	border-radius:50%;
	background:#ffffff;
}


.footer-social img {
	width:40px;
	height:40px;
	object-fit:contain;
}


.footer-legal {
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:.5rem 1.3rem;
	margin-bottom:1.5rem;
}


.footer-legal a {
	font-size:.9rem;
	font-weight:700;
}


.footer-bottom {
	position:relative;
	display:block;
	margin:0 auto;
	padding-top:1rem;
	text-align:center;
	font-size:1.25rem;
}


.footer-bottom a {
	display:block;
	padding:.25em 0 0;
}


.site-credit img {
	display:block;
	margin:.5em auto 0;
	max-width:150px;
	max-height:48px;
}



/* =========================================================
   RESPONSIVE
   ========================================================= */


@media screen and (max-width:1100px) {

	.header-text-link {
		display:none;
	}

}


@media screen and (max-width:800px) {

	.site-header {
		background:rgba(0,0,0,.74);
	}

	.site-header.is-scrolled {
		background:rgba(255,255,255,.98);
	}

	.site-header-inner {
		width:92%;
		min-height:68px;
	}

	.site-brand-name {
		font-size:1.03rem;
	}

	.site-brand-wellness {
		font-size:.62rem;
	}

	.header-action-button {
		display:none;
	}

	.site-menu-button {
		min-width:76px;
	}

	.vision-article {
		padding:7.5rem 0 4.5rem;
	}

	.vision-article-inner {
		width:88%;
	}

	.vision-article h1 {
		font-size:clamp(2.1rem,8vw,3rem);
	}

	.vision-article-lead {
		font-size:1.08rem;
	}

	.vision-article p,
	.vision-article li {
		font-size:1rem;
	}

	.footer-grid {
		grid-template-columns:1fr;
		gap:2rem;
		text-align:left;
	}

}


@media screen and (max-width:550px) {

	.insurance-row {
		flex-direction:column;
		align-items:flex-start;
	}

	.vsp-promo {
		width:100%;
		max-width:300px;
	}

}


@media screen and (max-width:520px) {

	.vision-article {
		padding-top:6.75rem;
	}

	.vision-article-inner {
		width:90%;
	}

	.vision-article h1 {
		margin-bottom:1.5rem;
	}

	.footer-social {
		gap:.45rem;
	}

	.footer-social a {
		width:43px;
		height:43px;
	}

}