@import url("https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap");
/* Layout the Archive did not keep (Elementor per-page CSS). Built from the site's own globals,
   which survive in the inline critical CSS. Remove once a real backup of the site arrives. */
:root {
  --lmd-dark: var(--e-global-color-primary, #1a3333);
  --lmd-light: var(--e-global-color-secondary, #f0f2ef);
  --lmd-text: var(--e-global-color-text, #223333);
  --lmd-teal: var(--e-global-color-accent, #00adad);
}

body {
  font-family: "Work Sans", sans-serif;
  color: var(--lmd-text);
}

/* Sections: centered content column with breathing room. */
[data-elementor-type="wp-page"] > .e-con-boxed.e-parent {
  padding: 64px 20px;
}
[data-elementor-type="wp-page"] .e-con > .e-con-inner {
  display: flex;
  flex-direction: column;
}
[data-elementor-type="wp-page"] .e-con.e-parent > .e-con-inner {
  max-width: 1140px;
  width: 100%;
  margin: 0 auto;
  gap: 24px;
}
[data-elementor-type="wp-page"] > .e-con-boxed.e-parent:nth-of-type(even) {
  background: var(--lmd-light);
}

/* A container whose children are two or more containers lays them out in a row. */
[data-elementor-type="wp-page"] .e-con-inner:has(> .e-con.e-child + .e-con.e-child):not(:has(> .elementor-widget)),
[data-elementor-type="wp-page"] .e-con.e-child:has(> .e-con.e-child + .e-con.e-child):not(:has(> .elementor-widget)) {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 24px;
}
[data-elementor-type="wp-page"] .e-con-inner:has(> .e-con.e-child + .e-con.e-child):not(:has(> .elementor-widget)) > .e-con.e-child,
[data-elementor-type="wp-page"] .e-con.e-child:has(> .e-con.e-child + .e-con.e-child):not(:has(> .elementor-widget)) > .e-con.e-child {
  flex: 1 1 260px;
  width: auto;
}

/* Cards: icon + title + divider + text. */
[data-elementor-type="wp-page"] .e-con.e-child:has(> .elementor-widget-icon) {
  text-align: center;
  align-items: center;
  background: #fff;
  border-radius: 8px;
  padding: 32px 24px;
  box-shadow: 0 2px 12px rgba(26, 51, 51, 0.08);
}
.elementor-widget-icon .elementor-icon {
  color: var(--lmd-teal);
  border-color: var(--lmd-teal);
  font-size: 40px;
}
.elementor-widget-icon .elementor-icon svg {
  fill: var(--lmd-teal);
  width: 1em;
  height: 1em;
}

/* Headings. */
.elementor .elementor-widget-heading h2.elementor-heading-title {
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  font-size: clamp(32px, 3.2vw, 44.8px);
  line-height: 1.2;
  color: var(--lmd-dark);
}
.elementor .elementor-widget-heading h3.elementor-heading-title,
.elementor .elementor-widget-heading h4.elementor-heading-title {
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  font-size: 25.6px;
  color: var(--lmd-dark);
}
.elementor .elementor-widget-heading p.elementor-heading-title,
.elementor .elementor-widget-heading h5.elementor-heading-title,
.elementor .elementor-widget-heading h6.elementor-heading-title {
  font-family: "Work Sans", sans-serif;
  font-size: 16.8px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--lmd-text);
}
.elementor-widget-text-editor {
  font-size: 16.8px;
  line-height: 1.7;
}
.elementor-widget-divider .elementor-divider-separator {
  border-top: 2px solid var(--lmd-teal);
  width: 60px;
  margin: 8px auto;
}

/* Card title: the first heading after the icon. */
.elementor .elementor-widget-icon + .elementor-widget-heading .elementor-heading-title {
  font-family: "Cormorant Garamond", serif;
  font-size: 26px;
  font-weight: 600;
  color: var(--lmd-dark);
}

/* Buttons. */
.elementor-button {
  background: var(--lmd-teal);
  color: #fff;
  font-family: "Work Sans", sans-serif;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  border-radius: 2px;
  padding: 14px 28px;
}
.elementor-button:hover {
  background: var(--lmd-dark);
  color: #fff;
}

/* Images keep their proportions; placeholders read as image boxes. */
.elementor-widget-image img {
  max-width: 100%;
  height: auto;
}
img[src="/_lmd/placeholder.svg"] {
  background: rgba(138, 147, 153, 0.28) !important;
  object-fit: cover !important;
  aspect-ratio: 4 / 3;
  width: 100%;
  max-width: 480px;
}
.elementor-widget-image img[src="/_lmd/placeholder.svg"] {
  margin: 0 auto;
}

/* The header logo keeps its slot. */
.elementor-location-header img[src="/_lmd/placeholder.svg"],
[data-elementor-type="header"] img[src="/_lmd/placeholder.svg"] {
  aspect-ratio: 321 / 93;
  width: 240px;
  max-width: 100%;
  min-height: 0;
}

/* Forms (Basin). */
.lmd-basin-form input[type="text"],
.lmd-basin-form input[type="email"],
.lmd-basin-form input[type="tel"],
.lmd-basin-form textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #c9d1d1;
  border-radius: 4px;
  font: inherit;
  background: #fff;
}
.lmd-basin-form .gfield {
  list-style: none;
  margin-bottom: 14px;
}
.lmd-basin-form .gform_fields {
  display: grid;
  gap: 4px;
  padding: 0;
}
.lmd-basin-form input[type="submit"] {
  background: var(--lmd-teal);
  color: #fff;
  border: 0;
  padding: 14px 32px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  cursor: pointer;
}

/* Maps embed fills its column. */
.elementor-widget-google_maps iframe {
  width: 100%;
  min-height: 360px;
  border: 0;
}

/* Reviews widget that needs the old server: keep the spinner out. */
.elementor-widget-html .ti-widget-loader,
.elementor-widget-html [class*="loader"] {
  display: none;
}

@media (max-width: 767px) {
  [data-elementor-type="wp-page"] > .e-con-boxed.e-parent {
    padding: 40px 16px;
  }
}

/* Background slideshows whose photos are gone: a calm gray band, no spinner. */
.elementor-background-slideshow .swiper-lazy-preloader {
  display: none;
}
.e-con:has(> .elementor-background-slideshow) {
  background: rgba(138, 147, 153, 0.28) url("/_lmd/placeholder.svg") center / 160px 90px no-repeat;
  min-height: 320px;
}

/* Text logo until the real logo file arrives (the original is a script wordmark). */
.lmd-text-logo {
  display: inline-block;
  font-family: "Great Vibes", "Cormorant Garamond", cursive;
  font-size: 40px;
  line-height: 1.1;
  color: #111;
  white-space: nowrap;
}

/* Footer: dark band with columns. */
[data-elementor-type="footer"] > .e-con {
  background: var(--lmd-dark);
  color: #e8eeee;
  padding: 48px 20px;
}
[data-elementor-type="footer"] .e-con-inner {
  display: flex;
  max-width: 1140px;
  margin: 0 auto;
  width: 100%;
}
[data-elementor-type="footer"] .e-con-inner:has(> .e-con + .e-con),
[data-elementor-type="footer"] .e-con:has(> .e-con + .e-con) {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 32px;
}
[data-elementor-type="footer"] .e-con-inner:has(> .e-con + .e-con) > .e-con,
[data-elementor-type="footer"] .e-con:has(> .e-con + .e-con) > .e-con {
  flex: 1 1 200px;
  width: auto;
}
[data-elementor-type="footer"] a,
[data-elementor-type="footer"] .elementor-heading-title,
[data-elementor-type="footer"] .elementor-icon-list-text {
  color: #e8eeee;
}
[data-elementor-type="footer"] .elementor-heading-title {
  font-family: "Cormorant Garamond", serif;
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 8px;
}
[data-elementor-type="footer"] .elementor-icon-list-items {
  list-style: none;
  padding: 0;
  margin: 0;
}
[data-elementor-type="footer"] .elementor-icon-list-item {
  padding: 4px 0;
  font-size: 15px;
}

/* Elementor containers default to flex columns; the per-page CSS that set it is gone. */
:where(.e-con) {
  --display: flex;
  --flex-direction: column;
  box-sizing: border-box;
}

/* Footer: map on top, then the four link columns in a row, then the copyright bar. */
[data-elementor-type="footer"] > .e-con-full {
  padding: 0 0 40px;
}
[data-elementor-type="footer"] .elementor-widget-google_maps {
  width: 100%;
  margin-bottom: 40px;
}
[data-elementor-type="footer"] > .e-con-full > .e-con.e-child {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 40px;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
}
[data-elementor-type="footer"] > .e-con-full > .e-con.e-child > .e-con {
  flex: 1 1 200px;
  width: auto;
  background: none;
}
[data-elementor-type="footer"] .elementor-nav-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
[data-elementor-type="footer"] .elementor-nav-menu a {
  padding: 4px 0;
  font-size: 15px;
  color: #e8eeee;
  text-decoration: none;
}
[data-elementor-type="footer"] .elementor-nav-menu a:hover {
  color: var(--lmd-teal);
}
[data-elementor-type="footer"] .elementor-nav-menu--toggle,
[data-elementor-type="footer"] .elementor-menu-toggle,
[data-elementor-type="footer"] .elementor-nav-menu--dropdown {
  display: none;
}
[data-elementor-type="footer"] .elementor-widget-text-editor {
  color: #e8eeee;
  font-size: 15px;
  line-height: 1.7;
}
[data-elementor-type="footer"] > .e-con-boxed {
  padding: 18px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  text-align: center;
  font-size: 14px;
}

/* Footer text over the dark band (wins over the generic heading colors above). */
[data-elementor-type="footer"] .elementor-widget-heading .elementor-heading-title,
[data-elementor-type="footer"] .elementor-nav-menu .elementor-item,
[data-elementor-type="footer"] .elementor-widget-text-editor,
[data-elementor-type="footer"] .elementor-widget-text-editor a {
  color: #e8eeee;
}
[data-elementor-type="footer"] .elementor-nav-menu .elementor-item:hover {
  color: var(--lmd-teal);
}
[data-elementor-type="footer"] .elementor-widget-heading h4.elementor-heading-title,
[data-elementor-type="footer"] .elementor-widget-heading h3.elementor-heading-title,
[data-elementor-type="footer"] .elementor-widget-heading h2.elementor-heading-title {
  color: #e8eeee;
}

/* Only the menu stays pinned: the turquoise info bar scrolls away instead of sitting under the menu. */
[data-elementor-type="header"] .elementor-element-38ef065.elementor-sticky {
  position: relative !important;
  top: auto !important;
  width: 100% !important;
}
[data-elementor-type="header"] .elementor-element-38ef065.elementor-sticky__spacer {
  display: none !important;
}

/* Footer menu hover: a plain color change (the Elementor Pro pointer animation needs CSS that is gone). */
[data-elementor-type="footer"] .elementor-nav-menu .elementor-item,
[data-elementor-type="footer"] .elementor-nav-menu .elementor-item:hover,
[data-elementor-type="footer"] .elementor-nav-menu .elementor-item:focus {
  transform: none !important;
  background: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  transition: color 0.2s;
}
[data-elementor-type="footer"] .elementor-nav-menu .elementor-item::before,
[data-elementor-type="footer"] .elementor-nav-menu .elementor-item::after {
  display: none !important;
}
[data-elementor-type="footer"] .elementor-nav-menu .elementor-item:hover {
  color: var(--lmd-teal) !important;
}

/* Photo slideshow band with no photos: a shorter translucent block with the image icon. */
[data-elementor-type="wp-page"] > .e-con.e-parent:has(> .elementor-background-slideshow) {
  background: rgba(138, 147, 153, 0.28) url("/_lmd/placeholder.svg") center / 320px 180px no-repeat !important;
  min-height: 420px !important;
}

/* Background photos that did not survive: translucent gray with the image icon. */
.lmd-bg-ph {
  background: rgba(138, 147, 153, 0.28) url("/_lmd/placeholder.svg") center / 160px 90px no-repeat !important;
  min-height: 220px;
}
/* Service icons (80px) keep their size as placeholders. */
img[src="/_lmd/placeholder.svg"][width="80"] {
  width: 80px;
  height: 80px;
  min-height: 0;
  aspect-ratio: 1;
  border-radius: 50%;
}

/* Service tiles (icon + name): centered, two per row. */
[data-elementor-type="wp-page"] .e-con.e-child:has(> .elementor-widget-image + .elementor-widget-heading) {
  align-items: center;
  text-align: center;
  flex: 1 1 140px !important;
}

/* Font Awesome SVG icons have no size without the widget CSS: one em, like the original. */
.e-font-icon-svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
}

/* Essential Addons accordion (FAQs): closed by default, opened by /_lmd/brite.js. */
.eael-adv-accordion .eael-accordion-list {
  border: 1px solid #dfe5e5;
  border-radius: 4px;
  margin-bottom: 10px;
  background: #fff;
}
.eael-adv-accordion .eael-accordion-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  cursor: pointer;
  font-family: "Cormorant Garamond", serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--lmd-dark);
}
.eael-adv-accordion .eael-accordion-header:hover,
.eael-adv-accordion .eael-accordion-header.show {
  color: var(--lmd-teal);
}
.eael-adv-accordion .eael-accordion-header svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  fill: currentColor;
}
.eael-adv-accordion .eael-accordion-tab-title {
  flex: 1;
}
.eael-adv-accordion .eael-advanced-accordion-icon-opened,
.eael-adv-accordion .eael-accordion-header.show .eael-advanced-accordion-icon-closed {
  display: none;
}
.eael-adv-accordion .eael-accordion-header.show .eael-advanced-accordion-icon-opened {
  display: inline-flex;
}
.eael-adv-accordion .eael-accordion-content {
  display: none;
  padding: 0 20px 18px 46px;
  font-size: 16px;
  line-height: 1.7;
}
.eael-adv-accordion .eael-accordion-content.show {
  display: block;
}

/* Mobile menu dropdown (opened by /_lmd/brite.js): readable panel with the submenus listed open. */
.elementor-menu-toggle {
  cursor: pointer;
}
.elementor-menu-toggle.elementor-active ~ .elementor-nav-menu--dropdown {
  display: block !important;
  transform: none;
  max-height: none;
  overflow: visible;
  background: #fff;
  box-shadow: 0 8px 24px rgba(26, 51, 51, 0.15);
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  width: auto !important;
  max-height: calc(100vh - 60px);
  overflow-y: auto;
  z-index: 1000;
}
.elementor-nav-menu--dropdown .elementor-nav-menu {
  list-style: none;
  margin: 0;
  padding: 8px 0;
}
.elementor-nav-menu--dropdown a {
  display: block;
  padding: 10px 20px;
  color: var(--lmd-dark);
  font-family: "Work Sans", sans-serif;
  font-size: 15px;
  text-decoration: none;
}
.elementor-nav-menu--dropdown a:hover {
  color: var(--lmd-teal);
}
.elementor-nav-menu--dropdown .sub-menu {
  display: none !important;
  position: static !important;
  list-style: none;
  padding-left: 16px;
  margin: 0;
  box-shadow: none;
}
.elementor-nav-menu--dropdown .sub-menu a {
  font-size: 14px;
  padding: 6px 20px;
}
.elementor-nav-menu--dropdown .sub-arrow {
  display: none;
}
.elementor-menu-toggle .elementor-menu-toggle__icon--close {
  display: none;
}
.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close {
  display: inline-block;
}
.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
  display: none;
}

/* Real logo (Dec 2022 wordmark recovered from the Internet Archive). */
img.lmd-logo {
  width: 260px;
  max-width: 100%;
  height: auto;
  display: block;
}

/* Home photo bands with the practice's own photos (Google Business Profile, by owner). */
[data-elementor-type="wp-page"] > .e-con.e-parent:has(> .elementor-background-slideshow),
[data-elementor-type="wp-page"] > .elementor-element-619be23 {
  background: url("/wp-content/uploads/2025/05/Team-pic-scaled.jpg") center / cover no-repeat !important;
  min-height: 0 !important;
  aspect-ratio: 1600 / 1064;
  height: auto !important;
}
.elementor-element-9a4a510.lmd-bg-ph {
  background: url("/_lmd/photos/reception.jpg") center top / cover no-repeat !important;
}
.elementor-element-a9894cf.lmd-bg-ph {
  background: url("/_lmd/photos/operatory.jpg") center top / cover no-repeat !important;
}
img[src$="/Logo-white.png"] {
  height: auto !important;
  max-width: 100%;
}

/* The slideshow layer would crop the same photo again: the section background shows it whole. */
[data-elementor-type="wp-page"] > .e-con.e-parent > .elementor-background-slideshow {
  display: none;
}
