html {
    scroll-behavior: smooth;
}

/* Keep MudBlazor input popovers above fixed app chrome and the floating messenger. */
.mud-popover {
    z-index: 2500 !important;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

.rl-tour-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1900;
    background: rgba(8, 19, 35, 0.58);
}

.rl-tour-highlight {
    position: fixed;
    z-index: 1901;
    pointer-events: none;
    border: 2px solid #2f8be6;
    border-radius: 10px;
    animation: rl-tour-spotlight-pulse 1.6s ease-out infinite;
    box-shadow: 0 0 0 9999px rgba(8, 19, 35, 0.42), 0 12px 34px rgba(0, 0, 0, 0.28);
}

.rl-tour-target-pulse {
    position: relative;
    z-index: 1901;
    border-radius: 8px;
    animation: rl-tour-target-pulse 1.6s ease-out infinite;
}

@keyframes rl-tour-target-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(47, 139, 230, 0.78);
    }

    70% {
        box-shadow: 0 0 0 12px rgba(47, 139, 230, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(47, 139, 230, 0);
    }
}

@keyframes rl-tour-spotlight-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(47, 139, 230, 0.78), 0 0 0 9999px rgba(8, 19, 35, 0.42), 0 12px 34px rgba(0, 0, 0, 0.28);
    }

    70% {
        box-shadow: 0 0 0 12px rgba(47, 139, 230, 0), 0 0 0 9999px rgba(8, 19, 35, 0.42), 0 12px 34px rgba(0, 0, 0, 0.28);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(47, 139, 230, 0), 0 0 0 9999px rgba(8, 19, 35, 0.42), 0 12px 34px rgba(0, 0, 0, 0.28);
    }
}

.rl-tour-card {
    position: fixed;
    z-index: 1902;
    width: min(360px, calc(100vw - 32px));
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    padding: 20px;
    border-radius: 8px;
    background: #ffffff;
    color: #172033;
    box-shadow: 0 22px 64px rgba(2, 12, 27, 0.32);
}

.rl-tour-card-arrow {
    position: absolute;
    width: 12px;
    height: 12px;
    background: #ffffff;
    border-color: #d8dde7;
    border-style: solid;
    border-width: 0;
}

.rl-tour-card-centered {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.rl-tour-card-bottom .rl-tour-card-arrow {
    top: -6px;
    left: var(--rl-tour-arrow-left, 26px);
    border-top-width: 1px;
    border-left-width: 1px;
    transform: rotate(45deg);
}

.rl-tour-card-top .rl-tour-card-arrow {
    bottom: -6px;
    left: var(--rl-tour-arrow-left, 26px);
    border-right-width: 1px;
    border-bottom-width: 1px;
    transform: rotate(45deg);
}

.rl-tour-card-right .rl-tour-card-arrow {
    left: -6px;
    top: var(--rl-tour-arrow-top, 28px);
    border-left-width: 1px;
    border-bottom-width: 1px;
    transform: rotate(45deg);
}

.rl-tour-card-left .rl-tour-card-arrow {
    right: -6px;
    top: var(--rl-tour-arrow-top, 28px);
    border-top-width: 1px;
    border-right-width: 1px;
    transform: rotate(45deg);
}

.rl-tour-kicker {
    margin-bottom: 8px;
    color: #5c667a;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rl-tour-card h2 {
    margin: 0 0 8px;
    font-family: 'Plus Jakarta Sans', 'Open Sans', sans-serif;
    font-size: 1.25rem;
    line-height: 1.25;
}

.rl-tour-card p {
    margin: 0;
    color: #3d4758;
    font-size: 0.94rem;
    line-height: 1.55;
}

.rl-tour-progress {
    display: flex;
    gap: 6px;
    margin: 18px 0;
}

.rl-tour-progress span {
    width: 18px;
    height: 4px;
    border-radius: 999px;
    background: #d7dce5;
}

.rl-tour-progress span.active {
    background: #0f4c81;
}

.rl-tour-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.rl-tour-action-group {
    display: flex;
    align-items: center;
    gap: 8px;
}

.rl-tour-primary-button,
.rl-tour-secondary-button,
.rl-tour-link-button {
    min-height: 38px;
    border-radius: 6px;
    border: 0;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.rl-tour-primary-button {
    padding: 0 16px;
    color: #ffffff;
    background: #0f4c81;
}

.rl-tour-primary-button:hover {
    background: #0b3d68;
}

.rl-tour-secondary-button {
    padding: 0 14px;
    color: #243044;
    background: #eef2f7;
}

.rl-tour-secondary-button:hover {
    background: #e1e7f0;
}

.rl-tour-link-button {
    padding: 0;
    color: #5c667a;
    background: transparent;
}

.rl-tour-link-button:hover {
    color: #243044;
}

@media (max-width: 759px) {
    .rl-tour-card {
        max-height: min(340px, calc(100dvh - 32px));
        padding: 16px;
    }

    .rl-tour-card h2 {
        font-size: 1.08rem;
    }

    .rl-tour-card p {
        font-size: 0.88rem;
        line-height: 1.45;
    }

    .rl-tour-progress {
        margin: 14px 0;
    }

    .rl-tour-actions {
        align-items: flex-end;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rl-tour-highlight,
    .rl-tour-target-pulse {
        animation: none;
    }
}

/* Educational SEO guide pages */
.rl-edu-shell {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.rl-edu-hero {
    background: var(--rentlokr-navy);
    color: #ffffff;
    padding: 8rem 0 4rem;
    overflow: hidden;
}

.rl-edu-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    gap: 3rem;
    align-items: center;
}

.rl-edu-eyebrow {
    color: #ff7b7b;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.rl-edu-hero h1 {
    max-width: 760px;
    margin: 1rem 0;
    font-size: clamp(2.45rem, 5vw, 4rem);
    line-height: 1.08;
}

.rl-edu-hero p {
    margin: 0;
    color: rgba(255, 255, 255, 0.76);
    font-size: 1.12rem;
    line-height: 1.7;
}

.rl-edu-hero-media img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 18px;
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.28);
}

.rl-edu-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

.rl-edu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 46px;
    border-radius: 999px;
    padding: 0.85rem 1.45rem;
    border: 1px solid transparent;
    font-weight: 800;
    text-decoration: none;
}

.rl-edu-button-primary {
    background: #e94e4e;
    color: #ffffff;
}

.rl-edu-button-secondary {
    border-color: currentColor;
    color: inherit;
}

.rl-edu-section {
    padding: clamp(4rem, 8vw, 6rem) 0;
}

.rl-edu-section-light {
    background: #f5f6fb;
}

.rl-edu-section-dark {
    background: var(--rentlokr-navy);
    color: #ffffff;
}

.rl-edu-header {
    max-width: 760px;
    margin: 0 auto 3rem;
    text-align: center;
}

.rl-edu-header h2,
.rl-edu-feature h2,
.rl-edu-split h2,
.rl-edu-cta h2 {
    color: #1a1f3d;
    margin: 0.55rem 0 1rem;
    font-size: clamp(2rem, 4vw, 2.8rem);
    line-height: 1.12;
}

.rl-edu-header p,
.rl-edu-feature p,
.rl-edu-split p {
    color: #5f6b85;
    line-height: 1.7;
    margin: 0;
}

.rl-edu-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.rl-edu-card,
.rl-edu-feature,
.rl-edu-callout,
.rl-edu-table-wrap {
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 10px 36px rgba(15, 23, 42, 0.07);
}

.rl-edu-card {
    padding: 1.45rem;
}

.rl-edu-card > .mud-icon-root,
.rl-edu-callout > .mud-icon-root {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0 auto 1rem;
    padding: 0.8rem;
    border-radius: 18px;
    background: #eefcfb;
    color: #0f766e;
    font-size: 2rem;
    box-sizing: border-box;
}

.rl-edu-card h3,
.rl-edu-callout h3 {
    color: #1a1f3d;
    font-size: 1.18rem;
    margin: 0 0 0.65rem;
}

.rl-edu-card p,
.rl-edu-card li,
.rl-edu-callout p,
.rl-edu-table td {
    color: #5f6b85;
    line-height: 1.62;
}

.rl-edu-card p,
.rl-edu-callout p {
    margin: 0;
}

.rl-edu-list {
    display: grid;
    gap: 0.85rem;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.rl-edu-list li {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
}

.rl-edu-list li::before {
    content: "";
    flex: 0 0 auto;
    width: 0.55rem;
    height: 0.55rem;
    margin-top: 0.55rem;
    border-radius: 50%;
    background: #e94e4e;
}

.rl-edu-split,
.rl-edu-feature {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3rem;
    align-items: start;
}

.rl-edu-feature {
    padding: 2rem;
}

.rl-edu-callout {
    padding: 1.5rem;
}

.rl-edu-callout > .mud-icon-root {
    background: #fff1f1;
    color: #e94e4e;
}

.rl-edu-table-wrap {
    overflow-x: auto;
}

.rl-edu-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
}

.rl-edu-table th,
.rl-edu-table td {
    padding: 1rem;
    border-bottom: 1px solid #e5e9f2;
    text-align: left;
    vertical-align: top;
}

.rl-edu-table th {
    color: #1a1f3d;
    background: #f8fafc;
    font-size: 0.88rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.rl-edu-note {
    margin-top: 1.25rem;
    padding: 1rem 1.15rem;
    border-left: 4px solid #4ecdc4;
    border-radius: 8px;
    background: #eefcfb;
    color: #334155;
    line-height: 1.6;
}

.rl-edu-link {
    color: #0f766e;
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

.rl-edu-cta {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

.rl-edu-section-dark .rl-edu-cta h2 {
    color: #ffffff;
}

.rl-edu-cta p {
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.7;
    margin: 0 0 2rem;
}

@media (max-width: 980px) {
    .rl-edu-hero-grid,
    .rl-edu-split,
    .rl-edu-feature {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 640px) {
    .rl-edu-hero {
        padding: 6rem 0 3rem;
    }

    .rl-edu-grid {
        grid-template-columns: 1fr;
    }

    .rl-edu-feature {
        padding: 1.25rem;
    }
}

/* plus-jakarta-sans-200 - latin */
@font-face {
    font-display: swap;
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 200;
    src: url('../fonts/plus-jakarta-sans-v8-latin-200.woff2') format('woff2');
}

/* plus-jakarta-sans-200italic - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: italic;
    font-weight: 200;
    src: url('../fonts/plus-jakarta-sans-v8-latin-200italic.woff2') format('woff2');
}

/* plus-jakarta-sans-300 - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 300;
    src: url('../fonts/plus-jakarta-sans-v8-latin-300.woff2') format('woff2');
}

/* plus-jakarta-sans-300italic - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: italic;
    font-weight: 300;
    src: url('../fonts/plus-jakarta-sans-v8-latin-300italic.woff2') format('woff2'); 
}

/* plus-jakarta-sans-regular - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/plus-jakarta-sans-v8-latin-regular.woff2') format('woff2'); 
}
  
/* plus-jakarta-sans-italic - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/plus-jakarta-sans-v8-latin-italic.woff2') format('woff2'); 
}

/* plus-jakarta-sans-500 - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 500;
    src: url('../fonts/plus-jakarta-sans-v8-latin-500.woff2') format('woff2'); 
}

/* plus-jakarta-sans-500italic - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: italic;
    font-weight: 500;
    src: url('../fonts/plus-jakarta-sans-v8-latin-500italic.woff2') format('woff2'); 
}

/* plus-jakarta-sans-600 - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 600;
    src: url('../fonts/plus-jakarta-sans-v8-latin-600.woff2') format('woff2'); 
}

/* plus-jakarta-sans-600italic - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: italic;
    font-weight: 600;
    src: url('../fonts/plus-jakarta-sans-v8-latin-600italic.woff2') format('woff2'); 
}

/* plus-jakarta-sans-700 - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/plus-jakarta-sans-v8-latin-700.woff2') format('woff2'); 
}

/* plus-jakarta-sans-700italic - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/plus-jakarta-sans-v8-latin-700italic.woff2') format('woff2'); 
}

/* plus-jakarta-sans-800 - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 800;
    src: url('../fonts/plus-jakarta-sans-v8-latin-800.woff2') format('woff2'); 
}

/* plus-jakarta-sans-800italic - latin */
@font-face {
    font-display: swap; 
    font-family: 'Plus Jakarta Sans';
    font-style: italic;
    font-weight: 800;
    src: url('../fonts/plus-jakarta-sans-v8-latin-800italic.woff2') format('woff2'); 
}

/* open-sans-300 - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 300;
    src: url('../fonts/open-sans-v36-latin-300.woff2') format('woff2');
}

/* open-sans-300italic - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 300;
    src: url('../fonts/open-sans-v36-latin-300italic.woff2') format('woff2');
}

/* open-sans-regular - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/open-sans-v36-latin-regular.woff2') format('woff2');
}

/* open-sans-italic - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/open-sans-v36-latin-italic.woff2') format('woff2');
}

/* open-sans-500 - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 500;
    src: url('../fonts/open-sans-v36-latin-500.woff2') format('woff2');
}
  
/* open-sans-500italic - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 500;
    src: url('../fonts/open-sans-v36-latin-500italic.woff2') format('woff2');
}

/* open-sans-600 - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 600;
    src: url('../fonts/open-sans-v36-latin-600.woff2') format('woff2');
}

/* open-sans-600italic - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 600;
    src: url('../fonts/open-sans-v36-latin-600italic.woff2') format('woff2');
}

/* open-sans-700 - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/open-sans-v36-latin-700.woff2') format('woff2');
}

/* open-sans-700italic - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/open-sans-v36-latin-700italic.woff2') format('woff2');
}

/* open-sans-800 - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 800;
    src: url('../fonts/open-sans-v36-latin-800.woff2') format('woff2');
}

/* open-sans-800italic - latin */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 800;
    src: url('../fonts/open-sans-v36-latin-800italic.woff2') format('woff2');
}

body {
    font-family: var(--rentlokr-font-body, 'Open Sans');
    background: var(--rentlokr-page-bg, #F7FAFF);
}

.container {
    position: relative;
    max-width: 120rem;
    margin: auto;
}

.button {
    display: flex;
    padding: 1rem 0.75rem;
    justify-content: center;
    align-items: center;
    gap: 0.25rem;
    align-self: stretch;
    border: none;
    text-decoration: none;
}

.button.button-primary {
    background: #000;
    color: #FFF;
}

.button.button.button-secondary {
    border: 1px solid #444;
    background: #FFF;
    color: #000;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }
