/* ---------- hero ---------- */
.gm-hero-badge img { max-width: 420px; }

/* ---------- quick-access blurbs ---------- */
.gm-quick .et_pb_main_blurb_image { margin-bottom: 18px; }
.gm-quick .et_pb_module_header a { color: #11AEEF; }

/* ---------- flip cards ---------- */
.gm-flip { perspective: 1200px; height: 330px; }
.gm-flip-inner {
  position: relative; width: 100%; height: 100%;
  transition: transform .7s; transform-style: preserve-3d;
}
.gm-flip:hover .gm-flip-inner { transform: rotateY(180deg); }
.gm-flip-front, .gm-flip-back {
  position: absolute; inset: 0; backface-visibility: hidden;
  border-radius: 18px; padding: 30px 26px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; overflow: auto;
}
.gm-flip-front { background: #fff; }
.gm-flip-front img { max-width: 120px; margin-bottom: 18px; }
.gm-flip-front h4 { color: #6b6b6b; font-size: 21px; font-weight: 600; }
.gm-flip-back { background: #11AEEF; color: #fff; transform: rotateY(180deg); }
.gm-flip-back h4 { color: #fff; font-size: 19px; font-weight: 700; margin-bottom: 10px; }
.gm-flip-back p { color: #fff; font-size: 14px; line-height: 1.6; }

/* ---------- vertical tabs, as on the source site ---------- */
@media (min-width: 981px) {
  .gm-vtabs .et_pb_tabs_controls {
    float: left; width: 34%; border: 0; background: transparent;
  }
  .gm-vtabs .et_pb_tabs_controls li {
    display: block; float: none; width: 100%; border: 0;
    margin-bottom: 10px; background: #f2f2f2;
  }
  .gm-vtabs .et_pb_tabs_controls li a { padding: 20px 24px; display: block; color: #023461; }
  .gm-vtabs .et_pb_tabs_controls li.et_pb_tab_active { background: #11AEEF; }
  .gm-vtabs .et_pb_tabs_controls li.et_pb_tab_active a { color: #fff; }
  .gm-vtabs .et_pb_all_tabs { float: right; width: 62%; }
  .gm-vtabs .et_pb_tab { padding: 0 0 0 20px; }
  .gm-vtabs:after { content: ""; display: table; clear: both; }
}
.gm-tab-grid { display: flex; gap: 26px; align-items: flex-start; flex-wrap: wrap; }
.gm-tab-img { flex: 1 1 240px; }
.gm-tab-img img { width: 100%; height: auto; }
.gm-tab-copy { flex: 1 1 240px; }

/* ---------- reviews ---------- */
.gm-review .et_pb_testimonial_portrait { width: 54px; height: 54px; background-size: contain;
  background-repeat: no-repeat; background-position: center; border-radius: 0; box-shadow: none; }
.gm-review .et_pb_testimonial_portrait:before { display: none; }
.gm-review .gm-stars img { max-width: 150px; margin-top: 14px; }
.gm-review .et_pb_testimonial_description { margin-left: 0; }

/* ---------- team slider ---------- */
.gm-team .et_pb_slide_description { text-align: center; }
.gm-team .et_pb_slide_image { margin-bottom: 0; }
.gm-team .et_pb_slide_title { font-size: 22px; }

/* ---------- FAQ ---------- */
.gm-faq .et_pb_toggle { border: 0; border-bottom: 1px solid #e2e2e2; background: transparent; padding: 22px 0; }
.gm-faq .et_pb_toggle_title { font-size: 19px; }

/* ---------- contact form ---------- */
.gm-contact .et_pb_contact_field input, .gm-contact .et_pb_contact_field textarea { border: 0; }

/* ---------- fixes ---------- */
/* Divi slide titles default to white for image backgrounds; these slides
   sit on white cards, so bring the name back to the brand navy. */
.gm-team .et_pb_slide_title,
.gm-team .et_pb_slide_title a { color: #023461 !important; text-shadow: none !important; }
.gm-team .et_pb_slide_description { color: #666; text-shadow: none !important; }
.gm-team .et_pb_slide_description p { color: #666; }
.gm-team .et_pb_slider_container_inner { padding: 10px 0 30px; }
.gm-team .et-pb-controllers a { background-color: rgba(2,52,97,.35); }
.gm-team .et-pb-controllers .et-pb-active-control { background-color: #023461; }
.gm-team .et-pb-slider-arrows a { color: #023461; }

/* review cards */
.gm-review { border-radius: 18px; }

/* service-area grid: tighten the sparse default column spacing */
.gm-cities.et_pb_row { padding-top: 10px !important; padding-bottom: 10px !important; }
.gm-cities .et_pb_column { margin-bottom: 0 !important; }
.gm-cities .et_pb_text { margin-bottom: 0 !important; }
.gm-cities p { line-height: 1.9em; }

/* the source site keeps a slim navy utility bar above the header */
#top-header { background-color: #023461 !important; }
#top-header, #top-header a { color: #ffffff !important; font-size: 14px; }
/* ---------- theme footer ----------
   The source homepage carries its own footer (address block, logo, copyright)
   as page sections, so Divi's widget footer and credits bar are hidden. */
#main-footer { display: none !important; }
