/* Minneapolis HIFI: licensed Neue Haas Display + Text, served by Adobe kit fxq3pmy. */
:root,body{
  --mpls-font-display:"neue-haas-grotesk-display","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mpls-font-text:"neue-haas-grotesk-text","Helvetica Neue",Helvetica,Arial,sans-serif;
  --body_typo-font-family:var(--mpls-font-text)!important;
  --body_typo-font-weight:400!important;
  --body_typo-font-size:18px!important;
  --body_typo-line-height:1.55!important;
  --body_typo-letter-spacing:0!important;
  --p_small_typo-font-family:var(--mpls-font-text)!important;
  --p_small_typo-font-size:13px!important;
  --p_small_typo-line-height:1.45!important;
  --p_small_typo-letter-spacing:.015em!important;
  --p_large_typo-font-family:var(--mpls-font-text)!important;
  --p_large_typo-font-size:20px!important;
  --p_large_typo-line-height:1.5!important;
  --p_large_typo-letter-spacing:0!important;
  --h1_typo-font-family:var(--mpls-font-display)!important;
  --h2_typo-font-family:var(--mpls-font-display)!important;
  --h3_typo-font-family:var(--mpls-font-display)!important;
  --h4_typo-font-family:var(--mpls-font-display)!important;
  --h5_typo-font-family:var(--mpls-font-display)!important;
  --h6_typo-font-family:var(--mpls-font-display)!important;
  --h1_medium_typo-font-family:var(--mpls-font-display)!important;
  --h1_big_typo-font-family:var(--mpls-font-display)!important;
  --h1_typo-font-weight:400!important;
  --h2_typo-font-weight:400!important;
  --h3_typo-font-weight:400!important;
  --h4_typo-font-weight:400!important;
  --h5_typo-font-weight:400!important;
  --h6_typo-font-weight:400!important;
  --h1_medium_typo-font-weight:400!important;
  --h1_big_typo-font-weight:400!important;
  --h1_typo-letter-spacing:-.04em!important;
  --h2_typo-letter-spacing:-.03em!important;
  --h3_typo-letter-spacing:-.025em!important;
  --h4_typo-letter-spacing:-.02em!important;
  --h5_typo-letter-spacing:-.015em!important;
  --h6_typo-letter-spacing:-.01em!important;
  --e-global-typography-primary-font-family:var(--mpls-font-display)!important;
  --e-global-typography-secondary-font-family:var(--mpls-font-display)!important;
  --e-global-typography-text-font-family:var(--mpls-font-text)!important;
  --e-global-typography-accent-font-family:var(--mpls-font-text)!important;
  --e-global-typography-primary-font-weight:400!important;
  --e-global-typography-secondary-font-weight:400!important;
  --e-global-typography-text-font-weight:400!important;
  --e-global-typography-accent-font-weight:500!important;
}
body.elementor-default{
  font-family:var(--mpls-font-text)!important;
  font-size:18px;
  font-weight:400;
  line-height:1.55;
  letter-spacing:0;
  font-kerning:normal;
  font-optical-sizing:auto;
}
/* Target text roles, leaving icon, logo and code font systems untouched. */
body.elementor-default :is(main,.site-footer) :is(p,ul,ol,dl,dt,dd,blockquote,figcaption),
body.elementor-default :is(input,textarea,select),
body.elementor-default .elementor-widget-text-editor,
body.elementor-default .elementor-widget-petextwrapper .text-wrapper,
body.elementor-default .elementor-widget-petextwrapper .text-wrapper>p,
body.elementor-default .elementor-widget-pelist .pe--list{
  font-family:var(--mpls-font-text)!important;
  letter-spacing:0!important;
  font-kerning:normal;
}
body.elementor-default .elementor-widget-text-editor,
body.elementor-default .elementor-widget-text-editor :is(p,li),
body.elementor-default .mpls-hifi-faq p{
  font-size:18px!important;
  font-weight:400!important;
  line-height:1.55!important;
}
/* Compact body rhythm; visual headlines retain their own tighter leading. */
body.elementor-default :is(input,textarea,select),
body.elementor-default .elementor-widget-pelist .pe--list,
body.elementor-default .elementor-widget-pelist .pe--list li{
  line-height:1.5!important;
}
body.elementor-default .elementor-widget-text-editor :is(p,ul,ol,blockquote){max-width:72ch}
body.elementor-default :is(main,.site-footer) :is(strong,b){font-weight:700}
body.elementor-default :is(main,.site-footer) :is(em,i):not([class]){font-family:var(--mpls-font-text);font-style:italic}
/* Semantics and native Elementor headings share one clear editorial hierarchy. */
body.elementor-default :is(main,.site-footer) :is(h1,h2,h3,h4,h5,h6),
body.elementor-default .elementor-widget-heading .elementor-heading-title,
body.elementor-default .elementor.elementor-element .text-wrapper :is(h1,h2,h3,h4,h5,h6){
  font-family:var(--mpls-font-display)!important;
  font-kerning:normal;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
}
body.elementor-default main .elementor-widget-heading h1.elementor-heading-title{
  font-size:clamp(42px,5.25vw,76px)!important;
  font-weight:400!important;
  line-height:1.03!important;
  letter-spacing:-.04em!important;
  max-width:22ch;
}
body.elementor-default main .elementor-widget-heading h2.elementor-heading-title,
body.elementor-default .mpls-hifi-faq>h2{
  font-size:clamp(32px,3.4vw,42px)!important;
  font-weight:400!important;
  line-height:1.12!important;
  letter-spacing:-.03em!important;
}
body.elementor-default main .elementor-widget-heading :is(h3,h4,h5,h6).elementor-heading-title,
body.elementor-default .mpls-hifi-faq h3{
  font-family:var(--mpls-font-display)!important;
  font-size:clamp(22px,2vw,26px)!important;
  font-weight:400!important;
  line-height:1.3!important;
  letter-spacing:-.015em!important;
}
/* PE's visual headlines sometimes use P tags; the companion script assigns their role. */
body.elementor-default .elementor-widget-petextwrapper.mpls-type-display .text-wrapper>:is(p,h1,h2,h3,h4,h5,h6){
  font-family:var(--mpls-font-display)!important;
  font-weight:400!important;
  letter-spacing:-.035em!important;
}
body.elementor-default .elementor-widget-petextwrapper.mpls-type-display .text-wrapper>:is(h3,h4,h5,h6){font-weight:400!important}
body.elementor-default .elementor-widget-petextwrapper.mpls-type-display .text-wrapper :is(strong,b){font-weight:400!important}
body.elementor-default .elementor-widget-petextwrapper.mpls-type-copy .text-wrapper>:is(p,h1,h2,h3,h4,h5,h6){
  font-family:var(--mpls-font-text)!important;
  font-weight:400!important;
  letter-spacing:0!important;
  line-height:1.5!important;
}
body.elementor-default .elementor-widget-petextwrapper.mpls-type-small .text-wrapper>:is(p,h1,h2,h3,h4,h5,h6){
  font-family:var(--mpls-font-text)!important;
  letter-spacing:.035em!important;
  line-height:1.45!important;
}
/* Section headings share the framed panels' Display Light face and tracking.
 * Preserve each section's scale, leading, color and native animation timeline.
 */
body.elementor-default :is(main,.site-footer) h2,
body.elementor-default main .elementor-widget-heading h2.elementor-heading-title,
body.elementor-default .elementor-widget-petextwrapper .text-wrapper>h2,
body.elementor-default .elementor-widget-petextwrapper.mpls-type-display .text-wrapper>h2{
  --anim--letter--spacing:-.03em;
  font-family:var(--mpls-font-display)!important;
  font-weight:400!important;
  font-style:normal;
  letter-spacing:-.03em!important;
}
/* Every title uses the homepage's licensed Display Light face, including
 * smaller headings and PE headlines written as paragraphs. Native animation
 * spans inherit these metrics rather than keeping a heavier fallback face.
 * Keep existing scale, leading, tracking, color and surrounding copy intact.
 */
body.elementor-default :is(main,.site-footer) :is(h1,h2,h3,h4,h5,h6,[role="heading"]),
body.elementor-default .elementor-widget-heading .elementor-heading-title,
body.elementor-default .pe--call--to--action .element--title>:is(p,h1,h2,h3,h4,h5,h6),
body.elementor-default .elementor-widget-petextwrapper:is(.mpls-type-copy,.mpls-type-small,.mpls-type-display) .text-wrapper>:is(h1,h2,h3,h4,h5,h6,[role="heading"]),
body.elementor-default .elementor-widget-petextwrapper.mpls-type-display .text-wrapper>:is(p,h1,h2,h3,h4,h5,h6){
  font-family:var(--mpls-font-display)!important;
  font-weight:400!important;
  font-synthesis:none;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body.elementor-default :is(main,.site-footer) :is(h1,h2,h3,h4,h5,h6,[role="heading"]) :is(span,a,strong,b,em),
body.elementor-default .elementor-widget-heading .elementor-heading-title :is(span,a,strong,b,em),
body.elementor-default .pe--call--to--action .element--title>:is(p,h1,h2,h3,h4,h5,h6) :is(span,a,strong,b,em),
body.elementor-default .elementor-widget-petextwrapper:is(.mpls-type-copy,.mpls-type-small,.mpls-type-display) .text-wrapper>:is(h1,h2,h3,h4,h5,h6,[role="heading"]) :is(span,a,strong,b,em),
body.elementor-default .elementor-widget-petextwrapper.mpls-type-display .text-wrapper>:is(p,h1,h2,h3,h4,h5,h6) :is(span,a,strong,b,em){
  font-family:inherit!important;
  font-weight:inherit!important;
  font-synthesis:none;
  font-kerning:inherit;
  text-rendering:inherit;
}
/* Keep the rotating hero title elegant and robust at every breakpoint. */
body.elementor-default .elementor-element-29d091cc .text-wrapper>p{
  font-family:var(--mpls-font-display)!important;
  font-size:clamp(42px,5.1vw,86px)!important;
  font-weight:400!important;
  line-height:1.12!important;
  letter-spacing:-.04em!important;
}
body.elementor-default .elementor-element-29d091cc .pe-dynamic-words{
  width:var(--mpls-dynamic-width,3.7em)!important;
  height:var(--mpls-dynamic-line,1.12em)!important;
  line-height:var(--mpls-dynamic-line,1.12em)!important;
  vertical-align:top;
}
body.elementor-default .elementor-element-29d091cc .pe-dynamic-words>span,
body.elementor-default .elementor-element-29d091cc .pe-dynamic-words>span>span{line-height:inherit!important}
/* Eyebrows and leads are differentiated, rather than enlarging every paragraph. */
body.elementor-default .elementor-widget-text-editor.mpls-type-eyebrow,
body.elementor-default .elementor-widget-text-editor.mpls-type-eyebrow p{
  font-family:var(--mpls-font-text)!important;
  font-size:12px!important;
  font-weight:500!important;
  line-height:1.45!important;
  letter-spacing:.14em!important;
}
body.elementor-default .elementor-widget-text-editor.mpls-type-lead,
body.elementor-default .elementor-widget-text-editor.mpls-type-lead p{
  font-size:clamp(18px,1.6vw,20px)!important;
  font-weight:400!important;
  line-height:1.5!important;
  letter-spacing:0!important;
  max-width:65ch;
}
body.elementor-default :is(.widget-image-caption,.wp-caption-text,figcaption,.client-caption){
  font-family:var(--mpls-font-text)!important;
  font-size:13px!important;
  font-weight:400!important;
  line-height:1.45!important;
  letter-spacing:.015em!important;
}
/* UI typography has its own compact, carefully spaced rhythm. */
body.elementor-default :is(.elementor-button,.pe--button--text,.toggle--text--wrapper,.pe--clock){
  font-family:var(--mpls-font-text)!important;
  font-weight:500!important;
  letter-spacing:.065em!important;
}
body.elementor-default .elementor-button{
  font-size:13px!important;
  line-height:1.35!important;
  white-space:normal;
}
body.elementor-default .menu--toggle :is(.toggle--text--wrapper,.text-hover){font-size:12px!important;letter-spacing:.07em!important}
body.elementor-default .pe--clock{font-size:12px!important;font-variant-numeric:tabular-nums;letter-spacing:.055em!important}
body.elementor-default .site-header .menu--popup .menu--link,
body.elementor-default .site-footer .main-menu .menu--link{
  font-family:var(--mpls-font-display)!important;
  font-weight:500!important;
  letter-spacing:-.015em!important;
  white-space:normal!important;
  overflow-wrap:normal;
  word-break:normal;
}
body.elementor-default .site-header .menu--popup .menu--link{font-size:clamp(18px,5.6vw,29px)!important;line-height:1.3!important}
body.elementor-default .site-footer .main-menu .menu--link{font-size:clamp(18px,4.8vw,27px)!important;line-height:1.35!important}
body.elementor-default :is(main,.site-footer) :is(table,th,td){
  font-family:var(--mpls-font-text)!important;
  font-size:16px!important;
  line-height:1.45!important;
  letter-spacing:0!important;
  font-variant-numeric:lining-nums tabular-nums;
}
body.elementor-default main th{font-weight:500!important}
body.elementor-default main td{font-weight:400!important}
@media(max-width:767px){
  body.elementor-default{font-size:17.5px}
  body.elementor-default .elementor-widget-text-editor,
  body.elementor-default .elementor-widget-text-editor :is(p,li),
  body.elementor-default .mpls-hifi-faq p{font-size:17.5px!important;line-height:1.55!important}
  body.elementor-default .elementor-widget-text-editor.mpls-type-eyebrow,
  body.elementor-default .elementor-widget-text-editor.mpls-type-eyebrow p{font-size:11px!important}
  body.elementor-default .elementor-widget-text-editor.mpls-type-lead,
  body.elementor-default .elementor-widget-text-editor.mpls-type-lead p{font-size:18px!important;line-height:1.5!important}
  body.elementor-default .elementor-widget-petextwrapper.mpls-type-copy .text-wrapper>:is(p,h1,h2,h3,h4,h5,h6){line-height:1.5!important}
  body.elementor-default :is(main,.site-footer) :is(table,th,td){font-size:15px!important}
}

body.elementor-default .mpls-hifi-faq p{max-width:72ch}

/* Interior pages use a bounded editorial hierarchy instead of inheriting
 * oversized PE H2 presets. Native smaller headings and homepage scales stay
 * distinct; phone primary titles remain prominent without crowding the page.
 * Converted H2 card/quote roles keep their native smaller preset sizes:
 * About's services rows and Services' four cards plus closing quote.
 */
body.elementor-default:not(.home) main .elementor-widget-petextwrapper .text-wrapper>h2:not(:where(.elementor-element-e7d302d *,.elementor-element-53ecbd66 *,.elementor-element-11479108 *,.elementor-element-28343b0f *,.elementor-element-55c002f8 *,.elementor-element-2128b809 *)),
body.elementor-default:not(.home) main .elementor-widget-petextwrapper .text-wrapper>[role="heading"][aria-level="2"]:not(:where(.elementor-element-e7d302d *,.elementor-element-53ecbd66 *,.elementor-element-11479108 *,.elementor-element-28343b0f *,.elementor-element-55c002f8 *,.elementor-element-2128b809 *)){
  font-size:clamp(32px,3.4vw,56px)!important;
  line-height:1.2!important;
}
@media(max-width:767px){
  body.elementor-default:not(.home) main h1,
  body.elementor-default:not(.home) main [role="heading"][aria-level="1"],
  body.elementor-default:not(.home) main .elementor-widget-heading h1.elementor-heading-title,
  body.elementor-default:not(.home) main .elementor-widget-petextwrapper .text-wrapper>h1,
  body.elementor-default:not(.home) main :is(.elementor-element-24703f56,.elementor-element-1df14b5a).mpls-type-display .text-wrapper>p{
    font-size:clamp(38px,11vw,48px)!important;
    line-height:1.12!important;
  }
  body.elementor-default:not(.home) main h2:not(:where(.pe--call--to--action h2,.elementor-element-e7d302d *,.elementor-element-53ecbd66 *,.elementor-element-11479108 *,.elementor-element-28343b0f *,.elementor-element-55c002f8 *,.elementor-element-2128b809 *)),
  body.elementor-default:not(.home) main [role="heading"][aria-level="2"]:not(:where(.pe--call--to--action *,.elementor-element-e7d302d *,.elementor-element-53ecbd66 *,.elementor-element-11479108 *,.elementor-element-28343b0f *,.elementor-element-55c002f8 *,.elementor-element-2128b809 *)),
  body.elementor-default:not(.home) main .elementor-widget-heading h2.elementor-heading-title:not(:where(.elementor-element-e7d302d *,.elementor-element-53ecbd66 *,.elementor-element-11479108 *,.elementor-element-28343b0f *,.elementor-element-55c002f8 *,.elementor-element-2128b809 *)),
  body.elementor-default:not(.home) main .elementor-widget-petextwrapper .text-wrapper>h2:not(:where(.elementor-element-e7d302d *,.elementor-element-53ecbd66 *,.elementor-element-11479108 *,.elementor-element-28343b0f *,.elementor-element-55c002f8 *,.elementor-element-2128b809 *)),
  body.elementor-default:not(.home) main .elementor-widget-petextwrapper .text-wrapper>[role="heading"][aria-level="2"]:not(:where(.elementor-element-e7d302d *,.elementor-element-53ecbd66 *,.elementor-element-11479108 *,.elementor-element-28343b0f *,.elementor-element-55c002f8 *,.elementor-element-2128b809 *)),
  body.elementor-default:not(.home) main .elementor-widget-petextwrapper.elementor-element-1fd1963 .text-wrapper>p{
    font-size:clamp(32px,10vw,42px)!important;
    line-height:1.2!important;
  }
}

/* Keep real titles within narrow phone columns. Native SplitText retains
 * ownership of its line/word wrappers and automatically reflows on resize.
 */
@media(max-width:767px){
  body.elementor-default :is(main,.site-footer) :is(h1,h2,h3,h4,h5,h6,[role="heading"]),
  body.elementor-default .elementor-widget-heading .elementor-heading-title,
  body.elementor-default .pe--call--to--action .element--title>:is(p,h1,h2,h3,h4,h5,h6),
  body.elementor-default .elementor-widget-petextwrapper:is(.mpls-type-copy,.mpls-type-small,.mpls-type-display) .text-wrapper>:is(h1,h2,h3,h4,h5,h6,[role="heading"]),
  body.elementor-default .elementor-widget-petextwrapper.mpls-type-display .text-wrapper>:is(p,h1,h2,h3,h4,h5,h6){
    min-width:0;
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  body.elementor-default :is(.elementor-widget-heading,.elementor-widget-petextwrapper.mpls-type-display){
    min-width:0;
    max-width:100%;
  }

  /* The Visit details inherited desktop half-width heading/contact columns.
   * Stack those pairs so the appointment title and contact details each get
   * the full content width, without changing the desktop composition.
   */
  body.page-id-33.elementor-default main .elementor-element-4ed6cdbb{
    min-width:0;
    max-width:100%;
  }
  body.page-id-33.elementor-default main :is(.elementor-element-5eeaf32,.elementor-element-5fdfd84,.elementor-element-1ee85f4f){
    --flex-direction:column;
    --container-widget-width:100%;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:20px!important;
    min-width:0;
    max-width:100%;
  }
  body.page-id-33.elementor-default main :is(.elementor-element-5eeaf32,.elementor-element-5fdfd84,.elementor-element-1ee85f4f)>:is(.e-con,.elementor-widget){
    width:100%!important;
    max-width:100%!important;
    min-width:0;
    flex-basis:auto!important;
  }
  body.page-id-33.elementor-default main .elementor-element-1df14b5a .text-wrapper>:is(p,h1){
    font-size:clamp(38px,11vw,48px)!important;
    line-height:1.12!important;
  }
  body.page-id-33.elementor-default main :is(.elementor-element-3d931979,.elementor-element-29c700dd,.elementor-element-4942f748) .text-wrapper>:is(p,h2){
    font-size:clamp(32px,9vw,42px)!important;
    line-height:1.12!important;
  }
  body.page-id-33.elementor-default main .elementor-element-4ed6cdbb :is(.elementor-widget-pebutton,.pe--button,.pe--button--wrapper,.pb--handle){
    min-width:0;
    max-width:100%;
  }
  body.page-id-33.elementor-default main .elementor-element-4ed6cdbb .pe--button--text{
    min-width:0;
    white-space:normal!important;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  body.page-id-33.elementor-default main .elementor-element-4ed6cdbb .pe--button--icon{
    flex:0 0 auto;
  }
}
