/* ============================================================
   PM-BASE.CSS — design tokens + base styles, ported from the demo
   (allpages-2/assets/css/variables.css + global.css), then the
   WordPress / Elementor fixes (bottom of this file).
   Every class has the pm- prefix and every rule is scoped to
   Parkmatic widgets:  .elementor-widget[class*="elementor-widget-pm-"]
   ============================================================ */
:root {

  --pm-color-green: #1FB614;
  --pm-color-yellow: #FFCC00;
  --pm-color-grey: #8E8E8E;
  --pm-color-white: #FFFFFF;

  --pm-color-graphite: #2B2B2B;

  --pm-color-bg-tint: #F2F4F1;
  --pm-color-text: #1F211F;

  --pm-color-green-deep: #188813;
  --pm-color-green-darker: #12680E;
  --pm-color-text-muted: #6B6B6B;
  --pm-color-border: #DCDCDC;
  --pm-color-border-strong: var(--pm-color-grey);

  --pm-font-heading: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --pm-font-body: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --pm-fw-light: 300;
  --pm-fw-regular: 400;
  --pm-fw-medium: 500;
  --pm-fw-semibold: 600;
  --pm-fw-bold: 700;

  --pm-fs-h1: 28px;

  --pm-fs-hero: var(--pm-fs-h1);
  --pm-fs-h2: 24px;
  --pm-fs-h3: 20px;
  --pm-fs-h4: 18px;
  --pm-fs-h5: 16px;
  --pm-fs-h6: 14px;
  --pm-fs-lead: 16px;
  --pm-fs-body: 14px;
  --pm-fs-small: 12px;

  --pm-fs-caption: 12px;

  --pm-lh-tight: 1.2;
  --pm-lh-heading: 1.3;
  --pm-lh-body: 1.6;

  --pm-space-4: 4px;
  --pm-space-8: 8px;
  --pm-space-12: 12px;
  --pm-space-16: 16px;
  --pm-space-24: 24px;
  --pm-space-32: 32px;
  --pm-space-40: 40px;
  --pm-space-48: 48px;
  --pm-space-64: 64px;
  --pm-space-80: 80px;
  --pm-space-96: 96px;

  --pm-container-max: 1440px;
  --pm-grid-margin: 16px;
  --pm-grid-gutter: 16px;
  --pm-grid-columns: 4;

  --pm-navbar-gutter: var(--pm-grid-margin);

  --pm-navbar-top-h: 64px;
  --pm-navbar-height: var(--pm-navbar-top-h);

  --pm-quickbar-h: 64px;

  --pm-radius-sm: 0;
  --pm-radius-md: 0;
  --pm-radius-lg: 0;
  --pm-radius-pill: 0;

  --pm-corner-cut: 32px;

  --pm-shadow-sm: 0 2px 8px rgba(43, 43, 43, 0.08);
  --pm-shadow-md: 0 8px 24px rgba(43, 43, 43, 0.12);
  --pm-shadow-lg: 0 16px 48px rgba(43, 43, 43, 0.16);

  --pm-transition-base: 600ms var(--pm-ease-smooth);

  --pm-ease-out: cubic-bezier(0.16, 1, 0.3, 1);

  --pm-ease-smooth: cubic-bezier(0.65, 0, 0.35, 1);
}
@media (min-width: 640px) {
:root {
    --pm-grid-margin: 24px;
    --pm-grid-gutter: 24px;
    --pm-grid-columns: 8;

    --pm-fs-h1: 36px;
    --pm-fs-h2: 28px;
    --pm-fs-h3: 24px;
    --pm-fs-h4: 20px;
    --pm-fs-h5: 18px;
    --pm-fs-h6: 16px;
    --pm-fs-lead: 16px;
    --pm-fs-body: 14px;
    --pm-fs-small: 12px;
    --pm-fs-caption: 12px;

    --pm-corner-cut: 48px;
  }
}
@media (min-width: 1024px) {
:root {
    --pm-grid-margin: 32px;
    --pm-grid-gutter: 32px;
    --pm-grid-columns: 12;

    --pm-corner-cut: 80px;

    --pm-quickbar-h: 0px;

    --pm-navbar-gutter: calc(64px + (100vw - 1024px) * 0.336);

    --pm-navbar-top-h: 72px;

    --pm-fs-h1: 48px;

    --pm-fs-hero: 60px;
    --pm-fs-h2: 36px;
    --pm-fs-h3: 28px;
    --pm-fs-h4: 24px;
    --pm-fs-h5: 20px;
    --pm-fs-h6: 18px;
    --pm-fs-lead: 18px;
    --pm-fs-body: 16px;
    --pm-fs-small: 14px;
    --pm-fs-caption: 12px;
  }
}
@media (min-width: 1280px) {
:root {
    --pm-navbar-gutter: 150px;
  }
}
.elementor-widget[class*="elementor-widget-pm-"], .elementor-widget[class*="elementor-widget-pm-"] *,
.elementor-widget[class*="elementor-widget-pm-"] *::before,
.elementor-widget[class*="elementor-widget-pm-"] *::after {
  box-sizing: border-box;
}
@media (prefers-reduced-motion: reduce) {
.elementor-widget[class*="elementor-widget-pm-"], .elementor-widget[class*="elementor-widget-pm-"] *,
.elementor-widget[class*="elementor-widget-pm-"] *::before,
.elementor-widget[class*="elementor-widget-pm-"] *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
.elementor-widget[class*="elementor-widget-pm-"] {
  font-family: var(--pm-font-body);
  font-size: var(--pm-fs-body);
  font-weight: var(--pm-fw-regular);
  line-height: var(--pm-lh-body);
  color: var(--pm-color-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.elementor-widget[class*="elementor-widget-pm-"] img,
.elementor-widget[class*="elementor-widget-pm-"] picture,
.elementor-widget[class*="elementor-widget-pm-"] video,
.elementor-widget[class*="elementor-widget-pm-"] svg {
  display: block;
  max-width: 100%;
}
.elementor-widget[class*="elementor-widget-pm-"] img {
  height: auto;
}
.elementor-widget[class*="elementor-widget-pm-"] button,
.elementor-widget[class*="elementor-widget-pm-"] input,
.elementor-widget[class*="elementor-widget-pm-"] select,
.elementor-widget[class*="elementor-widget-pm-"] textarea {
  font: inherit;
  color: inherit;
}
.elementor-widget[class*="elementor-widget-pm-"] h1,
.elementor-widget[class*="elementor-widget-pm-"] h2,
.elementor-widget[class*="elementor-widget-pm-"] h3,
.elementor-widget[class*="elementor-widget-pm-"] h4,
.elementor-widget[class*="elementor-widget-pm-"] h5,
.elementor-widget[class*="elementor-widget-pm-"] h6 {
  margin: 0;
  font-family: var(--pm-font-heading);
  color: var(--pm-color-graphite);
  text-wrap: balance;
}
.elementor-widget[class*="elementor-widget-pm-"] h1 {
  font-size: var(--pm-fs-h1);
  font-weight: var(--pm-fw-bold);
  line-height: var(--pm-lh-tight);
}
.elementor-widget[class*="elementor-widget-pm-"] h2 {
  font-size: var(--pm-fs-h2);
  font-weight: var(--pm-fw-semibold);
  line-height: var(--pm-lh-heading);
}
.elementor-widget[class*="elementor-widget-pm-"] h3 {
  font-size: var(--pm-fs-h3);
  font-weight: var(--pm-fw-semibold);
  line-height: var(--pm-lh-heading);
}
.elementor-widget[class*="elementor-widget-pm-"] h4 {
  font-size: var(--pm-fs-h4);
  font-weight: var(--pm-fw-medium);
  line-height: var(--pm-lh-heading);
}
.elementor-widget[class*="elementor-widget-pm-"] h5 {
  font-size: var(--pm-fs-h5);
  font-weight: var(--pm-fw-medium);
  line-height: var(--pm-lh-heading);
}
.elementor-widget[class*="elementor-widget-pm-"] h6 {
  font-size: var(--pm-fs-h6);
  font-weight: var(--pm-fw-medium);
  line-height: var(--pm-lh-heading);
}
.elementor-widget[class*="elementor-widget-pm-"] p {
  margin: 0;
  font-size: var(--pm-fs-body);
}
.elementor-widget[class*="elementor-widget-pm-"] p.pm-lead {
  font-size: var(--pm-fs-lead);
  line-height: var(--pm-lh-body);
  color: var(--pm-color-text-muted);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-title-duo {
  font-weight: var(--pm-fw-light);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-title-duo strong {
  font-weight: var(--pm-fw-bold);
}
@media (min-width: 1024px) {
.elementor-widget[class*="elementor-widget-pm-"] .pm-title-duo {
    font-size: var(--pm-fs-h1);
  }
}
.elementor-widget[class*="elementor-widget-pm-"] small {
  font-size: var(--pm-fs-small);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-caption {
  display: block;
  font-size: var(--pm-fs-caption);
  font-weight: var(--pm-fw-light);
  letter-spacing: 0.04em;
  color: var(--pm-color-text-muted);
}
.elementor-widget[class*="elementor-widget-pm-"] a {
  color: var(--pm-color-green-deep);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color var(--pm-transition-base);
}
.elementor-widget[class*="elementor-widget-pm-"] a:hover {
  color: var(--pm-color-green-darker);
}
.elementor-widget[class*="elementor-widget-pm-"] :focus-visible {
  outline: 2px solid var(--pm-color-green-deep);
  outline-offset: 2px;
  border-radius: var(--pm-radius-sm);
}
.elementor-widget[class*="elementor-widget-pm-"] ul,
.elementor-widget[class*="elementor-widget-pm-"] ol {
  margin: 0;
  padding: 0;
}
.elementor-widget[class*="elementor-widget-pm-"] li {
  list-style: none;
}
body.has-nav-open {
  overflow: hidden;
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-container {
  width: 100%;
  padding-inline: var(--pm-navbar-gutter);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section {
  padding-block: var(--pm-space-64);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--tint {
  background-color: var(--pm-color-bg-tint);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy {
  background-color: var(--pm-color-graphite);
  color: var(--pm-color-white);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy h1,
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy h2,
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy h3,
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy h4,
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy h5,
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy h6 {
  color: var(--pm-color-white);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy p.pm-lead,
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy .pm-caption {
  color: rgba(255, 255, 255, 0.82);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section-head {
  max-width: 720px;
  margin-bottom: var(--pm-space-32);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section-head:last-child {
  margin-bottom: 0;
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section-head--center {
  margin-inline: auto;
  text-align: center;
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section-head p.pm-lead {
  margin-top: var(--pm-space-16);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section-head--center p.pm-lead {
  text-wrap: balance;
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-eyebrow {
  display: block;
  margin-bottom: var(--pm-space-8);
  font-family: var(--pm-font-heading);
  font-size: var(--pm-fs-small);
  font-weight: var(--pm-fw-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pm-color-green-deep);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-section--navy .pm-eyebrow {
  color: var(--pm-color-yellow);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-grid {
  display: grid;
  gap: var(--pm-grid-gutter);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-grid--2 {
  grid-template-columns: 1fr;
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-grid--3 {
  grid-template-columns: 1fr;
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-grid--4 {
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
.elementor-widget[class*="elementor-widget-pm-"] .pm-grid--2,
.elementor-widget[class*="elementor-widget-pm-"] .pm-grid--3,
.elementor-widget[class*="elementor-widget-pm-"] .pm-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
.elementor-widget[class*="elementor-widget-pm-"] .pm-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
.elementor-widget[class*="elementor-widget-pm-"] .pm-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.pm-motion .elementor-widget[class*="elementor-widget-pm-"] [data-pm-reveal] {
  opacity: 0;
  transform: translate3d(0, 32px, 0);
}
.pm-motion .elementor-widget[class*="elementor-widget-pm-"] [data-pm-reveal].is-revealed {
  opacity: 1;
  transform: none;
  transition: opacity 700ms var(--pm-ease-out), transform 700ms var(--pm-ease-out);

  transition-delay: var(--pm-reveal-delay, 0ms);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-text-center {
  text-align: center;
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-mt-16 { margin-top: var(--pm-space-16); }
.elementor-widget[class*="elementor-widget-pm-"] .pm-mt-24 { margin-top: var(--pm-space-24); }
.elementor-widget[class*="elementor-widget-pm-"] .pm-mt-32 { margin-top: var(--pm-space-32); }
.elementor-widget[class*="elementor-widget-pm-"] .pm-mt-48 { margin-top: var(--pm-space-48); }
.elementor-widget[class*="elementor-widget-pm-"] .pm-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-skip-link {
  position: absolute;
  top: var(--pm-space-8);
  left: var(--pm-space-8);
  z-index: 200;
  padding: var(--pm-space-8) var(--pm-space-16);
  background-color: var(--pm-color-white);
  color: var(--pm-color-green-deep);
  font-weight: var(--pm-fw-semibold);
  border-radius: var(--pm-radius-sm);
  box-shadow: var(--pm-shadow-md);
  transform: translateY(-200%);
  transition: transform var(--pm-transition-base);
}
.elementor-widget[class*="elementor-widget-pm-"] .pm-skip-link:focus {
  transform: translateY(0);
}
