/* Lavender Divi Safe Skin
   This CSS deliberately avoids absolute positioning, forced CSS grids and forced flex layouts.
   It is intended to restyle the existing Divi page without moving photos or text into the wrong places. */

:root {
  --lavender-soft: #d8c7f2;
  --lavender-main: #b79ad8;
  --lavender-deep: #6f4b8b;
  --lavender-ink: #352842;
  --lilac-pale: #f6f0fb;
  --cream: #fffdf8;
  --charcoal: #2f2f35;
  --muted: #686071;
  --white: #ffffff;
  --radius: 22px;
  --shadow: 0 14px 36px rgba(76, 51, 100, 0.12);
  --shadow-hover: 0 18px 46px rgba(76, 51, 100, 0.18);
}

body,
.et_pb_text,
.et_pb_blurb_description,
.et_pb_module p,
.et_pb_contact_field,
.et_pb_button {
  font-family: "Lato", "Open Sans", Arial, sans-serif;
  color: var(--charcoal);
  line-height: 1.7;
}

h1, h2, h3, h4, h5, h6,
.et_pb_module_header,
.et_pb_text h1,
.et_pb_text h2,
.et_pb_text h3,
.et_pb_fullwidth_header .header-content h1 {
  font-family: Garamond, "Cormorant Garamond", "EB Garamond", Georgia, serif;
  color: var(--lavender-ink);
  letter-spacing: -0.015em;
  line-height: 1.12;
}

h1,
.et_pb_fullwidth_header .header-content h1 {
  font-size: clamp(2.5rem, 5vw, 5rem) !important;
}

h2,
.et_pb_text h2 {
  font-size: clamp(2rem, 3.6vw, 3.4rem) !important;
}

h3,
.et_pb_text h3,
.et_pb_module_header {
  font-size: clamp(1.35rem, 2.2vw, 2rem) !important;
}

.et_pb_section {
  background-color: var(--cream);
}

.et_pb_section:nth-of-type(even) {
  background: linear-gradient(180deg, var(--white), var(--lilac-pale));
}

.et_pb_row {
  width: min(92%, 1180px) !important;
  max-width: 1180px !important;
}

.et_pb_section:not(.et_pb_fullwidth_section) {
  padding-top: clamp(48px, 7vw, 96px) !important;
  padding-bottom: clamp(48px, 7vw, 96px) !important;
}

.et_pb_text,
.et_pb_blurb,
.et_pb_testimonial,
.et_pb_cta,
.et_pb_contact_form_container {
  animation: none !important;
}

.et_pb_blurb,
.et_pb_testimonial,
.et_pb_pricing_table,
.et_pb_contact_form_container {
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  border: 1px solid rgba(111, 75, 139, 0.12);
  padding: clamp(20px, 2.2vw, 34px) !important;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.et_pb_blurb:hover,
.et_pb_testimonial:hover,
.et_pb_pricing_table:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-hover);
  border-color: rgba(111, 75, 139, 0.28);
}

.et_pb_blurb .et_pb_main_blurb_image,
.et_pb_blurb .et_pb_image_wrap {
  margin-bottom: 16px;
}

.et_pb_image img,
.et_pb_gallery_image img,
.et_pb_slider .et_pb_slide_image img {
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.et_pb_button,
.et_pb_button_module_wrapper .et_pb_button,
.et_pb_promo_button,
.et_pb_contact_submit {
  background: var(--lavender-deep) !important;
  color: var(--white) !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 0.82rem 1.55rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em;
  box-shadow: 0 10px 24px rgba(111, 75, 139, 0.22);
  transition: transform 220ms ease, background-color 220ms ease, box-shadow 220ms ease;
}

.et_pb_button:hover,
.et_pb_promo_button:hover,
.et_pb_contact_submit:hover {
  background: var(--charcoal) !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(47, 47, 53, 0.22);
}

.et_pb_fullwidth_header,
.et_pb_fullwidth_header_container,
.et_pb_slider,
.et_pb_slide {
  background: linear-gradient(135deg, var(--cream), var(--lilac-pale)) !important;
}

.et_pb_fullwidth_header {
  padding: clamp(60px, 9vw, 130px) 0 !important;
}

.et_pb_fullwidth_header .header-content {
  max-width: 760px;
}

.et_pb_fullwidth_header .et_pb_fullwidth_header_subhead,
.et_pb_fullwidth_header p,
.et_pb_slide_description p {
  font-size: clamp(1.05rem, 1.8vw, 1.35rem) !important;
  line-height: 1.65;
  color: var(--muted) !important;
}

.et_pb_promo,
.et_pb_call_to_action,
.et_pb_cta {
  background: linear-gradient(135deg, var(--lavender-deep), var(--lavender-main)) !important;
  border-radius: calc(var(--radius) + 8px);
  box-shadow: var(--shadow-hover);
  overflow: hidden;
}

.et_pb_promo h2,
.et_pb_call_to_action h2,
.et_pb_cta h2,
.et_pb_promo p,
.et_pb_call_to_action p,
.et_pb_cta p {
  color: var(--white) !important;
}

.et_pb_menu,
#main-header,
.et-l--header {
  backdrop-filter: blur(10px);
}

#top-menu li a,
.et_pb_menu__menu nav ul li a {
  font-weight: 700;
  color: var(--lavender-ink) !important;
}

#top-menu li a:hover,
.et_pb_menu__menu nav ul li a:hover {
  color: var(--lavender-deep) !important;
  opacity: 1 !important;
}

.et_pb_contact_field input,
.et_pb_contact_field textarea,
.et_pb_contact_field select {
  border-radius: 14px !important;
  border: 1px solid rgba(111, 75, 139, 0.22) !important;
  background: var(--white) !important;
  padding: 14px 16px !important;
}

.et_pb_contact_field input:focus,
.et_pb_contact_field textarea:focus,
.et_pb_contact_field select:focus {
  border-color: var(--lavender-deep) !important;
  box-shadow: 0 0 0 3px rgba(183, 154, 216, 0.24);
}

@media (max-width: 980px) {
  .et_pb_row {
    width: 90% !important;
  }

  .et_pb_column {
    margin-bottom: 28px !important;
  }

  .et_pb_section:not(.et_pb_fullwidth_section) {
    padding-top: 54px !important;
    padding-bottom: 54px !important;
  }
}

@media (max-width: 640px) {
  h1,
  .et_pb_fullwidth_header .header-content h1 {
    font-size: 2.4rem !important;
  }

  .et_pb_blurb,
  .et_pb_testimonial,
  .et_pb_contact_form_container {
    padding: 22px !important;
  }
}
