.rp-home,
.rp-city-page {
    --rp-ink: #101418;
    --rp-ink-soft: #26313a;
    --rp-muted: #64717b;
    --rp-paper: #f6f7f2;
    --rp-panel: #ffffff;
    --rp-line: rgba(16, 20, 24, .12);
    --rp-teal: #0f766e;
    --rp-teal-dark: #0a4d49;
    --rp-amber: #f0b64f;
    --rp-rust: #a4492c;
    --rp-mint: #dff3ea;
    background:
        linear-gradient(180deg, rgba(15, 118, 110, .05), rgba(240, 182, 79, .04) 520px, transparent 980px),
        var(--rp-paper);
    color: var(--rp-ink);
}

.rp-home *,
.rp-city-page * {
    letter-spacing: 0;
}

.rp-home a,
.rp-city-page a {
    color: inherit;
}

.rp-kicker,
.rp-section-heading p,
.rp-word-intro p,
.rp-faq-heading p,
.rp-filter-head span,
.rp-city-intro > div > p,
.rp-city-article-label span,
.rp-nearby-heading p,
.rp-school-label {
    color: var(--rp-teal-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.rp-home-hero,
.rp-city-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
    gap: clamp(26px, 5vw, 76px);
    align-items: end;
    min-height: clamp(620px, calc(100dvh - 82px), 820px);
    padding: clamp(54px, 7vw, 94px) clamp(18px, 6vw, 88px);
    overflow: hidden;
    isolation: isolate;
    background:
        linear-gradient(100deg, rgba(9, 13, 17, .98) 0%, rgba(9, 13, 17, .88) 43%, rgba(9, 13, 17, .34) 100%),
        url('/driving-school-hero.png') center right / cover no-repeat;
    color: #fff;
}

.rp-home-hero::before,
.rp-city-hero::before {
    content: "";
    position: absolute;
    left: clamp(18px, 6vw, 88px);
    right: clamp(18px, 6vw, 88px);
    bottom: 30px;
    height: 1px;
    background: linear-gradient(90deg, rgba(240, 182, 79, .9), rgba(255, 255, 255, .34), transparent);
    z-index: 0;
}

.rp-home-hero::after,
.rp-city-hero::after {
    content: "";
    position: absolute;
    inset: auto -10% 0;
    height: 170px;
    background:
        linear-gradient(0deg, var(--rp-paper), rgba(246, 247, 242, 0)),
        repeating-linear-gradient(115deg, rgba(255,255,255,.05) 0 1px, transparent 1px 18px);
    pointer-events: none;
    z-index: 0;
}

.rp-hero-copy,
.rp-city-copy,
.rp-city-dashboard {
    position: relative;
    z-index: 1;
}

.rp-hero-copy,
.rp-city-copy {
    max-width: 910px;
}

.rp-home-hero {
    grid-template-columns: minmax(0, 980px);
    align-items: center;
    min-height: clamp(540px, calc(100dvh - 82px), 720px);
    padding-top: clamp(42px, 6vw, 76px);
    padding-bottom: clamp(42px, 6vw, 76px);
}

.rp-home-hero .rp-kicker,
.rp-city-hero .rp-kicker,
.rp-breadcrumb {
    color: rgba(255, 255, 255, .74);
}

.rp-home-hero h1,
.rp-city-hero h1 {
    max-width: 880px;
    margin: 14px 0 0;
    color: #fff !important;
    font-size: clamp(42px, 7.3vw, 86px);
    font-weight: 920;
    line-height: .94;
    text-shadow: 0 24px 70px rgba(0, 0, 0, .52);
}

.rp-city-hero h1 {
    max-width: 820px;
}

.rp-home-hero h1 {
    max-width: 760px;
    font-size: clamp(40px, 6vw, 66px);
    line-height: .98;
}

.rp-hero-lead,
.rp-city-copy > p {
    max-width: 740px;
    margin: 24px 0 0;
    color: rgba(255, 255, 255, .84) !important;
    font-size: clamp(18px, 2vw, 23px);
    line-height: 1.58;
}

.rp-home-hero .rp-hero-lead {
    max-width: 680px;
    margin-top: 20px;
    font-size: clamp(17px, 1.7vw, 21px);
    line-height: 1.5;
}

.rp-search-dock {
    width: min(680px, 100%);
    margin-top: clamp(18px, 2.6vw, 26px);
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 9px;
    padding: 8px;
    background: rgba(255,255,255,.93);
    box-shadow: 0 18px 48px rgba(0,0,0,.3);
    backdrop-filter: blur(18px);
}

.rp-search-dock .ranking-search {
    max-width: none;
}

.rp-search-dock .mud-input-root {
    min-height: 46px !important;
    font-size: 15px;
}

.rp-search-dock .mud-input-control > .mud-input-control-input-container > div.mud-input.mud-input-outlined {
    min-height: 46px !important;
    height: 46px !important;
    border-radius: 6px;
}

.rp-search-dock .mud-input-control,
.rp-search-dock .mud-select,
.rp-search-dock .ranking-search {
    min-height: 0 !important;
}

.rp-search-dock .mud-input-control-input-container,
.rp-search-dock .mud-input-outlined-border,
.rp-search-dock input.mud-input-slot.mud-input-root {
    min-height: 46px !important;
    height: 46px !important;
}

.rp-search-dock input.mud-input-slot.mud-input-root {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.rp-search-dock .mud-input-adornment .mud-icon-button {
    width: 36px !important;
    height: 36px !important;
    padding: 7px !important;
}

.rp-city-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-top: 18px;
    color: rgba(255, 255, 255, .86);
}

.rp-city-pills span {
    font-weight: 850;
}

.rp-city-pills a,
.rp-city-actions a,
.rp-text-link,
.rp-faq-heading a {
    text-decoration: none;
}

.rp-city-pills a {
    border: 1px solid rgba(255,255,255,.26);
    border-radius: 999px;
    padding: 8px 13px;
    background: rgba(255,255,255,.08);
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}

.rp-city-pills a:hover {
    transform: translateY(-1px);
    border-color: rgba(255,255,255,.66);
    background: rgba(255,255,255,.16);
}

.rp-city-dashboard {
    align-self: stretch;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 10px;
    background: rgba(9, 13, 17, .42);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .28);
    backdrop-filter: blur(16px);
}

.rp-signal-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-bottom: 1px solid var(--rp-line);
    background: #fff;
}

.rp-signal-strip article {
    min-height: 150px;
    border-right: 1px solid var(--rp-line);
    padding: clamp(22px, 3vw, 34px);
}

.rp-signal-strip article:nth-child(2n) {
    background: #fbfcf8;
}

.rp-signal-strip span {
    color: var(--rp-rust);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.rp-signal-strip strong {
    display: block;
    margin-top: 10px;
    color: var(--rp-teal-dark);
    font-size: clamp(32px, 4.2vw, 48px);
    line-height: 1;
}

.rp-signal-strip p {
    max-width: 320px;
    margin: 10px 0 0;
    color: var(--rp-muted);
    line-height: 1.45;
}

.rp-section {
    padding: clamp(52px, 7vw, 92px) clamp(18px, 6vw, 88px);
}

.rp-section-heading {
    width: min(980px, 100%);
    margin-bottom: clamp(28px, 5vw, 56px);
}

.rp-section-heading h2,
.rp-word-intro h2,
.rp-faq-heading h2,
.rp-city-intro h2,
.rp-city-article h2,
.rp-nearby h2 {
    margin: 0;
    color: var(--rp-ink);
    font-size: clamp(32px, 4.8vw, 58px);
    line-height: 1;
}

.rp-method-layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr);
    gap: clamp(30px, 6vw, 78px);
    align-items: start;
    width: min(1180px, 100%);
    margin: 0 auto;
}

.rp-prose {
    color: var(--rp-ink-soft);
    font-size: 18px;
    line-height: 1.75;
}

.rp-prose p {
    margin: 0 0 18px;
}

.rp-text-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    border-bottom: 2px solid var(--rp-amber);
    color: var(--rp-teal-dark);
    font-weight: 900;
}

.rp-data-map {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border: 1px solid var(--rp-line);
    border-radius: 10px;
    overflow: hidden;
    background: var(--rp-line);
    box-shadow: 0 28px 70px rgba(16,20,24,.08);
}

.rp-data-map div {
    min-height: 180px;
    padding: 24px;
    background:
        linear-gradient(135deg, rgba(15,118,110,.05), transparent 54%),
        #fff;
}

.rp-data-map div:nth-child(4n + 1),
.rp-data-map div:nth-child(4n + 4) {
    background:
        linear-gradient(135deg, rgba(240,182,79,.14), transparent 60%),
        #fbfcf8;
}

.rp-data-map span {
    color: var(--rp-rust);
    font-weight: 900;
}

.rp-data-map strong {
    display: block;
    margin-top: 24px;
    color: var(--rp-ink);
    font-size: 30px;
}

.rp-data-map p {
    margin: 8px 0 0;
    color: var(--rp-muted);
    line-height: 1.45;
}

.rp-product-bridge {
    display: grid;
    grid-template-columns: minmax(260px, .42fr) minmax(0, .58fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: stretch;
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .08), transparent 48%),
        linear-gradient(315deg, rgba(240, 182, 79, .14), transparent 46%),
        #f9faf5;
}

.rp-product-bridge-copy {
    align-self: center;
}

.rp-product-bridge-copy p,
.rp-product-card > span {
    color: var(--rp-teal-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.rp-product-bridge-copy h2 {
    max-width: 620px;
    margin: 12px 0 0;
    color: var(--rp-ink);
    font-size: clamp(32px, 4.5vw, 56px);
    line-height: 1;
}

.rp-product-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.rp-product-card {
    position: relative;
    min-height: 420px;
    overflow: hidden;
    border: 1px solid rgba(16, 20, 24, .12);
    border-radius: 10px;
    padding: clamp(24px, 4vw, 36px);
    background: #fff;
    box-shadow: 0 24px 64px rgba(16, 20, 24, .08);
}

.rp-product-card::before {
    content: "";
    position: absolute;
    inset: auto -18% -34% 28%;
    height: 220px;
    border-radius: 999px;
    background: rgba(15, 118, 110, .12);
    transform: rotate(-8deg);
}

.rp-product-card-osk {
    background:
        linear-gradient(145deg, rgba(9, 13, 17, .96), rgba(14, 44, 42, .94)),
        var(--rp-ink);
    color: #fff;
}

.rp-product-card-osk::before {
    background: rgba(240, 182, 79, .24);
}

.rp-product-card-student {
    background:
        linear-gradient(145deg, #fff, #f4faf7);
}

.rp-product-card > * {
    position: relative;
    z-index: 1;
}

.rp-product-card-osk > span {
    color: rgba(240, 182, 79, .92);
}

.rp-product-card h3 {
    max-width: 500px;
    margin: 18px 0 0;
    color: inherit;
    font-size: clamp(26px, 3vw, 36px);
    font-weight: 920;
    line-height: 1.05;
}

.rp-product-card p {
    max-width: 560px;
    margin: 22px 0 0;
    color: var(--rp-muted);
    font-size: 17px;
    line-height: 1.65;
}

.rp-product-card-osk p {
    color: rgba(255, 255, 255, .76);
}

.rp-product-card a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-top: 30px;
    border: 1px solid var(--rp-teal-dark);
    border-radius: 999px;
    padding: 0 18px;
    background: var(--rp-teal-dark);
    color: #fff !important;
    font-weight: 900;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.rp-product-card-osk a {
    border-color: var(--rp-amber);
    background: var(--rp-amber);
    color: #101418 !important;
}

.rp-product-card a:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(16, 20, 24, .16);
}

.rp-word-section {
    background:
        linear-gradient(180deg, rgba(16,20,24,.04), rgba(16,20,24,0)),
        #fff;
}

.rp-word-shell {
    display: grid;
    grid-template-columns: minmax(260px, .48fr) minmax(0, .52fr);
    gap: 1px;
    width: min(1180px, 100%);
    margin: 0 auto;
    border: 1px solid var(--rp-line);
    border-radius: 10px;
    overflow: hidden;
    background: var(--rp-line);
    box-shadow: 0 28px 74px rgba(16,20,24,.08);
}

.rp-word-intro,
.rp-word-copy {
    padding: clamp(24px, 4vw, 42px);
    background: #fff;
}

.rp-word-intro span {
    display: inline-flex;
    margin-top: 28px;
    border-radius: 999px;
    padding: 9px 14px;
    background: var(--rp-ink);
    color: #fff;
    font-weight: 900;
}

.rp-word-copy p {
    max-width: 560px;
    margin: 0;
    color: var(--rp-muted);
    font-size: 18px;
    line-height: 1.7;
}

.rp-word-legend {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 18px clamp(24px, 4vw, 42px);
    background: #fbfcf8;
}

.rp-word-legend span {
    color: var(--rp-muted);
    font-size: 13px;
    font-weight: 850;
}

.rp-word-legend div {
    height: 12px;
    border: 1px solid rgba(16,20,24,.12);
    border-radius: 999px;
    background: linear-gradient(90deg, #b42318 0%, #d97706 48%, #15803d 100%);
    box-shadow: inset 0 1px 2px rgba(16,20,24,.16);
}

.rp-word-empty {
    grid-column: 1 / -1;
    margin: 0;
    padding: 24px clamp(24px, 4vw, 42px);
    background: #fff;
    color: var(--rp-muted);
}

.rp-word-heatmap {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--rp-line);
}

.rp-word-map-panel {
    min-width: 0;
    padding: clamp(22px, 4vw, 36px);
    background: #fff;
}

.rp-word-map-panel header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 18px;
    align-items: end;
    margin-bottom: 18px;
}

.rp-word-map-panel header span {
    color: var(--rp-rust);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.rp-word-map-panel header strong {
    grid-column: 2;
    grid-row: 1 / span 2;
    color: var(--rp-teal-dark);
    font-size: clamp(34px, 4vw, 48px);
    font-weight: 920;
    line-height: 1;
}

.rp-word-map-panel header small {
    color: var(--rp-muted);
    font-weight: 800;
}

.rp-word-map-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 10px;
}

.rp-word-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 104px;
    overflow: hidden;
    border: 1px solid hsla(var(--heat-hue), 78%, 24%, .24);
    border-radius: 8px;
    padding: 13px;
    background:
        radial-gradient(circle at 85% 12%, hsla(var(--heat-hue), 90%, 70%, .25), transparent 34%),
        linear-gradient(145deg, hsl(var(--heat-hue), 64%, 37%), hsl(var(--heat-hue), 72%, 27%));
    color: #fff !important;
    text-decoration: none;
    box-shadow: 0 12px 28px hsla(var(--heat-hue), 55%, 25%, .18);
    transition: transform .2s ease, box-shadow .2s ease;
}

.rp-word-tile:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px hsla(var(--heat-hue), 55%, 25%, .24);
}

.rp-word-tile span {
    position: relative;
    z-index: 1;
    font-size: 13px;
    font-weight: 860;
    line-height: 1.2;
}

.rp-word-tile strong {
    position: relative;
    z-index: 1;
    margin-top: 18px;
    font-size: 24px;
    font-weight: 920;
    line-height: 1;
}

.rp-word-table-wrap {
    grid-column: 1 / -1;
    overflow-x: auto;
    background: #fff;
}

.rp-word-table {
    width: 100%;
    border-collapse: collapse;
}

.rp-word-table caption {
    padding: 18px 24px 0;
    color: var(--rp-muted);
    text-align: left;
    font-weight: 800;
}

.rp-word-table th,
.rp-word-table td {
    border-bottom: 1px solid var(--rp-line);
    padding: 18px 24px;
    text-align: left;
}

.rp-word-table thead th {
    color: var(--rp-rust);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    background: #fbfcf8;
}

.rp-word-table a {
    color: var(--rp-ink);
    text-decoration: none;
    font-weight: 900;
}

.rp-word-table a span {
    display: block;
    margin-top: 4px;
    color: var(--rp-teal-dark);
    font-size: 13px;
}

.rp-word-table td {
    color: var(--rp-teal-dark);
    font-weight: 900;
    white-space: nowrap;
}

.rp-word-table-rate {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    border: 1px solid hsla(var(--heat-hue), 70%, 28%, .18);
    border-radius: 999px;
    padding: 6px 11px;
    background: hsla(var(--heat-hue), 78%, 44%, .12);
    color: hsl(var(--heat-hue), 72%, 26%);
    font-weight: 920;
}

.rp-faq-section {
    display: grid;
    grid-template-columns: minmax(260px, .52fr) minmax(0, .9fr);
    gap: clamp(28px, 6vw, 82px);
}

.rp-faq-heading div {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.rp-faq-heading a {
    border: 1px solid var(--rp-line);
    border-radius: 999px;
    padding: 10px 14px;
    background: #fff;
    color: var(--rp-teal-dark);
    font-weight: 850;
}

.rp-faq-list {
    display: grid;
    gap: 1px;
    background: var(--rp-line);
    border: 1px solid var(--rp-line);
    border-radius: 10px;
    overflow: hidden;
}

.rp-faq-list article {
    padding: 24px;
    background: #fff;
}

.rp-faq-list h3 {
    margin: 0 0 8px;
    font-size: 22px;
}

.rp-faq-list p {
    margin: 0;
    color: var(--rp-muted);
    line-height: 1.65;
}

.rp-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 22px;
    font-size: 14px;
}

.rp-breadcrumb a {
    color: #d9f5ec;
}

.rp-city-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.rp-city-actions a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    border-radius: 8px;
    padding: 10px 16px;
    background: var(--rp-amber);
    color: var(--rp-ink);
    font-weight: 900;
}

.rp-city-actions .mud-button-outlined {
    border-color: rgba(255, 255, 255, .34) !important;
    color: #fff !important;
    background: rgba(255, 255, 255, .1) !important;
}

.rp-city-dashboard {
    display: grid;
    gap: 1px;
    overflow: hidden;
    background: rgba(255, 255, 255, .18);
}

.rp-city-dashboard div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 120px;
    padding: 24px;
    background: rgba(255,255,255,.92);
}

.rp-city-dashboard span {
    color: var(--rp-teal-dark);
    font-size: clamp(34px, 5vw, 58px);
    font-weight: 920;
    line-height: 1;
}

.rp-city-dashboard p {
    margin: 8px 0 0;
    color: var(--rp-ink-soft);
    font-weight: 850;
}

.rp-map-shell {
    position: relative;
    width: min(1180px, calc(100% - 36px));
    height: 420px;
    margin: clamp(20px, 4vw, 42px) auto;
    border: 1px solid var(--rp-line);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(16,20,24,.12);
}

.rp-map-shell-expanded {
    position: fixed;
    inset: 92px 18px 18px;
    z-index: 20;
    width: auto;
    height: auto;
    margin: 0;
}

.rp-map-toggle {
    position: absolute !important;
    left: 14px;
    bottom: 14px;
    z-index: 1001;
}

.rp-city-intro,
.rp-city-article,
.rp-nearby,
.rp-ranking-layout {
    width: min(1180px, calc(100% - 36px));
    margin: 0 auto;
}

.rp-city-intro {
    display: grid;
    grid-template-columns: minmax(240px, .42fr) minmax(0, .9fr);
    gap: clamp(22px, 5vw, 64px);
    padding: clamp(34px, 5vw, 66px) 0 0;
}

.rp-city-intro h2 span {
    display: block;
    margin-top: 8px;
    color: var(--rp-teal-dark);
    font-size: clamp(22px, 3vw, 34px);
    font-weight: 520;
}

.rp-city-intro article {
    border-left: 3px solid var(--rp-amber);
    padding-left: clamp(18px, 3vw, 34px);
}

.rp-city-intro article p {
    margin: 0;
    color: var(--rp-ink-soft);
    font-size: 18px;
    line-height: 1.75;
}

.rp-ranking-layout {
    display: grid;
    grid-template-columns: minmax(250px, 310px) minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    padding: clamp(28px, 5vw, 58px) 0;
}

.rp-filter-panel {
    position: sticky;
    top: 18px;
    display: grid;
    gap: 14px;
    border: 1px solid var(--rp-line);
    border-radius: 10px;
    padding: 20px;
    background:
        linear-gradient(145deg, rgba(15,118,110,.08), transparent 52%),
        #fff;
    box-shadow: 0 22px 54px rgba(16,20,24,.08);
}

.rp-filter-head h2 {
    margin: 6px 0 8px;
    font-size: 26px;
    line-height: 1.08;
}

.rp-filter-head p {
    margin: 0;
    color: var(--rp-muted);
    line-height: 1.5;
}

.rp-filter-submit {
    min-height: 46px;
}

.rp-ranking-results {
    display: grid;
    gap: 18px;
}

.rp-results-empty,
.rp-results-loading {
    border: 1px solid var(--rp-line);
    border-radius: 10px;
    padding: 28px;
    background: #fff;
    color: var(--rp-muted);
}

.rp-school-card {
    position: relative;
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    border: 1px solid var(--rp-line);
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 18px 46px rgba(16,20,24,.07);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.rp-school-card:hover {
    transform: translateY(-2px);
    border-color: rgba(15, 118, 110, .3);
    box-shadow: 0 26px 66px rgba(16,20,24,.11);
}

.rp-school-rank {
    grid-row: 1 / span 3;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 24px;
    background:
        linear-gradient(180deg, var(--rp-ink), #21302d);
    color: var(--rp-amber);
    font-size: 18px;
    font-weight: 920;
}

.rp-school-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(200px, 250px);
    gap: 20px;
    padding: 24px;
}

.rp-school-copy h2 {
    margin: 8px 0 14px;
    color: var(--rp-ink);
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1.06;
}

.rp-school-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rp-school-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid rgba(15,118,110,.14);
    border-radius: 999px;
    padding: 7px 11px;
    background: var(--rp-mint);
    color: var(--rp-teal-dark);
    font-size: 14px;
    font-weight: 800;
}

.rp-school-meta .mud-icon-root {
    width: 18px;
    height: 18px;
    color: var(--rp-teal);
}

.rp-school-score {
    justify-self: end;
    min-width: 210px;
    border-left: 1px solid var(--rp-line);
    padding-left: 20px;
}

.rp-score-label {
    display: block;
    margin-bottom: 8px;
    color: var(--rp-muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.rp-stars {
    display: inline-flex;
    gap: 1px;
    color: var(--rp-amber);
}

.rp-stars .mud-icon-root {
    color: currentColor !important;
}

.rp-stars-small .mud-icon-root {
    width: 18px;
    height: 18px;
}

.rp-school-score strong {
    display: block;
    margin-top: 8px;
    color: var(--rp-ink);
    font-size: 28px;
    line-height: 1;
}

.rp-school-score small {
    color: var(--rp-muted);
    font-size: 16px;
}

.rp-school-actions {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    border-top: 1px solid var(--rp-line);
    padding: 14px 24px;
    background: #fbfcf8;
}

.rp-quiet-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: transparent;
    color: var(--rp-teal-dark);
    cursor: pointer;
    font: inherit;
    font-weight: 850;
}

.rp-empty-note {
    color: var(--rp-muted);
}

.rp-school-cta {
    min-height: 44px;
}

.rp-school-reviews {
    grid-column: 2;
    display: grid;
    gap: 1px;
    background: var(--rp-line);
    border-top: 1px solid var(--rp-line);
}

.rp-review {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    gap: 20px;
    padding: 22px 24px;
    background: #fff;
}

.rp-review-score span {
    display: block;
    margin-bottom: 6px;
    color: var(--rp-ink);
    font-size: 28px;
    font-weight: 920;
}

.rp-review header strong {
    color: var(--rp-ink);
    font-size: 20px;
}

.rp-review p {
    margin: 8px 0 0;
    color: var(--rp-ink-soft);
    line-height: 1.65;
}

.rp-city-article {
    display: grid;
    grid-template-columns: minmax(240px, .42fr) minmax(0, .9fr);
    gap: clamp(24px, 5vw, 68px);
    padding: clamp(38px, 6vw, 76px) 0;
    border-top: 1px solid var(--rp-line);
}

.rp-nearby {
    padding: 0 0 clamp(44px, 7vw, 86px);
}

.rp-nearby-heading {
    margin-bottom: 18px;
}

.rp-nearby ul {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(240px, 300px);
    gap: 14px;
    margin: 0;
    padding: 4px 2px 18px;
    overflow-x: auto;
    list-style: none;
}

.rp-nearby li {
    display: flex;
    flex-direction: column;
    min-height: 210px;
    border: 1px solid var(--rp-line);
    border-radius: 10px;
    padding: 20px;
    background:
        linear-gradient(145deg, rgba(240,182,79,.14), transparent 55%),
        #fff;
}

.rp-nearby li > span {
    color: var(--rp-rust);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.rp-nearby h3 {
    margin: 8px 0 10px;
    font-size: 26px;
}

.rp-nearby p {
    flex: 1;
    margin: 0;
    color: var(--rp-muted);
}

.rp-osk-story {
    --rp-osk-ink: #101418;
    --rp-osk-soft: #33414b;
    --rp-osk-muted: #64717b;
    --rp-osk-line: rgba(16, 20, 24, .12);
    --rp-osk-teal: #0f766e;
    --rp-osk-teal-dark: #0a4d49;
    --rp-osk-amber: #f0b64f;
    position: relative;
    overflow: hidden;
    border-top: 1px solid var(--rp-osk-line);
    border-bottom: 1px solid var(--rp-osk-line);
    padding: clamp(46px, 6vw, 84px) clamp(18px, 6vw, 88px);
    background:
        linear-gradient(90deg, rgba(16,20,24,.035), transparent 34%),
        linear-gradient(135deg, rgba(15,118,110,.08), rgba(240,182,79,.09) 64%, rgba(255,255,255,.86)),
        #f6f7f2;
    color: var(--rp-osk-ink);
}

.rp-osk-story::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(118deg, rgba(16,20,24,.045) 0 1px, transparent 1px 20px);
    mask-image: linear-gradient(90deg, transparent, #000 18%, transparent 72%);
    pointer-events: none;
}

.rp-osk-story-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(220px, 330px) minmax(0, 780px);
    gap: clamp(28px, 6vw, 78px);
    align-items: start;
    width: min(1180px, 100%);
    margin: 0 auto;
}

.rp-osk-story-rail {
    position: sticky;
    top: 108px;
    border-left: 4px solid var(--rp-osk-amber);
    padding-left: clamp(18px, 3vw, 28px);
}

.rp-osk-story-rail p {
    margin: 0 0 14px;
    color: var(--rp-osk-teal-dark);
    font-size: 12px;
    font-weight: 920;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.rp-osk-story-rail h2 {
    margin: 0;
    color: var(--rp-osk-ink);
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 920;
    line-height: 1;
}

.rp-osk-story-rail > span {
    display: block;
    margin-top: 16px;
    color: var(--rp-osk-soft);
    font-size: 16px;
    line-height: 1.5;
}

.rp-osk-story-rail dl {
    display: grid;
    gap: 14px;
    margin: 28px 0 0;
}

.rp-osk-story-rail dl div {
    border-top: 1px solid var(--rp-osk-line);
    padding-top: 14px;
}

.rp-osk-story-rail dt {
    color: var(--rp-osk-muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.rp-osk-story-rail dd {
    margin: 5px 0 0;
    color: var(--rp-osk-teal-dark);
    font-size: 18px;
    font-weight: 850;
}

.rp-osk-prose {
    max-width: 780px;
    border-left: 1px solid var(--rp-osk-line);
    padding-left: clamp(22px, 4vw, 46px);
    color: var(--rp-osk-soft);
    font-size: clamp(17px, 1.45vw, 19px);
    line-height: 1.78;
}

.rp-osk-prose > :first-child {
    margin-top: 0;
}

.rp-osk-prose > :last-child {
    margin-bottom: 0;
}

.rp-osk-prose h2,
.rp-osk-prose h3,
.rp-osk-prose h4 {
    max-width: 720px;
    margin: clamp(30px, 4vw, 46px) 0 12px;
    color: var(--rp-osk-ink);
    font-weight: 920;
    line-height: 1.08;
}

.rp-osk-prose h2 {
    font-size: clamp(26px, 2.6vw, 34px);
}

.rp-osk-prose h3 {
    font-size: clamp(21px, 2vw, 26px);
}

.rp-osk-prose p {
    max-width: 74ch;
    margin: 0 0 16px;
}

.rp-osk-prose strong {
    color: var(--rp-osk-ink);
    font-weight: 880;
}

.rp-osk-prose hr {
    height: 1px;
    margin: clamp(24px, 4vw, 34px) 0;
    border: 0;
    background: linear-gradient(90deg, var(--rp-osk-amber), var(--rp-osk-line), transparent);
}

.rp-osk-prose ul,
.rp-osk-prose ol {
    max-width: 70ch;
    margin: 16px 0 22px;
    padding-left: 22px;
}

.rp-osk-prose li {
    margin: 8px 0;
    padding-left: 4px;
}

.rp-osk-product-bridge {
    --rp-osk-product-ink: #101418;
    --rp-osk-product-soft: #33414b;
    --rp-osk-product-muted: #64717b;
    --rp-osk-product-line: rgba(16, 20, 24, .12);
    --rp-osk-product-teal: #0f766e;
    --rp-osk-product-teal-dark: #0a4d49;
    --rp-osk-product-amber: #f0b64f;
    display: grid;
    grid-template-columns: minmax(240px, .36fr) minmax(0, .64fr);
    gap: clamp(24px, 5vw, 64px);
    align-items: stretch;
    padding: 58px clamp(18px, 6vw, 88px);
    background:
        linear-gradient(120deg, rgba(15, 118, 110, .08), transparent 48%),
        #f7f8f3;
}

.rp-osk-product-head {
    align-self: center;
}

.rp-osk-product-head p,
.rp-osk-product-card > span {
    color: var(--rp-osk-product-teal-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.rp-osk-product-head h2 {
    max-width: 560px;
    margin: 12px 0 0;
    color: var(--rp-osk-product-ink);
    font-size: clamp(30px, 4vw, 50px);
    font-weight: 920;
    line-height: 1;
}

.rp-osk-product-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.rp-osk-product-card {
    position: relative;
    min-height: 350px;
    overflow: hidden;
    border: 1px solid var(--rp-osk-product-line);
    border-radius: 10px;
    padding: clamp(22px, 3vw, 32px);
    background: #fff;
    box-shadow: 0 22px 58px rgba(16, 20, 24, .08);
}

.rp-osk-product-card::before {
    content: "";
    position: absolute;
    right: -74px;
    bottom: -92px;
    width: 210px;
    height: 210px;
    border-radius: 999px;
    background: rgba(15, 118, 110, .12);
}

.rp-osk-product-card-manager {
    background:
        linear-gradient(145deg, rgba(9, 13, 17, .96), rgba(13, 47, 44, .94)),
        var(--rp-osk-product-ink);
    color: #fff;
}

.rp-osk-product-card-manager::before {
    background: rgba(240, 182, 79, .24);
}

.rp-osk-product-card > * {
    position: relative;
    z-index: 1;
}

.rp-osk-product-card-manager > span {
    color: rgba(240, 182, 79, .92);
}

.rp-osk-product-card h3 {
    margin: 17px 0 0;
    color: inherit;
    font-size: clamp(24px, 2.7vw, 32px);
    font-weight: 920;
    line-height: 1.08;
}

.rp-osk-product-card p {
    margin: 18px 0 0;
    color: var(--rp-osk-product-soft);
    font-size: 16px;
    line-height: 1.62;
}

.rp-osk-product-card-manager p {
    color: rgba(255, 255, 255, .76);
}

.rp-osk-product-card a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin-top: 26px;
    border: 1px solid var(--rp-osk-product-teal-dark);
    border-radius: 999px;
    padding: 0 17px;
    background: var(--rp-osk-product-teal-dark);
    color: #fff !important;
    font-weight: 900;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.rp-osk-product-card-manager a {
    border-color: var(--rp-osk-product-amber);
    background: var(--rp-osk-product-amber);
    color: #101418 !important;
}

.rp-osk-product-card a:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(16, 20, 24, .16);
}

.rp-osk-pricing {
    --rp-price-ink: #101418;
    --rp-price-soft: #33414b;
    --rp-price-muted: #64717b;
    --rp-price-line: rgba(16, 20, 24, .12);
    --rp-price-teal: #0f766e;
    --rp-price-teal-dark: #0a4d49;
    --rp-price-amber: #f0b64f;
    position: relative;
    overflow: hidden;
    border-top: 1px solid var(--rp-price-line);
    border-bottom: 1px solid var(--rp-price-line);
    padding: 64px clamp(18px, 6vw, 88px) 76px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,255,255,.74)),
        linear-gradient(135deg, rgba(240,182,79,.12), rgba(15,118,110,.08)),
        #f6f7f2;
    color: var(--rp-price-ink);
}

.rp-osk-pricing::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(16,20,24,.06) 1px, transparent 1px),
        linear-gradient(180deg, rgba(16,20,24,.045) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(90deg, transparent, #000 24%, transparent 78%);
    pointer-events: none;
}

.rp-osk-pricing-inner {
    position: relative;
    z-index: 1;
    width: min(1180px, 100%);
    margin: 0 auto;
}

.rp-osk-pricing-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px 36px;
    align-items: end;
    margin-bottom: 38px;
}

.rp-osk-pricing-head p,
.rp-price-group-heading span {
    margin: 0;
    color: var(--rp-price-teal-dark);
    font-size: 12px;
    font-weight: 920;
    letter-spacing: 0;
    text-transform: uppercase;
}

.rp-osk-pricing-head h2 {
    grid-column: 1;
    max-width: 720px;
    margin: 8px 0 0;
    color: var(--rp-price-ink);
    font-size: 46px;
    font-weight: 920;
    line-height: 1;
}

.rp-osk-pricing-head > span {
    grid-column: 1;
    color: var(--rp-price-soft);
    font-size: 18px;
    line-height: 1.5;
}

.rp-osk-pricing-summary {
    grid-column: 2;
    grid-row: 1 / span 3;
    display: grid;
    grid-template-columns: repeat(2, minmax(96px, 1fr));
    gap: 1px;
    overflow: hidden;
    min-width: 230px;
    border: 1px solid var(--rp-price-line);
    border-radius: 8px;
    background: var(--rp-price-line);
}

.rp-osk-pricing-summary strong,
.rp-osk-pricing-summary span {
    display: flex;
    align-items: center;
    min-height: 64px;
    padding: 12px 16px;
    background: rgba(255,255,255,.9);
}

.rp-osk-pricing-summary strong {
    justify-content: center;
    color: var(--rp-price-teal-dark);
    font-size: 32px;
    font-weight: 920;
}

.rp-osk-pricing-summary span {
    color: var(--rp-price-muted);
    font-weight: 850;
}

.rp-price-group + .rp-price-group {
    margin-top: 54px;
}

.rp-price-group-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    border-bottom: 1px solid var(--rp-price-line);
    padding-bottom: 16px;
    margin-bottom: 18px;
}

.rp-price-group-heading h3 {
    margin: 0;
    color: var(--rp-price-ink);
    font-size: 28px;
    font-weight: 920;
    line-height: 1.05;
}

.rp-price-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.rp-price-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 330px;
    border: 1px solid var(--rp-price-line);
    border-radius: 8px;
    padding: 24px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 20px 54px rgba(16,20,24,.07);
}

.rp-price-card-featured {
    background:
        linear-gradient(145deg, rgba(240,182,79,.2), transparent 45%),
        #14201f;
    color: #fff;
}

.rp-price-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 24px;
    right: 24px;
    height: 4px;
    background: var(--rp-price-amber);
}

.rp-price-card-top {
    display: grid;
    gap: 14px;
}

.rp-price-tag {
    width: max-content;
    max-width: 100%;
    border: 1px solid rgba(15,118,110,.18);
    border-radius: 999px;
    padding: 7px 11px;
    background: #e4f4ef;
    color: var(--rp-price-teal-dark);
    font-size: 13px;
    font-weight: 850;
}

.rp-price-card-featured .rp-price-tag {
    border-color: rgba(255,255,255,.2);
    background: rgba(255,255,255,.1);
    color: #dff3ea;
}

.rp-price-card h4,
.rp-fee-row h4 {
    margin: 0;
    color: inherit;
    font-weight: 920;
    line-height: 1.08;
}

.rp-price-card h4 {
    font-size: 26px;
}

.rp-price-card p {
    margin: 14px 0 0;
    color: var(--rp-price-soft);
    line-height: 1.58;
}

.rp-price-card-featured p {
    color: rgba(255,255,255,.78);
}

.rp-price-value {
    margin-top: auto;
    padding-top: 26px;
}

.rp-price-value small,
.rp-fee-row dt {
    color: var(--rp-price-muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.rp-price-card-featured .rp-price-value small {
    color: rgba(255,255,255,.6);
}

.rp-price-value strong {
    display: block;
    margin-top: 4px;
    color: var(--rp-price-teal-dark);
    font-size: 34px;
    font-weight: 920;
    line-height: 1;
}

.rp-price-card-featured .rp-price-value strong {
    color: var(--rp-price-amber);
}

.rp-price-card ul {
    display: grid;
    gap: 8px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.rp-price-card li {
    position: relative;
    padding-left: 18px;
    color: var(--rp-price-soft);
    line-height: 1.45;
}

.rp-price-card-featured li {
    color: rgba(255,255,255,.78);
}

.rp-price-card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .7em;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--rp-price-amber);
}

.rp-fee-list {
    display: grid;
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--rp-price-line);
    border-radius: 8px;
    background: var(--rp-price-line);
    box-shadow: 0 18px 46px rgba(16,20,24,.06);
}

.rp-fee-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
    gap: 24px;
    align-items: center;
    padding: 22px 24px;
    background: rgba(255,255,255,.94);
}

.rp-fee-row:nth-child(2n) {
    background: #fbfcf8;
}

.rp-fee-row h4 {
    color: var(--rp-price-ink);
    font-size: 22px;
}

.rp-fee-row p {
    max-width: 68ch;
    margin: 7px 0 0;
    color: var(--rp-price-soft);
    line-height: 1.55;
}

.rp-fee-row dl {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) minmax(100px, .8fr);
    gap: 1px;
    overflow: hidden;
    margin: 0;
    border: 1px solid var(--rp-price-line);
    border-radius: 8px;
    background: var(--rp-price-line);
}

.rp-fee-row dl div {
    min-height: 70px;
    padding: 13px 15px;
    background: #fff;
}

.rp-fee-row dd {
    margin: 5px 0 0;
    color: var(--rp-price-teal-dark);
    font-size: 18px;
    font-weight: 900;
}

@media screen and (max-width: 1100px) {
    .rp-home-hero,
    .rp-city-hero,
    .rp-method-layout,
    .rp-product-bridge,
    .rp-word-shell,
    .rp-faq-section,
    .rp-city-intro,
    .rp-city-article,
    .rp-ranking-layout,
    .rp-osk-product-bridge,
    .rp-osk-story-inner {
        grid-template-columns: 1fr;
    }

    .rp-city-dashboard,
    .rp-filter-panel,
    .rp-osk-story-rail {
        position: relative;
        top: auto;
    }

    .rp-price-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rp-product-cards {
        grid-template-columns: 1fr;
    }

    .rp-osk-product-grid {
        grid-template-columns: 1fr;
    }

    .rp-word-heatmap {
        grid-template-columns: 1fr;
    }

    .rp-word-table-wrap {
        grid-column: auto;
    }
}

@media screen and (max-width: 720px) {
    .rp-home-hero,
    .rp-city-hero {
        min-height: auto;
        padding-top: 96px;
        background-position: center;
    }

    .rp-home-hero h1,
    .rp-city-hero h1 {
        font-size: clamp(38px, 12vw, 54px);
    }

    .rp-signal-strip,
    .rp-data-map,
    .rp-product-cards,
    .rp-school-main,
    .rp-review {
        grid-template-columns: 1fr;
    }

    .rp-school-card {
        grid-template-columns: 1fr;
    }

    .rp-school-rank {
        grid-row: auto;
        align-items: center;
        justify-content: flex-start;
        padding: 12px 20px;
    }

    .rp-school-actions,
    .rp-school-reviews {
        grid-column: auto;
    }

    .rp-school-score {
        justify-self: stretch;
        min-width: 0;
        border-left: 0;
        border-top: 1px solid var(--rp-line);
        padding: 18px 0 0;
    }

    .rp-city-dashboard {
        grid-template-columns: 1fr;
    }

    .rp-section {
        padding-left: 18px;
        padding-right: 18px;
    }

    .rp-product-card {
        min-height: 0;
        padding: 22px;
    }

    .rp-word-legend {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .rp-word-map-panel {
        padding: 22px;
    }

    .rp-word-map-panel header {
        grid-template-columns: 1fr;
    }

    .rp-word-map-panel header strong {
        grid-column: auto;
        grid-row: auto;
    }

    .rp-word-map-grid {
        grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    }

    .rp-word-tile {
        min-height: 92px;
    }

    .rp-osk-story {
        padding: 36px 22px 42px;
    }

    .rp-osk-story-inner {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .rp-osk-prose {
        border-left: 0;
        padding-left: 0;
        font-size: 16px;
        line-height: 1.72;
    }

    .rp-osk-pricing {
        padding: 42px 22px 52px;
    }

    .rp-osk-product-bridge {
        padding: 42px 22px;
    }

    .rp-osk-product-card {
        min-height: 0;
        padding: 22px;
    }

    .rp-osk-pricing-head {
        grid-template-columns: 1fr;
    }

    .rp-osk-pricing-head h2 {
        font-size: 34px;
    }

    .rp-osk-pricing-summary {
        grid-column: auto;
        grid-row: auto;
        width: 100%;
        min-width: 0;
    }

    .rp-price-grid,
    .rp-fee-row,
    .rp-fee-row dl {
        grid-template-columns: 1fr;
    }

    .rp-price-card {
        min-height: 0;
        padding: 22px;
    }

    .rp-price-value strong {
        font-size: 30px;
    }
}
