.elementor-kit-12{--e-global-color-primary:#46308A;--e-global-color-text:#111111;--e-global-typography-primary-font-family:"Source Sans Pro";--e-global-typography-secondary-font-family:"Source Sans Pro";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Source Sans Pro";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Source Sans Pro";--e-global-typography-accent-font-weight:500;color:var( --e-global-color-text );font-size:16px;}.elementor-kit-12 button,.elementor-kit-12 input[type="button"],.elementor-kit-12 input[type="submit"],.elementor-kit-12 .elementor-button{background-color:#82A98A;font-size:18px;font-weight:600;text-transform:uppercase;color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#82A98A;border-radius:5px 5px 5px 5px;}.elementor-kit-12 button:hover,.elementor-kit-12 button:focus,.elementor-kit-12 input[type="button"]:hover,.elementor-kit-12 input[type="button"]:focus,.elementor-kit-12 input[type="submit"]:hover,.elementor-kit-12 input[type="submit"]:focus,.elementor-kit-12 .elementor-button:hover,.elementor-kit-12 .elementor-button:focus{background-color:var( --e-global-color-primary );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );}.elementor-kit-12 e-page-transition{background-color:#FFBC7D;}.elementor-kit-12 a{color:var( --e-global-color-primary );}.elementor-kit-12 h1{color:#46308A;font-size:90px;text-transform:uppercase;}.elementor-kit-12 h2{color:#46308A;font-size:45px;font-weight:700;text-transform:uppercase;}.elementor-kit-12 h3{font-size:26px;text-transform:uppercase;}.elementor-kit-12 h4{font-size:24px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(min-width:2400px){.elementor-kit-12 button,.elementor-kit-12 input[type="button"],.elementor-kit-12 input[type="submit"],.elementor-kit-12 .elementor-button{font-size:18px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;}}@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 *//* Blog — R10 */
/* Scope: category/tag/author archives, search results, single posts. Nothing here matches a page. */

/* B. Post titles on archive cards, styled like the /blog/ cards */
body:is(.archive,.search-results) .ast-article-post .ast-post-format- .entry-title{display:block;margin:10px 0 12px;font-family:"Source Sans Pro",sans-serif;font-size:22px;font-weight:600;line-height:1.3;text-transform:uppercase;letter-spacing:normal;color:#46308A;text-wrap:balance}
body:is(.archive,.search-results) .ast-article-post .ast-post-format- .entry-title a{color:#46308A;text-decoration:none}
body:is(.archive,.search-results) .ast-article-post .ast-post-format- .entry-title a:hover{color:#46308A;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
body:is(.archive,.search-results) .ast-article-post .ast-post-format- .entry-title a:focus-visible{outline:2px solid #46308A;outline-offset:2px;border-radius:2px}

/* B2. Search term highlight inside a card title takes the title color (the plugin sets green on gray, 2.4:1, with !important) */
body.search-results .ast-article-post .ast-post-format- .entry-title .asl_single_highlighted{color:inherit !important}

/* C. Pagination in brand purple, never theme blue */
body:is(.archive,.blog,.search-results) .ast-pagination .page-numbers.current,body:is(.archive,.blog,.search-results) .ast-pagination .page-numbers.current:hover{background-color:#46308A;border-color:#46308A;color:#fff;padding-top:0;padding-bottom:0}
body:is(.archive,.blog,.search-results) .ast-pagination a.page-numbers:hover,body:is(.archive,.blog,.search-results) .ast-pagination a.page-numbers:focus-visible{background-color:#46308A;border-color:#46308A;color:#fff}
body:is(.archive,.blog,.search-results) .ast-pagination a.page-numbers:focus{outline:none}
body:is(.archive,.blog,.search-results) .ast-pagination a.page-numbers:focus-visible{outline:2px solid #46308A;outline-offset:2px}

/* D. One visible H1 on a post whose Astra title is disabled: the post-title widget */
body.single-post:not(.ast-normal-title-enabled) #primary .elementor-widget-theme-post-title.elementor-page-title{display:block}
body.single-post #primary .elementor-widget-theme-post-title h1.elementor-heading-title{text-wrap:balance}

/* E. Heading scale inside post content (sidebar template excluded) */
body.single-post #primary .entry-content .elementor-widget-heading:not(.elementor-widget-template *) :is(h2,h3,h4).elementor-heading-title{text-transform:none;letter-spacing:normal;color:#46308A;text-wrap:balance}
body.single-post #primary .entry-content .elementor-widget-heading:not(.elementor-widget-template *) h2.elementor-heading-title{font-size:30px;font-weight:700;line-height:1.25;margin-top:12px}
body.single-post #primary .entry-content .elementor-widget-heading:not(.elementor-widget-template *) h3.elementor-heading-title{font-size:23px;font-weight:600;line-height:1.3;margin-top:4px}
body.single-post #primary .entry-content .elementor-widget-heading:not(.elementor-widget-template *) h4.elementor-heading-title{font-size:19px;font-weight:600;line-height:1.35}
@media (max-width:1024px){
body.single-post #primary .entry-content .elementor-widget-heading:not(.elementor-widget-template *) h2.elementor-heading-title{font-size:26px}
body.single-post #primary .entry-content .elementor-widget-heading:not(.elementor-widget-template *) h3.elementor-heading-title{font-size:21px}
body.single-post #primary .entry-content .elementor-widget-heading:not(.elementor-widget-template *) h4.elementor-heading-title{font-size:18px}
}
@media (max-width:767px){
body.single-post #primary .entry-content .elementor-widget-heading:not(.elementor-widget-template *) h2.elementor-heading-title{font-size:24px}
body.single-post #primary .entry-content .elementor-widget-heading:not(.elementor-widget-template *) h3.elementor-heading-title{font-size:20px}
}

/* F. Key takeaways callout (our posts) */
body.single-post #primary .entry-content .bb-takeaways{margin:8px 0 28px;padding:22px 26px 10px;background:#F6F3FB;border:1px solid #E2DAF1;border-top:3px solid #46308A;border-radius:10px;color:#111}
body.single-post #primary .entry-content .bb-takeaways .bb-takeaways-title{margin:0 0 10px;font-size:14px;font-weight:700;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:#46308A}
body.single-post #primary .entry-content .bb-takeaways ul{margin:0 0 12px 1.15em;padding:0}
body.single-post #primary .entry-content .bb-takeaways li{margin:0 0 8px;line-height:1.55;color:#111}
body.single-post #primary .entry-content .bb-takeaways li::marker{color:#46308A}
@media (max-width:767px){body.single-post #primary .entry-content .bb-takeaways{padding:18px 18px 8px}}

/* G. Previous and next post links show their titles */
body.single-post .post-navigation .nav-links p{display:block;margin:4px 0 0;font-size:16px;font-weight:600;line-height:1.35;text-transform:none;color:#46308A;white-space:normal;overflow:visible;text-overflow:clip;text-wrap:balance}
body.single-post .post-navigation .nav-links a:hover p,body.single-post .post-navigation .nav-links a:focus-visible p{color:#46308A;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
body.single-post .post-navigation .nav-links a:hover{color:#46308A}
@media (max-width:767px){body.single-post .post-navigation .nav-links p{font-size:15px}}
/* /Blog — R10 */

/* Responsive — R10 */
/* Touch screens only. A mouse or trackpad desktop never matches (pointer:coarse), so desktop does not change. */

/* iPad in landscape (1025 to 1366px): stop the page panning sideways while sections slide in. clip, not hidden, so sticky headers keep working. */
@media (min-width:1025px) and (max-width:1366px) and (pointer:coarse){
 html,body{overflow-x:clip}
}

/* iPad in landscape: keep the floating contact rail (100px wide, on the right edge) off the text. Same right gutter the phone and tablet layout uses below 1025px. */
@media (min-width:1025px) and (max-width:1366px) and (pointer:coarse){
 #content [data-elementor-type="wp-page"] > .e-con:not(:has(> .elementor-widget-slides,> .elementor-widget-google_maps,> .e-con-inner > .elementor-widget-slides,> .e-con-inner > .elementor-widget-google_maps)),
 [data-elementor-type="footer"] > .e-con-boxed{
  padding-right:calc(var(--padding-right,0px) + 100px) !important;
 }
 .single-post #content > .ast-container,.archive #content > .ast-container,.search #content > .ast-container,.error404 #content > .ast-container{
  padding-right:108px;
 }
}

/* iPad in landscape: header buttons, menu panel buttons and footer menu links are at least 44px tall (finger size). */
@media (min-width:1025px) and (max-width:1366px) and (pointer:coarse){
 [data-elementor-type="header"] .elementor-button,
 .wpr-nav-menu-container .elementor-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px}
 [data-elementor-type="footer"] .elementor-nav-menu a.elementor-item{display:flex;align-items:center;min-height:44px}
}

/* Phones and tablets: blog and category thumbnails keep their shape (the theme forces 16:9 on a differently shaped photo and squeezes it). */
@media (max-width:1024px),(min-width:1025px) and (max-width:1366px) and (pointer:coarse){
 .ast-article-post .post-thumb-img-content img{object-fit:cover}
}
/* Phones: buttons are at least 44px tall (finger size); the next/previous post line is 16px so it reads without zooming. */
@media (max-width:767px){
 .elementor-widget-button .elementor-button{min-height:44px}
 body.single-post .post-navigation .nav-links p,body.single-post .post-navigation .nav-links a{font-size:16px}
}

/* Blog list on phones and tablets: let the date and category labels wrap inside their card instead of running past its edge. */
@media (max-width:1024px){
 .elementor-element-4c67fec .eael-entry-meta,.elementor-element-4c67fec .eael-entry-meta *{white-space:normal}
}
/* Phones and tablets: category labels are 16px so they read without zooming. */
@media (max-width:1024px),(min-width:1025px) and (max-width:1366px) and (pointer:coarse){
 .ast-blog-single-element.ast-taxonomy-container a{font-size:16px}
}
/* Search magnifier (blog and resource pages): 44px touch area on phones and tablets; padding and an equal negative margin keep the icon exactly where it was. */
@media (max-width:1024px),(pointer:coarse){
 div.asl_m .probox button.promagnifier{padding:8px;margin:-8px}
}
/* R10-N: mega-panel images keep their 330x210 and 240x150 crops after moving to a registered size (which adds width/height attributes) */
.elementor-2063 .elementor-element-7a7ca31 img{aspect-ratio:240/150;object-fit:cover}
.elementor-2861 .elementor-element-4a9fc1a img,.elementor-2861 .elementor-element-6afa7db img,.elementor-2861 .elementor-element-d98dc34 img,.elementor-2861 .elementor-element-82fd854 img,.elementor-2871 .elementor-element-ba505b5 img,.elementor-2871 .elementor-element-f190da8 img,.elementor-2871 .elementor-element-4f453ee img,.elementor-2871 .elementor-element-63baa20 img,.elementor-5024 .elementor-element-05eb0c2 img,.elementor-5024 .elementor-element-3915303 img,.elementor-5024 .elementor-element-4e76adb img,.elementor-5024 .elementor-element-84a2f74 img{aspect-ratio:330/210;object-fit:cover}
/* R10-N: page images keep their 700x340 and 700x400 crops after moving to a registered size (which adds width/height attributes) */
.elementor-42 .elementor-element-b268eff img,.elementor-42 .elementor-element-d7a5c89 img{aspect-ratio:700/340;object-fit:cover}
.elementor-4960 .elementor-element-8db4837 img,.elementor-4960 .elementor-element-8d8787f img,.elementor-4960 .elementor-element-1f9acec img,.elementor-4960 .elementor-element-c275361 img{aspect-ratio:700/400;object-fit:cover}
/* R10-N: images kept at Elementor custom sizes get an explicit width equal to their own crop width, capped by the column, so the browser reserves their box */
.elementor-2861 .elementor-element-4a9fc1a img,.elementor-2861 .elementor-element-6afa7db img,.elementor-2861 .elementor-element-d98dc34 img,.elementor-5024 .elementor-element-05eb0c2 img,.elementor-5024 .elementor-element-3915303 img,.elementor-5024 .elementor-element-4e76adb img,.elementor-5024 .elementor-element-84a2f74 img{width:330px;max-width:100%}
.elementor-42 .elementor-element-b268eff img,.elementor-4960 .elementor-element-1f9acec img{width:700px;max-width:100%}
/* /Responsive — R10 */

/* Palette lock — R10 */
/* Pins Astra's nine palette slots to the values live on 2026-10-13, so a theme update cannot shift them.
   558 Elementor color settings in 33 pages and templates reference these slots (mostly 5, 6 and 7).
   To change a color, edit it here, then purge caches. The Customizer palette no longer drives these. */
:root, body.elementor-kit-12 {
  --ast-global-color-0: #046bd2; --e-global-color-astglobalcolor0: #046bd2;
  --ast-global-color-1: #045cb4; --e-global-color-astglobalcolor1: #045cb4;
  --ast-global-color-2: #1e293b; --e-global-color-astglobalcolor2: #1e293b;
  --ast-global-color-3: #334155; --e-global-color-astglobalcolor3: #334155;
  --ast-global-color-4: #F0F5FA; --e-global-color-astglobalcolor4: #F0F5FA;
  --ast-global-color-5: #FFFFFF; --e-global-color-astglobalcolor5: #FFFFFF;
  --ast-global-color-6: #D1D5DB; --e-global-color-astglobalcolor6: #D1D5DB;
  --ast-global-color-7: #111111; --e-global-color-astglobalcolor7: #111111;
  --ast-global-color-8: #111111; --e-global-color-astglobalcolor8: #111111;
}
/* /Palette lock — R10 */

/* Hero legibility — R10R */
/* Photo heroes carry a neutral left shade (set per hero in Elementor) in place of the purple wash.
   A soft dark glow keeps the white text readable while the photo stays clear and true to color. */
body .e-con.bb-hero :is(.elementor-heading-title,.elementor-widget-text-editor){text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 18px rgba(0,0,0,.45)}
/* See a Vet, Book a Room, Urgent Care: the hero shade replaces their purple panel wash */
body .e-con.bb-hero .e-con:is(.bbx-hero__panel,.bk-hero__panel)::before{background:none}
/* Tablet: the text stays left over the photo, so it is held to the left half and never runs onto the subject.
   Headings that wrap stay left-aligned, as they read on one line at desktop. */
@media (min-width:768px) and (max-width:1024px){
body .e-con.bb-hero:not(.bbx-hero):not(.bk-hero) .elementor-widget-heading{max-width:52vw}
body .e-con.bb-hero:not(.bbx-hero):not(.bk-hero) .elementor-widget-heading h1.elementor-heading-title{text-align:left}
}
@media (max-width:900px){
body .e-con.bb-hero:is(.bbx-hero,.bk-hero)::before{display:none}
body .e-con.bb-hero:is(.bbx-hero,.bk-hero) :is(.elementor-heading-title,.elementor-widget-text-editor){text-shadow:none}
}
/* Meet the Team keeps its own layout; its navy scrim becomes the same neutral shade */
html body.page-id-421 .elementor-421 .elementor-element.bb-team-hero.e-con::before{background:linear-gradient(90deg,rgba(0,0,0,.55) 15%,rgba(0,0,0,0) 70%)}
html body.page-id-421 .elementor-421 .bb-team-hero .elementor-heading-title{text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 18px rgba(0,0,0,.45)}
@media (max-width:1024px){html body.page-id-421 .elementor-421 .elementor-element.bb-team-hero.e-con::before{background:linear-gradient(90deg,rgba(0,0,0,.55) 35%,rgba(0,0,0,0) 100%)}}
@media (max-width:767px){html body.page-id-421 .elementor-421 .elementor-element.bb-team-hero.e-con::before{background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.45) 65%,rgba(0,0,0,.6) 100%)}}
/* Careers: the Google Form employment application is sized to fit its first page without inner scrolling */
body .qm-embed--job iframe{height:2600px}
@media (max-width:767px){body .qm-embed--job iframe{height:2800px}}
@media (max-width:479px){body .qm-embed--job iframe{height:2980px}}
@media (max-width:379px){body .qm-embed--job iframe{height:3080px}}
@media (max-width:339px){body .qm-embed--job iframe{height:3280px}}
/* /Hero legibility — R10R *//* End custom CSS */