/* Scope the provider homepage design to main content; shared header/footer keep their existing styles. */
.plexus-home {
    --px-ink: #25263d;
    --px-muted: #5b5d72;
    --px-accent: #5D7CE9;
    --px-paper: #f9fafe;
    --px-line: #dfe5fb;
    margin: 0;
    background: var(--px-paper);
    color: var(--px-ink);
    font-family: 'Segoe UI', Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}
.plexus-home *, .plexus-home *::before, .plexus-home *::after { box-sizing: border-box; }
.plexus-home h1, .plexus-home h2, .plexus-home h3, .plexus-home p { margin: 0; color: inherit; font-family: inherit; }
.plexus-home h1, .plexus-home h2 { font-weight: 700; letter-spacing: -0.035em; text-wrap: balance; }
.plexus-home h2 { font-size: clamp(32px, 3.2vw, 46px); line-height: 1.15; }
.plexus-home h3 { font-weight: 600; letter-spacing: -0.025em; }
.plexus-home p { font-size: 16px; line-height: 1.75; }
.plexus-home a { color: inherit; text-decoration: none; transition: color 160ms, background-color 160ms; }
.plexus-home a:hover { color: var(--px-accent); }
.plexus-home a:focus-visible, .plexus-home summary:focus-visible { outline: 3px solid #5D7CE9; outline-offset: 5px; }
.plexus-home ul { margin: 0; padding: 0; }
.plexus-home .px-shell { width: min(1280px, calc(100% - 112px)); margin-inline: auto; }
/* The header scrolls away before these sections enter the viewport. */
.plexus-home .px-section { display: grid; align-content: center; min-height: 100svh; min-height: 100dvh; padding-block: clamp(24px, 4vh, 48px); }
.plexus-home .px-eyebrow { font-size: 11px; line-height: 1.6; font-weight: 600; text-transform: uppercase; letter-spacing: 0.16em; margin-bottom: 25px; }
.plexus-home .px-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--px-accent); flex-shrink: 0; }
.plexus-home .px-button { display: inline-flex; align-items: center; justify-content: center; gap: 32px; padding: 18px 24px; min-height: 52px; border-radius: 5px; background: var(--px-accent); color: #fff; font-size: 14px; font-weight: 600; line-height: 1.4; }
.plexus-home .px-button:hover { background: #4A63C9; color: #fff; }
.plexus-home .px-button span { font-size: 19px; }
.plexus-home .px-text-link { display: inline-flex; align-items: center; gap: 20px; font-size: 14px; font-weight: 600; padding-block: 12px; }
.plexus-home .px-text-link:hover .px-link-label { text-decoration: underline; text-underline-offset: 5px; }
.px-skip { position: fixed; top: -100px; left: 20px; z-index: 100; padding: 16px; background: #fff; }
.px-skip:focus { top: 10px; }
.plexus-home .px-hero { position: relative; display: grid; min-height: calc(100vh - var(--px-header-height, 118px)); min-height: calc(100dvh - var(--px-header-height, 118px)); overflow: hidden; background: #dedafa; }
.plexus-home .px-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.plexus-home .px-hero-inner { position: relative; display: flex; align-items: center; padding-block: 72px; }
.plexus-home .px-hero-copy { width: 48%; max-width: 590px; }
main.plexus-home .px-hero-copy { position: relative; top: -24px; }
.plexus-home .px-hero .px-eyebrow { display: flex; align-items: center; gap: 10px; }
.plexus-home .px-hero h1 { font-size: clamp(44px, 4.35vw, 66px); line-height: 1.04; margin-bottom: 28px; }
.plexus-home .px-heading-accent { color: var(--px-accent); }
.plexus-home .px-hero-lead { max-width: 520px; font-size: 17px; line-height: 1.7; color: #41445f; }
.plexus-home .px-hero .px-button { font-size: 18px; }
.plexus-home .px-actions { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; margin-top: 30px; }
.plexus-home .px-hero-caption { position: absolute; right: 36px; bottom: 28px; display: flex; gap: 10px; align-items: center; font-size: 11px; padding: 13px 18px; background: #f9fafeed; border: 1px solid #fff9; border-radius: 4px; }
.plexus-home .px-section-heading { display: grid; grid-template-columns: 1.3fr 1fr; gap: 80px; align-items: end; margin-bottom: 28px; }
.plexus-home .px-section-heading > p { max-width: 390px; justify-self: end; color: var(--px-muted); }
.plexus-home .px-label { display: inline-block; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600; }
.plexus-home .px-network-audience { color: #000; font-weight: 600; }
.plexus-home .px-network-links { display: flex; align-items: baseline; gap: 24px; margin-top: 24px; }
.plexus-home .px-network-links .px-text-link { gap: 8px; }
.plexus-home .px-network-image { min-width: 0; margin: 0; overflow: hidden; border-radius: 8px; }
.plexus-home .px-network-image img { display: block; width: 100%; height: auto; }
.plexus-home .px-services-section { background: #f2f5fd; border-block: 1px solid var(--px-line); }
.plexus-home .px-services-section .px-shell { max-width: 1120px; padding-block: 24px; }
.plexus-home .px-services-section .px-section-heading { display: block; margin-bottom: 24px; }
.plexus-home .px-services-section h2 { color: #000; }
.plexus-home .px-services-section .px-eyebrow { margin-bottom: 16px; }
.plexus-home .px-services-section .px-section-heading h2 + p { max-width: 820px; margin-top: 12px; }
.plexus-home .px-services-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid #d8dff9; border-radius: 8px; overflow: hidden; gap: 1px; background: #d8dff9; }
.plexus-home .px-service { position: relative; min-width: 0; min-height: clamp(270px, 32vh, 330px); background: var(--px-paper); perspective: 1400px; }
.plexus-home .px-service:has(#service-records-illustration) { --px-paper: #E3E8F9; }
.plexus-home .px-service-inner { display: grid; height: 100%; transform-style: preserve-3d; transition: transform 1200ms cubic-bezier(.45, 0, .2, 1); }
.plexus-home .px-service.is-flipped .px-service-inner { transform: rotateY(180deg); }
.plexus-home .px-service-front, .plexus-home .px-service-back { grid-area: 1 / 1; min-width: 0; padding: 24px 28px 48px; background: var(--px-paper); backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.plexus-home .px-service-front { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: center; column-gap: 18px; }
.plexus-home .px-service-front > p:not(.px-service-availability) { grid-column: 1; grid-row: 3; }
.plexus-home .px-service-front > h3 { grid-column: 1 / -1; }
.plexus-home .px-service-back { position: relative; margin: 0; padding: 0; transform: rotateY(180deg); }
.plexus-home .px-service-back img { position: absolute; inset: 8px 12px 38px; display: block; width: calc(100% - 24px); height: calc(100% - 46px); object-fit: contain; border-radius: 12px; }
.plexus-home .px-service-toggle { position: absolute; inset: 0; width: 100%; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; border: 0; padding: 16px 120px 16px 22px; background: transparent; color: #435ebd; font: 600 12px/1.4 'Segoe UI', Arial, sans-serif; cursor: pointer; text-align: left; }
.plexus-home .px-service-toggle[hidden] { display: none; }
.plexus-home .px-service-hint { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; background: rgb(28 33 61 / 94%); color: #fff; font-size: 24px; font-weight: 600; text-align: center; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 180ms, visibility 180ms; }
.plexus-home .px-service.is-hint-visible .px-service-hint { opacity: 1; visibility: visible; transition: opacity 750ms ease-in, visibility 0s; }
.plexus-home .px-service.is-hint-fading .px-service-hint { transition: opacity 700ms ease-in-out, visibility 0s linear 700ms; }
.plexus-home .px-service-pricing { position: absolute; right: 22px; bottom: 2px; z-index: 1; display: inline-flex; align-items: center; min-height: 44px; color: #435ebd; font-size: 12px; font-weight: 600; text-decoration: underline; }
.plexus-home .px-service:has(.px-service-toggle:focus-visible) { outline: 3px solid var(--px-accent); outline-offset: -4px; }
.plexus-home .px-service-toggle:focus-visible { outline: none; }
.plexus-home .px-service-top { grid-column: 1 / -1; display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin-bottom: 10px; }
.plexus-home .px-service-icon { grid-column: 1 / -1; grid-row: 4; display: grid; place-items: center; justify-self: center; width: 96px; height: 96px; margin-top: 12px; color: #11141B; font-size: 64px; }
.plexus-home .px-service-top .px-label { color: var(--px-muted); font-size: 9px; letter-spacing: 0.06em; text-align: right; }
.plexus-home .px-service h3 { font-size: 21px; line-height: 1.25; margin-bottom: 8px; }
/* Override the shared landing stylesheet's important 18px paragraph rule in compact cards. */
.plexus-home .px-service-front > p { color: var(--px-muted); font-size: 15px !important; line-height: 1.6; }
.plexus-home .px-service-front > .px-service-availability { grid-column: 2; grid-row: 3; align-self: end; color: var(--px-ink); font-weight: 600; white-space: nowrap; }
.plexus-home .px-service-insights, .plexus-home .px-service-insights .px-service-front, .plexus-home .px-service-insights .px-service-back { background: #e5eafb; }
.plexus-home .px-spaces { display: grid; grid-template-columns: 1fr 1.35fr; gap: 64px; align-items: center; }
.plexus-home .px-spaces-copy > p:not(.px-eyebrow) { color: var(--px-muted); margin-block: 25px 18px; }
.plexus-home .px-spaces-preview { min-width: 0; margin: 0; }
.plexus-home .px-spaces-window { overflow: hidden; border: 1px solid #dce4e8; border-radius: 12px; background: #fff; box-shadow: 0 12px 36px #25325d08; color: #334155; }
.plexus-home .px-spaces-topbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; border-bottom: 1px solid #e3e9ec; }
.plexus-home .px-spaces-topbar strong { font-size: 14px; }
.plexus-home .px-spaces-layout { display: grid; grid-template-columns: 42px 136px minmax(0, 1fr); min-height: 340px; }
.plexus-home .px-spaces-rail { display: flex; flex-direction: column; align-items: center; gap: 12px; padding-block: 16px; background: #f7faf9; border-right: 1px solid #e3e9ec; }
.plexus-home .px-spaces-rail-icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--px-accent); background: #fff; font-size: 12px; font-weight: 600; }
.plexus-home .px-spaces-rail-selected { background: var(--px-accent); color: #fff; }
.plexus-home .px-spaces-rail-divider { width: 20px; height: 1px; background: #dce4e8; }
.plexus-home .px-spaces-sidebar { padding: 18px 8px; background: #f7faf9; border-right: 1px solid #e3e9ec; }
.plexus-home .px-spaces-space-name { display: block; padding-inline: 5px; font-size: 12px; }
.plexus-home .px-spaces-group { display: block; padding: 22px 5px 6px; color: #64748b; font-size: 10px; font-weight: 600; }
.plexus-home .px-spaces-channel { display: flex; align-items: center; gap: 5px; padding: 8px 5px; border-radius: 4px; font-size: 11px; line-height: 1.4; }
.plexus-home .px-spaces-channel i { font-size: 10px; }
.plexus-home .px-spaces-channel-selected { background: #e9edff; color: #4056ad; font-weight: 600; }
.plexus-home .px-spaces-feed { min-width: 0; display: flex; flex-direction: column; }
.plexus-home .px-spaces-feed-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 14px 12px; font-size: 12px; }
.plexus-home .px-spaces-feed-header > i { color: #64748b; }
.plexus-home .px-spaces-search { display: flex; align-items: center; gap: 8px; margin-inline: 14px; padding: 8px 10px; border: 1px solid #e3e9ec; border-radius: 5px; color: #64748b; font-size: 10px; }
.plexus-home .px-spaces-messages { flex: 1; padding: 14px; }
.plexus-home .px-spaces-day { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; color: #64748b; font-size: 9px; }
.plexus-home .px-spaces-day::before, .plexus-home .px-spaces-day::after { content: ''; height: 1px; flex: 1; background: #edf1f3; }
.plexus-home .px-spaces-message { display: flex; align-items: flex-start; gap: 9px; margin-bottom: 20px; }
.plexus-home .px-spaces-message:last-child { margin-bottom: 0; }
.plexus-home .px-spaces-avatar { display: grid; place-items: center; flex: 0 0 27px; height: 27px; border-radius: 50%; background: #d8eeeb; color: #116a64; font-size: 9px; font-weight: 600; }
.plexus-home .px-spaces-avatar-specialist { background: #f7e6e1; color: #913822; }
.plexus-home .px-spaces-message strong { display: block; font-size: 11px; line-height: 1.5; }
/* Keep the miniature feed independent of the shared main-paragraph size override. */
.plexus-home .px-spaces-message p { margin-top: 3px; font-size: 12px !important; line-height: 1.6; color: #475569; }
.plexus-home .px-spaces-replies { display: inline-block; margin-top: 6px; font-size: 10px; color: #4056ad; }
.plexus-home .px-spaces-reaction { display: inline-flex; align-items: center; gap: 5px; margin-top: 8px; padding: 3px 7px; border: 1px solid #e3e9ec; border-radius: 10px; font-size: 10px; }
.plexus-home .px-spaces-composer { margin: 0 14px 14px; padding: 12px; border: 1px solid #dce4e8; border-radius: 7px; color: #64748b; font-size: 10px; }
.plexus-home .px-spaces-composer > div { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.plexus-home .px-spaces-send { margin-left: auto; padding: 5px 9px; border-radius: 4px; background: var(--px-accent); color: #fff; }
.plexus-home .px-model-section { background: #25325d; color: #f9fafe; }
.plexus-home .px-model { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: center; }
.plexus-home .px-model > div > p:not(.px-eyebrow) { color: #d8dff9; margin-block: 28px; }
.plexus-home .px-integrations-link { gap: 8px; font-size: 13px; }
.plexus-home .px-integrations-link:hover { color: #d8dff9; }
.plexus-home #ehr-integrations { scroll-margin-top: 24px; }
.plexus-home .px-button-light { background: #e5eafb; color: #25325d; }
.plexus-home .px-button-light:hover { background: #fff; color: #25325d; }
.plexus-home .px-model-list { margin: 0; }
.plexus-home .px-model-icon { display: none; }
.plexus-home .px-model-list > div { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.3fr); align-items: start; gap: 24px; padding-block: 14px; border-bottom: 1px solid #ffffff26; }
.plexus-home .px-model-list dt { font-size: 16px; line-height: 1.5; font-weight: 400; }
.plexus-home .px-model-list dd { margin: 0; font-size: 14px; line-height: 1.65; color: #d8dff9; text-align: right; }
.plexus-home .px-model-list > div:first-child { padding-top: 0; }
.plexus-home .px-mobile { text-align: center; background: #EFF2FD; border-bottom: 1px solid var(--px-line); }
.plexus-home .px-mobile-copy > p:not(.px-eyebrow) { max-width: 600px; margin: 24px auto 0; color: var(--px-muted); }
.plexus-home .px-mobile-store-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; margin-top: 36px; }
.plexus-home .px-mobile-store { display: flex; align-items: center; justify-content: center; gap: 20px; width: 300px; max-width: 100%; min-height: 108px; padding: 22px 26px; border: 1px solid var(--px-ink); border-radius: 12px; background: var(--px-ink); color: #fff; text-align: left; }
.plexus-home .px-mobile-store > i { flex: 0 0 52px; font-size: 52px; text-align: center; }
.plexus-home .px-mobile-play-icon { flex: 0 0 52px; width: 52px; height: 52px; }
.plexus-home .px-mobile-store small, .plexus-home .px-mobile-store strong { display: block; line-height: 1.4; }
.plexus-home .px-mobile-store small { font-size: 12px; }
.plexus-home .px-mobile-store strong { font-size: 28px; font-weight: 600; white-space: nowrap; }
.plexus-home .px-faq { display: grid; grid-template-columns: 1fr 1.35fr; gap: 90px; align-items: center; }
.plexus-home .px-faq > div > p:not(.px-eyebrow) { margin-top: 25px; color: var(--px-muted); font-size: 14px; }
.plexus-home .px-faq-list details { border-bottom: 1px solid var(--px-line); }
.plexus-home .px-faq-list details:first-child { border-top: 1px solid var(--px-line); }
.plexus-home .px-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 25px; cursor: pointer; padding-block: 24px; font-size: 15px; font-weight: 600; line-height: 1.5; list-style: none; }
.plexus-home summary::-webkit-details-marker { display: none; }
.plexus-home .px-faq-list summary::after { content: '+'; font-size: 22px; font-weight: 400; }
.plexus-home .px-faq-list details[open] summary::after { content: '−'; }
.plexus-home .px-faq-list details p { font-size: 14px; color: var(--px-muted); padding: 0 30px 25px 0; }
.plexus-home .px-faq-list details a { text-decoration: underline; text-underline-offset: 3px; }
.plexus-home .px-closing { text-align: center; background: #E5EAFB; }
.plexus-home .px-closing > .px-section { justify-items: center; }
.plexus-home .px-closing .px-button { margin-top: 80px; padding: 20px 32px; font-size: 20px; }
@media (max-width: 1199px) {
    .plexus-home .px-shell { width: calc(100% - 64px); }
    .plexus-home .px-hero-copy { width: 49%; }
    .plexus-home .px-section-heading, .plexus-home .px-spaces, .plexus-home .px-model, .plexus-home .px-faq { gap: 50px; }
}
@media (max-width: 900px) {
    .plexus-home .px-spaces { grid-template-columns: 1fr; }
    .plexus-home .px-section { min-height: auto; padding-block: 60px; }
    .plexus-home .px-hero-image { object-position: 57% center; }
    .plexus-home .px-hero-copy { width: 52%; }
    .plexus-home .px-hero h1 { font-size: 46px; }
    .plexus-home .px-hero .px-eyebrow { font-size: 9px; }
    .plexus-home .px-hero-lead { font-size: 15px; }
    .plexus-home .px-actions { gap: 8px 20px; }
    .plexus-home .px-hero-caption { right: 20px; bottom: 18px; font-size: 9px; }
    .plexus-home .px-section-heading { gap: 32px; }
    .plexus-home .px-section-heading > p { font-size: 14px; }
    .plexus-home .px-spaces, .plexus-home .px-model, .plexus-home .px-faq { gap: 38px; }
}
@media (max-width: 850px) {
    .plexus-home .px-spaces-layout { grid-template-columns: 32px 100px minmax(0, 1fr); }
    .plexus-home .px-spaces-rail-icon { width: 23px; height: 23px; font-size: 10px; }
    .plexus-home .px-spaces-topbar { padding: 12px; }
    .plexus-home .px-spaces-sidebar { padding: 16px 4px; }
    .plexus-home .px-spaces-space-name { font-size: 11px; }
    .plexus-home .px-spaces-channel { font-size: 10px; }
    .plexus-home .px-spaces-feed-header { padding: 14px 9px 10px; font-size: 11px; }
    .plexus-home .px-spaces-search { margin-inline: 9px; padding: 7px; }
    .plexus-home .px-spaces-messages { padding: 12px 9px; }
    .plexus-home .px-spaces-message { gap: 6px; }
    .plexus-home .px-spaces-avatar { flex-basis: 22px; height: 22px; font-size: 8px; }
    .plexus-home .px-spaces-message p { font-size: 11px !important; }
    .plexus-home .px-spaces-composer { margin: 0 9px 9px; padding: 9px; }
    .plexus-home .px-shell { width: calc(100% - 40px); }
    .plexus-home .px-section { padding-block: 60px; }
    .plexus-home .px-eyebrow { font-size: 10px; margin-bottom: 20px; }
    .plexus-home .px-actions { margin-top: 24px; }
    .plexus-home .px-button { padding: 16px 20px; gap: 22px; }
    .plexus-home .px-text-link { font-size: 13px; }
    .plexus-home .px-section-heading, .plexus-home .px-spaces, .plexus-home .px-model, .plexus-home .px-faq { grid-template-columns: 1fr; }
    .plexus-home .px-section-heading { gap: 22px; margin-bottom: 30px; }
    .plexus-home .px-section-heading > p { justify-self: start; max-width: none; font-size: 15px; }
    .plexus-home .px-model-list dt { font-size: 15px; }
    .plexus-home .px-faq-list summary { font-size: 14px; }
}
/* Center mobile copy and calls to action; stack features and keep UI previews directional. */
@media (max-width: 767px) {
    .plexus-home { text-align: center; }
    .plexus-home .px-hero h1, .plexus-home .px-hero-lead,
    .plexus-home .px-services-section .px-section-heading h2 + p { margin-inline: auto; }
    .plexus-home .px-actions, .plexus-home .px-network-links, .plexus-home .px-hero .px-eyebrow { justify-content: center; }
    .plexus-home .px-section-heading > p { justify-self: center; }
    .plexus-home .px-model-list > div { grid-template-columns: 1fr; gap: 6px; padding-block: 18px; }
    .plexus-home #model .px-model-list > div { position: relative; grid-template-columns: minmax(0, 1fr); padding-left: 56px; text-align: left; }
    .plexus-home .px-model-icon { position: absolute; inset-block: 18px; left: 0; display: flex; align-items: center; justify-content: center; width: 36px; font-size: 28px; color: #d8dff9; }
    .plexus-home .px-model-list > div:first-child .px-model-icon { top: 0; }
    .plexus-home .px-model-list dt { font-weight: 600; }
    .plexus-home .px-model-list dd { text-align: center; }
    .plexus-home #model .px-model-list dd { text-align: left; }
    .plexus-home .px-spaces-preview, .plexus-home .px-faq-list { text-align: left; }
}
@media (max-width: 600px) {
    .plexus-home .px-services-grid { grid-template-columns: 1fr; }
    .plexus-home .px-service-front { grid-template-columns: 1fr; }
    .plexus-home .px-service-front > .px-service-availability { grid-column: 1; grid-row: 5; margin-top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .plexus-home *, .plexus-home *::before, .plexus-home *::after { transition: none; scroll-behavior: auto; }
    .plexus-home .px-service-inner, .plexus-home .px-service-hint, .plexus-home .px-service.is-hint-visible .px-service-hint, .plexus-home .px-service.is-hint-fading .px-service-hint { transition: none; }
}

@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}

/* Let desktop scrolling settle near a section without forcing every gesture to snap. */
@media (min-width: 901px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    html:has(.plexus-home) { scroll-snap-type: y proximity; }
    html.px-scroll-assist:has(.plexus-home) { scroll-snap-type: none; }
    .plexus-home > section { scroll-snap-align: start; }
    .plexus-home > .px-hero { scroll-snap-align: end; }
    body:has(.plexus-home) > header,
    body:has(.plexus-home) > footer { scroll-snap-align: start; }
}
