@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Varela+Round&display=swap');

body.pm-portal, body.login {
    --pm-yellow: #ffcc08;
    --pm-ink: #111411;
    --pm-muted: #62695f;
    --pm-line: #dfe3d9;
    --pm-soft: #f5f6f1;
    margin: 0;
    background: var(--pm-soft);
    color: var(--pm-ink);
    font: 1rem/1.65 Inter, Arial, sans-serif;
}
.pm-portal { display: flex; flex-direction: column; min-height: 100vh; }
.pm-portal #portal-main { flex: 1; }
.pm-portal-wrap { width: min(100% - 3rem, 75rem); margin-inline: auto; }
.pm-portal-header { background: #fff; border-bottom: 1px solid var(--pm-line); }
.pm-portal-header-row, .pm-portal-footer-row { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; }
.pm-portal-header-row { min-height: 5.75rem; padding-block: .75rem; }
.pm-portal-brand { width: min(12.6rem, 100%); flex-shrink: 0; }
.pm-portal-logo, .pm-portal-logo img { display: block; width: 100%; height: auto; }
.pm-portal-slogan { margin: 5px 2.5% 0; color: var(--pm-muted); font: 500 9.6px/1.4 Inter, Arial, sans-serif; letter-spacing: .65px; }
.pm-portal-header nav { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.pm-portal-header nav a, .pm-portal-footer a { color: inherit; text-underline-offset: .25em; }
.pm-portal-header nav a { font-size: .85rem; font-weight: 600; text-decoration-color: transparent; }
.pm-portal-header nav a:hover { text-decoration-color: var(--pm-yellow); }
.pm-portal-footer { background: var(--pm-ink); color: #fff; padding-block: 1.15rem; font-size: .83rem; }
.pm-portal-skip { position: fixed; top: .5rem; left: .5rem; padding: .75rem; z-index: 1000; background: var(--pm-yellow); color: var(--pm-ink); transform: translateY(-180%); }
.pm-portal-skip:focus { transform: none; }
.pm-portal #pm-lead-board { --yellow: var(--pm-yellow); --ink: var(--pm-ink); --copy: var(--pm-muted); --border: var(--pm-line); background: var(--pm-soft); }
.pm-portal #pm-lead-board h1, .pm-portal #pm-lead-board h2, .pm-portal #pm-lead-board h3 { font-family: 'Varela Round', Arial, sans-serif; font-weight: 400; }
.pm-portal #pm-lead-board .pm-access { padding-block: clamp(2.5rem, 8vw, 7rem); }
.pm-portal #pm-lead-board .pm-access .pm-hero { padding: 0; }
.pm-portal #pm-lead-board .pm-access-links { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin: 1.75rem 0 0; }
.pm-portal #pm-lead-board .pm-access-links a:not(.pm-btn) { color: inherit; text-underline-offset: .2em; }
.pm-portal #pm-lead-board .pm-mandate button { margin-top: .6rem; }
.pm-portal :focus-visible { outline: 2px solid #725900; outline-offset: 4px; }
body.login h1 a { width: 12.6rem; height: 3.5rem; background: url('propmatch-logo.jpg') center / contain no-repeat; }
body.login form { border: 1px solid var(--pm-line); border-radius: 14px; }
body.login .button-primary { background: var(--pm-yellow); color: var(--pm-ink); border-color: var(--pm-yellow); font-weight: 700; }
body.login .button-primary:hover, body.login .button-primary:focus { background: #efbd00; color: var(--pm-ink); border-color: #efbd00; }
.pm-portal-elementor > .elementor { display: flex; flex-direction: column; flex: 1; }
.pm-portal-elementor .pm-native-portal-main { flex: 1; }
.pm-portal-elementor .e-con:is(.pm-portal-header-row, .pm-portal-footer-row, .pm-native-portal-actions) { flex-direction: row; }
.pm-portal-elementor .e-con:is(.pm-portal-header-row, .pm-portal-footer-row) { width: min(100% - 3rem, 75rem); align-items: center; justify-content: space-between; gap: 1.25rem; }
.pm-portal-elementor .pm-portal-header-row { padding-block: .75rem; }
.pm-portal-elementor .pm-portal-footer-row { padding-block: 1.15rem; }
.pm-portal-elementor .e-con.pm-portal-brand { width: min(12.6rem, 100%); }
.pm-portal-elementor .pm-native-logo img { display: block; width: 100%; height: auto; }
.pm-native-slogan .elementor-heading-title { margin: 5px 2.5% 0; color: var(--pm-muted); font: 500 9.6px/1.4 Inter, Arial, sans-serif; letter-spacing: .65px; }
.pm-portal-elementor .e-con.pm-native-portal-hero { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); align-items: center; gap: clamp(20px, 4vw, 56px); max-width: 1200px; margin-inline: auto; padding: clamp(2.5rem, 8vw, 7rem) clamp(16px, 3.5vw, 44px); }
.pm-portal-elementor.pm-portal-verified .e-con.pm-native-portal-hero { padding-block: clamp(28px, 4.5vw, 58px) 28px; }
.pm-portal-signed-in :is(.pm-native-portal-intro, .e-con.pm-native-portal-actions) { display: none; }
.pm-native-portal-title .elementor-heading-title { color: var(--pm-ink); font: 400 clamp(32px, 4.9vw, 60px)/1.12 'Varela Round', Arial, sans-serif; letter-spacing: -.045em; }
.pm-native-portal-title span { background: linear-gradient(transparent 82%, var(--pm-yellow) 82% 95%, transparent 95%); }
.pm-native-portal-intro p { max-width: 530px; margin: 20px 0 0; color: var(--pm-muted); font: 400 clamp(15px, 1.45vw, 18px)/1.6 Inter, Arial, sans-serif; }
.pm-portal-elementor .e-con.pm-native-portal-actions { flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin-top: 1.75rem; }
.pm-native-portal-actions .elementor-widget, .pm-native-navigation, .pm-portal-footer-row .elementor-widget { width: auto; }
.pm-native-portal-actions .elementor-button { min-height: 43px; display: inline-flex; align-items: center; border-radius: 7px; background: var(--pm-yellow); color: var(--pm-ink); font: 700 13px/1.3 Inter, Arial, sans-serif; }
.pm-native-portal-sign-in .elementor-button:hover { background: #efbd00; }
.pm-native-portal-waitlist .elementor-button { padding: 0; background: transparent; font-size: .95rem; font-weight: 400; text-decoration: underline; text-underline-offset: .2em; }
.pm-portal-footer-row .elementor-heading-title { color: #fff; font: inherit; }
.pm-portal-elementor .pm-portal-footer { padding-block: 0; }
.pm-portal-map { --pale: #eeeee5; --ink: var(--pm-ink); --yellow: var(--pm-yellow); }
@media (max-width: 640px) {
    .pm-portal-wrap { width: calc(100% - 2rem); }
    .pm-portal-header-row { align-items: flex-start; flex-direction: column; gap: .6rem; }
    .pm-portal-elementor .e-con.pm-portal-header-row { width: calc(100% - 2rem); flex-direction: column; align-items: flex-start; gap: .6rem; }
    .pm-portal-elementor .e-con.pm-portal-footer-row { width: calc(100% - 2rem); }
    .pm-portal-elementor .e-con.pm-native-portal-hero { grid-template-columns: 1fr; }
    .pm-portal-map .pm-map { aspect-ratio: 2.6; max-height: 145px; }
    .pm-portal-map .pm-map-zone { width: 120px; }
}
