.elementor-kit-6{--e-global-color-primary:#0095D9;--e-global-color-secondary:#1A1617;--e-global-color-text:#1A1617;--e-global-color-accent:#61CE70;--e-global-color-8aaf687:#FFFFFF;--e-global-color-1cb4e33:#000000;--e-global-typography-primary-font-family:"Jost";--e-global-typography-secondary-font-family:"Poppins";--e-global-typography-text-font-family:"Poppins";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1300px;}.e-con{--container-max-width:1300px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* mobile-1col-who-we-help: rows of exactly 4 icon-top card containers get one column
   on phones. The compact trust bar keeps its 2x2 because its icon-boxes use the
   inline-start position; card rows use icon-on-top. */
@media (max-width: 767px) {
  .e-con > .e-con-inner:has(> .e-con:nth-child(4)):not(:has(> .e-con:nth-child(5))):has(> .e-con > .elementor-widget-icon-box):not(:has(> .e-con > .elementor-widget-icon-box.elementor-position-inline-start)) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    row-gap: 16px !important;
  }
  /* rows of 4 inline icon-boxes WITH descriptions are content cards, not the trust
     bar (whose boxes have no description) - one column on phones too */
  .e-con > .e-con-inner:has(> .e-con:nth-child(4)):not(:has(> .e-con:nth-child(5))):has(> .e-con > .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon-box-description) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    row-gap: 16px !important;
  }

  /* fallback width for stacked cards, harmless when already one column */
  .e-con > .e-con-inner:not(:has(> .e-con > .elementor-widget-icon-box.elementor-position-inline-start)) > .e-con:has(> .elementor-widget-icon-box) {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* me-icon-title-inline: any icon-box set to inline icon on phones — icon + title one
   row, description below. Keyed to Elementor's own mobile-position class. */
@media (max-width: 767px) {
  body:not(.page-id-1102) .elementor-widget-icon-box.elementor-mobile-position-inline-start .elementor-icon-box-wrapper {
    display: grid !important;
    grid-template-columns: 42px 1fr !important;
    grid-template-areas: 'icon title' '. desc' !important;
    column-gap: 10px !important;
    row-gap: 4px !important;
    align-items: center !important;
    text-align: left !important;
  }
  body:not(.page-id-1102) .elementor-widget-icon-box.elementor-mobile-position-inline-start .elementor-icon-box-icon { grid-area: icon !important; margin: 0 !important; }
  body:not(.page-id-1102) .elementor-widget-icon-box.elementor-mobile-position-inline-start .elementor-icon-box-content { display: contents !important; }
  body:not(.page-id-1102) .elementor-widget-icon-box.elementor-mobile-position-inline-start .elementor-icon-box-title { grid-area: title !important; margin: 0 !important; text-align: left !important; }
  body:not(.page-id-1102) .elementor-widget-icon-box.elementor-mobile-position-inline-start .elementor-icon-box-description { grid-area: desc !important; margin: 0 !important; text-align: left !important; }
}

/* 088a9d4-1col: the generic 2x2 rule squeezed these four benefit cards into narrow
   centred columns on tablets. One column up to 1024px on both pages that use this
   section (rapid-covid-19-testing, medical-equipment). Phones were already covered by
   mobile-1col-who-we-help above. */
@media (max-width: 1024px) {
  .e-con.elementor-element-088a9d4 > .e-con-inner:has(> .e-con:first-child):has(> .e-con:nth-child(4)):has(> .e-con > .elementor-widget-icon-box) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    row-gap: 16px !important;
  }
  .elementor-element-088a9d4 > .e-con-inner > .e-con {
    width: 100% !important;
    max-width: 100% !important;
  }
}


/* mobile-iconlist-rows: grids of inline icon-boxes use equal-height (1fr) rows, so
   two-line descriptions overflow and eat the gap below. Phones get auto rows + even gap. */
@media (max-width: 767px) {
  .e-con.e-grid:has(> .elementor-widget-icon-box.elementor-position-inline-start),
  .e-con.e-grid > .e-con-inner:has(> .elementor-widget-icon-box.elementor-position-inline-start) {
    grid-template-rows: none !important;
    grid-auto-rows: auto !important;
    row-gap: 14px !important;
    align-items: start !important;
  }
}

/* mobile-eyebrow-title-image-text: sections pairing a text column (eyebrow heading,
   title heading, inline icon list) with an image column reorder on phones to
   eyebrow > title > image > text. Covers boxed (.e-con-inner) and full containers. */
@media (max-width: 767px) {
  .e-con > .e-con-inner:has(> .e-con > .e-con.e-grid > .elementor-widget-icon-box.elementor-position-inline-start):has(> .e-con > .elementor-widget-image),
  .e-con.e-con-full:has(> .e-con > .e-con.e-grid > .elementor-widget-icon-box.elementor-position-inline-start):has(> .e-con > .elementor-widget-image) {
    display: flex !important;
    flex-direction: column !important;
  }
  .e-con > .e-con-inner:has(> .e-con > .elementor-widget-image) > .e-con:has(> .e-con.e-grid > .elementor-widget-icon-box.elementor-position-inline-start),
  .e-con.e-con-full:has(> .e-con > .elementor-widget-image) > .e-con:has(> .e-con.e-grid > .elementor-widget-icon-box.elementor-position-inline-start) {
    display: contents !important;
  }
  .e-con > .e-con-inner:has(> .e-con > .elementor-widget-image) > .e-con > .elementor-widget-heading:nth-child(1),
  .e-con.e-con-full:has(> .e-con > .elementor-widget-image) > .e-con > .elementor-widget-heading:nth-child(1) { order: 1 !important; }
  .e-con > .e-con-inner:has(> .e-con > .elementor-widget-image) > .e-con > .elementor-widget-heading:nth-child(2),
  .e-con.e-con-full:has(> .e-con > .elementor-widget-image) > .e-con > .elementor-widget-heading:nth-child(2) { order: 2 !important; margin-bottom: 8px !important; }
  .e-con > .e-con-inner:has(> .e-con > .e-con.e-grid > .elementor-widget-icon-box.elementor-position-inline-start) > .e-con:has(> .elementor-widget-image),
  .e-con.e-con-full:has(> .e-con > .e-con.e-grid > .elementor-widget-icon-box.elementor-position-inline-start) > .e-con:has(> .elementor-widget-image) { order: 3 !important; margin-bottom: 16px !important; }
  .e-con > .e-con-inner:has(> .e-con > .elementor-widget-image) > .e-con > .e-con.e-grid:has(> .elementor-widget-icon-box.elementor-position-inline-start),
  .e-con.e-con-full:has(> .e-con > .elementor-widget-image) > .e-con > .e-con.e-grid:has(> .elementor-widget-icon-box.elementor-position-inline-start) { order: 4 !important; }
}

/* mobile-hero-size: the global hero clamp bottoms out at 26px on phones; give phones
   a proper 30-35px range while keeping wrap protection. Tablet keeps the old clamp. */
@media (max-width: 767px) {
  body .elementor-widget-heading h1.elementor-heading-title {
    font-size: 35px !important;
    line-height: 1.15 !important;
  }
}

/* mobile-service-card-padding: service cards (image + list + button) get comfortable
   horizontal padding on phones; vertical padding unchanged. */
@media (max-width: 767px) {
  .e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-icon-list):has(> .elementor-widget-button) {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
}

/* mobile-cta-order: CTA text column (heading + html divider + paragraph, next to a
   buttons column) keeps heading first on phones. :not(#e) boosts specificity above
   the generic section-reorder rules. */
@media (max-width: 767px) {
  .e-con:not(#e):has(> .elementor-widget-heading):has(> .elementor-widget-html):has(> .elementor-widget-text-editor) > .elementor-widget-heading { order: -3 !important; }
  .e-con:not(#e):has(> .elementor-widget-heading):has(> .elementor-widget-html):has(> .elementor-widget-text-editor) > .elementor-widget-html { order: -2 !important; }
  .e-con:not(#e):has(> .elementor-widget-heading):has(> .elementor-widget-html):has(> .elementor-widget-text-editor) > .elementor-widget-text-editor { order: -1 !important; }
}

/* home-about-vision-padding: the global rule that flattens nested containers on small
   screens zeroes these cards' side padding; restore 5px left/right on phones. */
@media (max-width: 767px) {
  .elementor-299 .e-con .elementor-element-7e539f7.e-con.e-child.e-flex,
  .elementor-299 .e-con .elementor-element-c689477.e-con.e-child.e-flex,
  .elementor-636 .e-con .elementor-element-3300d54.e-con.e-child.e-flex,
  .elementor-636 .e-con .elementor-element-e0fd13e.e-con.e-child.e-flex {
    padding-left: 5px !important;
    padding-right: 5px !important;
  }
}

/* mobile-center-section-titles: all section title headings (heading widgets) center
   on phones. Icon-box card titles keep their own alignment. */
@media (max-width: 767px) {
  body .elementor-widget-heading .elementor-heading-title {
    text-align: center !important;
  }
}

/* rapidpak-steps-all-pages: the step-card layout was scoped to the main RapidPak page;
   apply the same icon+title row with body text aligned under the title on every page. */
@media (max-width: 1024px) {
  body .rapidpak-step-card {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    grid-template-areas: 'num num' 'icon title' 'spacer text' !important;
    align-items: center !important;
    justify-items: start !important;
    text-align: left !important;
    column-gap: 12px !important;
    row-gap: 8px !important;
  }
  body .rapidpak-step-card .rapidpak-step-num { grid-area: num !important; margin: 0 !important; justify-self: center !important; }
  body .rapidpak-step-card .rapidpak-step-icon { grid-area: icon !important; margin: 0 !important; width: 48px !important; height: 48px !important; }
  body .rapidpak-step-card h3 { grid-area: title !important; margin: 0 !important; text-align: left !important; align-self: center !important; }
  body .rapidpak-step-card p, body .rapidpak-steps-wrap .rapidpak-step-card p {
    grid-area: text !important;
    text-align: left !important;
    justify-self: stretch !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* mobile-hero-left-align: hero text (first section of each page, plus any section
   holding the H1) is left-aligned on phones; overrides the centered-titles rule there. */
@media (max-width: 767px) {
  /* hero text widgets also span full width so their left edges line up */
  [data-elementor-type] > .e-con.e-parent:first-of-type .elementor-widget-heading,
  [data-elementor-type] > .e-con.e-parent:first-of-type .elementor-widget-text-editor,
  body .e-con:has(.elementor-widget-heading h1) .elementor-widget-heading,
  body .e-con:has(.elementor-widget-heading h1) .elementor-widget-text-editor {
    width: 100% !important;
    max-width: 100% !important;
    align-self: flex-start !important;
  }
  [data-elementor-type] > .e-con.e-parent:first-of-type .elementor-widget-heading .elementor-heading-title,
  [data-elementor-type] > .e-con.e-parent:first-of-type .elementor-widget-text-editor,
  body .e-con:has(.elementor-widget-heading h1) .elementor-widget-heading .elementor-heading-title,
  body .e-con:has(.elementor-widget-heading h1) .elementor-widget-text-editor {
    text-align: left !important;
  }
}

/* mobile-category-heading-left: category blocks (heading + text + checklist, no button)
   like Mental Health...Dermatology keep left-aligned headings on phones. */
@media (max-width: 767px) {
  body .e-con:has(> .elementor-widget-icon-list):has(> .elementor-widget-text-editor):not(:has(> .elementor-widget-button)) > .elementor-widget-heading .elementor-heading-title,
  body .e-con:has(> .elementor-widget-image):has(> .elementor-widget-icon-list):not(:has(> .elementor-widget-button)) > .elementor-widget-heading .elementor-heading-title {
    text-align: left !important;
  }
}

/* mobile-imagefirst-title-center: on the COVID testing pages, two-column image+text
   sections (Why Choose PCR/Rapid Testing) are section titles; keep them centered on
   phones. Scoped by page id so the specialty category zigzag stays left-aligned. */
@media (max-width: 767px) {
  :is(body.page-id-2247, body.page-id-2169, body.page-id-2221, body.page-id-1865, body.page-id-1887, body.page-id-730, body.page-id-2412) .e-con:has(> .e-con > .elementor-widget-image):not(:has(> .e-con:nth-child(3))) > .e-con > .elementor-widget-heading .elementor-heading-title,
  :is(body.page-id-2247, body.page-id-2169, body.page-id-2221, body.page-id-1865, body.page-id-1887, body.page-id-730, body.page-id-2412) .e-con > .e-con-inner:has(> .e-con > .elementor-widget-image):not(:has(> .e-con:nth-child(3))) > .e-con > .elementor-widget-heading .elementor-heading-title {
    text-align: center !important;
  }
}

/* mobile-1col-descriptive-checklists: 4 icon-box widgets in one container stay 2x2 per
   the check-list rule, but when the boxes carry description text they are content
   cards - collapse to one column on phones. */
@media (max-width: 767px) {
  body .page-content .e-con:has(> .elementor-widget-icon-box:nth-child(4)):not(:has(> .elementor-widget-icon-box:nth-child(5))):has(> .elementor-widget-icon-box .elementor-icon-box-description) {
    grid-template-columns: 1fr !important;
    row-gap: 14px !important;
  }
}

/* mobile-inline-subtitle-center: h3 sub-titles typed inside text blocks (next to a
   section heading and icon-box list, e.g. Personal Care...Community Roots on About Us)
   center on phones like other title headers. */
@media (max-width: 767px) {
  body .e-con:has(> .elementor-widget-heading):has(> .elementor-widget-icon-box) > .elementor-widget-text-editor h3 {
    text-align: center !important;
  }
}

/* mobile-cta-left-align: the prescriptions CTA on city pages (logo + tagline column,
   heading column, buttons column) left-aligns on phones. */
@media (max-width: 767px) {
  :is(.e-con, .e-con-inner):has(> .e-con:first-child > .elementor-widget-image):has(> .e-con:first-child > .elementor-widget-html):has(> .e-con > .elementor-widget-button) > .e-con {
    align-items: flex-start !important;
    --align-items: flex-start;
  }
  :is(.e-con, .e-con-inner):has(> .e-con:first-child > .elementor-widget-image):has(> .e-con:first-child > .elementor-widget-html):has(> .e-con > .elementor-widget-button) .elementor-widget-image,
  :is(.e-con, .e-con-inner):has(> .e-con:first-child > .elementor-widget-image):has(> .e-con:first-child > .elementor-widget-html):has(> .e-con > .elementor-widget-button) .elementor-widget-heading .elementor-heading-title,
  :is(.e-con, .e-con-inner):has(> .e-con:first-child > .elementor-widget-image):has(> .e-con:first-child > .elementor-widget-html):has(> .e-con > .elementor-widget-button) .elementor-widget-text-editor,
  :is(.e-con, .e-con-inner):has(> .e-con:first-child > .elementor-widget-image):has(> .e-con:first-child > .elementor-widget-html):has(> .e-con > .elementor-widget-button) .elementor-widget-html {
    text-align: left !important;
  }
}

/* faq-tagline-center: the FAQ closing line ('Can't find your answer?...') stays centered
   everywhere, out-ranking page-scoped 'all body copy left' rules (e.g. Compounding). */
@media (max-width: 1024px) {
  body .e-con:has(.elementor-widget-n-accordion) > .elementor-widget-text-editor.elementor-widget,
  body .e-con:has(.elementor-widget-n-accordion) > .elementor-widget-text-editor.elementor-widget p,
  body .e-con:has(.elementor-widget-n-accordion) + .e-con > .elementor-widget-text-editor.elementor-widget:first-child:last-child,
  body .e-con:has(.elementor-widget-n-accordion) + .e-con > .elementor-widget-text-editor.elementor-widget:first-child:last-child p {
    text-align: center !important;
  }
}

/* call-button-one-row: phone CTA buttons keep the number on a single line.
   Scoped to tel: links so no other button is affected. Lives in the kit so a page
   rewrite cannot revert it. */
body .elementor-widget-button a.elementor-button[href^="tel:"],
body a.elementor-button[href^="tel:"] {
  white-space: nowrap !important;
  max-width: none !important;
}
body .elementor-widget-button a.elementor-button[href^="tel:"] .elementor-button-text,
body a.elementor-button[href^="tel:"] .elementor-button-text {
  white-space: nowrap !important;
  flex-grow: 0 !important;
}
body .elementor-widget-button:has(> .elementor-button-wrapper > a.elementor-button[href^="tel:"]) {
  max-width: none !important;
}
@media (max-width: 380px) {
  body a.elementor-button[href^="tel:"] .elementor-button-text { font-size: 15px !important; }
  body a.elementor-button[href^="tel:"] { padding-left: 14px !important; padding-right: 14px !important; }
}


/* hero-h1-no-overflow: long city H1s (up to 61 chars, e.g. 'RapidPak Medication
   Packaging Serving Northville Township, MI') overflowed phones because the earlier
   mobile rule floors H1 at 30px. Lower floor + hard wrap guard. Must sit after that
   rule to win. */
@media (max-width: 767px) {
  body .elementor-widget-heading h1.elementor-heading-title {
    font-size: 35px !important; /* user standard 2026-08-25: mobile hero = 35px; wrap guards below keep long H1s safe */
    line-height: 1.18 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    max-width: 100% !important;
  }
  body .elementor-widget-heading:has(h1.elementor-heading-title) {
    max-width: 100% !important;
    overflow-x: clip;
  }
}/* End custom CSS */