/* All screen sizes */

/****************************************
* Root variables
****************************************/

:root {
  --fni-font-1: 'Montserrat';
  --fni-font-2: 'Crimson Pro';

  --fni-color-1: #0077c0;
  --fni-color-2: #F28D20;
  --fni-color-3: #5D5D5F;
  --fni-color-4: #859042;

  --fni-nav-toggle-color: #000000;
}

/****************************************
* Typography
****************************************/

h1 {
  font: normal normal 40px/1em var(--fni-font-2);
  color: var(--fni-color-1);
}

h2 {
  font: normal normal 24px/1.2em var(--fni-font-2);
  color: var(--fni-color-1);
}

h3 {
  font: normal 600 18px/1.5em var(--fni-font-1);
  color: var(--fni-color-3);
  text-transform: uppercase;
  letter-spacing: 3px;
}

h3 span {
  font: italic normal 14px/1em var(--fni-font-1);
  text-transform: none;
  letter-spacing: 0;
}

p,
a,
li,
label,
legend {
  font: normal 300 16px/1.5em var(--fni-font-1);
  color: #000000;
}

a {
  color: var(--fni-color-2);
  text-decoration: none;
  font-weight: 600;
}

strong {
 font-weight: 600;
}

a:focus,
a:hover,
a.active {
  color: var(--fni-color-1);
}

hr {
  border-top: 1px solid rgba(0, 0, 0, .2);
}

h1 + h2,
h1 + p,
h2 + h3,
p + h2,
ul + h2,
p + h3,
h3 + h3,
img + h2,
h3 + a.button,
p + a.button,
p + form,
.grid + h3 {
  margin-top: 2rem;
}

h2 + p,
h3 + p,
li + li,
img + p,
p + p,
p + ul,
p + ol,
.button + .button {
  margin-top: 1rem;
}

.bulleted {
  margin: 1rem 0 1rem .5rem;
}

.max-width {
  max-width: 1000px;
}

/****************************************
* Buttons
****************************************/

.button {
  background-color: var(--fni-color-2);
  border-radius: 4px;
  padding: 1rem;
  font: normal 600 16px/1em var(--fni-font-1);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.button:focus,
.button:hover,
.button:disabled {
  background-color: var(--fni-color-1);
  color: #ffffff;
}

/****************************************
* Accent
****************************************/

.accent {
  background-color: #f8f8f8;
}

.accent-1 {
  background: #ffffff url('/images/layout/bg-repeat.gif') repeat-x;
}

.accent-2 {
  border-top: 5px dotted #b4b4b4;
  padding: 2rem 0 0 0;
}

.accent-3 {
  background: #828282 url('/images/layout/bg-testimonials.png') repeat;
}

.accent-4 {
  background-color: #060503;
}

.accent-4 h1 {
  color: #ffffff;
}

/****************************************
* Card
****************************************/

.card {
  display: flex;
  flex-direction: column;
  box-shadow: 2px 2px 2px rgba(0, 0, 0, .2);
  border-radius: 20px;
  overflow: hidden;
}

.card .header {
  margin: 0;
  border-bottom: 1px solid #cbcbcb;
  background: #f5f5f5; /* Old browsers */
  background: -moz-linear-gradient(top, #e6e5e5 0%,#f8f8f8 50%,#ededed 100%); /* FF3.6-15 */
  background: -webkit-linear-gradient(top, #e6e5e5 0%,#f8f8f8 50%,#ededed 100%); /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, #e6e5e5 0%,#f8f8f8 50%,#ededed 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e6e5e5', endColorstr='#ededed',GradientType=0 ); /* IE6-9 */
  padding: 1rem;
}

.card .details {
  flex-grow: 1;
  background-color: #ffffff;
  padding: 2rem;
}

/****************************************
* Header
****************************************/

header {
  position: relative;
  background-color: #ffffff;
}

header .flex {
  flex-direction: column;
  align-items: center;
}

header .logo {
  margin: 1rem 4rem;
}

header .logo img {
  min-width: 192px;
  width: 100%;
  max-width: 200px;
}

/****************************************
* Navigation
****************************************/

.nav-toggle {
  top: 30px;
  right: 1rem;
}

nav {
  background-color: rgba(255, 255, 255, .9);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  width: 100%;
  max-height: 0;
  padding: 0 1rem;
  overflow: hidden;
  transition: max-height .4s ease-in;
}

nav.on {
  max-height: 100vh;
}

nav ul {
  margin: 1rem 0;
}

nav li {
  display: flex;
  margin: 0 0 .5rem 0;
  border-radius: 4px;
  width: 100%;
  padding: 0;
  text-align: center;
}

nav a {
  background-color: transparent;
  width: 100%;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--fni-color-1);
}

nav a:hover,
nav a:focus,
nav a.active {
  color: var(--fni-color-2);
}

nav .button {
  display: inline-block;
  margin: 0 auto;
  width: auto;
  padding: .75rem 1rem;
  font-size: 15px;
  font-weight: 400;
}

/****************************************
* Billboard
****************************************/

.billboard {
  position: relative;
  background-color: #e9eaef;
  height: calc(137px + (300 - 137) * (100vw - 320px) / (768 - 320));
  max-height: 700px;
}

.billboard .video {
  height: 100%;
  padding-bottom: 0;
  overflow: hidden;
}

.billboard .video video {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  height: 100%;
}

/****************************************
* Inside billboard
****************************************/

.inside-billboard {
  background-color: #e9eaef;
  background-size: contain;
  background-position-y: bottom;
  background-position-x: calc(-280px + (-530 - -280) * (100vw - 320px) / (768 - 320));
  background-size: calc(635px + (1315 - 635) * (100vw - 320px) / (768 - 320));
  background-repeat: no-repeat;
  height: calc(350px + (590 - 350) * (100vw - 320px) / (768 - 320));
}

.inside-billboard.employee-benefits {
  background-image: url('/images/content/employee_benefits.jpg');
}

.inside-billboard.medicare {
  background-image: url('/images/content/medicare.jpg');
}

.inside-billboard.individual-family {
  background-image: url('/images/content/individual_and_family_insurance.jpg');
}

.inside-billboard .container {
  display: flex;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.inside-billboard .wrapper {
  display: flex;
  align-items: center;
  height: calc(168px + (200 - 168) * (100vw - 320px) / (768 - 320));
  padding: 2rem;
}

.inside-billboard h1 {
  font: normal bold 45px/1em var(--fni-font-1);
  font-size: calc(38px + (50 - 38) * (100vw - 320px) / (768 - 320));
  text-align: center;
  text-transform: uppercase;
}

/****************************************
* Latest Post
****************************************/

.latest-post p > a {
  word-wrap: anywhere;
}

.latest-post p + img,
.latest-post p + .fb-video,
.latest-post img + p,
.latest-post .fb-video + p {
  margin-top: 1rem;
}

.latest-post .social-buttons {
  padding: .5rem 0;
}

.latest-post .social-buttons > div {
  display: inline-block;
  vertical-align: middle;
  font-size: 0;
}

.latest-post .slip-n-slide {
  margin: 1rem 0;
}

.latest-post .slip-n-slide img {
  position: relative;
  top: 0;
  transform: none;
}

.latest-post [data-overlay] {
  display: inline-flex;
  justify-content: center;
  position: relative;
}

.latest-post [data-overlay] svg {
  position: absolute;
  top: .5rem;
  right: .5rem;
  width: 15px;
  height: 15px;
  filter: drop-shadow(0px 0px 4px rgba(0, 0, 0, 0.7));
  opacity: 0;
  transition: all .4s ease;
}

.latest-post [data-overlay]:hover svg {
  opacity: 1;
}

/****************************************
* Service icons
****************************************/

.service-icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: .25rem;
  border: 1px solid #cbcbcb;
  background: #f5f5f5; /* Old browsers */
  background: -moz-linear-gradient(top, #e6e5e5 0%,#f8f8f8 50%,#ededed 100%); /* FF3.6-15 */
  background: -webkit-linear-gradient(top, #e6e5e5 0%,#f8f8f8 50%,#ededed 100%); /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, #e6e5e5 0%,#f8f8f8 50%,#ededed 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e6e5e5', endColorstr='#ededed',GradientType=0 ); /* IE6-9 */
  padding: 1.5rem .5rem;
  text-transform: uppercase;
  text-align: center;
  font: bold 11px/1.2em var(--fni-font-1);
}

.service-icon img {
  margin: 0 0 1rem 0;
  height: 60px;
}

.service-icon span {
 color: #383838;
}

/****************************************
* Testimonial
****************************************/

.testimonials {
  background: #828282 url('/images/layout/bg-testimonials.png') repeat;
  max-width: none;
  overflow-y: hidden;
}

.testimonials > div {
  position: relative;
  margin: 0 auto;
  max-width: 1000px;
  height: 450px;
  overflow: unset;
}

.testimonials svg {
  position: absolute;
  width: 250px;
  height: auto;
  fill: rgba(255, 255, 255, .1);
}

.testimonials svg:first-of-type {
  top: -4rem;
}

.testimonials svg:last-of-type {
  right: 0;
  bottom: -4rem;
  transform: rotate(180deg);
}

.testimonials p {
  font: normal normal 17px/1.5em var(--fni-font-2);
  color: #ffffff;
}

.testimonials .author {
  font: normal bold 11px/1em var(--fni-font-1);
  margin: 1rem auto 0 auto;
  color: #c3c3c3;
  text-transform: uppercase;
  letter-spacing: 3px;
}

/****************************************
* Logos
****************************************/

.logos {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  margin: 2rem auto;
}

.logos img {
  width: 150px;
}

/****************************************
* Staff
****************************************/

.staff {
  position: relative;
  background-color: #060503;
  background-size: 600px;
  background-position: bottom left;
  background-repeat: no-repeat;
  height: 614px;
}

.staff h2,
.staff h3 {
  color: #ffffff;
}

.staff h3 {
  font-size: 18px;
}

.staff a:hover {
  color: #ffffff;
}

.staff img {
  margin: auto 0 0 0;
  width: 100%;
  max-width: 400px;
}

.staff-details {
  padding: 3rem 0 0 4rem;
}

.staff-details h3 {
  line-height: 1em;
  padding-bottom: .75rem;
  border-bottom: 1px solid rgba(255, 255, 255, .4);
}

.staff-details .icon svg {
  width: 20px;
  height: 20px;
  margin-right: .5rem;
  margin-bottom: -0.25rem;
  margin-top: .25rem;
  fill: rgba(255, 255, 255, .4);
}

.overlay .staff-details {
  padding: 0;
}

.overlay .staff-details h3 {
  margin: 2rem 0 0 2rem;
}

.overlay .staff img {
  margin: 0 auto;
}

@media(min-width: 530px) {
  .staff {
    background-size: cover;
    height: calc(350px + (560 - 350) * (100vw - 530px) / (768 - 530));
  }

  .staff-details {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: absolute;
    top: 0;
    right: 0;
    width: calc(262px + (330 - 262) * (100vw - 530px) / (768 - 530));
    height: 100%;
    padding: 0;
  }
}

/****************************************
* Grid
****************************************/

.grid[class*="col-2"] > div:first-of-type [class*="padding"] {
  margin: 0 0 0 auto;
  max-width: 900px;
}

.grid[class*="col-2"] > div:last-of-type [class*="padding"] {
  margin: 0 auto 0 0;
  max-width: 900px;
}

/****************************************
* Clone
****************************************/

.clone {
  position: relative;
}

.add-clone.button {
  margin-top: 0;
  font-size: 12px;
}

.remove-clone.button {
  position: absolute;
  top: 34px;
  left: 62px;
  margin: 0;
  background-color: #b3b3b3;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  padding: 0;
  color: #ffffff;
  font-size: 18px;
  letter-spacing: 0;
  vertical-align: middle;
}

.remove-clone:after {
  content: '\d7';
}

/****************************************
* Request a Quote (insurance_quote.phtml)
****************************************/

.personal-information,
.end-of-form {
  margin-top: 2rem;
}

[type="date"] {
  margin-bottom: 0rem;
  width: 130px;
}

.request-form h3 {
  margin-bottom: 1rem;
}

.member-information > div {
  display: grid;
  grid-template-columns: 1fr;
}

.member-information legend {
  float: left;
}

.member-information fieldset,
.member-information .dob,
.effective-date {
  display: grid;
  grid-template-columns: 1fr 0.5fr 0.5fr;
}

.company-size select {
  margin-bottom: 1rem;
}

@media (min-width: 576px) {
  .member-information > div, .clone,
  .effective-date {
    display: grid;
    grid-template-columns: 1fr 1fr 130px;
  }

  .member-information legend {
    float: none;
  }

  .member-information fieldset,
  .member-information .dob {
    display: block;
  }
}

.member-information hr {
  grid-column: span 3;
}

/****************************************
* Overlay
****************************************/

.overlay {
  display: flex;
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 400;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background-color: rgba(0, 0, 0, .8);
  width: 100%;
  height: 100%;
  padding: 1rem;
  overflow: auto;
}

.overlay .wrapper {
  position: relative;
  margin: auto;
  border-radius: 5px;
  background-color: rgba(255, 255, 255, .9);
  width: calc(100% - 1rem);
  max-width: 600px;
  padding: 2rem;
  overflow: hidden;
}

.overlay .close-overlay {
  position: absolute;
  top: .5rem;
  right: .5rem;
  z-index: 1;
  margin: 0;
  background: transparent;
  height: 23px;
  padding: 0;
  font-size: 30px;
  line-height: 20px;
  color: var(--fni-color-2);
  cursor: pointer;
}

.overlay .close-overlay,
.overlay .close-overlay svg {
  width: 25px;
  height: 25px;
  fill: #000000;
}

.overlay .close-overlay:hover svg,
#bio.overlay .close-overlay:hover svg {
  fill: #dd0000;
}

#bio.overlay .close-overlay svg {
  fill: #ffffff;
}

#bio.overlay .wrapper {
  max-width: 1000px;
  padding: 0;
}

#bio.overlay .grid > div:nth-of-type(2) {
  padding: 2rem;
}

/****************************************
* Footer
****************************************/

footer {
  position: relative;
  background: #ffffff url('/images/layout/bg-footer.png') top center no-repeat;
  background-size: cover;
}

footer > .grid {
 text-align: center;
 gap: 2rem;
 margin: 1rem;
}

footer h3 {
  color: #ffffff;
}

footer hr {
  border-top: 1px solid rgba(255, 255, 255, .2);
  margin: .6rem 0;
}

footer button + button {
  margin-top: 1rem;
}

footer p {
  margin-bottom: 0;
  color: #ffffff;
}

footer .icon svg {
  width: 40px;
  height: 40px;
  fill: var(--fni-color-2);
  margin-right: 1rem;
}

footer .icon svg:hover {
  fill: #ffffff;
}

footer img {
  width: 100%;
  max-width: 200px;
}

footer button {
  display: block;
  width: 100%;
}

footer .button:focus,
footer .button:hover,
footer .button:disabled {
  background-color: #ffffff;
  color: var(--fni-color-1);
}

footer a:hover {
  color: #ffffff;
}

/****************************************
* Attribution
****************************************/

.attribution {
  background-color: rgba(0, 0, 0, 0.1);
  padding: .5rem .5rem calc(.5rem + env(safe-area-inset-bottom));
}

.attribution a {
  color: #ffffff;
  font-weight: normal;
  text-transform: none;
  font-size: 12px;
}

.attribution p {
  margin: 0;
  font-size: 12px;
  color: #ffffff;
}