/* IMPORTS */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');

/* VARIABLES */
:root {
  --dark-color: #212731;
  --light-color: #5B7993;
  --slate-gray: #D3DBE4;
  --dark-accent: #2D7A4F;
  --light-accent: #579974;
  --gray: #f7fbfe;
}

/* RESETS */

/* 1. Use a more-intuitive box-sizing model */
*, *::before, *::after {
  box-sizing: border-box;
}

/* 2. Remove default margin */
* {
  margin: 0;
}

/* 3. Enable keyword animations */
@media (prefers-reduced-motion: no-preference) {
  html {
    interpolate-size: allow-keywords;
  }
}

body {
  /* 4. Add accessible line-height */
  line-height: 1.5;
  /* 5. Improve text rendering */
  -webkit-font-smoothing: antialiased;
}

/* 6. Improve media defaults */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

/* 7. Inherit fonts for form controls */
input, button, textarea, select {
  font: inherit;
}

/* 8. Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

/* 9. Improve line wrapping */
p {
  text-wrap: pretty;
}
h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}

/*
  10. Create a root stacking context
*/
#root, #__next {
  isolation: isolate;
}

/* STYLES */
body {
  font-family: 'Montserrat', sans-serif;
  background-color: var(--main-bg-color);
  color: var(--dark-color);
}

h1 {
  font-size: 2.8rem;
  line-height: 1.2;
  font-weight: 700;
  color: var(--dark-color);
}

h2 {
  font-size: 2rem;
  line-height: 1.2;
  font-weight: 700;
  color: var(--dark-color);
}

h2:not(:first-child) {
  margin-top: 2rem;
}

h3 {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--dark-color);
}

h3:not(:first-child) {
  margin-top: 1rem;
}

p {
  margin-top: 1rem;
}

p:first-child {
  margin-top: 0rem;
}

.dark-background {
  background-color: var(--dark-color);
}

.light-background {
  background-color: var(--light-color);
}

.white-background {
  background-color: white;
}

.accent-background {
  background-color: var(--dark-accent);
}

.slate-gray-background {
  background-color: var(--slate-gray);
}

.gray-background {
  background-color: var(--gray);
}

.gray-gradient-background {
  background: linear-gradient(to bottom, white, var(--gray));
}

.normal-container {
	--max-width: 80rem;
	--padding: 1.5rem;

	/* Restricts the container to the lesser of max-width OR 100% viewport width minus 2x padding on either side */
	width: min(var(--max-width), 100% - (var(--padding) * 2));
	margin-inline: auto;
}

.slim-container {
	--max-width: 60rem;
	--padding: 1.5rem;

	/* Restricts the container to the lesser of max-width OR 100% viewport width minus 2x padding on either side */
	width: min(var(--max-width), 100% - (var(--padding) * 2));
	margin-inline: auto;
}

.tight-container {
	--max-width: 50rem;
	--padding: 1.5rem;

	/* Restricts the container to the lesser of max-width OR 100% viewport width minus 2x padding on either side */
	width: min(var(--max-width), 100% - (var(--padding) * 2));
	margin-inline: auto;
}

.section-padding-top-bottom-hero {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.section-padding-top-bottom {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.section-padding-top {
  padding-top: 5rem;
  padding-bottom: 2rem;
}

.small-padding-top {
  padding: 1rem 0 0 0;
}

.small-padding-top-bottom {
  padding-top: 3rem;
  padding-bottom: 2rem;
}

.tiny-padding-top-bottom {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.tiny-padding-top-normal-padding-bottom {
  padding-top: 1rem;
  padding-bottom: 2rem;
}

.bottom-border {
  border-bottom: 1px solid var(--light-color);
}

.bottom-border-light {
  border-bottom: 1px solid rgb(216, 216, 216);
}

.top-banner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 20px;
  background-color: var(--slate-gray);
  color: var(--dark-color);
  font-size: 0.9rem;
}

.top-banner svg {
  width: 1rem;
  height: 1rem;
  vertical-align: middle;
  fill: var(--dark-color);
  display: inline;
}

.nav-banner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 0 15px 0;
  background-color: white;
  color: var(--dark-color);
}

.logo img {
  max-width: 250px;
  padding-bottom: 5px;
}

.nav-banner ul {
  display: inline-block;
  list-style: none;
  color: var(--dark-color);
  font-weight: 300;
  font-size: 1.1rem;
}

.nav-banner li {
  display: inline;
  margin-right: 20px;
}

button {
  background-color: var(--dark-accent);
  color: white;
  border: none;
  padding: 10px 20px;
  font-size: 1rem;
  cursor: pointer;
  border-radius: 10px;
}

button:hover {
  background-color: var(--light-accent);
}

.nav-border {
  border-bottom: 1px solid var(--slate-gray);
  position: sticky;
  top: 0;
  z-index: 9999;
}

.hero-section {
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-section > * {
  flex: 1;
  padding: 20px;
}

.hero-section button {
  margin-top: 2rem;
}

.hero-section img {
  border-radius: 10px;;
  box-shadow: 0 5px 10px rgba(0,0,0,0.1);
}

.header-section {
  text-align: center;
  margin-bottom: 3rem;
}

.contact-section {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 25px;
}

.contact-section > .image, .info {
  flex: 1;
}

.contact-section > .info {
  border: 1px solid var(--slate-gray);
  border-radius: 10px;
  background-color: white;
  padding: 2rem;

}

.contact-section > .contact-connect {
  flex: 3;
}

.contact-section svg {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  fill: var(--dark-color);
  margin-right: 0.5rem;
}

.contact-section > .form {
  flex: 2;
}

.contact-section img {
  max-width: 100%;
  border-radius: 10px;
  box-shadow: 0 5px 10px rgba(0,0,0,0.1);
}

.contact-section form {
  background-color: white;
  border: 1px solid var(--slate-gray);
  border-radius: 10px;
  padding: 2rem;
}

.contact-section .form-container {
  margin-top: 2rem;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 40px;
  margin-bottom: 2rem;
}

input[type="text"], textarea, select,
input[type="email"], input[type="tel"] {
  border: 1px solid var(--slate-gray);
  background-color: var(--gray);
  border-radius: 10px;
  padding: 8px 12px 8px 12px;
}

textarea {
  width: 100%;
  resize: vertical;
}

label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  margin-bottom: 0.3rem;
}

.form-group.message {
  width: 100%;
}

.benefits-section {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.benefits-section > * {
  flex: 1;
  padding: 15px;
  text-align: center;
  border: 1px solid var(--slate-gray);
  border-radius: 10px;
  border-left: 10px solid var(--slate-gray);
}

.benefit-icon {
  margin-top: 1rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
  padding: 0.5rem;
  width: 4rem;
  height: 4rem;
  fill: var(--white-background);
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  border-radius: 10px;
}

.benefit-icon-briefcase {
  padding: .8rem;
}

.video {
  margin: auto;
  border-radius: 25px;
  box-shadow: 0 10px 10px rgba(0,0,0,0.1);
  display: block;
  overflow: hidden;
}

.plans-section {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.plan {
  background-color: white;
  border: 1px solid var(--slate-gray);
  border-radius: 10px;
  padding: 20px;
  width: 300px;
  text-align: center;
}

.plan svg {
  width: 2rem;
  height: 2rem;
  margin: auto;
}

.plan:hover {
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);  
}

.plan ul {
  text-align: left;
  padding: 1rem 10px 0 30px;
  font-size: 0.9rem;
}

.plan li {
  font-size: 0.9rem;
}

.plan li::marker {
  color: var(--slate-gray);
  font-size: 120%;
}

.plan p {
  font-size: 0.9rem;
}

.footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  color: white;
  gap: 4rem;
  font-size: 0.8rem;
}

.footer img {
  border-radius: 10px;
}

.footer > .logo-section {
  flex: 2;
}

.footer > .footer-section {
  flex: 1;
  margin-top: 0;
}

.footer svg {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  fill: white;
  margin-right: 0.3rem;
}

.footer .footer-logo {
  max-width: 200px;
  margin-bottom: 10px;
}

.footer h3 {
  color: white;
}

.footer ul {
  display: inline-block;
  list-style: none;
  color: var(--dark-color);
  font-weight: 300;
  font-size: 1.1rem;
  padding-left: 0;
}

.footer li {
  display: inline-block;
  margin-right: 20px;
}

.footer a {
  color: white;
  font-size: 0.9rem;
}

.copyright {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
}

.copyright ul {
  display: inline;
  list-style: none;
  color: var(--dark-color);
  font-weight: 300;
  font-size: 1.1rem;
  padding-left: 0;
}

.copyright li {
  display: inline-block;
  margin-right: 20px;
}

.medicare-disclosure {
  font-size: 0.8rem;
  color: white;
}

.medicare-disclosure p {
  padding: 0;
  margin: 0;
}

.page-header {
  text-align: center;
}

.about-section {
  display: flex;
  justify-content: center;
  gap: 35px;
}

.about-section > * {
  flex: 1
}

.about-section img {
  border-radius: 10px;
  box-shadow: 0 5px 10px rgba(0,0,0,0.1);
}

.about-section .education {
  margin-top: 2rem;
}

.values-section {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.values-section > * {
  flex: 1;
  text-align: center;
  padding: 15px;
  border: 1px solid var(--slate-gray);
  border-radius: 10px;
  background-color: white;
}

.cta-section {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  gap: 20px;
  border: 1px solid var(--slate-gray);
  border-radius: 10px;
  background-color: white;
  padding: 20px;
}

.office-hours {
  margin-top: 1rem;
}

#my-cal-inline-30-minute-discovery-call {
  margin-top: 2rem;
}

.contact-connect h3:not(:first-child) {
  margin-top: 3rem;
}

.cal-embed-frame {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}

.footer-section .service-area {
  max-width: 14rem;
  margin-top: 1rem;
}