/* ============================================================
   PM-WP.CSS — WordPress / Elementor fixes (not in the demo).
   Loaded after all design CSS.
   ============================================================ */

/* The header is fixed. Pages whose header is NOT see-through push the
   content down by the bar height; the see-through (homepage) header lies
   over PM Hero, which already leaves room for it. */
body:has(.pm-site-header:not(.pm-site-header--overlay)) {
  padding-top: var(--pm-navbar-height);
}

/* Room for the mobile quick bar (it is hidden from 1024px up). */
body:has(.pm-quickbar) {
  padding-bottom: var(--pm-quickbar-h);
}

/* Logged in: keep the fixed bar under the WordPress admin bar. */
body.admin-bar .elementor-widget[class*="elementor-widget-pm-"] .pm-site-header { inset-block-start: 32px; }
body.admin-bar .elementor-widget[class*="elementor-widget-pm-"] .pm-navbar__nav { inset-block-start: calc(var(--pm-navbar-height) + 32px); }
@media (max-width: 782px) {
  body.admin-bar .elementor-widget[class*="elementor-widget-pm-"] .pm-site-header { inset-block-start: 46px; }
  body.admin-bar .elementor-widget[class*="elementor-widget-pm-"] .pm-navbar__nav { inset-block-start: calc(var(--pm-navbar-height) + 46px); }
}
@media (max-width: 600px) {
  body.admin-bar .elementor-widget[class*="elementor-widget-pm-"] .pm-site-header { inset-block-start: 0; }
  body.admin-bar .elementor-widget[class*="elementor-widget-pm-"] .pm-navbar__nav { inset-block-start: var(--pm-navbar-height); }
}

/* An Elementor container that holds Parkmatic widgets adds no spacing of
   its own (the widgets bring the demo's spacing) and is full width. */
.elementor .e-con.e-con:has(> [class*="elementor-widget-pm-"]),
.elementor .e-con.e-con:has(> .e-con-inner > [class*="elementor-widget-pm-"]) {
  --gap: 0px 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --content-width: 100%;
  --container-max-width: 100%;
  --flex-wrap: nowrap;
  --flex-wrap-mobile: nowrap;
  --display: block;
  display: block;
  padding: 0;
  gap: 0;
}
.elementor .e-con:has(> [class*="elementor-widget-pm-"]) > .e-con-inner {
  max-width: 100%;
  padding: 0;
  gap: 0;
  display: block;
}
.elementor .elementor-widget[class*="elementor-widget-pm-"] {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

/* Elementor resets on images inside our widgets — kept weak (:where), so a
   border / radius the design gives an image (e.g. download covers) wins. */
.elementor-widget:where([class*="elementor-widget-pm-"]) img {
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Headings whose tag can be changed in the widget keep the demo look. */
.elementor-widget[class*="elementor-widget-pm-"] .pm-band-navy .pm-band-navy__title,
.elementor-widget[class*="elementor-widget-pm-"] .pm-why .pm-why__title { color: var(--pm-color-white); }
.elementor-widget[class*="elementor-widget-pm-"] .pm-contact-band .pm-contact-band__title {
  margin-top: var(--pm-space-24);
  font-size: var(--pm-fs-h1);
  color: var(--pm-color-white);
}
@media (min-width: 1024px) {
  .elementor-widget[class*="elementor-widget-pm-"] .pm-contact-band.pm-contact-band--auto { min-height: 0; }
}

/* Own icon pictures (instead of the built-in line icons). */
.elementor-widget[class*="elementor-widget-pm-"] .pm-metrics__icon--img,
.elementor-widget[class*="elementor-widget-pm-"] .pm-why__step-icon--img { object-fit: contain; }

/* Partner seals: height from the widget (default 42px; demo: x1.1 from 640px). */
.elementor-widget[class*="elementor-widget-pm-"] .pm-footer__partner-mark { --pm-mark-h: 42px; height: var(--pm-mark-h); }
@media (min-width: 640px) {
  .elementor-widget[class*="elementor-widget-pm-"] .pm-footer__partner-mark { height: calc(var(--pm-mark-h) * 1.1); }
}

/* Editor: nothing waits for a scroll animation. */
.elementor-editor-active [data-pm-reveal] {
  opacity: 1;
  transform: none;
}

/* Pages that use PM Header / PM Footer: hide the theme's own header,
   footer and page title (Hello Elementor, Astra, Kadence, GeneratePress,
   block themes), in case the page is not on "Elementor Canvas". */
body:has(.pm-site-header) :is(#site-header, #masthead, .site-header:not(.pm-site-header), header.wp-block-template-part, .page-header, .entry-header) {
  display: none;
}
body:has(.pm-site-footer) :is(#site-footer, #colophon, .site-footer:not(.pm-site-footer), footer.wp-block-template-part) {
  display: none;
}

/* PM Page Hero: title colour / width when its tag is changed. */
.elementor-widget[class*="elementor-widget-pm-"] .pm-page-hero .pm-page-hero__title { color: var(--pm-color-white); }
@media (min-width: 768px) {
  .elementor-widget[class*="elementor-widget-pm-"] .pm-page-hero--media .pm-page-hero__title { max-width: 720px; }
}
@media (min-width: 768px) and (max-width: 1279px) {
  .elementor-widget[class*="elementor-widget-pm-"] .pm-page-hero--media .pm-page-hero__title { max-width: calc(62vw - var(--pm-navbar-gutter)); }
}

/* Theme text settings must not leak into the design (e.g. Twenty
   Twenty-Five sets letter-spacing on body and text-wrap: pretty on p). */
.elementor .elementor-widget[class*="elementor-widget-pm-"] {
  letter-spacing: normal;
  word-spacing: normal;
}
/* (p / li only: spans and links inherit, e.g. the balanced FAQ questions.) */
.elementor-widget[class*="elementor-widget-pm-"] :where(p, li) {
  text-wrap: wrap;
}
