/*
 * Site overrides on top of Divi. They keep the original look and fix usability problems:
 * low-contrast navigation and footer, Divi's default blue accent (#2ea3f2), justified text with
 * wide gaps, overlapping wrapped titles, missing focus outlines.
 * Palette: #730e45 (headings), #f41fbf (accent), #ffb2bf (header).
 */

/* ---- Navigation ---- */

/* White menu text is unreadable on the pale pink header of pages without a hero photo. */
body:not(.home) #top-menu li a {
  color: #000;
}

/* Hamburger icon: white over the home page photo, dark everywhere else (replaces Divi's blue). */
.mobile_menu_bar:before,
.mobile_menu_bar:after {
  color: #ffffff;
}

body:not(.home) .mobile_menu_bar:before,
body:not(.home) .mobile_menu_bar:after,
.et-fixed-header .mobile_menu_bar:before,
.et-fixed-header .mobile_menu_bar:after {
  color: #730e45;
}

.et_mobile_menu,
.nav li ul {
  border-color: #f41fbf;
}

/* Larger touch target for the hamburger without moving it. */
#et_mobile_nav_menu .mobile_menu_bar_toggle {
  padding: 12px;
  margin: -12px;
}

/* ---- Links ---- */

.et_pb_text_inner a,
.et_pb_blurb_description a,
.not_found .entry a,
.single .entry-content p a,
.single .entry-content li a {
  color: #730e45;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.et_pb_text_inner a:hover,
.et_pb_blurb_description a:hover,
.not_found .entry a:hover,
.single .entry-content p a:hover,
.single .entry-content li a:hover {
  color: #f41fbf;
}

#left-area .pagination a {
  color: #730e45;
  font-weight: 600;
}

.et_pb_gallery .et_pb_gallery_pagination ul li a {
  color: #555555;
}

.et_pb_gallery .et_pb_gallery_pagination ul li a.active {
  color: #730e45;
  font-weight: 700;
}

/* ---- Text ---- */

/* Justified text leaves wide gaps in narrow columns. */
.et_pb_text_align_justified,
.et_pb_text_align_justified p {
  text-align: left;
}

/* Gallery titles are 40px but inherit a 14px-based line height, so wrapped titles overlap. */
@media (max-width: 980px) {
  .page-id-15 .et_pb_text_inner p {
    line-height: 1.3em;
  }
}

@media (max-width: 767px) {
  body {
    font-size: 16px;
  }

  /* The home intro is 13px, 75% wide and inset twice on phones. */
  .page-id-25 .et_pb_text_1 {
    width: 100%;
    font-size: 16px;
    letter-spacing: 0.5px;
  }
}

.widgettitle {
  line-height: 1.3em;
}

#footer-info {
  font-size: 12px;
  color: #b3b3b3;
}

/* ---- Accessibility ---- */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
.mobile_menu_bar_toggle:focus-visible {
  outline: 3px solid #f41fbf;
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
  padding: 0.75em 1em;
  background: #730e45;
  color: #ffffff;
}

.skip-link:focus {
  left: 0;
}

@media (prefers-reduced-motion: reduce) {
  .et_animated,
  .et-waypoint {
    animation: none !important;
    opacity: 1 !important;
    transition: none !important;
  }
}

/* ---- Layout ---- */

/* Keep the footer at the bottom of the window on short pages. */
#page-container {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  min-height: 100vh;
}

#et-main-area {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
}

#main-content {
  flex: 1 0 auto;
}
