html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
button, fieldset, form, input, label, legend, textarea,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
}

html {
  height: 100%;
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  min-height: 100%;
  color: hsla(var(--body-color), 0.7);
  scroll-behavior: smooth;
}

a {
  color: inherit;
  text-decoration: none;
}

p a {
  color: var(--teal-900);
}

img {
  display: block;
  max-width: 100%;
}

ul {
  list-style: none;
}

ol {
  list-style-position: inside;
}

:root {
  --body-color: #00161996;
  --primary: #00B6C9;
  --secondary: 180, 51%, 84%;
  
  --teal-900: #005761;
  --teal-600: #008594;
  --teal-400: #00b6c9;
  --teal-300: #d8ecee;
  --teal-200: #edf8f9;
  --teal-100: #f5fefd;
  --teal-050: #f7ffff;

  --dark: 0, 0%, 50%;
  --darker: 180, 100%, 6%;
  --darkest: 0, 0%, 0%;

  --light: 0, 0%, 76%;
  --lighter: 0, 0%, 81%;
  --lightest: 0, 0%, 100%;

  --highlight: 180, 100%, 87%;
  
  --primary: #C1EBEB;
  --bg-500: #F2F2F2;
  --bg-100: #000000;
  --fg-900: #fff;
}

.bg-teal-050 { background: var(--teal-050); }
.bg-teal-100 { background: var(--teal-100); }
.bg-teal-200 { background: var(--teal-200); }
.bg-teal-600 { background: var(--teal-600); }

.fg-white * { color: #fff; }

h1, h2, h3, h4, h5, h6 { color: var(--teal-900); font-family: "Playfair Display", system-ui, sans-serif; }

h1, .h1 { font-size: 4rem; font-weight: 400; line-height: 1.1; }
h2 { font-size: 2.3rem; font-weight: 400; line-height: 1.1; }
h3, .h3 { color: var(--teal-400); font-family: "IBM Plex Sans", system-ui, sans-serif; font-size: 2rem; font-weight: 600; line-height: 1; }
h4, .h4 { color: var(--teal-400); font-family: "IBM Plex Sans", system-ui, sans-serif; font-size: 1.6rem; font-weight: 600; line-height: 1; letter-spacing: 0.1rem; text-transform: uppercase; }
h5 { font-family: "IBM Plex Sans", system-ui, sans-serif; font-size: 1.6rem; font-weight: 600; line-height: 1.1; }

.xl span.s { font-size: 1.6rem; }
.xl span.xxs { font-size: 1.2rem; color: hsla(var(--dark), 0.5); }

p, li { font-weight: 400; line-height: 1.4; opacity: 0.7; }
p.l { font-size: 1.8rem; line-height: 1.5; }
ul.l { font-size: 1.8rem; line-height: 1.5; }
ul.l li { margin: 0 0 2rem; }
ul.l a { color: var(--teal-600) }

ul.bullet { list-style: disc; padding-left: 1.5rem; }
ul.bullet li::marker { color: var(--teal-600); }

.align-center { text-align: center; }

.bb-1 { border-bottom: 1px solid #00576111 }

.rounded { border-radius: 10px; }

a.button {
  display: inline-block;
  padding: 1.5rem 7.5rem;
  background: var(--primary);
  background: linear-gradient(135deg, var(--teal-400), var(--teal-900));
  color: #fff;
  font: 300 2rem/1.5 "IBM Plex Sans", system-ui, sans-serif;
  letter-spacing: 0.2rem;
  border-radius: 3rem;
  text-align: center;
}

.bar {
  position: relative;
}

.bar:before {
  position: absolute;
  display: block;
  content: "";
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, #00576100, var(--teal-600) 25%, var(--teal-600) 75%, #00576100);
  opacity: 0.5;
}

.bar-white:before {
  position: absolute;
  display: block;
  content: "";
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, #00576100, #fff 25%, #fff 75%, #00576100);
  opacity: 0.5;
}

.quote {
  position: relative;
  color: var(--teal-300);
}

/*.quote:before {
  content: "\201C";
  position: absolute;
  left: -8rem;
  top: 0;
  display: block;
  height: 4rem;
  width: 4rem;
  color: var(--teal-300);
  font-size: 16rem;
  font-weight: 400;
  font-family: "Playfair Display", system-ui, sans-serif;
  line-height: 8rem;
  opacity: 0.25;
}*/

.ph { color: var(--teal-400); font-size: 6rem; }
.ph.s { font-size: 4rem; }

body {
  color: var(--body-color);
  font-family: "IBM Plex Sans", system-ui, sans-serif;
  font-size: 1.6rem;
}

.logo { height: 10rem; max-width: none; }

.open-nav, .close-nav {
  display: none;
  position: relative;
  z-index: 1000;
  color: #fff;
  cursor: pointer;
}

.nav { 
  padding: 3.5rem 0 0;
}

.nav ul {
  display: flex;
  gap: 6rem;
  align-items: center;
  font: 500 1.4rem/1 "IBM Plex Sans";
  letter-spacing: 0.2rem;
}

.nav a {
  color: var(--teal-900);
}

.hero {
  background: var(--teal-050);
}

/*.hero:after {
  display: block;
  content: "";
  background: url(../images/hero-bg.jpg) 0 0 repeat-x;
}*/

.hero-image img {
  position: relative;
  z-index: 10;
  max-width: none;
}

.hero-affiliate {
  min-height: 700px;
  background: var(--teal-050) url(../images/table.jpg) 0 0 no-repeat;
  background-size: cover;
}

.hero-partner {
  min-height: 700px;
  background: var(--teal-050) url(../images/bouquet-02.jpg) 0 0 no-repeat;
  background-size: cover;
}

.hero-affiliate .col-span-5,
.hero-partner .col-span-5 {
  background: #f7ffffee;
  box-shadow: 0 0 100px 200px #f7ffffee;
}

.how-it-works-people li {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  margin: 0 0 4rem;
  min-height: 8rem;
}

.how-it-works-people li h2 {
  color: var(--teal-600);
  flex: 1 0 20rem;
}

.how-it-works-people li a.active {
  color: var(--teal-900);
  text-decoration: underline;
}

.how-it-works-features li {
  margin: 0 0 2rem;
}

.how-it-works-features strong {
  color: var(--teal-900);
}

.attribution {
  color: var(--teal-300);
  font: 300 1.8rem/1.25 "IBM Plex Sans";
  opacity: 0.5;
}

.faq li {
  border-bottom: 1px solid #00576111;
}

.faq li:last-child {
  border: none;
}

.faq li a {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2rem 0;
  color: var(--teal-900);
  font: 300 2.4rem/3rem "IBM Plex Sans";
}

.faq li .ph {
  font-size: 3rem;
}

.faq li div {
  display: none;
  margin: 0 0 4rem;
}

.faq li div.active {
  display: block;
}

.faq li p {
  margin: 0 0 2rem;
  opacity: 1;
}

.faq li p a {
  display: inline;
  font-size: 1.6rem;
}

.faq li ul {
  margin: 0 0 2rem;
}

.faq li ul li {
  margin: 0 0 2rem;
  border-bottom: none;
  list-style: disc;
  list-style-position: inside;
  opacity: 1;
}

footer {
  color: var(--teal-600);
}

.plans {
  background: var(--teal-050);
}

.plans .content {
  gap: 3rem;
  align-items: stretch;
}

.plan {
  display: flex;
  flex-flow: column;
  justify-content: space-between;
  padding: 6rem 4rem;
  background: var(--teal-050);
  border-radius: 3rem;
  box-shadow: 0 5px 10px rgb(0, 98, 110, 0.5), 0 15px 40px rgb(23, 112, 122, 0.2);
}

.plan .h1 {
  line-height: 1.2rem;
}

.plan-best {
  position: relative;
  background: #fff;
}

.most-popular {
  position: absolute;
  top: -45px;
  left: -58px;
}

.overlay {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  inset: 0;
  background: #000d;
}

.overlay.hidden {
  display: none;
}

@media (max-width: 850px) {
  h1 { font-size: 3.6rem; }
  h2 { font-size: 2.8rem; }
  h1 { font-size: 3.6rem; }

  h1.xl, h2.xl, h3.xl, h4.xl, h5.xl, h6.xl { font-size: 3.6rem; }
  .h1 { font-size: 2.5rem; line-height: 1.25; }
  
  p.l { font-size: 1.6rem; }

  .logo { height: 7rem; }

  .nav ul {
    display: none;
  }

  .nav ul.active {
    padding: 3.5rem 2rem;
    display: flex;
    flex-flow: column;
    position: fixed;
    inset: 0;
    z-index: 1001;
    background: var(--teal-050);
  }

  .nav ul.active li {
    width: 100%;
    font-size: 3rem;
    font-weight: 100;
  }

  .close-nav {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: 7rem;
  }

  .hero-image { display: none; }
  .hero:after { display: none; }

  .features > div {
    margin-bottom: 6rem;
  }

  .how-it-works-people {
    margin: 4rem 0 0;
  }

  .how-it-works-people li {
    flex-flow: column;
  }

  .how-it-works-people li h2 {
    flex: 1 1 auto;
  }

  .faq li a {
    font-size: 1.6rem;
    line-height: 1.25;
  }

  footer .flex {
    flex-flow: column;
    gap: 1rem;
  }

  footer .flex > * {
    width: 100%;
    font-size: 1.3rem;
  }
}

#fe_wc_messenger_title,
#fe_wc_messenger_welcome_message {
  font-size: 0 !important;
}

#fe_wc_messenger_title:before {
  content: "LinkMy.Wedding Support";
  font-size: 17.5px;
}

#fe_wc_messenger_welcome_message:before {
  content: "We can help answer any questions you might have about LinkMy.Wedding.";
  font-size: 14px;
}