.rpm-service {
    color: #172338;
    background: #fff;
    --rpm-ink: #172338;
    --rpm-copy: #536174;
    --rpm-line: #e4e9ee;
}

.rpm-service *,
.rpm-service *::before,
.rpm-service *::after { box-sizing: border-box; }
.rpm-service img { max-width: 100%; height: auto; }
.rpm-container { width: min(1240px, calc(100% - 64px)); margin-inline: auto; }
.rpm-section { padding-block: clamp(56px, 6vw, 96px); scroll-margin-top: 32px; }
.rpm-service h1, .rpm-service h2, .rpm-service h3 { color: var(--rpm-ink); font-weight: 650; letter-spacing: -.035em; }
.rpm-service h1 { font-size: clamp(32px, 3.3vw, 48px); line-height: 1.18; margin: 0 0 22px; }
.rpm-service h2 { font-size: clamp(29px, 2.6vw, 38px); line-height: 1.22; margin: 0 0 22px; }
.rpm-service h3 { font-size: 20px; line-height: 1.35; letter-spacing: -.02em; margin: 0 0 12px; }
.rpm-service p { color: var(--rpm-copy); font-size: 16px; line-height: 1.75; margin: 0 0 20px; }
.rpm-service .btn { border-radius: 10px; padding: 12px 20px; font-weight: 600; font-size: 15px; }
.rpm-service .btn-sm { padding: 10px 16px; font-size: 14px; }
.rpm-heading { max-width: 860px; margin: 0 auto 60px; text-align: center; }
.rpm-heading > p { max-width: 750px; margin-inline: auto; font-size: 18px; }
.rpm-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: center; margin-top: 28px; }
.rpm-actions--start { justify-content: flex-start; }
.rpm-intro { background: radial-gradient(ellipse at 10% 70%, #fff0f4 0, transparent 45%), #fff; }
.rpm-feature-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 56px; align-items: center; }
.rpm-feature-heading { grid-column: 1 / -1; max-width: 860px; margin-inline: auto; text-align: center; }
.rpm-feature-heading p { margin-bottom: 0; }
.rpm-visual--overview img { display: block; width: 100%; border: 1px solid var(--rpm-line); border-radius: 14px; box-shadow: 0 18px 40px -22px rgb(23 35 56 / 35%); }
.rpm-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 26px; }
.rpm-feature { display: flex; gap: 16px; align-items: flex-start; }
.rpm-feature > img { width: 44px; height: 44px; flex: 0 0 44px; object-fit: contain; }
.rpm-feature h3 { font-size: 17px; margin-bottom: 8px; }
.rpm-feature p { font-size: 14px; line-height: 1.7; margin: 0; }
.rpm-feature.rpm-feature--brand { display: block; }
.rpm-feature--brand > img { width: auto; max-width: 150px; height: 42px; margin-bottom: 14px; }
.rpm-band { background: #f5f8fb; }
.rpm-split { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.rpm-copy > h3 { margin-top: 28px; }
.rpm-text-link { display: inline-flex; align-items: center; color: #2164dc; font-weight: 600; font-size: 15px; line-height: 1.5; text-decoration: none; }
.rpm-text-link:hover, .rpm-study-link:hover { text-decoration: underline; }
.rpm-visual { min-width: 0; position: relative; }
.rpm-devices { background: #f8fafc; }
.rpm-device-intro { margin-bottom: clamp(38px, 5vw, 60px); }
.rpm-visual--connections img { display: block; width: 100%; border: 1px solid var(--rpm-line); border-radius: 14px; box-shadow: 0 18px 40px -22px rgb(23 35 56 / 35%); }
.rpm-device-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.rpm-device-card { display: grid; grid-template-columns: 180px 1fr; align-items: start; background: #fff; border: 1px solid var(--rpm-line); border-radius: 20px; padding: 30px 26px; gap: 24px; }
.rpm-device-image { display: flex; align-items: center; justify-content: center; height: 190px; margin-top: 25px; }
.rpm-device-image img { max-height: 190px; width: 100%; object-fit: contain; }
.rpm-device-image--watch img { max-height: 155px; }
.rpm-device-copy { min-width: 0; }
.rpm-device-copy .badge { font-size: 10px; letter-spacing: .01em; font-weight: 600; margin-bottom: 12px; }
.rpm-device-copy h3 { font-size: 21px; }
.rpm-device-copy p { font-size: 14px; line-height: 1.75; margin-bottom: 14px; }
.rpm-device-copy p:last-child { margin-bottom: 0; }
.rpm-device-copy .rpm-text-link { font-size: 14px; }
.rpm-study-link { display: block; font-size: 13px; color: #536174; margin-top: 16px; }
.rpm-visual--patient img { width: 100%; }
.rpm-visual--monitoring img, .rpm-visual--monitoring-chart img { display: block; width: 100%; }
.rpm-visual--monitoring-chart img { border: 1px solid var(--rpm-line); border-radius: 14px; box-shadow: 0 18px 40px -22px rgb(23 35 56 / 35%); }
.rpm-sleep-devices, .rpm-monitoring-devices { display: block; width: min(100%, 280px); margin: 24px auto 0; }
.rpm-visual--glucose { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto auto; align-items: start; }
.rpm-glucose-chart { display: block; width: 100%; grid-column: 2 / -1; grid-row: 1; border: 1px solid var(--rpm-line); border-radius: 14px; box-shadow: 0 18px 40px -22px rgb(23 35 56 / 35%); }
.rpm-glucose-devices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; gap: 12px; width: 100%; grid-column: 1 / 11; grid-row: 1 / 3; margin-top: 42%; z-index: 1; filter: drop-shadow(0 12px 18px rgb(23 35 56 / 12%)); }
.rpm-glucose-devices img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.rpm-apple-health-logo { display: block; width: 240px; }
.rpm-visual--tremor img { display: block; width: 100%; max-height: 500px; object-fit: contain; }
.rpm-contact { text-align: center; background: radial-gradient(ellipse at bottom, #fff0f4, #fff 65%); }
.rpm-service a:focus-visible, .rpm-service button:focus-visible { outline: 3px solid #377dff; outline-offset: 5px; }

@media (max-width: 1199.98px) {
    .rpm-feature-layout, .rpm-split { gap: 44px; }
    .rpm-feature-grid { gap: 24px 18px; }
    .rpm-feature { display: block; }
    .rpm-feature > img { margin-bottom: 12px; }
    .rpm-device-card { grid-template-columns: 140px 1fr; gap: 20px; padding: 26px 22px; }
}

@media (max-width: 991.98px) {
    .rpm-feature-layout { grid-template-columns: 1fr; gap: 32px; }
    .rpm-visual--overview { width: min(100%, 760px); margin-inline: auto; }
    .rpm-feature-grid { gap: 28px; }
    .rpm-feature { display: flex; }
    .rpm-feature:not(.rpm-feature--brand) > img { margin-bottom: 0; }
    .rpm-split { gap: 32px; }
    .rpm-device-card { display: flex; flex-direction: column; padding: 28px; gap: 20px; }
    .rpm-device-image { width: 100%; height: 180px; margin: 0; }
    .rpm-device-image img { max-width: 260px; max-height: 180px; }
}

@media (max-width: 767.98px) {
    .rpm-container { width: calc(100% - 40px); }
    .rpm-heading { margin-bottom: 38px; }
    .rpm-heading > p { font-size: 17px; }
    .rpm-feature-layout, .rpm-split { grid-template-columns: 1fr; gap: 38px; }
    .rpm-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 22px; }
    .rpm-feature { display: block; }
    .rpm-feature > img { margin-bottom: 12px; }
    .rpm-device-grid { grid-template-columns: 1fr; gap: 20px; }
    .rpm-device-card { padding: 28px; }
    .rpm-split--reverse .rpm-copy { grid-row: 1; }
    .rpm-service p { font-size: 16px; }
    .rpm-feature p, .rpm-device-copy p { font-size: 15px; }
    .rpm-contact .rpm-actions { flex-direction: column; }
    .rpm-contact .btn { width: min(100%, 320px); }
}

@media (max-width: 575.98px) {
    .rpm-feature-grid { grid-template-columns: 1fr; }
    .rpm-feature { display: flex; }
    .rpm-feature:not(.rpm-feature--brand) > img { margin-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .rpm-service * { scroll-behavior: auto; transition: none; }
}
