/*
Theme Name: Premier Lawn & Pressure Washing
Description: Lightweight Hello Elementor child theme for premierservicesms.com
Template: hello-elementor
Version: 1.0.6
Text Domain: premier-child
*/

:root{
  --pm-navy-dark:#172447;
  --pm-navy:#24475b;
  --pm-slate:#587487;
  --pm-slate-light:#557685;
  --pm-cream:#fff6d7;
  --pm-cream-card:#fffad6;
  --pm-ink:#1d2a33;
  --pm-font-heading:"League Spartan",Arial,Helvetica,sans-serif;
  --pm-font-body:"League Spartan",Arial,Helvetica,sans-serif;
  --pm-font-mono:"Courier New",Courier,monospace;
  --pm-wave:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60V28C120 -6 240 -6 360 28S600 62 720 28 960 -6 1080 28 1170 40 1200 30V60Z'/%3E%3C/svg%3E");
}
html{scroll-behavior:smooth}
body{margin:0;background:var(--pm-cream);color:var(--pm-ink);font-family:var(--pm-font-body);font-size:1.0625rem;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--pm-font-heading);font-weight:700;line-height:1.08;margin:0 0 .5em;color:var(--pm-slate)}
a{color:inherit}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid #f0b429;outline-offset:2px}

/* ---------- Header ---------- */
.pm-header{position:sticky;top:0;z-index:50;background:var(--pm-navy-dark);color:#fff}
.pm-header__inner{display:flex;align-items:center;gap:1.25rem;max-width:1280px;margin:0 auto;padding:.5rem 1.25rem}
.pm-logo img{display:block;height:64px;width:auto}
.pm-nav{margin-left:auto}
.pm-nav ul{list-style:none;margin:0;padding:0}
.pm-nav>ul{display:flex;align-items:center;gap:.25rem}
.pm-nav li{position:relative}
.pm-nav a{display:block;padding:.6rem .8rem;color:#fff;text-decoration:none;font-family:var(--pm-font-heading);font-weight:600;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}
.pm-nav a:hover{color:var(--pm-cream)}
.pm-nav .menu-item-has-children>a::after{content:"";display:inline-block;margin-left:.4em;border:4px solid transparent;border-top-color:currentColor;border-bottom:0;vertical-align:middle}
.pm-nav .sub-menu{display:none;position:absolute;top:100%;left:0;min-width:230px;background:var(--pm-navy-dark);padding:.4rem 0;box-shadow:0 10px 24px rgba(0,0,0,.35)}
.pm-nav .sub-menu .sub-menu{top:0;left:100%}
.pm-nav li:hover>.sub-menu,.pm-nav li:focus-within>.sub-menu{display:block}
.pm-nav .sub-menu a{text-transform:none;letter-spacing:0;font-size:.95rem;padding:.5rem 1rem}
.pm-nav .sub-menu .menu-item-has-children>a::after{border:4px solid transparent;border-left-color:currentColor;border-right:0;float:right;margin-top:.35em}
.pm-social{display:flex;gap:.6rem;align-items:center}
.pm-social a{display:inline-flex;width:20px;height:20px;color:#fff}
.pm-social svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pm-social svg text{fill:currentColor;stroke:none;font:700 11px Arial,sans-serif}
.pm-social a:hover{color:var(--pm-cream)}
.pm-btn,.elementor-widget-button.pm-btn a.elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.85em 1.4em;border-radius:6px;font-family:var(--pm-font-heading);font-weight:700;font-size:.95rem;line-height:1.1;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background .15s,color .15s}
.pm-quote{background:var(--pm-slate);color:#fff;text-transform:uppercase;font-size:.75rem;letter-spacing:.06em;padding:.7em 1.1em;text-align:center}
.pm-quote:hover{background:var(--pm-slate-light)}
.pm-burger{display:none;margin-left:auto;background:none;border:0;color:#fff;padding:.5rem;cursor:pointer}
.pm-burger span{display:block;width:26px;height:2px;background:currentColor;margin:6px 0}

@media (max-width:1100px){
  .pm-social,.pm-header .pm-quote{display:none}
  .pm-burger{display:block}
  .pm-nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;background:var(--pm-navy-dark);padding:.5rem 1.25rem 1.25rem;max-height:80vh;overflow:auto}
  .pm-nav.is-open{display:block}
  .pm-nav>ul{flex-direction:column;align-items:stretch}
  .pm-nav .sub-menu{position:static;display:none;box-shadow:none;padding:0 0 0 1rem;min-width:0}
  .pm-nav li.is-open>.sub-menu{display:block}
  .pm-nav li:hover>.sub-menu{display:none}
  .pm-nav li.is-open:hover>.sub-menu{display:block}
}

/* ---------- Buttons (Elementor button widgets) ---------- */
.pm-btn-primary a.elementor-button{background:var(--pm-cream);color:var(--pm-navy-dark)}
.pm-btn-primary a.elementor-button:hover{background:#fff}
.pm-btn-outline a.elementor-button{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.pm-btn-outline a.elementor-button:hover{background:rgba(255,255,255,.12)}
.pm-btn-slate a.elementor-button{background:var(--pm-slate);color:#fff}
.pm-btn-slate a.elementor-button:hover{background:var(--pm-slate-light)}
.pm-btn-dark a.elementor-button{background:var(--pm-navy-dark);color:#fff}
.pm-btn-block a.elementor-button{width:100%}

/* ---------- Shared section styling ---------- */
.e-con.pm-section{position:relative;padding:clamp(3rem,7vw,6rem) max(1.25rem,calc((100% - 1200px)/2));--pm-bg:var(--pm-cream)}
.e-con.pm-section.pm-navy{background:var(--pm-navy);--pm-bg:var(--pm-navy);color:var(--pm-cream)}
.e-con.pm-section.pm-navy h2,.pm-section.pm-navy h3{color:var(--pm-cream)}
.e-con.pm-section.pm-cream{background:var(--pm-cream);--pm-bg:var(--pm-cream)}
.pm-wave{margin-top:55px}
.pm-wave::before{content:"";position:absolute;left:0;right:0;top:-54px;height:55px;background:var(--pm-bg);-webkit-mask:var(--pm-wave) center/100% 100% no-repeat;mask:var(--pm-wave) center/100% 100% no-repeat;pointer-events:none}
.e-con.pm-section h2{font-size:clamp(2rem,5.2vw,3.5rem);text-align:center;margin-bottom:.6em}
.pm-eyebrow{font-family:var(--pm-font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem}
.pm-eyebrow p{margin:0}
.pm-hint{font-family:var(--pm-font-mono);font-size:.72rem;opacity:.85}
.pm-hint p{margin:0}

/* ---------- Hero ---------- */
.e-con.pm-hero{position:relative;min-height:clamp(520px,72vh,680px);background:var(--pm-navy-dark) url("assets/hero.webp") right center/cover no-repeat;color:#fff;padding:clamp(3rem,8vw,6rem) max(1.25rem,calc((100% - 1200px)/2)) 7rem;isolation:isolate;overflow:hidden}
.e-con.pm-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--pm-navy-dark);opacity:.9;clip-path:polygon(0 0,66% 0,42% 100%,0 100%)}
.e-con.pm-hero h1{color:#fff;font-size:clamp(2.2rem,6vw,3.75rem);max-width:15ch;margin-bottom:.4em}
.e-con.pm-hero .pm-sub{max-width:34rem;font-size:1.1rem}
.e-con.pm-hero .pm-sub p{margin:0 0 1.2rem}
.e-con.pm-hero .pm-eyebrow{color:#fff}
.pm-trust{font-size:.85rem;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin-top:.5rem}
.pm-trust p{margin:0}
.pm-trust span{white-space:nowrap}
.pm-trust span.ok::before{content:"\2713";display:inline-block;margin-right:.4em;border:1px solid currentColor;border-radius:50%;width:1.2em;height:1.2em;line-height:1.1;text-align:center;font-size:.8em}
@media (max-width:767px){
  .pm-hero{background-position:70% center;padding-bottom:3rem}
  .pm-hero::before{clip-path:none;opacity:.86}
  .pm-hero .pm-btn{width:100%}
}

/* ---------- Hero strip ---------- */
.e-con.pm-strip{position:relative;z-index:2;margin:-4.5rem auto 0;max-width:1100px;padding:0 1.25rem;display:grid;grid-template-columns:repeat(3,1fr);gap:0;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.e-con.pm-strip>.e-con{padding:1.1rem 1.4rem;gap:.15rem}
.e-con.pm-strip .pm-s1{background:var(--pm-navy);color:#fff}
.e-con.pm-strip .pm-s2{background:var(--pm-slate-light);color:#fff}
.e-con.pm-strip .pm-s3{background:var(--pm-cream-card);color:var(--pm-navy-dark)}
.e-con.pm-strip h3{font-size:1rem;color:inherit;margin:0}
.e-con.pm-strip p{margin:0;font-size:.85rem}
.e-con.pm-strip a{font-weight:700;font-size:.85rem}
@media (max-width:767px){.pm-strip{grid-template-columns:1fr;margin-top:0;padding:0;box-shadow:none}}

/* ---------- Badges / logo rows ---------- */
.e-con.e-con.pm-section.pm-trusted{padding-top:5rem}
.e-con.pm-section.pm-trusted h2{font-size:clamp(2rem,5vw,3.25rem)}
.e-con.pm-badges{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.25rem 2rem}
.e-con.pm-badges img{height:84px;width:auto;object-fit:contain}
.pm-logos img{height:56px;width:auto;object-fit:contain;background:#fff;padding:6px 10px;border-radius:4px}
.e-con.pm-section h3.pm-member{text-align:center;font-size:clamp(1.3rem,3vw,1.9rem)}

/* ---------- Services scroller ---------- */
.e-con.pm-cards{display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 1rem;margin:2rem 0 1rem;scrollbar-width:thin}
.e-con.pm-card{flex:0 0 min(300px,82%);scroll-snap-align:start;background:var(--pm-cream-card);color:var(--pm-navy-dark);border-radius:4px;overflow:hidden;gap:.6rem;padding:0 0 1rem}
.e-con.pm-card .elementor-widget-image img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.e-con.pm-card>*:not(.elementor-widget-image){margin-left:1rem;margin-right:1rem}
.e-con.pm-card .pm-eyebrow{font-size:.66rem;color:var(--pm-slate);margin:.4rem 1rem 0}
.e-con.pm-card h3{font-size:1.5rem;color:var(--pm-navy-dark)!important;margin:0 1rem}
.e-con.pm-card p{margin:0;font-size:.95rem}
.e-con.pm-aside{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,246,215,.25);padding-top:1rem}
.e-con.pm-aside h3{font-size:1rem;margin:0}
.e-con.pm-aside p{margin:0;font-size:.9rem}

/* ---------- Why Choose / process / FAQ cards ---------- */
.e-con.pm-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1rem}
.e-con.pm-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1rem}
.e-con.pm-panel{background:var(--pm-cream-card);color:var(--pm-ink);border-radius:4px;padding:1.75rem;gap:.5rem}
.e-con.pm-panel h3{font-size:clamp(1.3rem,2.6vw,1.75rem);color:var(--pm-slate)!important;text-align:center;margin:0 0 .4rem}
.e-con.pm-panel p{font-size:.98rem;margin:0}
.e-con.pm-panel .elementor-widget-image img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:3px}
@media (max-width:900px){.pm-grid3{grid-template-columns:1fr}}
@media (max-width:767px){.pm-grid2{grid-template-columns:1fr}}

.e-con.pm-faq-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:start}
.e-con.pm-faq-wrap h2{text-align:left;font-size:clamp(1.8rem,4vw,2.6rem)}
.pm-faq .elementor-accordion-item{border:0;border-bottom:1px solid rgba(88,116,135,.35)}
.pm-faq .elementor-tab-title{padding:1rem 0;font-family:var(--pm-font-heading);font-weight:600;color:var(--pm-ink)}
.pm-faq .elementor-tab-content{padding:0 0 1rem;border:0}
.e-con.pm-cta{background:var(--pm-navy);color:#fff;padding:1.75rem;border-radius:4px;gap:.8rem}
.e-con.pm-cta h2{color:#fff!important;text-align:left;font-size:clamp(1.7rem,3.5vw,2.3rem);margin:0}
.e-con.pm-cta p{margin:0}
@media (max-width:900px){.pm-faq-wrap{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.pm-footer{background:var(--pm-cream);color:var(--pm-ink);padding:2.5rem 1.25rem 2rem;font-size:.9rem}
.pm-footer__inner{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}
.pm-areas strong{display:block;margin-bottom:.2rem}
.pm-footer__row{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}
.pm-footer .pm-social a{color:var(--pm-navy-dark)}
.pm-footer__links{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.25rem;list-style:none;margin:0;padding:0;font-family:var(--pm-font-heading);font-weight:600;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.pm-footer__links a{text-decoration:none}
.pm-footer__links a:hover{text-decoration:underline}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}


/* ---------- Premier homepage refinements (v1.0.1) ---------- */
/* Let the desktop header use more of the available screen width. */
@media (min-width:1101px) {
  .pm-header__inner {
    max-width: 1680px;
    padding-left: clamp(1.25rem, 2.5vw, 2.5rem);
    padding-right: clamp(1.25rem, 2.5vw, 2.5rem);
  }
}

/* More natural headline wrapping, so the CTA/trust row fits in the hero. */
.e-con.pm-hero h1 {
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  max-width: 22ch;
}

/* Elementor's global text color was overriding the hero's white color. */
.e-con.pm-hero .elementor-widget-text-editor,
.e-con.pm-hero .elementor-widget-text-editor .elementor-widget-container,
.e-con.pm-hero .elementor-widget-text-editor p,
.e-con.pm-hero .elementor-widget-text-editor span {
  color: #fff !important;
}

/* Guard against an imported text widget stretching into the light image area. */
.e-con.pm-hero .pm-sub,
.e-con.pm-hero > .elementor-widget-text-editor:nth-child(3) {
  max-width: 36rem;
  width: 100%;
}
.e-con.pm-hero .pm-trust,
.e-con.pm-hero > .elementor-widget-text-editor:nth-child(5) {
  max-width: 44rem;
}
@media (max-width:767px) {
  .e-con.pm-hero h1 { max-width: 18ch; }
}


/* ---------- Premier layout refinements (v1.0.2) ---------- */
/* Wider, more evenly distributed navigation.  Keep responsive menu at small sizes. */
@media (min-width:1251px) {
  .pm-header__inner {
    width:100%;
    max-width:1800px;
    padding: .65rem clamp(1.5rem, 3.5vw, 4rem);
    gap: clamp(.75rem, 1.45vw, 1.7rem);
  }
  .pm-nav {
    margin-left:auto;
    flex: 0 1 660px;
    min-width: 0;
  }
  .pm-nav > ul {
    width:100%;
    justify-content:space-between;
    gap:clamp(.35rem, 1vw, .9rem);
  }
  .pm-nav > ul > li > a {
    padding:.65rem .6rem;
    font-size:.9rem;
    white-space:nowrap;
  }
  .pm-social{flex-shrink:0;gap:.7rem}
  .pm-header .pm-quote{flex-shrink:0}
}
/* Switch before the desktop navigation becomes crowded. */
@media (min-width:1101px) and (max-width:1250px) {
  .pm-social,.pm-header .pm-quote{display:none}
  .pm-burger{display:block}
  .pm-nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;background:var(--pm-navy-dark);padding:.5rem 1.25rem 1.25rem;max-height:80vh;overflow:auto}
  .pm-nav.is-open{display:block}
  .pm-nav>ul{flex-direction:column;align-items:stretch}
  .pm-nav .sub-menu{position:static;display:none;box-shadow:none;padding:0 0 0 1rem;min-width:0}
  .pm-nav li.is-open>.sub-menu{display:block}
  .pm-nav li:hover>.sub-menu{display:none}
  .pm-nav li.is-open:hover>.sub-menu{display:block}
}

/* Give hero content a readable, consistent left column.  Use structural selectors
   because Elementor template imports can omit individual widget CSS classes. */
@media (min-width:768px) {
  .e-con.pm-hero {
    gap: clamp(.8rem,1.4vw,1.3rem);
    min-height: clamp(680px,78vh,760px);
    padding-top:clamp(3.25rem,5vw,5rem);
    padding-bottom:6.75rem;
  }
  .e-con.pm-hero .elementor-widget-heading,
  .e-con.pm-hero h1 {
    max-width: 590px !important;
    width:100%;
  }
  .e-con.pm-hero h1 {
    font-size:clamp(2.45rem,3.8vw,3.45rem);
    line-height:1.06;
    margin-bottom:.12em;
    text-wrap:balance;
  }
  /* Constrain both text widget AND paragraph, preventing over-wide imported styles. */
  .e-con.pm-hero > .elementor-widget-text-editor {
    max-width: 510px !important;
    width:100% !important;
    flex:0 0 auto;
    align-self:flex-start;
  }
  .e-con.pm-hero > .elementor-widget-text-editor p,
  .e-con.pm-hero .pm-sub p {
    max-width:510px !important;
    white-space:normal !important;
    overflow-wrap:normal;
    line-height:1.55;
  }
  .e-con.pm-hero .pm-sub,
  .e-con.pm-hero .pm-trust {max-width:510px !important;width:100% !important}
  .e-con.pm-hero .elementor-widget-text-editor {color:#fff!important}
  .e-con.pm-hero > .e-con {max-width:550px;width:100%;align-self:flex-start}
}
/* On mid-sized monitors, keep the text well inside the dark half. */
@media (min-width:768px) and (max-width:1250px) {
  .e-con.pm-hero h1 {font-size:clamp(2.25rem,4.2vw,3.1rem)}
  .e-con.pm-hero > .elementor-widget-text-editor,
  .e-con.pm-hero .pm-sub,
  .e-con.pm-hero .pm-trust,
  .e-con.pm-hero > .elementor-widget-text-editor p {max-width:460px!important}
}
@media (max-width:767px) {
  .e-con.pm-hero {gap:1rem;padding:3rem 1.25rem 4rem;min-height:0}
  .e-con.pm-hero h1 {font-size:clamp(2.1rem,8.3vw,3rem);max-width:100%;text-wrap:balance}
  .e-con.pm-hero .elementor-widget-text-editor p {max-width:100%;white-space:normal}
}


/* ---------- Premier nav layout v1.0.3 ----------
   Use the full header width for actual WordPress menu items.
   Menu items are edited via Appearance > Menus, not changed by this stylesheet.
*/
@media (min-width:1251px) {
  .pm-header__inner {
    max-width:none;
    width:100%;
    padding:.6rem clamp(1.25rem,3.1vw,3.75rem);
    gap:clamp(.8rem,1.5vw,1.5rem);
  }
  .pm-logo {flex:0 0 auto}
  .pm-nav {
    margin-left:clamp(1.5rem,3vw,3.5rem);
    flex:1 1 auto;
    width:auto;
    min-width:0;
  }
  .pm-nav>ul {
    width:100%;
    justify-content:space-evenly;
    gap:clamp(.2rem,.6vw,.75rem);
  }
  .pm-nav>ul>li {flex:0 1 auto}
  .pm-nav>ul>li>a {
    font-size:clamp(.77rem,.8vw,.91rem);
    padding:.7rem clamp(.35rem,.65vw,.75rem);
    white-space:nowrap;
  }
  .pm-header .pm-quote {
    margin-left:clamp(.3rem,1vw,.95rem);
    white-space:nowrap;
    flex:0 0 auto;
  }
}

/* Keep the estimate CTA available when the desktop navigation collapses.
   This also avoids relying on a duplicate Free Estimates primary-menu item. */
@media (max-width:1250px) {
  .pm-header .pm-quote {
    display:inline-flex;
    align-items:center;
    white-space:nowrap;
    margin-left:0;
    padding:.65em .85em;
    font-size:.7rem;
  }
  .pm-header__inner {gap:clamp(.35rem,1.5vw,.85rem)}
}


/* ---------- Premier legibility pass v1.0.4 ----------
   Elementor's imported widgets can have their own global title/text colors.
   These selectors make the information strip legible without requiring manual
   color changes inside each widget. Retains the original three backgrounds.
*/
.e-con.pm-strip > .e-con {
  min-height: 142px;
  padding: 1.25rem 1.45rem;
  justify-content: center;
  gap: .3rem;
}
.e-con.pm-strip .elementor-widget-heading .elementor-heading-title {
  font-size: clamp(1.05rem, 1.15vw, 1.22rem);
  line-height: 1.2;
  margin: 0;
}
.e-con.pm-strip .elementor-widget-text-editor,
.e-con.pm-strip .elementor-widget-text-editor p,
.e-con.pm-strip .elementor-widget-text-editor a {
  font-size: .96rem;
  line-height: 1.45;
}
.e-con.pm-strip .pm-s1 .elementor-widget-heading .elementor-heading-title,
.e-con.pm-strip .pm-s2 .elementor-widget-heading .elementor-heading-title,
.e-con.pm-strip .pm-s1 .elementor-widget-text-editor,
.e-con.pm-strip .pm-s2 .elementor-widget-text-editor,
.e-con.pm-strip .pm-s1 .elementor-widget-text-editor p,
.e-con.pm-strip .pm-s2 .elementor-widget-text-editor p,
.e-con.pm-strip .pm-s1 .elementor-widget-text-editor a,
.e-con.pm-strip .pm-s2 .elementor-widget-text-editor a,
.e-con.pm-strip .pm-s1 .elementor-widget-text-editor span,
.e-con.pm-strip .pm-s2 .elementor-widget-text-editor span {
  color: #fff !important;
  opacity: 1 !important;
}
.e-con.pm-strip .pm-s3 .elementor-widget-heading .elementor-heading-title,
.e-con.pm-strip .pm-s3 .elementor-widget-text-editor,
.e-con.pm-strip .pm-s3 .elementor-widget-text-editor p,
.e-con.pm-strip .pm-s3 .elementor-widget-text-editor a,
.e-con.pm-strip .pm-s3 .elementor-widget-text-editor span {
  color: var(--pm-navy-dark) !important;
  opacity: 1 !important;
}
.e-con.pm-strip .elementor-widget-text-editor a {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
/* Better contrast for default Elementor headings on light sections, including
   the currently unstyled 'Trusted Exterior Cleaning' heading. */
body .elementor .elementor-widget-heading .elementor-heading-title {
  color: var(--pm-navy-dark);
}
/* Explicit exceptions on dark sections and inside the information strip. */
body .elementor .e-con.pm-hero .elementor-widget-heading .elementor-heading-title,
body .elementor .e-con.pm-navy .elementor-widget-heading .elementor-heading-title,
body .elementor .e-con.pm-cta .elementor-widget-heading .elementor-heading-title,
body .elementor .e-con.pm-strip .pm-s1 .elementor-widget-heading .elementor-heading-title,
body .elementor .e-con.pm-strip .pm-s2 .elementor-widget-heading .elementor-heading-title {
  color: #fff !important;
}
body .elementor .e-con.pm-strip .pm-s3 .elementor-widget-heading .elementor-heading-title {
  color: var(--pm-navy-dark) !important;
}
@media(max-width:767px){
  .e-con.pm-strip > .e-con {min-height: 0; padding:1.25rem 1.5rem}
}


/* ---------- Premier services card contrast v1.0.5 ----------
   Fix v1.0.4's navy-section heading rule unintentionally whitening headings
   within the light service cards. Scope overrides only to those light cards.
   Service buttons use Premier's fixed slate color so an old green Accent cannot override them.
*/
body .elementor .e-con.pm-navy .e-con.pm-card .elementor-widget-heading .elementor-heading-title,
body .elementor .e-con.pm-navy .e-con.pm-card h3 {
  color: var(--pm-navy-dark) !important;
}
body .elementor .e-con.pm-navy .e-con.pm-card .elementor-widget-text-editor,
body .elementor .e-con.pm-navy .e-con.pm-card .elementor-widget-text-editor .elementor-widget-container,
body .elementor .e-con.pm-navy .e-con.pm-card .elementor-widget-text-editor p,
body .elementor .e-con.pm-navy .e-con.pm-card .elementor-widget-text-editor span {
  color: var(--pm-navy-dark) !important;
  opacity: 1 !important;
}
/* Short service category label: e.g. "SIDING · EXTERIOR SURFACES". */
body .elementor .e-con.pm-navy .e-con.pm-card > .elementor-widget-image + .elementor-widget-text-editor,
body .elementor .e-con.pm-navy .e-con.pm-card > .elementor-widget-image + .elementor-widget-text-editor p {
  color: var(--pm-slate) !important;
}
/* Card CTAs use Premier's brand colors, not an old Elementor global Accent.
   Target only widgets inside service cards, leaving hero, header and other buttons unchanged. */
body .elementor .e-con.pm-card .elementor-widget-button a.elementor-button,
body .elementor .e-con.pm-card .elementor-widget-button a.elementor-button:link,
body .elementor .e-con.pm-card .elementor-widget-button a.elementor-button:visited {
  background: var(--pm-slate) !important;
  background-color: #587487 !important;
  color: #ffffff !important;
  border-color: transparent !important;
  border-radius: 5px;
  min-height: 48px;
  padding: .8rem 1rem;
  line-height: 1.25;
}
body .elementor .e-con.pm-card .elementor-widget-button a.elementor-button:hover,
body .elementor .e-con.pm-card .elementor-widget-button a.elementor-button:focus-visible {
  background: var(--pm-navy) !important;
  background-color: #24475b !important;
  color: #ffffff !important;
}
