/* Site-wide fixes for the static build of mymdspa.com (added 2026-10-01).
   Loaded last on every page. Keep this file small and specific. */

/* Embedded maps/schedulers carry fixed pixel widths (width="600") and pushed
   blog posts wider than a phone screen. */
iframe { max-width: 100% !important; }

/* Entrance animations that slide in from the side must not create sideways scroll. */
html { overflow-x: hidden; overflow-x: clip; }
body { overflow-x: clip; }

/* Header menu: nine items did not fit one row on laptop-width screens, so
   "Contact" dropped to a second line. Tighten the gaps below 1440px. */
@media (min-width: 1025px) and (max-width: 1439px) {
  .elementor-element-a0fa07c .wpr-nav-menu > li.menu-item { margin-left: 6px !important; margin-right: 6px !important; }
  .elementor-element-a0fa07c .wpr-nav-menu > li.menu-item:first-child { margin-left: 0 !important; }
  .elementor-element-a0fa07c .wpr-nav-menu > li.menu-item:last-child { margin-right: 0 !important; }
}
@media (min-width: 1025px) and (max-width: 1365px) {
  .elementor-element-a0fa07c .wpr-nav-menu > li.menu-item { margin-left: 4px !important; margin-right: 4px !important; }
}
@media (min-width: 1025px) and (max-width: 1239px) {
  .elementor-element-a0fa07c .wpr-nav-menu > li.menu-item { margin-left: 3px !important; margin-right: 3px !important; }
  .elementor-element-a0fa07c .wpr-nav-menu > li.menu-item > a { font-size: 14px !important; }
}

/* Desktop header sat transparently on top of dark hero photos on ~30 pages,
   leaving black menu text and the phone number unreadable. Give it the same
   white bar the rest of the site already shows. */
@media (min-width: 1025px) {
  .elementor-element-1e65e7e.she-header-yes { background-color: #ffffff !important; }
}

/* Hair-restoration, testosterone and weight-loss pages: text blocks carry a
   -50px left margin that pushed headings off the left edge of laptop screens. */
@media (min-width: 1025px) and (max-width: 1500px) {
  .elementor-element-5ab1196, .elementor-element-61e387c, .elementor-element-0d792bb,
  .elementor-element-1226868, .elementor-element-879aa08, .elementor-element-a667539,
  .elementor-element-6dc751e, .elementor-element-672f70d, .elementor-element-2875fa6,
  .elementor-element-74dea2f, .elementor-element-8c2a895 {
    margin-left: 20px !important; max-width: calc(100% - 30px) !important;
  }
}

/* Older pages whose copy is plain text straight in the page body (no Elementor
   layout): it ran edge to edge with no margins. Give it a centered column. */
.page-content > :not(.elementor):not(script):not(style):not(link) {
  max-width: min(1100px, 100%); margin-left: auto; margin-right: auto;
  padding-left: 20px; padding-right: 20px; box-sizing: border-box;
}
.page-content > ul:not(.elementor), .page-content > ol:not(.elementor) { padding-left: 44px; }
.page-content > :not(.elementor):not(script):not(style):not(link):first-child { margin-top: 48px; }
.page-content > :not(.elementor):not(script):not(style):not(link):last-child { margin-bottom: 48px; }
.site-main > .page-header { max-width: 1100px; margin: 40px auto 0; padding: 0 20px; box-sizing: border-box; }

/* Policy pages built as full-width containers with only 10px of side padding. */
.elementor-element-f4f806f, .elementor-element-5511478, .elementor-element-b74ffba {
  max-width: 1140px !important; margin-left: auto !important; margin-right: auto !important;
  padding-left: 20px !important; padding-right: 20px !important; box-sizing: border-box;
}

/* IV add-ons grid: keep the same side gutter as the drip cards above it. */
.drv-addons__body { padding-left: 15px; padding-right: 15px; box-sizing: border-box; }

/* One legacy page prints its copy directly under the header with no wrapper. */
body > p, body > h1, body > h2, body > h3, body > h4, body > ul, body > ol {
  max-width: 1100px; margin-left: auto; margin-right: auto;
  padding-left: 20px; padding-right: 20px; box-sizing: border-box;
}
body > ul, body > ol { padding-left: 44px; }

/* Shop cards / product pages: note shown in place of the retired 2024 IV prices. */
.price.drv-price-note { font-size: 15px !important; line-height: 1.4; }
.price.drv-price-note a { text-decoration: underline; }

/* Footer e-mail is now a real mailto link; keep it white like the rest of the footer. */
.elementor-element-842966a a, .elementor-element-842966a a:visited { color: #ffffff !important; text-decoration: none; }
.elementor-element-842966a a:hover { text-decoration: underline; }

/* Blog index: each post was printed in full as one unbroken paragraph. Show a
   short excerpt and a sensibly sized image instead; the title links to the post. */
.page-content > article.post { margin-bottom: 44px; }
.page-content > article.post > .entry-title { font-size: 28px; line-height: 1.25; margin: 0 0 14px; }
.page-content > article.post > a > img { width: 100%; max-height: 360px; object-fit: cover; display: block; margin-bottom: 14px; }
.page-content > article.post > p {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4;
  overflow: hidden; margin-bottom: 0;
}
.site-main > nav.pagination { max-width: 1100px; margin: 0 auto 56px; padding: 0 20px; box-sizing: border-box; display: flex; justify-content: space-between; }

/* Readability: headings that sat on photos with too little contrast. */
/* teal headings on dark photo cards (NAD, Myers' Cocktail, Ketamine pages) */
.elementor-element-be08a7d :is(h1,h2,h3,.elementor-heading-title,.ekit-heading--title),
.elementor-element-7c36f20 :is(h1,h2,h3,.elementor-heading-title,.ekit-heading--title),
.elementor-element-a3eeb11 :is(h1,h2,h3,.elementor-heading-title,.ekit-heading--title) { color: #ffffff !important; text-shadow: 0 1px 10px rgba(0,0,0,.45); }
/* call-to-action band heading that rendered dark teal on a teal band (IV Therapy page) */
.elementor-element-5fae508 :is(h1,h2,h3,.elementor-heading-title,.ekit-heading--title) { color: #ffffff !important; }
/* white hero titles on light photos (home IV banner, waxing, laser photofacial, body) */
.elementor-element-dd27eba :is(h1,h2,h3,p,.elementor-heading-title),
.elementor-element-0d77be7 :is(h1,h2,h3,.elementor-heading-title),
.elementor-element-6b4407c :is(h1,h2,h3,.elementor-heading-title),
.elementor-element-8e94490 :is(h1,h2,h3,.elementor-heading-title) { text-shadow: 0 2px 14px rgba(0,0,0,.6), 0 0 2px rgba(0,0,0,.45); }
/* dark heading laid over a photo (testosterone page) */
.elementor-element-44ac3f3 :is(h1,h2,h3,.elementor-heading-title) { text-shadow: 0 0 14px rgba(255,255,255,.95), 0 0 4px rgba(255,255,255,.9); }
@media (max-width: 767px) {
  .elementor-element-6b4407c :is(h1,h2,h3,.elementor-heading-title) { font-size: 32px !important; line-height: 1.15 !important; overflow-wrap: anywhere; }
}

/* Booking panels: a 100px left indent squeezed the heading/intro into a sliver. */
@media (min-width: 1025px) {
  .elementor-element-283ce27 { padding-left: 24px !important; }
  .elementor-element-283ce27 .elementor-heading-title { font-size: 42px !important; line-height: 1.15 !important; }
}
@media (max-width: 767px) {
  .elementor-element-283ce27, .elementor-element-8413416, .elementor-element-3e5e210, .elementor-element-4df5e78 { padding-left: 0 !important; }
}

/* Contact page (phone): review / Zocdoc logos blew up to full card width. */
@media (max-width: 767px) {
  .elementor-element-81cbe43 img, .elementor-element-f9b4811 img { max-width: 190px !important; height: auto !important; }
}

/* Hair-transplant pages: long article block ran the full width of the screen. */
.elementor-element-b0296ed { max-width: 1140px !important; margin-left: auto !important; margin-right: auto !important; padding-left: 20px !important; padding-right: 20px !important; box-sizing: border-box; }

/* Product pages (phone): the option dropdown was squeezed beside its label and its text cut off. */
@media (max-width: 767px) {
  .woocommerce div.product form.cart .variations th.label,
  .woocommerce div.product form.cart .variations td.value { display: block; width: 100%; padding-left: 0; padding-right: 0; text-align: left; }
  .woocommerce div.product form.cart .variations select { width: 100%; max-width: 100%; min-width: 0; }
}

/* Face page: treatment buttons mixed UPPER and lower case. */
.page-id-69713 .elementor-widget-button .elementor-button-text { text-transform: uppercase; }

/* Hair-restoration / testosterone pages: section headings started 8px from the
   screen edge on laptop-width screens. */
@media (min-width: 1025px) and (max-width: 1500px) {
  .elementor-element-cd54791, .elementor-element-91ddfdf, .elementor-element-d107093, .elementor-element-ff08785 { padding-left: 30px !important; box-sizing: border-box; }
}

/* Chat bubble label ("How can I help you?") floated as bare text over page copy. */
.qlwapp__text { background: #ffffff; padding: 6px 12px !important; border-radius: 6px; box-shadow: 0 2px 10px rgba(0,0,0,.16); color: #222 !important; }
/* On phones the label would cover page content; keep just the green button. */
@media (max-width: 767px) { .qlwapp__text { display: none !important; } }
