:root {
    --ink: #173f32;
    --ink-soft: #416258;
    --paper: #f8f3e8;
    --paper-deep: #efe5d3;
    --white: #fffdf8;
    --leaf: #18794e;
    --leaf-dark: #115f3c;
    --leaf-light: #dcefe3;
    --sun: #f3bd4d;
    --coral: #e8785c;
    --mist: #e8eee8;
    --line: #d6d9cf;
    --danger: #a53b32;
    --shadow: 0 22px 60px rgb(23 63 50 / 12%);
    --radius-sm: .75rem;
    --radius: 1.25rem;
    --radius-lg: 2rem;
    --page-shell: min(76rem, calc(100% - 2rem));
    --public-shell: min(86rem, calc(100% - 2rem));
    color-scheme: light;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 17px;
    line-height: 1.55;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-width: 320px;
    background: var(--paper);
    color: var(--ink);
}

button,
input,
textarea {
    font: inherit;
}

a {
    color: inherit;
    text-underline-offset: .2em;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--sun);
    outline-offset: 3px;
}

.site-header {
    position: relative;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: var(--page-shell);
    min-height: 5.25rem;
    margin-inline: auto;
}

.brand {
    display: inline-flex;
    gap: .65rem;
    align-items: center;
    color: var(--ink);
    font-size: 1.28rem;
    font-weight: 850;
    letter-spacing: -.04em;
    text-decoration: none;
}

.brand-mark {
    position: relative;
    display: inline-block;
    width: 2rem;
    height: 2rem;
    transform: rotate(45deg);
    border-radius: .4rem .9rem .4rem .9rem;
    background: var(--leaf);
}

.brand-mark::after {
    position: absolute;
    right: -.13rem;
    bottom: -.13rem;
    width: .9rem;
    height: .9rem;
    border: .25rem solid var(--paper);
    border-radius: 50%;
    background: var(--sun);
    content: "";
}

.site-nav {
    display: flex;
    gap: clamp(.85rem, 2vw, 1.5rem);
    align-items: center;
}

.site-nav a,
.header-link,
.header-logout-form button {
    color: var(--ink);
    font-size: .94rem;
    font-weight: 750;
    text-decoration: none;
    white-space: nowrap;
}

.site-nav a:not(.nav-primary) {
    color: var(--ink-soft);
    font-size: .88rem;
    font-weight: 720;
}

.site-nav .nav-primary {
    padding: .68rem 1rem;
    border: 1px solid rgb(17 95 60 / 18%);
    border-radius: 999px;
    background: var(--leaf);
    color: white;
    box-shadow: 0 12px 28px rgb(24 121 78 / 18%);
}

.site-nav .nav-primary:hover {
    transform: translateY(-1px);
    background: var(--leaf-dark);
    box-shadow: 0 14px 32px rgb(24 121 78 / 23%);
}

.header-logout-form {
    margin: 0;
}

.header-logout-form button {
    min-height: 2.45rem;
    padding: .55rem .9rem;
    border: 1px solid rgb(165 59 50 / 18%);
    border-radius: 999px;
    background: rgb(255 253 248 / 72%);
    color: var(--danger);
    cursor: pointer;
}

.header-logout-form button:hover {
    background: rgb(165 59 50 / 9%);
}

.site-footer {
    position: relative;
    z-index: 5;
    display: grid;
    grid-template-columns: minmax(18rem, 1.05fr) minmax(20rem, .95fr);
    gap: clamp(1.5rem, 5vw, 4rem);
    width: var(--public-shell);
    margin: clamp(3rem, 7vw, 5rem) auto 1.2rem;
    padding: clamp(1.4rem, 4vw, 2.4rem);
    border: 1px solid rgb(255 253 248 / 75%);
    border-radius: clamp(1.4rem, 3vw, 2.2rem);
    background:
        radial-gradient(circle at 8% 12%, rgb(243 189 77 / 20%), transparent 30%),
        linear-gradient(135deg, rgb(255 253 248 / 88%), rgb(232 239 232 / 72%));
    box-shadow: 0 24px 70px rgb(23 63 50 / 11%);
    color: var(--ink-soft);
}

.footer-story p {
    max-width: 31rem;
    margin: .75rem 0 0;
    font-size: .96rem;
}

.footer-story p strong {
    color: var(--ink);
}

.footer-brand {
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    color: var(--ink);
    font-weight: 850;
    letter-spacing: -.03em;
    text-decoration: none;
}

.footer-brand .brand-mark {
    width: 1.55rem;
    height: 1.55rem;
    border-radius: .32rem .7rem .32rem .7rem;
}

.footer-brand .brand-mark::after {
    width: .68rem;
    height: .68rem;
    border-width: .18rem;
}

.footer-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1rem;
}

.footer-cta-row a {
    padding: .55rem .8rem;
    border: 1px solid rgb(23 63 50 / 12%);
    border-radius: 999px;
    background: rgb(255 253 248 / 72%);
    color: var(--ink);
    font-size: .84rem;
    font-weight: 800;
    text-decoration: none;
}

.footer-cta-row a:first-child {
    border-color: rgb(17 95 60 / 16%);
    background: var(--leaf);
    color: white;
}

.footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 4vw, 2.5rem);
}

.site-footer nav {
    display: grid;
    gap: .45rem;
}

.site-footer a:not(.footer-brand) {
    color: var(--ink-soft);
    font-size: .86rem;
    font-weight: 720;
    text-decoration: none;
}

.site-footer a:not(.footer-brand):hover {
    color: var(--ink);
    text-decoration: underline;
}

.site-footer nav strong {
    margin-bottom: .25rem;
    color: var(--ink);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.footer-bottom {
    grid-column: 1 / -1;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding-top: 1.1rem;
    border-top: 1px solid rgb(23 63 50 / 10%);
    color: rgb(65 98 88 / 72%);
    font-size: .82rem;
}

.site-footer small {
    font-size: inherit;
    white-space: nowrap;
}

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(22rem, .98fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
    width: min(76rem, calc(100% - 2rem));
    min-height: calc(100svh - 7rem);
    margin-inline: auto;
    padding: clamp(2rem, 6vw, 5rem) 0 6rem;
}

.hero-copy {
    max-width: 42rem;
}

.eyebrow {
    display: flex;
    gap: .6rem;
    align-items: center;
    margin: 0 0 1.2rem;
    color: var(--leaf);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.eyebrow span {
    width: 1.9rem;
    height: .2rem;
    border-radius: 999px;
    background: var(--coral);
}

.hero h1,
.wizard-heading h1,
.how-it-works h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .96;
}

.hero h1 {
    max-width: 11ch;
    font-size: clamp(3.5rem, 8vw, 7.4rem);
}

.hero h1 em {
    position: relative;
    color: var(--leaf);
    font-weight: inherit;
}

.hero h1 em::after {
    position: absolute;
    right: 0;
    bottom: -.12em;
    left: .06em;
    height: .12em;
    transform: rotate(-1.5deg);
    border-radius: 100%;
    background: var(--sun);
    content: "";
    opacity: .8;
}

.hero-lead {
    max-width: 38rem;
    margin: 2rem 0;
    color: var(--ink-soft);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}

.button {
    position: relative;
    display: inline-flex;
    gap: .8rem;
    align-items: center;
    justify-content: center;
    min-height: 3.35rem;
    padding: .82rem 1.25rem;
    border: 0;
    border-radius: .85rem;
    font-weight: 850;
    text-decoration: none;
    cursor: pointer;
    transition: transform 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.button:hover {
    transform: translateY(-2px);
}

button:disabled,
.button:disabled,
input[type="submit"]:disabled {
    cursor: progress;
    opacity: .68;
    transform: none;
}

button.is-loading::after,
.button.is-loading::after {
    width: .9rem;
    height: .9rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    content: "";
    animation: spin 760ms linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.button-primary {
    background: var(--leaf);
    box-shadow: 0 .65rem 1.5rem rgb(24 121 78 / 22%);
    color: white;
}

.button-primary:hover {
    background: var(--leaf-dark);
}

.button-primary span {
    font-size: 1.25em;
}

.button-secondary {
    border: 1px solid rgb(23 63 50 / 18%);
    background: var(--white);
    color: var(--ink);
}

.trust-list {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem 1.3rem;
    margin: 1.5rem 0 0;
    padding: 0;
    color: var(--ink-soft);
    font-size: .84rem;
    list-style: none;
}

.trust-list li {
    display: flex;
    gap: .35rem;
    align-items: center;
}

.trust-list span {
    display: grid;
    width: 1.2rem;
    height: 1.2rem;
    place-items: center;
    border-radius: 50%;
    background: var(--leaf-light);
    color: var(--leaf);
    font-size: .72rem;
    font-weight: 900;
}

.hero-scene {
    position: relative;
    min-height: 34rem;
    overflow: hidden;
    border: .5rem solid rgb(255 255 255 / 42%);
    border-radius: 44% 44% 2.2rem 2.2rem;
    background: #cae4de;
    box-shadow: var(--shadow);
    isolation: isolate;
}

.hero-scene::before {
    position: absolute;
    right: -8rem;
    bottom: -8rem;
    width: 31rem;
    height: 25rem;
    border-radius: 50%;
    background: #79aa7f;
    content: "";
}

.hero-scene::after {
    position: absolute;
    bottom: -10rem;
    left: -8rem;
    width: 34rem;
    height: 25rem;
    border-radius: 50%;
    background: #a8c88d;
    content: "";
}

.sun {
    position: absolute;
    top: 3.2rem;
    right: 4rem;
    width: 5.2rem;
    height: 5.2rem;
    border-radius: 50%;
    background: var(--sun);
    box-shadow: 0 0 0 1.3rem rgb(243 189 77 / 18%);
}

.house {
    position: absolute;
    z-index: 2;
    bottom: 8.5rem;
    width: 11rem;
    height: 10rem;
    background: var(--white);
}

.house::before {
    position: absolute;
    top: -5.2rem;
    left: -1rem;
    border-right: 6.5rem solid transparent;
    border-bottom: 5.4rem solid var(--coral);
    border-left: 6.5rem solid transparent;
    content: "";
}

.house span {
    position: absolute;
    bottom: 0;
    left: 4.1rem;
    width: 3rem;
    height: 5rem;
    border-radius: 1.5rem 1.5rem 0 0;
    background: var(--ink);
}

.house-left {
    left: -2rem;
    transform: scale(.82);
}

.house-right {
    right: -1.5rem;
    bottom: 7rem;
    transform: scale(.68);
}

.path {
    position: absolute;
    z-index: 3;
    bottom: -2rem;
    left: 46%;
    width: 8rem;
    height: 24rem;
    transform: rotate(14deg);
    border-radius: 50%;
    background: var(--paper-deep);
}

.neighbor {
    position: absolute;
    z-index: 5;
    bottom: 4.3rem;
    width: 4rem;
    height: 9rem;
    border-radius: 2rem 2rem .8rem .8rem;
    background: var(--ink);
}

.neighbor::before {
    position: absolute;
    top: -2.6rem;
    left: .65rem;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: 50%;
    background: #d99c76;
    content: "";
}

.neighbor i {
    position: absolute;
    top: 2.3rem;
    left: -1.2rem;
    width: 6.4rem;
    height: 1rem;
    transform: rotate(-16deg);
    border-radius: 1rem;
    background: inherit;
}

.neighbor-one {
    left: 38%;
}

.neighbor-two {
    right: 28%;
    height: 8rem;
    background: var(--coral);
}

.neighbor-two i {
    transform: rotate(18deg);
}

.speech {
    position: absolute;
    z-index: 6;
    top: 8rem;
    left: 13%;
    padding: .7rem 1rem;
    transform: rotate(-4deg);
    border-radius: 1rem 1rem 1rem .2rem;
    background: var(--white);
    box-shadow: 0 .7rem 1.5rem rgb(23 63 50 / 12%);
    font-weight: 850;
}

.how-it-works {
    width: min(76rem, calc(100% - 2rem));
    margin: 0 auto 5rem;
    padding: clamp(2rem, 6vw, 4rem);
    border-radius: var(--radius-lg);
    background: var(--ink);
    color: var(--white);
}

.section-kicker {
    margin: 0 0 .8rem;
    color: var(--sun);
    font-size: .8rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.how-it-works h2 {
    max-width: 14ch;
    font-size: clamp(2.2rem, 5vw, 4.2rem);
}

.steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-top: 3rem;
}

.steps article {
    padding: 1.5rem;
    border: 1px solid rgb(255 255 255 / 13%);
    border-radius: var(--radius);
    background: rgb(255 255 255 / 5%);
}

.steps b {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    place-items: center;
    border-radius: 50%;
    background: var(--sun);
    color: var(--ink);
}

.steps h3 {
    margin: 1.2rem 0 .4rem;
    font-size: 1.05rem;
}

.steps p {
    margin: 0;
    color: #c9d7d1;
    font-size: .92rem;
}

.wizard-page {
    min-height: 100svh;
    background:
        radial-gradient(circle at 90% 10%, rgb(243 189 77 / 18%), transparent 22rem),
        var(--paper);
}

.wizard-shell {
    width: min(48rem, calc(100% - 2rem));
    margin: 1.2rem auto 5rem;
}

.wizard-progress {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: center;
    margin-bottom: 3rem;
}

.wizard-progress > span {
    height: .42rem;
    overflow: hidden;
    border-radius: 999px;
    background: var(--paper-deep);
}

.wizard-progress b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--leaf);
}

.progress-20 {
    width: 20%;
}

.progress-40 {
    width: 40%;
}

.progress-60 { width: 60%; }
.progress-80 { width: 80%; }
.progress-100 { width: 100%; }

.wizard-progress small {
    color: var(--ink-soft);
    font-weight: 750;
}

.wizard-heading {
    margin-bottom: 2rem;
}

.wizard-heading h1 {
    font-size: clamp(2.6rem, 8vw, 4.8rem);
}

.wizard-heading > p:last-child {
    max-width: 38rem;
    margin: 1rem 0 0;
    color: var(--ink-soft);
    font-size: 1.05rem;
}

.wizard-form,
.coming-panel {
    padding: clamp(1.2rem, 4vw, 2.3rem);
    border: 1px solid rgb(23 63 50 / 8%);
    border-radius: var(--radius-lg);
    background: var(--white);
    box-shadow: var(--shadow);
}

.wizard-form {
    display: grid;
    gap: 2rem;
}

.field {
    display: grid;
    gap: .55rem;
}

.field > span,
.category-fieldset legend {
    color: var(--ink);
    font-weight: 850;
}

.field > span small {
    margin-left: .35rem;
    color: var(--ink-soft);
    font-size: .72rem;
    font-weight: 650;
}

.field > small {
    color: var(--ink-soft);
    font-size: .82rem;
    line-height: 1.45;
}

.field input,
.field textarea {
    width: 100%;
    min-height: 3.45rem;
    padding: .85rem 1rem;
    border: 1.5px solid var(--line);
    border-radius: var(--radius-sm);
    background: #fff;
    color: var(--ink);
    transition: border 150ms ease, box-shadow 150ms ease;
}

.range-field {
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: rgb(248 250 246 / 78%);
}

.range-field strong {
    color: var(--leaf-dark);
    font-size: 1.35rem;
}

.range-field input[type="range"] {
    min-height: auto;
    padding: 0;
    accent-color: var(--leaf);
    cursor: pointer;
}

.field textarea {
    min-height: 7rem;
    resize: vertical;
}

.field input:focus,
.field textarea:focus {
    border-color: var(--leaf);
    box-shadow: 0 0 0 .25rem rgb(24 121 78 / 10%);
    outline: 0;
}

.field input::placeholder,
.field textarea::placeholder {
    color: #828d87;
}

.field-hint {
    color: var(--ink-soft);
    font-size: .78rem;
}

.field-error {
    color: var(--danger);
    font-size: .82rem;
    font-style: normal;
    font-weight: 750;
}

.category-fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.category-fieldset legend {
    margin-bottom: .8rem;
}

.category-suggestion {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin-bottom: .8rem;
    padding: .75rem;
    border: 1px solid rgb(24 121 78 / 22%);
    border-radius: var(--radius-sm);
    background: var(--leaf-light);
}

.category-suggestion[hidden] {
    display: none;
}

.category-suggestion > span {
    color: var(--leaf);
    font-size: 1.2rem;
}

.category-suggestion p {
    flex: 1;
    margin: 0;
    font-size: .82rem;
}

.category-suggestion button {
    min-height: 2.4rem;
    padding: .45rem .7rem;
    border: 0;
    border-radius: .55rem;
    background: var(--leaf);
    color: white;
    font-size: .76rem;
    font-weight: 800;
    cursor: pointer;
}

.category-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .65rem;
}

.category-card {
    position: relative;
    display: grid;
    gap: .5rem;
    min-height: 7.2rem;
    place-items: center;
    padding: .75rem .65rem;
    border: 1.5px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    text-align: center;
    cursor: pointer;
    transition: transform 150ms ease, border 150ms ease, background 150ms ease;
}

.category-card:hover {
    transform: translateY(-2px);
    border-color: #9dac9f;
}

.category-card:has(input:checked) {
    border-color: var(--leaf);
    background: var(--leaf-light);
    box-shadow: 0 0 0 .2rem rgb(24 121 78 / 9%);
}

.category-card.is-suggested {
    box-shadow: 0 0 0 .25rem rgb(243 189 77 / 32%);
}

.category-card input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.category-card > span:last-child {
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.2;
}

.category-icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border: 1px solid rgb(24 121 78 / 12%);
    border-radius: 1rem;
    background: linear-gradient(145deg, #f6faf4, var(--mist));
    color: var(--leaf);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 75%);
}

.category-icon svg {
    width: 1.55rem;
    height: 1.55rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.category-orange .category-icon,
.category-red .category-icon,
.category-icon.category-orange,
.category-icon.category-red {
    border-color: rgb(167 79 56 / 14%);
    background: linear-gradient(145deg, #fff5ef, #fbe5dd);
    color: #a74f38;
}

.category-violet .category-icon,
.category-indigo .category-icon,
.category-icon.category-violet,
.category-icon.category-indigo {
    border-color: rgb(101 82 142 / 14%);
    background: linear-gradient(145deg, #f8f5ff, #e9e4f3);
    color: #65528e;
}

.category-pink .category-icon,
.category-icon.category-pink {
    border-color: rgb(166 79 105 / 14%);
    background: linear-gradient(145deg, #fff4f7, #f7e2e8);
    color: #a64f69;
}

.category-amber .category-icon,
.category-icon.category-amber {
    border-color: rgb(147 107 24 / 14%);
    background: linear-gradient(145deg, #fff9ec, #f9eccd);
    color: #936b18;
}

.wizard-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: .5rem;
}

.text-link {
    color: var(--ink-soft);
    font-weight: 750;
}

.coming-panel {
    text-align: center;
}

.coming-panel > span {
    display: grid;
    width: 5rem;
    height: 5rem;
    margin: 0 auto 1rem;
    place-items: center;
    border-radius: 50%;
    background: var(--leaf-light);
    color: var(--leaf);
    font-size: 2.5rem;
}

.coming-panel h2 {
    margin-bottom: .4rem;
    font-family: Georgia, serif;
    font-size: 2rem;
}

.location-callout,
.privacy-note {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1rem;
    border-radius: var(--radius);
    background: var(--leaf-light);
}

.location-callout > span,
.privacy-note > span {
    display: grid;
    flex: 0 0 2.7rem;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    border-radius: 50%;
    background: white;
    color: var(--leaf);
    font-size: 1.35rem;
}

.location-callout p,
.privacy-note p {
    margin: .15rem 0 0;
    color: var(--ink-soft);
    font-size: .88rem;
}

.privacy-note-centered {
    justify-content: center;
    text-align: center;
}

.privacy-note-centered p {
    margin: 0;
}

.location-map-wrap {
    position: relative;
    overflow: hidden;
    border: 1px solid rgb(23 63 50 / 14%);
    border-radius: var(--radius-lg);
    box-shadow: inset 0 0 0 1px rgb(255 255 255 / 50%);
}

.location-map {
    width: 100%;
    height: clamp(18rem, 48vw, 26rem);
    background: #dbe9e3;
}

.location-map .leaflet-tile-pane {
    filter: saturate(.75) contrast(.94);
}

.location-map .leaflet-control-attribution {
    font-size: .65rem;
}

.location-button {
    position: absolute;
    z-index: 500;
    right: 1rem;
    bottom: 1rem;
    width: auto;
    background: rgb(255 253 248 / 90%);
    box-shadow: 0 .7rem 2rem rgb(23 63 50 / 20%);
    color: var(--ink);
    backdrop-filter: blur(14px);
}

.location-status,
.location-privacy {
    margin: -.8rem 0 0;
    color: var(--ink-soft);
    font-size: .82rem;
}

.location-status {
    font-weight: 750;
}

.location-privacy {
    padding-left: 1rem;
    border-left: .2rem solid var(--sun);
}

.location-suggestions {
    display: grid;
    gap: .45rem;
}

.location-suggestions[hidden] {
    display: none;
}

.location-suggestions button {
    display: grid;
    gap: .15rem;
    padding: .75rem .9rem;
    border: 1px solid var(--line);
    border-radius: .85rem;
    background: white;
    color: var(--ink);
    text-align: left;
    cursor: pointer;
}

.location-suggestions button:hover {
    border-color: rgb(24 121 78 / 28%);
    background: var(--leaf-light);
}

.location-suggestions span {
    color: var(--ink-soft);
    font-size: .8rem;
}

.location-suggestions-loading {
    display: block;
    padding: .85rem 1rem;
}

.location-suggestions.is-loading {
    border: 1px dashed rgb(24 121 78 / 28%);
    border-radius: .85rem;
    background: rgb(255 253 248 / 68%);
}

.choice-fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.choice-fieldset legend {
    margin-bottom: .7rem;
    font-weight: 850;
}

.choice-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .6rem;
}

.choice-pill {
    position: relative;
}

.choice-pill input,
.stacked-choices input {
    position: absolute;
    opacity: 0;
}

.choice-pill span,
.stacked-choices span {
    display: grid;
    min-height: 3.2rem;
    place-items: center;
    padding: .65rem;
    border: 1.5px solid var(--line);
    border-radius: var(--radius-sm);
    background: white;
    font-weight: 750;
    text-align: center;
    cursor: pointer;
}

.choice-pill input:checked + span,
.stacked-choices input:checked + span {
    border-color: var(--leaf);
    background: var(--leaf-light);
    color: var(--leaf-dark);
}

.stacked-choices {
    display: grid;
    gap: .55rem;
}

.stacked-choices label {
    position: relative;
}

.stacked-choices span {
    justify-content: start;
    padding-inline: 1rem;
}

.upload-zone {
    position: relative;
    display: grid;
    min-height: 10.5rem;
    place-items: center;
    align-content: center;
    padding: 1.25rem;
    border: 2px dashed #a6b9aa;
    border-radius: var(--radius-lg);
    background: #f7fbf7;
    text-align: center;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.upload-zone:hover,
.upload-zone.has-files,
.upload-zone.is-uploading {
    border-color: var(--leaf);
    background: var(--leaf-light);
}

.upload-zone.is-uploading {
    cursor: wait;
}

.upload-zone input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.upload-zone small {
    color: var(--ink-soft);
}

.upload-icon {
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    margin-bottom: .55rem;
    place-items: center;
    border-radius: 1.2rem;
    background: var(--leaf-light);
    color: var(--leaf);
    font-size: 2rem;
}

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

.photo-preview-grid:empty {
    display: none;
}

.photo-preview-card {
    display: grid;
    gap: .45rem;
    padding: .65rem;
    border: 1px solid var(--line);
    border-radius: 1rem;
    background: white;
}

.photo-preview-image,
.photo-preview-card img {
    display: block;
}

.photo-preview-image {
    overflow: hidden;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: .75rem;
    background: var(--mist);
}

.photo-preview-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.photo-preview-card > span:not(.photo-preview-image) {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    place-items: center;
    border-radius: .75rem;
    background: var(--leaf);
    color: white;
    font-weight: 900;
}

.photo-preview-card strong {
    overflow: hidden;
    font-size: .92rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.photo-preview-card small {
    color: var(--ink-soft);
}

.photo-preview-card form {
    margin: 0;
}

.photo-preview-card button {
    min-height: 2.4rem;
    border: 0;
    border-radius: 999px;
    background: rgb(159 47 47 / 10%);
    color: #9f2f2f;
    cursor: pointer;
    font-weight: 900;
}

.attached-photos {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.attached-photos span,
.summary-card em {
    color: var(--ink-soft);
    font-style: normal;
}

.attached-photos span {
    padding: .4rem .7rem;
    border-radius: 999px;
    background: var(--mist);
    font-size: .88rem;
    font-weight: 800;
}

.summary-card {
    display: grid;
    gap: .2rem;
    padding: 1rem 1.2rem;
    border-left: .3rem solid var(--sun);
    border-radius: .3rem var(--radius-sm) var(--radius-sm) .3rem;
    background: #fbf5e7;
}

.summary-card small,
.summary-card span {
    color: var(--ink-soft);
}

.summary-card strong {
    font-size: 1.08rem;
}

.listing-preview-card {
    display: grid;
    gap: .9rem;
    padding: 1.2rem;
    border: 1px solid var(--line);
    border-radius: 1.4rem;
    background: linear-gradient(135deg, #fff, #f7fbf8);
}

.listing-preview-card-rich {
    gap: 1rem;
    background:
        radial-gradient(circle at 92% 10%, rgb(243 189 77 / 18%), transparent 9rem),
        linear-gradient(135deg, #fff, #f7fbf8);
}

.listing-preview-top {
    display: flex;
    gap: .75rem;
    align-items: center;
    justify-content: space-between;
}

.listing-preview-top span,
.listing-preview-top small {
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 850;
}

.listing-preview-top span {
    padding: .35rem .7rem;
    background: var(--leaf);
    color: white;
}

.listing-preview-top small {
    color: var(--leaf-dark);
    text-transform: uppercase;
    letter-spacing: .08em;
}

.listing-preview-card > small {
    color: var(--leaf-dark);
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.listing-preview-card > strong {
    font-size: 1.45rem;
}

.listing-preview-card h2 {
    margin: 0;
    font: 800 clamp(1.7rem, 5vw, 2.7rem)/1.02 Georgia, serif;
    letter-spacing: -.045em;
}

.listing-preview-card p {
    margin: 0;
    color: var(--ink-soft);
    line-height: 1.55;
}

.listing-preview-card .listing-place {
    color: var(--ink);
    font-weight: 800;
}

.listing-preview-card .listing-description {
    margin: 0;
    padding: 1rem;
    border: 1px solid rgb(23 63 50 / 10%);
    border-radius: 1rem;
    background: rgb(255 253 248 / 76%);
}

.listing-preview-card .listing-description h3 {
    margin: 0 0 .45rem;
    font-size: .86rem;
}

.listing-preview-note {
    display: grid;
    gap: .25rem;
    padding: .9rem 1rem;
    border-radius: 1rem;
    background: rgb(228 244 237 / 82%);
    color: var(--ink);
}

.listing-preview-note span {
    color: var(--ink-soft);
    line-height: 1.45;
}

.listing-preview-card dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
    margin: 0;
}

.listing-preview-card dl div {
    padding: .8rem;
    border-radius: .9rem;
    background: var(--mist);
}

.listing-preview-card dt {
    color: var(--ink-soft);
    font-size: .72rem;
    font-weight: 800;
}

.listing-preview-card dd {
    margin: .15rem 0 0;
    font-weight: 850;
}

.listing-preview-card em {
    color: var(--ink-soft);
    font-style: normal;
}

.review-panel form {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
    text-align: left;
}

.rating-fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.rating-fieldset legend {
    margin-bottom: .5rem;
    font-weight: 850;
}

.rating-fieldset div {
    display: flex;
    flex-direction: row-reverse;
    gap: .35rem;
    justify-content: flex-end;
}

.rating-fieldset input {
    position: absolute;
    opacity: 0;
}

.rating-fieldset span {
    display: inline-flex;
    min-height: 2.7rem;
    align-items: center;
    padding: .55rem .75rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: white;
    color: #c48418;
    cursor: pointer;
    font-weight: 900;
}

.rating-fieldset input:checked + span {
    border-color: rgb(196 132 24 / 35%);
    background: rgb(243 189 77 / 18%);
}

.terms-check {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
}

.terms-check input {
    width: 1.35rem;
    height: 1.35rem;
    margin-top: .15rem;
    accent-color: var(--leaf);
}

.success-panel {
    max-width: 42rem;
    margin: 4rem auto;
    padding: clamp(2rem, 7vw, 4rem);
    border-radius: var(--radius-lg);
    background: var(--white);
    box-shadow: var(--shadow);
    text-align: center;
}

.success-panel > span {
    display: grid;
    width: 5rem;
    height: 5rem;
    margin: 0 auto 1.5rem;
    place-items: center;
    border-radius: 50%;
    background: var(--leaf);
    color: white;
    font-size: 2.2rem;
}

.success-panel .eyebrow {
    justify-content: center;
}

.success-panel h1 {
    margin: 0;
    font-family: Georgia, serif;
    font-size: clamp(2.5rem, 8vw, 4rem);
    line-height: 1;
}

.local-tip {
    margin: 1.5rem 0;
    padding: 1rem;
    border-radius: var(--radius-sm);
    background: var(--paper);
    text-align: left;
}

code {
    font-size: .86em;
}

/* Temporary compatibility for the contractor forms before their visual pass. */
.wizard-page form,
body:not(.home-page):not(.wizard-page) main:not(.admin-shell):not(.public-listing-shell) {
    max-width: 48rem;
}

.error {
    color: var(--danger);
    font-weight: 700;
}

.notice {
    padding: .8rem 1rem;
    border-radius: var(--radius-sm);
    background: var(--leaf-light);
}

.muted {
    color: var(--ink-soft);
}

.sms-code-form {
    display: grid;
    gap: .7rem;
    width: min(100%, 30rem);
    margin: 1.25rem auto;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    background: rgb(255 255 255 / 72%);
    text-align: left;
}

.sms-code-form label {
    font-weight: 850;
}

.sms-code-form > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .6rem;
}

.sms-code-form input {
    min-height: 3.2rem;
    padding: .75rem 1rem;
    border: 1.5px solid var(--line);
    border-radius: .9rem;
    background: white;
    color: var(--ink);
    font: 800 1.4rem/1 inherit;
    letter-spacing: .18em;
    text-align: center;
}

@media (max-width: 760px) {
    :root {
        font-size: 16px;
    }

    .site-header {
        min-height: 4.5rem;
    }

    .site-footer {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .footer-links {
        grid-template-columns: 1fr;
    }

    .footer-bottom {
        flex-direction: column;
        gap: .35rem;
    }

    .site-footer small {
        white-space: normal;
    }

    .site-nav {
        gap: .8rem;
    }

    .site-nav a:first-child {
        display: none;
    }

    .admin-top-nav {
        gap: .45rem;
    }

    .admin-top-nav a:first-child {
        display: inline-flex;
    }

    .admin-top-nav a,
    .header-logout-form button {
        min-height: 2.35rem;
        padding: .5rem .72rem;
        font-size: .84rem;
    }

    .hero {
        grid-template-columns: 1fr;
        min-height: auto;
        padding-top: 2.2rem;
    }

    .hero h1 {
        font-size: clamp(3.4rem, 17vw, 5rem);
    }

    .hero-actions {
        display: grid;
    }

    .sms-code-form > div {
        grid-template-columns: 1fr;
    }

    .button {
        width: 100%;
    }

    .trust-list {
        display: grid;
        gap: .55rem;
    }

    .hero-scene {
        min-height: 27rem;
        border-radius: 9rem 9rem 1.5rem 1.5rem;
    }

    .steps {
        grid-template-columns: 1fr;
    }

    .category-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: .55rem;
    }

    .category-card {
        min-height: 6.45rem;
        padding: .65rem .5rem;
    }

    .category-icon {
        width: 2.75rem;
        height: 2.75rem;
        border-radius: .9rem;
    }

    .category-icon svg {
        width: 1.42rem;
        height: 1.42rem;
    }

    .choice-row {
        grid-template-columns: 1fr;
    }

    .wizard-shell {
        margin-top: .5rem;
    }

    .wizard-progress {
        margin-bottom: 2rem;
    }

    .wizard-form {
        margin-inline: -.25rem;
        border-radius: 1.4rem;
        gap: 1.45rem;
        padding: 1rem;
    }

    .location-callout,
    .privacy-note {
        gap: .7rem;
        padding: .8rem;
        border-radius: 1rem;
    }

    .location-map {
        min-height: 16rem;
    }

    .location-button {
        right: .7rem;
        bottom: .7rem;
        left: .7rem;
        justify-content: center;
        width: auto;
    }

    .wizard-actions {
        display: grid;
        gap: .65rem;
        padding-top: 0;
    }

    .wizard-actions .text-link {
        order: 2;
        justify-self: center;
    }

    .upload-zone {
        min-height: 8.5rem;
        padding: 1rem;
    }

    .photo-preview-grid {
        grid-template-columns: 1fr;
    }

    .admin-island {
        padding: .65rem;
    }

    .admin-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-table-wrap {
        margin-inline: -.35rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .admin-table {
        min-width: 42rem;
    }
}

.subscription-shell {
    position: relative;
    z-index: 3;
    width: min(56rem, calc(100% - 2rem));
    margin: 2rem auto 6rem;
}

.subscription-shell > header {
    margin: 2rem 0;
}

.subscription-shell h1,
.fake-checkout-card h1 {
    margin: 0;
    font: 700 clamp(3.5rem, 8vw, 6.5rem)/.9 Georgia, serif;
    letter-spacing: -.06em;
}

.subscription-shell > header > p:last-child,
.fake-checkout-card > p {
    max-width: 50ch;
    color: var(--ink-soft);
}

.subscription-status-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, .7fr);
    gap: 1rem;
    align-items: stretch;
    margin-bottom: 1rem;
    padding: 1.1rem;
    border: 1px solid rgb(255 255 255 / 78%);
    border-radius: 1.6rem;
    background: rgb(255 253 248 / 86%);
    box-shadow: 0 1.4rem 3.8rem rgb(23 63 50 / 12%);
    backdrop-filter: blur(20px) saturate(120%);
}

.subscription-status-card > div {
    display: grid;
    gap: .35rem;
}

.subscription-status-card small,
.subscription-status-card dt {
    color: var(--ink-muted);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.subscription-status-card strong {
    font: 700 clamp(1.6rem, 4vw, 2.45rem)/1 Georgia, serif;
    letter-spacing: -.04em;
}

.subscription-status-card p {
    max-width: 54ch;
    margin: 0;
    color: var(--ink-soft);
}

.subscription-status-card dl {
    display: grid;
    gap: .55rem;
    margin: 0;
    padding: 1rem;
    border-radius: 1.1rem;
    background: rgb(255 255 255 / 68%);
}

.subscription-status-card dd,
.subscription-status-card dt {
    margin: 0;
}

.subscription-status-card dd {
    color: var(--ink);
    font-weight: 800;
}

.subscription-status-card.is-success {
    border-color: rgb(49 139 98 / 32%);
}

.subscription-status-card.is-warning {
    border-color: rgb(214 148 28 / 45%);
    background:
        radial-gradient(circle at 100% 0, rgb(243 189 77 / 20%), transparent 12rem),
        rgb(255 253 248 / 88%);
}

.subscription-status-card.is-danger {
    border-color: rgb(181 71 63 / 38%);
    background:
        radial-gradient(circle at 100% 0, rgb(181 71 63 / 14%), transparent 12rem),
        rgb(255 253 248 / 88%);
}

.pricing-card,
.fake-checkout-card {
    display: grid;
    gap: 1.5rem;
    padding: clamp(1.5rem, 5vw, 3.5rem);
    border: 1px solid rgb(255 255 255 / 76%);
    border-radius: 2rem;
    background: rgb(255 253 248 / 88%);
    box-shadow: 0 2rem 6rem rgb(23 63 50 / 16%);
    backdrop-filter: blur(24px) saturate(120%);
}

.pricing-card > div:not(.subscription-benefit-grid) {
    display: grid;
}

.pricing-card > div:not(.subscription-benefit-grid) strong {
    font: 700 clamp(3rem, 7vw, 5rem)/1 Georgia, serif;
}

.pricing-card > div:not(.subscription-benefit-grid) small,
.pricing-card > div:not(.subscription-benefit-grid) span {
    color: var(--ink-soft);
}

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

.subscription-benefit-grid article {
    display: grid;
    gap: .45rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 1.15rem;
    background: rgb(255 255 255 / 66%);
}

.subscription-benefit-grid strong {
    color: var(--ink);
    line-height: 1.15;
}

.subscription-benefit-grid span {
    color: var(--ink-soft);
    font-size: .94rem;
    line-height: 1.4;
}

.pricing-card form {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1rem;
    align-items: center;
}

.pricing-card form small {
    max-width: 38ch;
    color: var(--ink-soft);
}

.pricing-card ul {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: 1.2rem;
    border-radius: 1rem;
    background: var(--mist);
    list-style-position: inside;
}

.pricing-emotion {
    max-width: 58ch;
    margin: 0;
    color: var(--ink);
    font-size: 1.08rem;
    line-height: 1.55;
}

.annual-qr-card {
    margin-top: 1rem;
}

.annual-qr-head {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
}

.annual-qr-badge {
    flex: 0 0 auto;
    padding: .45rem .75rem;
    border: 1px solid rgb(49 139 98 / 22%);
    border-radius: 999px;
    background: rgb(233 246 238 / 82%);
    color: var(--forest);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.annual-qr-layout {
    display: grid;
    grid-template-columns: minmax(15rem, .7fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
}

.annual-qr-layout figure,
.annual-qr-layout dl {
    margin: 0;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 1.25rem;
    background: rgb(255 255 255 / 68%);
}

.annual-qr-layout figure {
    display: grid;
    gap: .75rem;
    place-items: center;
    text-align: center;
}

.annual-qr-layout img {
    width: min(100%, 18rem);
    height: auto;
    border-radius: .75rem;
    background: #fff;
}

.annual-qr-layout figcaption {
    color: var(--ink-soft);
    font-size: .92rem;
    line-height: 1.45;
}

.annual-qr-layout figcaption strong {
    color: var(--ink);
}

.annual-qr-layout dl {
    display: grid;
    gap: .8rem;
}

.annual-qr-layout dt,
.annual-qr-layout dd {
    margin: 0;
}

.annual-qr-layout dt {
    color: var(--ink-muted);
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.annual-qr-layout dd {
    color: var(--ink);
    font-weight: 800;
}

.admin-shell {
    position: relative;
    z-index: 3;
    width: var(--page-shell);
    margin: 2rem auto 6rem;
}

.admin-island {
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 3vw, 2rem);
    border: 1px solid rgb(255 255 255 / 84%);
    border-radius: 2.2rem;
    background: rgb(255 255 255 / 94%);
    box-shadow: 0 2.5rem 7rem rgb(23 63 50 / 16%);
}

.admin-console {
    grid-template-columns: 15rem minmax(0, 1fr);
    align-items: start;
}

.admin-main {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.admin-sidebar {
    position: sticky;
    top: 1rem;
    display: grid;
    gap: 1rem;
    min-height: calc(100vh - 6rem);
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 1.35rem;
    background:
        radial-gradient(circle at 100% 0, rgb(243 189 77 / 22%), transparent 8rem),
        #173f32;
    color: white;
}

.admin-sidebar-brand {
    display: grid;
    gap: .18rem;
    padding: .2rem .15rem .7rem;
    border-bottom: 1px solid rgb(255 255 255 / 14%);
}

.admin-sidebar small {
    display: block;
    color: rgb(255 255 255 / 62%);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.admin-sidebar strong {
    display: block;
    margin-top: .25rem;
    font-size: 1.15rem;
}

.admin-sidebar-brand span {
    min-width: 0;
    overflow: hidden;
    color: rgb(255 255 255 / 70%);
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-sidebar nav {
    display: grid;
    gap: .75rem;
    align-self: start;
}

.admin-nav-group {
    display: grid;
    gap: .28rem;
}

.admin-nav-label {
    padding: 0 .85rem;
    color: rgb(255 255 255 / 46%);
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.admin-sidebar nav a,
.admin-exit {
    padding: .75rem .85rem;
    border-radius: .85rem;
    color: rgb(255 255 255 / 82%);
    text-decoration: none;
    font-weight: 850;
}

.admin-sidebar nav a:hover,
.admin-sidebar nav a.is-active,
.admin-exit:hover {
    background: rgb(255 255 255 / 12%);
    color: white;
}

.admin-exit {
    align-self: end;
    border: 1px solid rgb(255 255 255 / 18%);
}

.admin-head {
    display: flex;
    gap: 1rem;
    align-items: end;
    justify-content: space-between;
}

.admin-head h1,
.admin-detail h1 {
    margin: 0;
    font: 700 clamp(2.5rem, 6vw, 4.8rem)/.95 Georgia, serif;
    letter-spacing: -.055em;
}

.admin-head p:last-child,
.admin-detail > p:not(.eyebrow) {
    color: var(--ink-soft);
}

.admin-health-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, .85fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid rgb(23 73 54 / 16%);
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at 0 0, rgb(243 189 77 / 18%), transparent 12rem),
        #fff;
}

.admin-health-card.has-attention {
    border-color: rgb(209 143 54 / 30%);
    background:
        radial-gradient(circle at 0 0, rgb(243 189 77 / 25%), transparent 12rem),
        #fffaf0;
}

.admin-health-card small {
    color: var(--green);
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.admin-health-card strong {
    display: block;
    margin-top: .18rem;
    color: var(--ink);
    font-size: 1.45rem;
}

.admin-health-card p {
    margin: .25rem 0 0;
    color: var(--ink-soft);
}

.admin-health-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .5rem;
}

.admin-health-metrics a {
    display: grid;
    gap: .15rem;
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--line);
    border-radius: .95rem;
    background: rgb(255 255 255 / 78%);
    color: var(--ink-soft);
    font-size: .76rem;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.admin-health-metrics a:hover {
    border-color: rgb(23 73 54 / 28%);
    color: var(--green);
}

.admin-health-metrics span {
    color: var(--ink);
    font-size: 1.35rem;
    font-weight: 950;
}

.admin-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .7rem;
}

.admin-stats article,
.admin-panel,
.admin-detail {
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    background: #f8faf6;
}

.admin-stats article {
    display: grid;
    gap: .15rem;
    padding: 1rem;
}

.admin-stats article.is-alert {
    border-color: rgb(209 143 54 / 30%);
    background: rgb(255 249 237 / 88%);
}

.admin-stats article.is-danger {
    border-color: rgb(190 84 74 / 28%);
    background: rgb(255 242 238 / 88%);
}

.admin-stats small,
.admin-stats span,
.admin-listings small {
    color: var(--ink-soft);
    font-size: .76rem;
}

.admin-stats strong {
    font-size: 1.8rem;
}

.admin-panel,
.admin-detail {
    padding: 1rem;
}

.admin-listings {
    display: grid;
}

.admin-listings a {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    border-top: 1px solid var(--line);
    text-decoration: none;
}

.admin-listings span {
    display: grid;
}

.admin-listings b {
    color: var(--leaf-dark);
}

.admin-reviews {
    display: grid;
    gap: .8rem;
}

.admin-reviews article {
    display: grid;
    gap: .75rem;
    padding: 1rem;
    border-top: 1px solid var(--line);
}

.admin-reviews header,
.admin-review-actions {
    display: flex;
    gap: .75rem;
    align-items: center;
    justify-content: space-between;
}

.admin-reviews header span {
    display: grid;
    gap: .15rem;
}

.admin-reviews small {
    color: var(--ink-soft);
    font-size: .76rem;
}

.admin-reviews p {
    margin: 0;
    color: var(--ink);
    line-height: 1.55;
}

.admin-review-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
}

.admin-table-wrap {
    overflow-x: auto;
    border-top: 1px solid var(--line);
}

.admin-table {
    width: 100%;
    min-width: 54rem;
    border-collapse: collapse;
    font-size: .9rem;
}

.admin-table th,
.admin-table td {
    padding: .8rem .7rem;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.admin-table th {
    color: var(--ink-soft);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.admin-table code {
    white-space: normal;
    word-break: break-word;
}

.admin-inline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
}

.admin-inline-actions form {
    margin: 0;
}

.admin-inline-actions .button {
    min-height: 2.2rem;
    padding: .45rem .75rem;
    font-size: .78rem;
}

.admin-moderation-list,
.admin-report-list {
    display: grid;
    gap: .8rem;
    border-top: 1px solid var(--line);
    padding-top: 1rem;
}

.admin-moderation-card,
.admin-report-card,
.admin-report-mini {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 1rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 1.1rem;
    background: #fff;
}

.admin-moderation-copy,
.admin-report-card > div:first-child,
.admin-report-mini > div:first-child {
    display: grid;
    gap: .55rem;
    min-width: 0;
}

.admin-moderation-card h3,
.admin-report-card h3,
.admin-report-mini h3 {
    margin: 0;
    color: var(--ink);
    font-size: 1.12rem;
    line-height: 1.2;
}

.admin-moderation-card p,
.admin-report-card p,
.admin-report-mini p {
    margin: 0;
    color: var(--ink-soft);
    line-height: 1.5;
}

.admin-moderation-actions {
    display: grid;
    gap: .45rem;
    justify-items: stretch;
    min-width: 10rem;
}

.admin-moderation-actions form {
    margin: 0;
}

.admin-moderation-actions .button {
    width: 100%;
    min-height: 2.55rem;
}

.admin-soft-details {
    display: grid;
    gap: .45rem;
    max-width: 42rem;
}

.admin-soft-details summary {
    width: fit-content;
    color: var(--green);
    font-size: .82rem;
    font-weight: 900;
    cursor: pointer;
}

.admin-soft-details[open] {
    padding: .75rem;
    border: 1px solid var(--line);
    border-radius: .9rem;
    background: #f8faf6;
}

.admin-mini-dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .6rem;
    margin: 0;
}

.admin-mini-dl div {
    min-width: 0;
    padding: .65rem;
    border-radius: .75rem;
    background: white;
}

.admin-mini-dl dt {
    color: var(--ink-soft);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.admin-mini-dl dd {
    margin: .12rem 0 0;
    overflow-wrap: anywhere;
    color: var(--ink);
    font-weight: 800;
}

.admin-detail-hero {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
}

.admin-detail-hero h1 {
    margin-bottom: .35rem;
}

.admin-detail-meta {
    margin: 0;
    color: var(--ink-soft);
    font-size: .95rem;
}

.admin-detail-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .75rem;
}

.admin-detail-summary span {
    display: inline-flex;
    align-items: center;
    min-height: 1.8rem;
    padding: 0 .65rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: white;
    color: var(--ink);
    font-size: .78rem;
    font-weight: 850;
}

.admin-detail-actions {
    display: flex;
    justify-content: flex-end;
    min-width: max-content;
}

.admin-detail-actions form {
    margin: 0;
}

.admin-back-button,
.admin-danger-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.45rem;
    padding: 0 .9rem;
    border-radius: .85rem;
    font-size: .86rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
}

.admin-back-button {
    width: fit-content;
    justify-self: start;
    align-self: start;
    margin-bottom: 1rem;
    border: 1px solid var(--line);
    background: #f8faf6;
    color: var(--ink);
}

.admin-back-button:hover {
    background: #eef4eb;
}

.admin-danger-button {
    border: 1px solid rgb(190 84 74 / 34%);
    background: rgb(255 239 235 / 92%);
    color: #8b3129;
    cursor: pointer;
}

.admin-danger-button:hover {
    border-color: rgb(190 84 74 / 52%);
    background: rgb(255 229 222 / 96%);
    color: #6f241e;
}

.admin-risk-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.6rem;
    padding: 0 .55rem;
    border: 1px solid rgb(209 143 54 / 32%);
    border-radius: 999px;
    background: rgb(255 247 229 / 92%);
    color: #7a4a08;
    font-size: .75rem;
    font-weight: 900;
    white-space: nowrap;
}

.admin-risk-badge.is-low {
    border-color: rgb(23 73 54 / 20%);
    background: rgb(233 246 236 / 92%);
    color: var(--green);
}

.admin-risk-badge.is-alert {
    border-color: rgb(209 143 54 / 45%);
    background: rgb(255 244 214 / 96%);
    color: #7a4a08;
}

.admin-risk-badge.is-danger {
    border-color: rgb(190 84 74 / 42%);
    background: rgb(255 231 225 / 96%);
    color: #7a2a22;
}

.admin-warning-note {
    margin: 0;
    padding: .85rem 1rem;
    border: 1px solid rgb(190 84 74 / 25%);
    border-radius: 1rem;
    background: rgb(255 239 235 / 82%);
    color: #7a2a22;
    font-weight: 750;
}

.admin-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: end;
    padding: .85rem;
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    background: #f8faf6;
}

.admin-filter-bar label {
    display: grid;
    gap: .3rem;
    color: var(--ink-soft);
    font-size: .78rem;
    font-weight: 800;
}

.admin-filter-bar select,
.admin-filter-bar input {
    height: 2.55rem;
    border: 1px solid var(--line);
    border-radius: .8rem;
    padding: 0 .8rem;
    background: #fff;
    color: var(--ink);
}

.admin-filter-bar .button {
    min-height: 2.55rem;
    padding: 0 .9rem;
    border-radius: .8rem;
    font-size: .86rem;
}

.admin-block-phone-form {
    display: grid;
    grid-template-columns: minmax(14rem, 18rem) max-content;
    align-items: end;
}

.admin-block-phone-form.has-custom-reason {
    grid-template-columns: minmax(14rem, 18rem) minmax(16rem, 1fr) max-content;
}

.admin-block-phone-form .admin-block-custom-reason[hidden] {
    display: none;
}

.admin-block-phone-form .admin-danger-button {
    width: max-content;
    min-height: 2.55rem;
    justify-self: start;
    padding-inline: .85rem;
    white-space: nowrap;
}

.admin-block-phone-form select,
.admin-block-phone-form input {
    width: 100%;
}

@media (max-width: 760px) {
    .admin-block-phone-form,
    .admin-block-phone-form.has-custom-reason {
        grid-template-columns: 1fr;
    }
}

.admin-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.55rem;
    padding: 0 .9rem;
    border: 1px solid rgb(190 84 74 / 28%);
    border-radius: .8rem;
    background: rgb(255 239 235 / 82%);
    color: #8b3129;
    font-size: .86rem;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.admin-filter-reset:hover {
    border-color: rgb(190 84 74 / 45%);
    background: rgb(255 231 225 / 95%);
    color: #6f241e;
}

.admin-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.admin-settings-card {
    display: grid;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    background: #f8faf6;
}

.admin-settings-card small {
    color: var(--ink-soft);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.admin-settings-card h2 {
    margin: 0;
    font-size: 1.2rem;
}

.admin-settings-card dl {
    display: grid;
    gap: .55rem;
    margin: 0;
}

.admin-settings-card div {
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    border-top: 1px solid var(--line);
    padding-top: .55rem;
}

.admin-settings-card dt {
    color: var(--ink-soft);
    font-size: .78rem;
}

.admin-settings-card dd {
    max-width: 60%;
    margin: 0;
    overflow-wrap: anywhere;
    font-weight: 850;
    text-align: right;
}

.admin-limits {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    border-top: 1px solid var(--line);
    padding-top: 1rem;
}

.admin-limits span {
    padding: .65rem .8rem;
    border-radius: 999px;
    background: white;
    color: var(--ink-soft);
}

.admin-limits strong {
    color: var(--ink);
}

.admin-action-grid,
.admin-setting-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    border-top: 1px solid var(--line);
    padding-top: 1rem;
}

.admin-action-grid a,
.admin-limit-group {
    border: 1px solid var(--line);
    border-radius: 1rem;
    background: white;
}

.admin-action-grid a {
    display: grid;
    gap: .25rem;
    padding: .9rem 1rem;
    color: var(--ink);
    text-decoration: none;
}

.admin-action-grid a:hover {
    border-color: rgb(23 73 54 / 28%);
    background: #f5fbf6;
}

.admin-action-grid span {
    color: var(--ink-soft);
    font-size: .82rem;
}

.admin-limit-group {
    display: grid;
    gap: .75rem;
    min-width: 0;
    margin: 0;
    padding: .95rem;
}

.admin-limit-group legend {
    padding-inline: .35rem;
    color: var(--green);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.admin-limit-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 7rem;
    gap: .75rem;
    align-items: center;
}

.admin-limit-field span,
.admin-limit-field small {
    display: grid;
    gap: .15rem;
}

.admin-limit-field small {
    color: var(--ink-soft);
    font-size: .76rem;
    line-height: 1.35;
}

.admin-test-form {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: end;
    border-top: 1px solid var(--line);
    padding-top: 1rem;
}

.admin-test-form label {
    display: grid;
    gap: .3rem;
    min-width: min(100%, 18rem);
    color: var(--ink-soft);
    font-size: .78rem;
    font-weight: 850;
}

.admin-test-form input {
    min-height: 2.9rem;
    border: 1px solid var(--line);
    border-radius: .85rem;
    padding-inline: .85rem;
    font: inherit;
}

.admin-settings-note {
    margin: .8rem 0 0;
    color: var(--ink-soft);
}

.admin-sms-list {
    display: grid;
    border-top: 1px solid var(--line);
}

.admin-sms-item {
    border-bottom: 1px solid var(--line);
}

.admin-sms-item summary {
    display: grid;
    grid-template-columns: 4.2rem 8.5rem minmax(0, 1fr) 1rem;
    gap: .8rem;
    align-items: center;
    padding: .85rem .2rem;
    color: var(--ink);
    cursor: pointer;
    list-style: none;
}

.admin-sms-item summary::-webkit-details-marker {
    display: none;
}

.admin-sms-item summary::after {
    justify-self: end;
    color: var(--ink-soft);
    font-weight: 900;
    content: "+";
}

.admin-sms-item[open] summary::after {
    content: "-";
}

.admin-sms-item time {
    color: var(--ink-soft);
    font-size: .82rem;
    font-weight: 800;
}

.admin-sms-item strong {
    font-size: .88rem;
    white-space: nowrap;
}

.admin-sms-item summary span {
    min-width: 0;
    overflow: hidden;
    color: var(--ink);
    font-size: .9rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-sms-detail {
    padding: 0 .2rem 1rem 13.5rem;
}

.admin-sms-detail dl {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: .85rem;
    border-radius: 1rem;
    background: rgb(248 243 232 / 64%);
}

.admin-sms-detail dt {
    color: var(--ink-soft);
    font-size: .7rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.admin-sms-detail dd {
    margin: .1rem 0 0;
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .admin-health-card {
        grid-template-columns: 1fr;
    }

    .admin-health-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-settings-grid {
        grid-template-columns: 1fr;
    }

    .admin-action-grid,
    .admin-setting-groups {
        grid-template-columns: 1fr;
    }

    .admin-limit-field {
        grid-template-columns: 1fr;
    }

    .admin-sms-item summary {
        grid-template-columns: 4rem minmax(0, 1fr) 1rem;
    }

    .admin-sms-item summary span {
        grid-column: 1 / -1;
        white-space: normal;
    }

    .admin-sms-detail {
        padding-left: .2rem;
    }

    .admin-moderation-card,
    .admin-report-card,
    .admin-report-mini {
        grid-template-columns: 1fr;
    }

    .admin-moderation-actions {
        min-width: 0;
    }

    .admin-mini-dl {
        grid-template-columns: 1fr;
    }
}

.admin-detail {
    display: grid;
    gap: 1rem;
}

.admin-detail dl {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .7rem;
    margin: 0;
}

.admin-detail dl.compact {
    grid-template-columns: repeat(2, 1fr);
}

.admin-detail dl div {
    padding: .8rem;
    border-radius: .9rem;
    background: white;
}

.admin-detail dt {
    color: var(--ink-soft);
    font-size: .72rem;
    font-weight: 800;
}

.admin-detail dd {
    margin: .15rem 0 0;
    font-weight: 850;
}

.admin-detail-section {
    display: grid;
    gap: .75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.admin-detail-section > p {
    margin: 0;
    color: var(--ink-soft);
}

.admin-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.admin-chip-list span {
    padding: .55rem .7rem;
    border-radius: 999px;
    background: white;
    color: var(--leaf-dark);
    font-weight: 850;
}

.admin-reasons {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    align-items: center;
}

.admin-reasons span {
    padding: .35rem .65rem;
    border-radius: 999px;
    background: rgb(159 47 47 / 10%);
    color: var(--danger);
    font-weight: 800;
}

.admin-report-panel {
    display: grid;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid rgb(209 143 54 / 22%);
    border-radius: 1.1rem;
    background: rgb(255 250 240 / 72%);
}

.admin-report-panel > strong {
    color: var(--ink);
}

.admin-report-mini {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .85rem;
}

.admin-actions {
    display: grid;
    grid-template-columns: .6fr 1fr;
    gap: .8rem;
}

@media (max-width: 840px) {
    .admin-console {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        position: static;
        min-height: auto;
    }

    .admin-sidebar nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-nav-group {
        align-content: start;
    }

    .admin-exit {
        align-self: auto;
    }
}

.pricing-card form,
.fake-checkout-card form {
    display: flex;
}

.fake-checkout-card {
    margin-top: 4rem;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

.field select {
    width: 100%;
    min-height: 3.45rem;
    padding: .85rem 1rem;
    border: 1.5px solid var(--line);
    border-radius: var(--radius-sm);
    background: #fff;
    color: var(--ink);
    font: inherit;
}

.profile-category-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .7rem;
    margin-top: .7rem;
}

.profile-category-grid label {
    display: flex;
    gap: .65rem;
    align-items: center;
    min-height: 3.2rem;
    padding: .75rem .9rem;
    border: 1px solid var(--line);
    border-radius: .9rem;
    background: white;
    font-weight: 750;
}

.profile-category-grid input {
    width: 1.2rem;
    height: 1.2rem;
    accent-color: var(--leaf);
}

.profile-category-icon {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: .75rem;
}

.profile-category-icon svg {
    width: 1.15rem;
    height: 1.15rem;
}

.contractor-dashboard,
.contractor-listing-shell {
    position: relative;
    z-index: 3;
    width: min(76rem, calc(100% - 2rem));
    margin: 2rem auto 6rem;
}

.contractor-dashboard-island {
    padding: clamp(1rem, 3vw, 2rem);
    border: 1px solid rgb(255 255 255 / 84%);
    border-radius: 2.4rem;
    background: linear-gradient(135deg, rgb(255 255 255 / 94%), rgb(255 253 248 / 92%));
    box-shadow: 0 2.5rem 7rem rgb(23 63 50 / 18%);
    backdrop-filter: blur(18px) saturate(120%);
}

.contractor-dashboard-head {
    display: flex;
    gap: 2rem;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 2rem;
}

.contractor-dashboard-actions {
    display: flex;
    gap: .7rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.contractor-dashboard-actions .button,
.dashboard-logout button {
    min-height: 3rem;
    padding: .8rem 1rem;
    border-radius: 999px;
    font-weight: 850;
}

.contractor-dashboard-actions .button {
    border-color: rgb(24 121 78 / 20%);
    background: var(--leaf);
    color: white;
    box-shadow: 0 1rem 2rem rgb(24 121 78 / 18%);
}

.contractor-dashboard-head h1,
.contractor-listing-card h1 {
    margin: 0;
    font: 700 clamp(2.8rem, 6vw, 5rem)/.94 Georgia, serif;
    letter-spacing: -.055em;
}

.contractor-dashboard-head p:last-child {
    color: var(--ink-soft);
}

.dashboard-account-name {
    display: inline-block;
    margin-top: .55rem;
    color: var(--ink-soft);
    font-weight: 750;
}

.contractor-status-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .8rem;
    margin-bottom: 1rem;
}

.contractor-status-grid article,
.contractor-jobs,
.unlock-history {
    border: 1px solid rgb(255 255 255 / 75%);
    border-radius: 1.5rem;
    background: rgb(248 250 246 / 92%);
    box-shadow: 0 1rem 2.5rem rgb(23 63 50 / 8%);
}

.contractor-listing-card {
    border: 1px solid rgb(255 255 255 / 75%);
    border-radius: 1.5rem;
    background: rgb(255 253 248 / 86%);
    box-shadow: 0 1.5rem 4rem rgb(23 63 50 / 14%);
    backdrop-filter: blur(20px) saturate(120%);
}

.contractor-status-grid article {
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    gap: .25rem;
    min-height: 9.3rem;
    padding: 1rem 1.15rem;
}

.contractor-status-grid article strong {
    font-size: clamp(1.25rem, 2.4vw, 1.7rem);
    line-height: 1.1;
}

.contractor-status-grid small,
.contractor-status-grid span,
.section-heading small,
.unlock-history small {
    color: var(--ink-soft);
    font-size: .72rem;
}

.contractor-status-grid a {
    margin-top: .35rem;
    color: var(--leaf-dark);
    font-size: .78rem;
    font-weight: 800;
}

.contractor-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(17rem, .38fr);
    gap: 1rem;
}

.push-benefit-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1.15rem;
    border: 1px solid rgb(255 255 255 / 76%);
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at 10% 0%, rgb(255 179 71 / 22%), transparent 32%),
        linear-gradient(135deg, rgb(255 253 248 / 94%), rgb(238 247 241 / 92%));
    box-shadow: 0 1rem 2.5rem rgb(23 63 50 / 8%);
}

.push-benefit-card div {
    display: grid;
    gap: .35rem;
}

.push-benefit-card h2 {
    margin: 0;
    font: 700 clamp(1.8rem, 4vw, 3rem)/.95 Georgia, serif;
    letter-spacing: -.045em;
}

.push-benefit-card p:not(.eyebrow) {
    max-width: 54rem;
    margin: 0;
    color: var(--ink-soft);
}

.push-benefit-card small {
    color: var(--leaf-dark);
    font-weight: 800;
}

.contractor-map-panel {
    display: grid;
    grid-template-columns: minmax(18rem, .58fr) minmax(0, 1fr);
    gap: 1rem;
    min-height: 24rem;
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid rgb(255 255 255 / 75%);
    border-radius: 1.6rem;
    background: linear-gradient(135deg, rgb(255 253 248 / 94%), rgb(230 242 235 / 90%));
    box-shadow: 0 1.2rem 3rem rgb(23 63 50 / 10%);
    overflow: hidden;
}

.contractor-map-copy {
    display: grid;
    align-content: start;
    gap: .75rem;
    padding: .45rem;
}

.contractor-map-copy h2 {
    max-width: 10ch;
    margin: 0;
    font: 700 clamp(2.1rem, 5vw, 3.8rem)/.92 Georgia, serif;
    letter-spacing: -.055em;
}

.contractor-map-copy > p:not(.eyebrow) {
    max-width: 32rem;
    margin: 0;
    color: var(--ink-soft);
}

.contractor-map-list {
    display: grid;
    gap: .55rem;
    margin-top: .35rem;
}

.contractor-map-list a {
    display: grid;
    gap: .12rem;
    padding: .75rem .85rem;
    border: 1px solid rgb(23 63 50 / 9%);
    border-radius: 1rem;
    background: rgb(255 255 255 / 68%);
    color: inherit;
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.contractor-map-list a:hover,
.contractor-map-list a:focus-visible {
    border-color: rgb(24 121 78 / 28%);
    background: white;
    transform: translateY(-1px);
}

.contractor-map-list small,
.contractor-map-list span {
    color: var(--ink-soft);
    font-size: .76rem;
}

.contractor-map {
    min-height: 22rem;
    border-radius: 1.25rem;
    background: var(--mist);
    overflow: hidden;
}

.contractor-map .leaflet-tile-pane {
    filter: saturate(.78) contrast(.92) brightness(1.03);
}

.contractor-map-popup {
    display: grid;
    gap: .15rem;
    min-width: 12rem;
    color: var(--ink);
    text-decoration: none;
}

.contractor-map-popup span {
    color: var(--ink-soft);
    font-size: .78rem;
}

.contractor-jobs,
.unlock-history {
    padding: 1rem;
}

.section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .3rem .25rem 1rem;
}

.section-heading h2 {
    margin: 0;
    font-size: 1.2rem;
}

.section-heading > span {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border-radius: 50%;
    background: var(--leaf-light);
    font-weight: 850;
}

.contractor-job,
.unlock-history a {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    border-top: 1px solid var(--line);
    text-decoration: none;
}

.contractor-job span,
.unlock-history a {
    display: grid;
}

.contractor-job span {
    min-width: 0;
}

.contractor-job-photo {
    width: 5.6rem;
    aspect-ratio: 4 / 3;
    flex: 0 0 auto;
    border-radius: .9rem;
    background: var(--mist);
    object-fit: cover;
    box-shadow: 0 .8rem 1.6rem rgb(23 63 50 / 10%);
}

.contractor-job-icon {
    width: 5.6rem;
    height: 4.2rem;
    flex: 0 0 auto;
    border-radius: .9rem;
}

.contractor-job-icon svg {
    width: 2rem;
    height: 2rem;
}

.contractor-job em {
    margin-top: .25rem;
    color: var(--ink-soft);
    font-size: .86rem;
    font-style: normal;
    line-height: 1.35;
}

.contractor-job b {
    color: var(--leaf-dark);
    white-space: nowrap;
}

.empty-state {
    display: grid;
    gap: .55rem;
    padding: 1.45rem;
    border: 1px dashed rgb(23 63 50 / 18%);
    border-radius: 1.2rem;
    background:
        radial-gradient(circle at 100% 0, rgb(243 189 77 / 12%), transparent 7rem),
        rgb(255 253 248 / 68%);
    text-align: center;
}

.empty-state strong {
    color: var(--ink);
    font-size: 1.02rem;
}

.empty-state p,
.unlock-history > p {
    margin: 0;
    color: var(--ink-soft);
}

.empty-state a {
    justify-self: center;
    margin-top: .35rem;
    padding: .62rem .95rem;
    border: 1px solid rgb(23 63 50 / 16%);
    border-radius: 999px;
    background: rgb(255 255 255 / 72%);
    color: var(--leaf-dark);
    font-weight: 850;
    text-decoration: none;
}

.empty-state a:hover {
    background: var(--leaf-light);
}

.dashboard-logout {
    display: flex;
    margin: 0;
}

.dashboard-logout button {
    border: 1px solid rgb(23 63 50 / 16%);
    background: rgb(255 255 255 / 76%);
    color: var(--ink);
    font: inherit;
    cursor: pointer;
    box-shadow: 0 1rem 2rem rgb(23 63 50 / 10%);
}

.contractor-listing-back {
    display: inline-block;
    margin-bottom: 1.25rem;
}

.contractor-listing-card {
    padding: clamp(1.5rem, 5vw, 3.5rem);
}

.contractor-listing-description {
    max-width: 65ch;
    color: var(--ink-soft);
    font-size: 1.05rem;
}

.contractor-listing-facts {
    display: flex;
    gap: .7rem;
    margin: 2rem 0;
}

.contractor-listing-facts span {
    display: grid;
    min-width: 10rem;
    padding: 1rem;
    border-radius: 1rem;
    background: var(--mist);
}

.contractor-listing-facts small,
.unlock-panel small,
.unlocked-contact small,
.listing-primary-cta small {
    color: var(--ink-soft);
}

.listing-primary-cta {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin: 1rem 0 2rem;
    padding: 1.15rem;
    border: 1px solid rgb(24 121 78 / 18%);
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at 8% 0%, rgb(255 179 71 / 18%), transparent 32%),
        linear-gradient(135deg, rgb(255 253 248 / 94%), rgb(232 246 239 / 90%));
    box-shadow: 0 1rem 2.5rem rgb(23 63 50 / 8%);
}

.listing-primary-cta > div:first-child {
    display: grid;
    gap: .18rem;
}

.listing-primary-cta strong {
    font-size: 1.18rem;
}

.listing-primary-cta span {
    color: var(--ink-soft);
    font-size: .9rem;
}

.listing-primary-cta-actions {
    display: flex;
    gap: .8rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.listing-primary-cta form {
    margin: 0;
}

.unlock-panel,
.unlocked-contact {
    display: flex;
    gap: 1.2rem;
    align-items: center;
    justify-content: space-between;
    padding: 1.2rem;
    border-radius: 1.2rem;
    background: var(--ink);
    color: white;
}

.unlock-panel div,
.unlocked-contact {
    display: grid;
}

.unlock-panel p {
    margin: .25rem 0 0;
    color: #cbd8d3;
    font-size: .8rem;
}

.unlock-panel a {
    display: inline-flex;
    width: fit-content;
    margin-top: .6rem;
    color: #d8f1e5;
    font-size: .82rem;
    font-weight: 850;
}

.unlocked-contact strong {
    font-size: 1.6rem;
}

.response-warning {
    padding: .8rem 1rem;
    border: 1px solid rgb(173 118 38 / 30%);
    border-radius: .9rem;
    background: rgb(243 189 77 / 18%);
    color: #765016;
    font-weight: 750;
}

.completion-panel,
.no-response-panel,
.listing-report-panel {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--line);
    border-radius: 1rem;
    background: rgb(255 253 248 / 70%);
}

.completion-panel {
    border-color: rgb(44 129 96 / 22%);
    background: rgb(228 244 237 / 82%);
}

.completion-panel p,
.no-response-panel p,
.listing-report-panel p {
    margin: .2rem 0 0;
    color: var(--ink-soft);
    font-size: .8rem;
}

.completion-panel button,
.no-response-panel button,
.listing-report-panel button {
    min-height: 2.8rem;
    padding: .6rem .85rem;
    border: 1px solid rgb(44 129 96 / 25%);
    border-radius: .75rem;
    background: white;
    color: var(--green);
    font-weight: 800;
    cursor: pointer;
}

.no-response-panel button {
    border: 1px solid rgb(165 59 50 / 25%);
    color: var(--danger);
}

.listing-report-panel {
    display: block;
}

.listing-report-panel summary {
    cursor: pointer;
    color: var(--danger);
    font-weight: 850;
}

.listing-report-panel form {
    display: grid;
    gap: .8rem;
    margin-top: 1rem;
}

.listing-report-panel label {
    display: grid;
    gap: .35rem;
}

.listing-report-panel select,
.listing-report-panel textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: .85rem;
    background: white;
    color: var(--ink);
    font: inherit;
}

.listing-report-panel select {
    min-height: 2.8rem;
    padding-inline: .8rem;
}

.listing-report-panel textarea {
    padding: .75rem .8rem;
    resize: vertical;
}

@media (max-width: 760px) {
    .contractor-dashboard-head,
    .contractor-dashboard-actions,
    .push-benefit-card,
    .listing-primary-cta,
    .unlock-panel,
    .unlocked-contact,
    .completion-panel,
    .no-response-panel,
    .listing-report-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .contractor-status-grid,
    .contractor-map-panel,
    .contractor-columns,
    .requester-trust-panel,
    .requester-listing-card {
        grid-template-columns: 1fr;
    }

    .contractor-job {
        align-items: flex-start;
        flex-direction: column;
    }

    .contractor-map {
        min-height: 18rem;
    }

    .profile-category-grid {
        grid-template-columns: 1fr;
    }

    .contractor-listing-facts {
        flex-direction: column;
    }

    .listing-primary-cta-actions {
        justify-content: flex-start;
    }
}

.auth-page {
    position: relative;
    min-height: 100svh;
    isolation: isolate;
    background: #dbe8e2;
}

.auth-page .site-header {
    position: relative;
}

.auth-page .site-header::before {
    position: absolute;
    inset: .65rem 0;
    border: 1px solid rgb(255 255 255 / 55%);
    border-radius: 1.2rem;
    background: rgb(255 255 255 / 54%);
    content: "";
    backdrop-filter: blur(20px);
}

.auth-page .site-header > * {
    position: relative;
    margin-inline: 1rem;
}

.dashboard-shell {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, .65fr);
    gap: 1rem;
    width: min(64rem, calc(100% - 2rem));
    margin: 3rem auto 5rem;
}

.dashboard-card,
.dashboard-map {
    border: 1px solid rgb(255 255 255 / 68%);
    border-radius: 2rem;
    box-shadow: 0 2rem 6rem rgb(13 61 48 / 16%);
}

.dashboard-card {
    padding: clamp(1.5rem, 5vw, 3.5rem);
    background: rgb(255 253 248 / 86%);
    backdrop-filter: blur(24px) saturate(120%);
}

.dashboard-card h1 {
    max-width: 11ch;
    margin: 0 0 1rem;
    font: 700 clamp(2.6rem, 6vw, 4.5rem)/.95 Georgia, serif;
    letter-spacing: -.055em;
}

.auth-form {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.auth-form label {
    display: grid;
    gap: .4rem;
    font-weight: 800;
}

.auth-form input:not([type="checkbox"]) {
    min-height: 3.4rem;
    padding: .8rem 1rem;
    border: 1.5px solid var(--line);
    border-radius: .8rem;
    background: rgb(255 255 255 / 82%);
}

.auth-form button,
.dashboard-card button {
    min-height: 3.35rem;
    padding: .8rem 1rem;
    border: 0;
    border-radius: .85rem;
    background: var(--leaf);
    box-shadow: 0 .65rem 1.5rem rgb(24 121 78 / 20%);
    color: white;
    font-weight: 850;
    cursor: pointer;
}

.auth-flow {
    position: relative;
    z-index: 3;
    display: grid;
    width: min(80rem, calc(100% - 2rem));
    min-height: calc(100svh - 8.5rem);
    margin: 1.5rem auto 4rem;
    place-items: center;
}

.auth-surface {
    display: grid;
    grid-template-columns: minmax(36rem, 1.55fr) minmax(18rem, .75fr);
    gap: .9rem;
    width: 100%;
    padding: .9rem;
    border: 1px solid rgb(255 255 255 / 78%);
    border-radius: 2.25rem;
    background: rgb(229 240 234 / 58%);
    box-shadow: 0 2.5rem 7rem rgb(23 63 50 / 19%);
    backdrop-filter: blur(28px) saturate(125%);
}

.auth-surface-compact {
    grid-template-columns: 1fr;
    width: min(36rem, 100%);
}

.auth-verify-page .auth-surface {
    grid-template-columns: minmax(32rem, 1.25fr) minmax(19rem, .75fr);
    width: min(70rem, 100%);
}

.auth-surface-single,
.auth-verify-page .auth-surface-single {
    display: block;
    width: min(68rem, 100%);
    padding: 0;
    overflow: hidden;
    background: rgb(255 253 248 / 92%);
}

.auth-onboarding-head {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .7fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: center;
    padding: clamp(1.75rem, 4vw, 2.75rem);
    background:
        radial-gradient(circle at 92% 8%, rgb(243 189 77 / 78%) 0 3.5rem, transparent 3.6rem),
        linear-gradient(135deg, rgb(19 81 59 / 96%), rgb(14 61 46 / 96%));
    color: white;
}

.auth-onboarding-head .eyebrow {
    color: #92e1bb;
}

.auth-onboarding-head h1 {
    max-width: 18ch;
    margin: .3rem 0 0;
    font: 700 clamp(2.2rem, 4vw, 3.55rem)/1 Georgia, serif;
    letter-spacing: -.04em;
    text-wrap: balance;
}

.auth-onboarding-head > div > p:last-child {
    max-width: 36rem;
    margin: .9rem 0 0;
    color: rgb(255 255 255 / 78%);
    font-size: 1.02rem;
    line-height: 1.6;
}

.auth-steps {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.auth-steps li {
    display: grid;
    grid-template-columns: 2.4rem 1fr;
    gap: .7rem;
    align-items: center;
    min-height: 3.5rem;
    padding: .55rem .7rem;
    border: 1px solid rgb(255 255 255 / 12%);
    border-radius: .85rem;
    background: rgb(255 255 255 / 5%);
}

.auth-steps b {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border-radius: 50%;
    background: rgb(255 255 255 / 12%);
}

.auth-steps span {
    display: grid;
}

.auth-steps small {
    color: rgb(255 255 255 / 65%);
}

.auth-steps .is-current {
    border-color: rgb(255 255 255 / 42%);
    background: rgb(255 255 255 / 14%);
}

.auth-steps .is-current b {
    background: var(--sun);
    color: var(--ink);
}

.auth-steps .is-done b {
    background: #65e2a4;
    color: var(--ink);
}

.auth-form-panel-wide {
    margin: 0;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 0;
    border-radius: 0;
    background: rgb(255 253 248 / 96%);
    box-shadow: none;
}

.auth-flow-register .auth-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1rem;
}

.auth-flow-register .auth-form label:not(.auth-consent) {
    position: relative;
    padding-bottom: 1.2rem;
}

.auth-flow-register .auth-form label:not(.auth-consent) .field-error {
    position: absolute;
    bottom: 0;
    left: 0;
}

.auth-flow-register .auth-form > label:first-of-type,
.auth-flow-register .auth-form > label:nth-of-type(4),
.auth-flow-register .auth-form > .field-error,
.auth-flow-register .auth-form > button {
    grid-column: 1 / -1;
}

.auth-security-notes {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .7rem;
    margin: 1.3rem 0 0;
    padding: 1.3rem 0 0;
    border-top: 1px solid var(--line);
    list-style: none;
}

.auth-security-notes li {
    display: grid;
    grid-template-columns: 1.8rem 1fr;
    gap: .55rem;
    align-items: start;
}

.auth-security-notes b {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    border-radius: 50%;
    background: var(--leaf-light);
    color: var(--leaf-dark);
}

.auth-security-notes span {
    display: grid;
}

.auth-security-notes small {
    color: var(--ink-soft);
    font-size: .72rem;
}

.auth-form-panel {
    position: relative;
    padding: clamp(1.5rem, 5vw, 4rem);
    border: 1px solid rgb(255 255 255 / 88%);
    border-radius: 1.55rem;
    background:
        radial-gradient(circle at 8% 4%, rgb(243 189 77 / 10%), transparent 13rem),
        rgb(255 253 248 / 94%);
    box-shadow:
        0 1rem 3rem rgb(23 63 50 / 9%),
        inset 0 1px 0 rgb(255 255 255 / 90%);
}

.auth-form-panel h1 {
    max-width: 12ch;
    margin: 0;
    font: 700 clamp(2.8rem, 6vw, 5.2rem)/.92 Georgia, serif;
    letter-spacing: -.06em;
}

.auth-flow-compact .auth-form-panel h1 {
    max-width: 10ch;
    font-size: clamp(2.7rem, 6vw, 4.5rem);
}

.auth-intro {
    max-width: 40rem;
    margin: 1.2rem 0 0;
    color: var(--ink-soft);
}

.auth-form {
    margin-top: 2rem;
}

.auth-form label > span:first-child {
    font-size: .9rem;
}

.auth-form input:not([type="checkbox"]) {
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.auth-form input:not([type="checkbox"]):focus {
    border-color: var(--leaf);
    background: white;
    box-shadow: 0 0 0 .25rem rgb(24 121 78 / 10%);
    outline: none;
}

.auth-form button {
    display: flex;
    gap: .6rem;
    align-items: center;
    justify-content: center;
}

.auth-consent {
    grid-template-columns: auto 1fr !important;
    gap: .7rem !important;
    align-items: start;
    font-weight: 650 !important;
}

.auth-consent input {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: .14rem;
    accent-color: var(--leaf);
}

.auth-switch {
    margin: 1.4rem 0 0;
    color: var(--ink-soft);
    font-size: .88rem;
}

.auth-switch a {
    color: var(--leaf-dark);
    font-weight: 850;
}

.auth-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    margin: 1.5rem 0 0;
    padding: 1rem 0 0;
    border-top: 1px solid var(--line);
    color: var(--ink-soft);
    font-size: .76rem;
    list-style: none;
}

.auth-trust span {
    color: var(--leaf);
    font-weight: 900;
}

.otp-form {
    margin-top: 1.2rem;
}

.otp-input {
    font-size: 1.35rem !important;
    font-weight: 800;
    letter-spacing: .24em;
    text-align: center;
}

@media (max-width: 940px) {
    .auth-flow {
        min-height: auto;
        margin-top: 1rem;
    }

    .auth-surface:not(.auth-surface-single) {
        grid-template-columns: 1fr;
        gap: .65rem;
        padding: .65rem;
        border-radius: 1.6rem;
    }

    .auth-onboarding-head {
        grid-template-columns: 1fr;
    }

    .auth-steps {
        grid-template-columns: repeat(3, 1fr);
    }

    .auth-security-notes {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .auth-form-panel {
        padding: 1.35rem;
        border-radius: 1.25rem;
    }

    .auth-onboarding-head {
        padding: 1.35rem;
    }

    .auth-flow-register .auth-form {
        grid-template-columns: 1fr;
    }

    .auth-flow-register .auth-form > * {
        grid-column: 1 !important;
    }

    .auth-steps {
        grid-template-columns: 1fr;
    }

    .auth-steps li {
        min-height: 3rem;
    }

    .requester-listing-card {
        grid-template-columns: 1fr;
    }

    .photo-preview-grid {
        grid-template-columns: 1fr;
    }
}

.otp-form {
    padding-top: 1.2rem;
    border-top: 1px solid var(--line);
}

.dev-sms-page {
    width: min(72rem, calc(100% - 2rem));
    margin: 2rem auto 4rem;
}

.dev-sms-head,
.dev-sms-tools,
.dev-sms-card {
    border: 1px solid rgb(255 255 255 / 65%);
    box-shadow: var(--shadow);
    backdrop-filter: blur(18px);
}

.dev-sms-head {
    display: flex;
    gap: 1.5rem;
    align-items: flex-end;
    justify-content: space-between;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-radius: 2rem;
    background: linear-gradient(135deg, rgb(19 81 59 / 94%), rgb(14 61 46 / 91%));
    color: white;
}

.dev-sms-head h1 {
    margin: .2rem 0 .6rem;
    font: 700 clamp(2.3rem, 5vw, 4.4rem)/.95 Georgia, serif;
    letter-spacing: -.05em;
}

.dev-sms-head p:not(.eyebrow) {
    max-width: 42rem;
    margin: 0;
    color: rgb(255 255 255 / 78%);
}

.dev-sms-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin: 1rem 0;
    padding: 1rem 1.2rem;
    border-radius: 1.2rem;
    background: rgb(255 253 248 / 82%);
}

.dev-sms-tools span {
    color: var(--ink-soft);
}

.dev-sms-tools a,
.dev-sms-actions a {
    color: var(--leaf);
    font-weight: 900;
}

.dev-sms-list {
    display: grid;
    gap: 1rem;
}

.dev-sms-card {
    display: grid;
    gap: .75rem;
    padding: 1.2rem;
    border-radius: 1.4rem;
    background: rgb(255 253 248 / 90%);
}

.dev-sms-meta,
.dev-sms-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    justify-content: space-between;
}

.dev-sms-meta strong {
    color: var(--leaf);
}

.dev-sms-meta span,
.dev-sms-phone {
    color: var(--ink-soft);
    font-size: .9rem;
}

.dev-sms-phone,
.dev-sms-message {
    margin: 0;
}

.dev-sms-message {
    font-size: 1.05rem;
    line-height: 1.6;
}

.dev-sms-actions code {
    display: inline-grid;
    min-width: 7.5rem;
    min-height: 2.8rem;
    place-items: center;
    border-radius: .85rem;
    background: var(--ink);
    color: white;
    font-size: 1.35rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.requester-dashboard {
    width: min(72rem, calc(100% - 2rem));
    margin: 2rem auto 4rem;
}

.requester-trust-panel {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .8rem;
    margin: 1rem 0;
}

.requester-trust-panel article {
    padding: 1rem;
    border: 1px solid rgb(255 255 255 / 70%);
    border-radius: 1.2rem;
    background: rgb(255 253 248 / 82%);
    box-shadow: 0 1rem 2.3rem rgb(23 63 50 / 8%);
}

.requester-trust-panel strong,
.requester-trust-panel span {
    display: block;
}

.requester-trust-panel strong {
    color: var(--ink);
    line-height: 1.2;
}

.requester-trust-panel span {
    margin-top: .3rem;
    color: var(--ink-soft);
    font-size: .86rem;
}

.requester-listings {
    display: grid;
    gap: 1rem;
    margin-top: 1.2rem;
}

.requester-summary-grid {
    margin-top: 1.2rem;
}

.requester-filter-bar {
    margin-top: 1rem;
}

.requester-listing-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13rem, .36fr);
    gap: 1.2rem;
    padding: 1.25rem;
    border: 1px solid rgb(255 255 255 / 65%);
    border-radius: 1.4rem;
    background: rgb(255 253 248 / 90%);
    box-shadow: var(--shadow);
    backdrop-filter: blur(18px);
}

.requester-listing-card small {
    color: var(--ink-soft);
    font-weight: 800;
}

.requester-listing-title {
    display: flex;
    gap: .9rem;
    align-items: center;
    margin-bottom: .6rem;
}

.requester-listing-icon {
    flex: 0 0 auto;
    width: 3.3rem;
    height: 3.3rem;
    border-radius: 1rem;
}

.requester-listing-icon svg {
    width: 1.6rem;
    height: 1.6rem;
}

.requester-listing-card h2 {
    margin: .15rem 0 0;
    font-size: 1.35rem;
}

.requester-listing-card p {
    margin: 0;
    color: var(--ink-soft);
}

.requester-status-hint {
    margin-top: .7rem !important;
    padding: .75rem .9rem;
    border-left: .25rem solid var(--sun);
    border-radius: .85rem;
    background: rgb(243 189 77 / 13%);
    font-size: .9rem;
}

.requester-listing-card dl {
    display: grid;
    gap: .65rem;
    margin: 0;
}

.requester-listing-card dl div {
    padding: .8rem;
    border-radius: 1rem;
    background: rgb(23 73 54 / 7%);
}

.requester-listing-card dt {
    color: var(--ink-soft);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.requester-listing-card dd {
    margin: .15rem 0 0;
    font-weight: 900;
}

.requester-listing-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    grid-column: 1 / -1;
    padding-top: .9rem;
    border-top: 1px solid var(--line);
}

.requester-listing-actions a {
    color: var(--leaf);
    font-weight: 900;
}

.requester-listing-actions form {
    margin: 0;
}

.requester-listing-actions button {
    min-height: 2.65rem;
    padding: 0 1rem;
    border: 0;
    border-radius: 999px;
    background: var(--leaf);
    color: white;
    cursor: pointer;
    font-weight: 900;
}

.requester-listing-actions .button-danger {
    background: #9f2f2f;
}

.requester-listing-actions span {
    color: var(--ink-soft);
    font-size: .9rem;
}

.dashboard-map {
    position: relative;
    min-height: 30rem;
    overflow: hidden;
    background: rgb(224 239 232 / 55%);
    backdrop-filter: blur(7px) saturate(120%);
}

.dashboard-map-copy {
    position: absolute;
    z-index: 2;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    display: grid;
    padding: 1rem;
    border: 1px solid rgb(255 255 255 / 65%);
    border-radius: 1rem;
    background: rgb(255 255 255 / 67%);
    backdrop-filter: blur(18px);
}

.dashboard-map-copy small,
.dashboard-map-copy span {
    color: var(--ink-soft);
}

.dashboard-pin {
    position: absolute;
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border: .25rem solid white;
    border-radius: 50% 50% 50% .2rem;
    transform: rotate(-45deg);
    background: var(--leaf);
    color: white;
    font-style: normal;
}

.dashboard-pin.pin-one { top: 20%; left: 20%; }
.dashboard-pin.pin-two { top: 35%; right: 18%; background: var(--coral); }
.dashboard-pin.pin-three { right: 40%; bottom: 29%; background: #745da3; }

@media (max-width: 760px) {
    .dashboard-shell {
        grid-template-columns: 1fr;
        margin-top: 1rem;
    }

    .dashboard-map {
        min-height: 22rem;
    }
}

/* Approved direction: animated neighborhood map with accessible glass panels. */
.skip-link {
    position: fixed;
    z-index: 100;
    top: .5rem;
    left: .5rem;
    padding: .7rem 1rem;
    transform: translateY(-150%);
    border-radius: .6rem;
    background: var(--ink);
    color: white;
}

.skip-link:focus {
    transform: translateY(0);
}

.glass-theme {
    background: #b9d8ce;
}

.glass-theme .site-header {
    position: absolute;
    right: 0;
    left: 0;
    width: min(92rem, calc(100% - 2rem));
}

.glass-theme .brand,
.glass-theme .site-nav a {
    position: relative;
    z-index: 2;
}

.glass-theme .site-header::before {
    position: absolute;
    inset: .65rem 0;
    border: 1px solid rgb(255 255 255 / 55%);
    border-radius: 1.2rem;
    background: rgb(255 255 255 / 52%);
    box-shadow: 0 1rem 3rem rgb(13 61 48 / 12%);
    content: "";
    backdrop-filter: blur(22px) saturate(140%);
}

.glass-theme .brand {
    margin-left: 1rem;
}

.glass-theme .site-nav {
    margin-right: 1rem;
}

.map-home {
    min-height: 100vh;
    background:
        linear-gradient(180deg, #bcd9cf 0, #dbe8e0 37rem, var(--paper) 68rem),
        var(--paper);
}

.home-section-flow {
    position: relative;
    z-index: 2;
    display: grid;
    gap: clamp(2rem, 5vw, 4rem);
    width: min(86rem, calc(100% - 2rem));
    margin: 0 auto clamp(3rem, 7vw, 5rem);
    padding-top: clamp(3rem, 7vw, 5rem);
}

.map-stage {
    position: relative;
    min-height: 100svh;
    margin-bottom: clamp(-3rem, -4vw, -1rem);
    overflow: hidden;
    isolation: isolate;
    background:
        linear-gradient(180deg, transparent 72%, #dbe8e0 100%),
        radial-gradient(circle at 79% 20%, #f4c65b 0 4.5rem, transparent 4.6rem),
        #bcd9cf;
}

.map-canvas {
    position: absolute;
    inset: -5%;
    z-index: 0;
    animation: production-map-drift 22s ease-in-out infinite alternate;
    pointer-events: none;
}

.map-canvas::after {
    position: absolute;
    z-index: 500;
    inset: 0;
    background:
        linear-gradient(90deg, rgb(244 239 224 / 45%), transparent 58%),
        linear-gradient(0deg, rgb(21 89 65 / 12%), rgb(255 255 255 / 8%));
    content: "";
    pointer-events: none;
}

.map-stage .leaflet-tile-pane {
    filter: saturate(.82) contrast(.95) brightness(1.02);
    opacity: .9;
}

.map-stage .leaflet-control-attribution {
    border-radius: .4rem 0 0;
    background: rgb(255 253 248 / 76%);
    color: #416258;
    backdrop-filter: blur(8px);
}

.map-stage .leaflet-control-attribution a {
    color: #174936;
}

.map-road {
    position: absolute;
    height: 3.1rem;
    border: .65rem solid rgb(255 255 255 / 68%);
    border-right: 0;
    border-left: 0;
    opacity: .7;
}

.road-one {
    top: 25%;
    left: -8%;
    width: 55%;
    transform: rotate(15deg);
}

.road-two {
    right: -6%;
    bottom: 25%;
    width: 58%;
    transform: rotate(-19deg);
}

.road-three {
    top: 51%;
    left: 31%;
    width: 43%;
    transform: rotate(72deg);
}

.map-green {
    position: absolute;
    border-radius: 48% 52% 60% 40%;
    background: #85b38b;
    box-shadow: inset 0 0 0 .4rem rgb(255 255 255 / 16%);
}

.green-one {
    right: 3%;
    bottom: -8%;
    width: 36rem;
    height: 27rem;
    transform: rotate(-12deg);
}

.green-two {
    top: -8%;
    left: 33%;
    width: 25rem;
    height: 18rem;
    background: #9fc596;
}

.home-glass {
    position: absolute;
    z-index: 5;
    top: 20%;
    left: max(4%, calc((100% - 88rem) / 2));
    width: min(42rem, 48vw);
    padding: clamp(1.6rem, 3.5vw, 3.5rem);
    border: 1px solid rgb(255 255 255 / 28%);
    border-radius: 2.2rem;
    background: rgb(246 250 247 / 78%);
    box-shadow: 0 2.5rem 7rem rgb(0 17 14 / 35%);
    backdrop-filter: blur(30px) saturate(130%);
}

.home-glass h1 {
    max-width: 9ch;
    margin: 0;
    font: 700 clamp(3.7rem, 7vw, 7rem)/.9 Georgia, serif;
    letter-spacing: -.065em;
}

.home-glass h1 em {
    color: var(--leaf);
    font-style: normal;
}

.home-glass > p:not(.eyebrow) {
    max-width: 35rem;
    margin: 1.5rem 0;
    color: var(--ink-soft);
    font-size: 1.08rem;
}

.button-glass {
    border: 1px solid rgb(23 63 50 / 18%);
    background: rgb(255 255 255 / 46%);
    color: var(--ink);
    backdrop-filter: blur(12px);
}

.glass-card {
    border: 1px solid rgb(255 255 255 / 30%);
    background: rgb(240 248 244 / 76%);
    box-shadow: 0 1.3rem 4rem rgb(0 17 14 / 30%);
    backdrop-filter: blur(24px) saturate(135%);
}

.demo-request {
    position: absolute;
    z-index: 6;
    right: 6%;
    bottom: 9%;
    display: grid;
    gap: .35rem;
    width: min(19rem, 31vw);
    padding: 1.2rem;
    border-radius: 1.2rem;
}

.demo-request.is-changing {
    animation: production-card-swap .5s cubic-bezier(.2, .8, .2, 1);
}

.demo-request-top,
.demo-request-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.demo-category {
    padding: .25rem .55rem;
    border-radius: 999px;
    background: var(--leaf-light);
    color: var(--leaf-dark);
    font-size: .68rem;
    font-weight: 850;
}

.demo-distance,
.demo-meta,
.demo-counter {
    color: var(--ink-soft);
    font-size: .72rem;
}

.demo-title {
    margin-top: .3rem;
    font-size: 1.08rem;
}

.demo-request-bottom {
    margin-top: .55rem;
}

.demo-price {
    color: var(--leaf-dark);
}

.map-search {
    position: absolute;
    z-index: 5;
    top: 17%;
    right: 6%;
    display: flex;
    gap: .8rem;
    align-items: center;
    min-width: 17rem;
    padding: .9rem 1rem;
    border-radius: 1rem;
}

.map-search > span {
    font-size: 1.7rem;
}

.map-search div {
    display: grid;
}

.map-search small {
    color: var(--ink-soft);
}

.live-badge {
    position: absolute;
    z-index: 5;
    right: 6%;
    bottom: 3%;
    display: flex;
    gap: .5rem;
    align-items: center;
    padding: .45rem .75rem;
    border-radius: 999px;
    background: rgb(13 61 48 / 78%);
    color: white;
    font-size: .68rem;
    font-weight: 750;
    backdrop-filter: blur(12px);
}

.live-badge i {
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: #65e2a4;
    box-shadow: 0 0 0 .3rem rgb(101 226 164 / 20%);
    animation: production-live 1.7s ease-in-out infinite;
}

.demo-pin {
    position: absolute;
    z-index: 4;
    display: grid;
    width: 3.4rem;
    height: 3.4rem;
    padding: 0;
    place-items: center;
    border: .3rem solid rgb(240 255 249 / 92%);
    border-radius: 50% 50% 50% .25rem;
    transform: rotate(-45deg);
    background: var(--leaf);
    box-shadow: 0 .7rem 2rem rgb(0 15 12 / 52%);
    color: white;
    cursor: pointer;
    opacity: 0;
    animation: production-pin-arrive .7s cubic-bezier(.2, 1.4, .4, 1) forwards;
}

.demo-pin span {
    display: grid;
    width: 1.35rem;
    height: 1.35rem;
    place-items: center;
    transform: rotate(45deg);
}

.demo-pin svg {
    width: 1.35rem;
    height: 1.35rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.demo-pin::after {
    position: absolute;
    inset: -.8rem;
    border: 2px solid currentColor;
    border-radius: 50%;
    content: "";
    opacity: 0;
}

.demo-pin.is-active::after {
    animation: production-pin-ring 1.8s ease-out infinite;
}

.pin-garden { top: 25%; left: 61%; background: #37a76e; animation-delay: .4s; }
.pin-home { top: 42%; right: 15%; background: var(--coral); animation-delay: 1.1s; }
.pin-tech { right: 35%; bottom: 21%; background: #745da3; animation-delay: 1.8s; }
.pin-moving { right: 9%; bottom: 38%; background: #ad7626; animation-delay: 2.5s; }
.pin-care { top: 18%; right: 37%; background: #b64d73; animation-delay: 3.2s; }

.home-steps {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 3rem;
    width: 100%;
    margin: 0;
    padding: clamp(2rem, 5vw, 4rem);
    border-radius: 2rem;
    background: var(--ink);
    color: white;
}

.brand-manifesto {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(22rem, .96fr);
    gap: clamp(2rem, 6vw, 5.5rem);
    align-items: center;
    width: 100%;
    margin: 0;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid rgb(255 253 248 / 72%);
    border-radius: clamp(1.6rem, 4vw, 3rem);
    background:
        radial-gradient(circle at 15% 10%, rgb(243 189 77 / 22%), transparent 34%),
        linear-gradient(135deg, rgb(255 253 248 / 78%), rgb(232 239 232 / 58%));
    box-shadow: 0 30px 90px rgb(23 63 50 / 12%);
    overflow: hidden;
}

.brand-manifesto::after {
    position: absolute;
    top: -5rem;
    right: -4rem;
    width: 18rem;
    height: 18rem;
    border: 1px solid rgb(24 121 78 / 10%);
    border-radius: 50%;
    background: rgb(220 239 227 / 42%);
    content: "";
}

.manifesto-copy,
.manifesto-card {
    position: relative;
    z-index: 1;
}

.manifesto-copy .eyebrow {
    margin-bottom: 1.1rem;
}

.brand-manifesto h2 {
    margin: 0;
    font: 700 clamp(3rem, 6.5vw, 6.7rem)/.9 Georgia, serif;
    letter-spacing: -.065em;
}

.brand-manifesto h2 em {
    position: relative;
    color: var(--leaf);
    font-style: normal;
}

.brand-manifesto h2 em::after {
    position: absolute;
    right: 0;
    bottom: -.08em;
    left: 0;
    height: .1em;
    transform: rotate(-1deg);
    border-radius: 100%;
    background: var(--sun);
    content: "";
    opacity: .8;
}

.manifesto-lead {
    max-width: 42rem;
    margin: clamp(1.4rem, 3vw, 2rem) 0 0;
    color: var(--ink-soft);
    font-size: clamp(1.05rem, 2vw, 1.2rem);
}

.manifesto-card {
    padding: clamp(1.3rem, 3vw, 2rem);
    border: 1px solid rgb(23 63 50 / 10%);
    border-radius: 1.6rem;
    background: rgb(255 253 248 / 82%);
    box-shadow: 0 22px 58px rgb(23 63 50 / 11%);
}

.manifesto-card p {
    margin: 0 0 1.2rem;
    color: var(--ink);
    font-size: 1.05rem;
}

.manifesto-card ul {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.manifesto-card li {
    display: flex;
    gap: .55rem;
    align-items: flex-start;
    flex-direction: column;
    padding: .95rem 1rem;
    border: 1px solid rgb(23 63 50 / 8%);
    border-radius: 1rem;
    background: rgb(248 243 232 / 72%);
    color: var(--ink-soft);
    font-size: .95rem;
}

.manifesto-card li span {
    display: block;
    color: var(--leaf-dark);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.manifesto-card li strong {
    color: var(--ink);
    font-size: .98rem;
    line-height: 1.38;
}

.manifesto-card blockquote {
    margin: 1.25rem 0 0;
    padding: 1rem 0 0 1.1rem;
    border-left: .25rem solid var(--coral);
    color: var(--ink);
    font: 700 1.15rem/1.35 Georgia, serif;
}

.home-steps h2 {
    margin: 0;
    font: 700 clamp(2.8rem, 5vw, 5rem)/.95 Georgia, serif;
    letter-spacing: -.055em;
}

.home-steps ol {
    display: grid;
    gap: .8rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.home-steps li {
    display: grid;
    grid-template-columns: 3rem 1fr;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid rgb(255 255 255 / 12%);
    border-radius: 1rem;
    background: rgb(255 255 255 / 5%);
}

.home-steps li b {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border-radius: 50%;
    background: var(--sun);
    color: var(--ink);
}

.home-steps li span,
.home-steps li strong {
    display: block;
}

.home-steps li span {
    color: #cbd8d3;
    font-size: .86rem;
}

.home-steps li strong {
    margin-bottom: .15rem;
    color: white;
    font-size: 1rem;
}

.static-page-shell {
    width: min(52rem, calc(100% - 2rem));
    margin: clamp(2rem, 6vw, 5rem) auto;
}

.static-page-card {
    margin-top: 1rem;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid rgb(255 255 255 / 72%);
    border-radius: 1.8rem;
    background: rgb(255 253 248 / 84%);
    box-shadow: var(--shadow);
}

.static-page-card h1 {
    max-width: 12ch;
    margin: 0;
    font: 700 clamp(2.8rem, 7vw, 5rem)/.95 Georgia, serif;
    letter-spacing: -.06em;
}

.static-page-lead {
    max-width: 42rem;
    margin: 1.5rem 0 0;
    color: var(--ink-soft);
    font-size: 1.08rem;
}

.static-page-list {
    display: grid;
    gap: .7rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

.static-page-list li {
    position: relative;
    padding: .9rem 1rem .9rem 2.4rem;
    border: 1px solid rgb(23 63 50 / 8%);
    border-radius: 1rem;
    background: rgb(255 253 248 / 72%);
    color: var(--ink);
    font-weight: 720;
}

.static-page-list li::before {
    position: absolute;
    top: 1rem;
    left: 1rem;
    width: .62rem;
    height: .62rem;
    border-radius: 50%;
    background: var(--leaf);
    content: "";
}

.static-page-sections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    margin: 1.5rem 0 0;
}

.static-page-sections section {
    display: grid;
    gap: .45rem;
    padding: 1rem;
    border: 1px solid rgb(23 63 50 / 9%);
    border-radius: 1.1rem;
    background: rgb(255 255 255 / 58%);
}

.static-page-sections strong {
    color: var(--ink);
    font-size: 1rem;
}

.static-page-sections p {
    margin: 0;
    color: var(--ink-soft);
    line-height: 1.45;
}

.static-page-note {
    margin: 1.5rem 0 0;
    padding: 1rem 1.1rem;
    border-left: .25rem solid var(--sun);
    border-radius: .9rem;
    background: rgb(243 189 77 / 13%);
    color: var(--ink-soft);
}

.static-page-note strong {
    color: var(--ink);
}

@media (max-width: 720px) {
    .static-page-sections {
        grid-template-columns: 1fr;
    }
}

/* Shared live map context for requester and contractor flows. */
.wizard-page {
    position: relative;
    isolation: isolate;
    background: #dbe8e2;
}

.ambient-map {
    position: fixed;
    z-index: -3;
    inset: -4rem;
    pointer-events: none;
}

.ambient-map .leaflet-tile-pane {
    filter: saturate(.78) contrast(.94) brightness(1.03);
    opacity: .82;
}

.ambient-map-wash {
    position: fixed;
    z-index: -2;
    inset: 0;
    background:
        linear-gradient(90deg, rgb(244 247 243 / 62%), rgb(232 242 237 / 30%)),
        rgb(205 226 216 / 14%);
    pointer-events: none;
}

.ambient-activity {
    position: fixed;
    z-index: 1;
    inset: 6rem 0 0;
    overflow: hidden;
    pointer-events: none;
}

.ambient-activity > p {
    position: absolute;
    top: 1.5rem;
    right: 2rem;
    display: flex;
    gap: .45rem;
    align-items: center;
    margin: 0;
    padding: .55rem .8rem;
    border: 1px solid rgb(255 255 255 / 75%);
    border-radius: 999px;
    background: rgb(255 253 248 / 78%);
    box-shadow: 0 .8rem 2.5rem rgb(23 63 50 / 14%);
    color: var(--ink-soft);
    font-size: .72rem;
    backdrop-filter: blur(18px);
}

.ambient-activity > p i {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    background: #27a76b;
    box-shadow: 0 0 0 .3rem rgb(39 167 107 / 16%);
    animation: production-live 1.7s ease-in-out infinite;
}

.ambient-activity > p strong {
    color: var(--ink);
}

.ambient-pin {
    position: absolute;
    display: grid;
    width: 3rem;
    height: 3rem;
    padding: 0;
    place-items: center;
    border: .27rem solid rgb(255 255 255 / 94%);
    border-radius: 50% 50% 50% .25rem;
    transform: rotate(-45deg);
    background: var(--leaf);
    box-shadow: 0 .8rem 2.2rem rgb(23 63 50 / 34%);
    cursor: pointer;
    pointer-events: auto;
    animation: production-pin-arrive .7s cubic-bezier(.2, 1.4, .4, 1) both;
}

.ambient-pin span {
    display: grid;
    width: 1.2rem;
    height: 1.2rem;
    place-items: center;
    transform: rotate(45deg);
    color: white;
}

.ambient-pin svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ambient-pin::after {
    position: absolute;
    inset: -.75rem;
    border: 2px solid currentColor;
    border-radius: 50%;
    content: "";
    opacity: 0;
}

.ambient-pin.is-active::after {
    animation: production-pin-ring 1.8s ease-out infinite;
}

.ambient-pin-one { top: 22%; right: 12%; }
.ambient-pin-two { top: 48%; left: 6%; background: var(--coral); animation-delay: .8s; }
.ambient-pin-three { right: 7%; bottom: 18%; background: #745da3; animation-delay: 1.6s; }

.ambient-event {
    position: absolute;
    right: 3rem;
    bottom: 3rem;
    display: grid;
    width: min(20rem, calc(100% - 2rem));
    padding: 1rem 1.1rem;
    border: 1px solid rgb(255 255 255 / 78%);
    border-radius: 1.15rem;
    background: rgb(255 253 248 / 82%);
    box-shadow: 0 1.4rem 4rem rgb(23 63 50 / 20%);
    backdrop-filter: blur(22px) saturate(120%);
}

.ambient-event.is-changing {
    animation: production-card-swap .5s cubic-bezier(.2, .8, .2, 1);
}

.ambient-event small,
.ambient-event span {
    color: var(--ink-soft);
    font-size: .72rem;
}

.ambient-event strong {
    margin: .2rem 0;
    line-height: 1.25;
}

.wizard-page .ambient-event {
    display: none;
}

@media (max-width: 900px) {
    .ambient-activity > p {
        top: .5rem;
        right: 1rem;
    }

    .ambient-pin-one { top: 17%; right: 5%; }
    .ambient-pin-two { top: 60%; left: 2%; }
    .ambient-pin-three { display: none; }

    .ambient-event {
        right: 1rem;
        bottom: 1rem;
        opacity: .88;
    }
}

@media (max-width: 620px) {
    .ambient-map-wash {
        background: rgb(239 246 242 / 70%);
    }

    .ambient-activity > p {
        top: .25rem;
        right: .75rem;
    }

    .ambient-pin-one {
        top: 8rem;
        right: 1rem;
    }

    .ambient-pin-two,
    .ambient-pin-three,
    .ambient-event {
        display: none;
    }
}

.public-listing-page {
    min-height: 100svh;
    background:
        linear-gradient(135deg, rgb(248 243 232 / 86%), rgb(232 238 232 / 76%)),
        var(--paper);
}

.public-listing-shell {
    position: relative;
    z-index: 3;
    width: min(62rem, calc(100% - 2rem));
    margin: 2rem auto 6rem;
}

.listing-breadcrumbs {
    display: flex;
    gap: .55rem;
    align-items: center;
    margin-bottom: 1.25rem;
    color: var(--ink-soft);
    font-size: .82rem;
}

.public-listing-grid {
    display: grid;
    gap: 1rem;
}

.public-listing-card {
    overflow: hidden;
    border: 1px solid rgb(23 63 50 / 10%);
    border-radius: 2rem;
    background: var(--white);
    box-shadow: var(--shadow);
}

.public-listing-card {
    padding: clamp(1.4rem, 4vw, 3.5rem);
}

.listing-head {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
}

.listing-head small {
    color: var(--ink-soft);
}

.listing-category {
    padding: .35rem .65rem;
    border-radius: 999px;
    background: var(--leaf-light);
    color: var(--leaf-dark);
    font-size: .72rem;
    font-weight: 850;
}

.public-listing-card h1 {
    max-width: 22ch;
    margin: 1.4rem 0 1rem;
    font: 700 clamp(2.65rem, 5vw, 5.2rem)/.94 Georgia, serif;
    letter-spacing: -.055em;
}

.listing-meta-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    margin-bottom: 1.4rem;
}

.listing-meta-strip > * {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    padding: .4rem .75rem;
    border: 1px solid rgb(23 63 50 / 10%);
    border-radius: 999px;
    background: rgb(255 253 248 / 72%);
    color: var(--ink-soft);
    font-size: .86rem;
    font-weight: 800;
}

.listing-requester {
    background: rgb(24 121 78 / 10%);
    color: var(--leaf-dark);
    font-weight: 850;
}

.listing-trust-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
    margin: -.2rem 0 1.4rem;
}

.listing-trust-strip article {
    display: grid;
    gap: .35rem;
    padding: .85rem;
    border: 1px solid rgb(23 63 50 / 8%);
    border-radius: 1rem;
    background: rgb(248 243 232 / 68%);
}

.listing-trust-strip span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    background: var(--leaf-light);
    color: var(--leaf-dark);
    font-weight: 850;
}

.listing-trust-strip strong {
    color: var(--ink);
    font-size: .92rem;
    line-height: 1.2;
}

.listing-trust-strip small {
    color: var(--ink-soft);
    font-size: .78rem;
    line-height: 1.35;
}

.listing-description {
    margin-top: 1.4rem;
    padding: 1.15rem;
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    background: rgb(255 253 248 / 66%);
}

.listing-description h2 {
    margin: 0 0 .65rem;
    font-size: 1rem;
}

.listing-description p {
    max-width: 78ch;
    margin: 0;
}

.listing-unlock-link {
    color: var(--leaf-dark);
    text-decoration: none;
}

.listing-facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .7rem;
    margin: 2rem 0;
}

.listing-facts div {
    padding: 1rem;
    border-radius: 1rem;
    background: var(--mist);
}

.listing-facts dt {
    color: var(--ink-soft);
    font-size: .72rem;
}

.listing-facts dd {
    margin: .2rem 0 0;
    font-weight: 850;
}

.listing-photo-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: 0;
}

.listing-photo-gallery-count-1 {
    grid-template-columns: minmax(0, 11rem);
}

.listing-photo-gallery-count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.listing-photo-gallery a {
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: 1.15rem;
    background: var(--mist);
    box-shadow: inset 0 0 0 1px rgb(23 63 50 / 10%);
}

.listing-photo-gallery span {
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: 1.15rem;
    background: var(--mist);
    box-shadow: inset 0 0 0 1px rgb(23 63 50 / 10%);
}

.listing-photo-gallery img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .2s ease;
}

.listing-photo-gallery a:hover img {
    transform: scale(1.025);
}

.listing-photo-gallery-blurred {
    position: relative;
}

.listing-photo-gallery-blurred img {
    filter: blur(16px) saturate(.75);
    transform: scale(1.08);
}

.listing-contact-box {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 1.1rem;
    border-radius: 1.25rem;
    background: var(--ink);
    color: white;
}

.listing-contact-box div {
    display: grid;
}

.listing-contact-box small {
    color: #cbd8d3;
}

.listing-visual-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 2rem 0;
}

.listing-visual-grid-map-only {
    grid-template-columns: 1fr;
}

.listing-photo-card,
.listing-map-card {
    display: grid;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 1.35rem;
    background: rgb(248 243 232 / 62%);
}

.listing-photo-card {
    gap: .9rem;
    align-content: start;
    padding: 1rem;
}

.listing-map {
    min-height: 15rem;
}

.listing-map .leaflet-tile-pane {
    filter: saturate(.8) contrast(.95);
}

.listing-photo-card > p,
.listing-map-card > p {
    margin: 0;
    color: var(--ink-soft);
    font-size: .82rem;
}

.listing-photo-card > p {
    padding-top: .1rem;
}

.listing-photo-card > p strong,
.listing-map-card > p strong {
    color: var(--ink);
}

.listing-map-card > p {
    padding: 1rem 1.1rem;
}

.listing-map-fallback {
    display: grid;
    height: 15rem;
    place-content: center;
    text-align: center;
    background: var(--leaf-light);
}

.listing-map-fallback span {
    font-size: 3rem;
}

@media (max-width: 820px) {
    .listing-visual-grid {
        grid-template-columns: 1fr;
    }

    .listing-map-card {
        grid-template-columns: 1fr;
    }

    .listing-map {
        min-height: 15rem;
    }
}

@media (max-width: 560px) {
    .listing-facts {
        grid-template-columns: 1fr;
    }

    .listing-trust-strip {
        grid-template-columns: 1fr;
    }

    .listing-photo-gallery {
        grid-template-columns: 1fr;
    }

    .listing-contact-box {
        align-items: stretch;
        flex-direction: column;
    }

    .listing-contact-box .button {
        justify-content: center;
    }
}

.area-page {
    min-height: 100svh;
    background:
        radial-gradient(circle at 78% 8%, rgb(143 193 177 / 34%), transparent 25rem),
        var(--paper);
}

.area-shell {
    width: min(82rem, calc(100% - 2rem));
    margin: 2rem auto 6rem;
}

.area-heading {
    display: grid;
    grid-template-columns: 1fr minmax(18rem, .55fr);
    gap: 1rem 4rem;
    align-items: end;
    margin-bottom: 2rem;
}

.area-heading .eyebrow {
    grid-column: 1 / -1;
    margin-bottom: 0;
}

.area-heading h1 {
    margin: 0;
    font: 700 clamp(3.2rem, 7vw, 6.5rem)/.9 Georgia, serif;
    letter-spacing: -.06em;
}

.area-title-row {
    display: flex;
    gap: clamp(1rem, 3vw, 1.5rem);
    align-items: center;
}

.area-category-icon {
    flex: 0 0 auto;
    width: clamp(4rem, 8vw, 5.5rem);
    height: clamp(4rem, 8vw, 5.5rem);
    border-radius: 1.4rem;
}

.area-category-icon svg {
    width: 55%;
    height: 55%;
}

.area-heading h1 em {
    color: var(--leaf);
    font-style: normal;
}

.area-heading > p:last-child {
    margin: 0;
    color: var(--ink-soft);
}

.area-trust-strip {
    display: flex;
    flex-wrap: wrap;
    grid-column: 1 / -1;
    gap: .55rem;
}

.area-trust-strip span {
    padding: .55rem .75rem;
    border: 1px solid rgb(23 63 50 / 9%);
    border-radius: 999px;
    background: rgb(255 253 248 / 72%);
    color: var(--ink-soft);
    font-size: .82rem;
    font-weight: 750;
}

.area-layout {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(24rem, 1.15fr);
    gap: 1rem;
    align-items: start;
}

.area-list,
.area-map-card {
    overflow: hidden;
    border: 1px solid rgb(23 63 50 / 10%);
    border-radius: 1.6rem;
    background: rgb(255 253 248 / 88%);
    box-shadow: var(--shadow);
}

.area-list-head {
    display: flex;
    justify-content: space-between;
    padding: 1rem 1.2rem;
    border-bottom: 1px solid var(--line);
    color: var(--ink-soft);
    font-size: .78rem;
}

.area-listing {
    display: flex;
    gap: 1rem;
    align-items: start;
    justify-content: space-between;
    padding: 1.25rem;
    border-bottom: 1px solid var(--line);
}

.area-listing-icon {
    flex: 0 0 auto;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: .85rem;
}

.area-listing-icon svg {
    width: 1.35rem;
    height: 1.35rem;
}

.area-listing:last-child {
    border-bottom: 0;
}

.area-listing small,
.area-listing p {
    color: var(--ink-soft);
}

.area-listing h2 {
    margin: .15rem 0 .4rem;
    font-size: 1.08rem;
    line-height: 1.25;
}

.area-listing h2 a {
    text-decoration: none;
}

.area-listing h2 a:hover {
    text-decoration: underline;
}

.area-listing p {
    margin: 0;
    font-size: .82rem;
}

.area-listing-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .75rem;
}

.area-listing-meta span {
    padding: .35rem .55rem;
    border-radius: 999px;
    background: rgb(232 238 232 / 78%);
    color: var(--ink-soft);
    font-size: .74rem;
    font-weight: 800;
}

.area-listing > strong {
    flex: 0 0 auto;
    color: var(--leaf-dark);
    white-space: nowrap;
}

.area-map-card {
    position: sticky;
    top: 1rem;
}

.area-map {
    height: min(65vh, 38rem);
}

.area-map .leaflet-tile-pane {
    filter: saturate(.82) contrast(.95);
}

.map-category-marker {
    display: grid;
    place-items: center;
    border: .22rem solid rgb(255 253 248 / 96%);
    border-radius: 50% 50% 50% .28rem;
    transform: rotate(-45deg);
    background: var(--leaf);
    box-shadow: 0 .7rem 1.7rem rgb(23 63 50 / 30%);
    color: white;
}

.map-category-marker svg {
    width: 1.25rem;
    height: 1.25rem;
    transform: rotate(45deg);
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.map-category-orange,
.map-category-red { background: var(--coral); }
.map-category-violet,
.map-category-indigo { background: #745da3; }
.map-category-pink { background: #b64d73; }
.map-category-amber { background: #ad7626; }

.area-map-card > p {
    margin: 0;
    padding: .8rem 1rem;
    color: var(--ink-soft);
    font-size: .75rem;
}

.area-cta-card {
    display: grid;
    gap: .55rem;
    margin: 0 1rem 1rem;
    padding: 1rem;
    border-radius: 1.1rem;
    background: var(--ink);
    color: white;
}

.area-cta-card small {
    color: #cbd8d3;
    font-size: .78rem;
    font-weight: 800;
}

.area-cta-card strong {
    line-height: 1.25;
}

.area-cta-card a {
    justify-self: start;
    margin-top: .25rem;
    padding: .55rem .8rem;
    border-radius: 999px;
    background: var(--sun);
    color: var(--ink);
    font-size: .84rem;
    font-weight: 900;
    text-decoration: none;
}

@media (max-width: 860px) {
    .area-heading,
    .area-layout {
        grid-template-columns: 1fr;
    }

    .area-map-card {
        position: static;
        grid-row: 1;
    }

    .area-map {
        height: 22rem;
    }
}

@media (max-width: 540px) {
    .area-listing {
        flex-direction: column;
    }

    .area-title-row {
        align-items: flex-start;
        flex-direction: column;
    }
}

.wizard-page .site-header::before {
    position: absolute;
    inset: .65rem 0;
    border: 1px solid rgb(255 255 255 / 55%);
    border-radius: 1.2rem;
    background: rgb(255 255 255 / 56%);
    content: "";
    backdrop-filter: blur(20px);
}

.wizard-page .site-header > * {
    position: relative;
    margin-inline: 1rem;
}

.wizard-page .wizard-form,
.wizard-page .success-panel {
    border-color: rgb(255 255 255 / 72%);
    background: rgb(255 253 248 / 84%);
    box-shadow: 0 2rem 6rem rgb(13 61 48 / 16%);
    backdrop-filter: blur(22px) saturate(120%);
}

@keyframes production-map-drift {
    from { transform: scale(1.02) translate3d(-.7%, -.4%, 0); }
    to { transform: scale(1.07) translate3d(.8%, .6%, 0); }
}

@keyframes production-pin-arrive {
    0% { opacity: 0; transform: rotate(-45deg) translate(1.5rem, -2rem) scale(.2); }
    70% { opacity: 1; transform: rotate(-45deg) scale(1.15); }
    100% { opacity: 1; transform: rotate(-45deg) scale(1); }
}

@keyframes production-pin-ring {
    0% { transform: scale(.3); opacity: .75; }
    100% { transform: scale(1.45); opacity: 0; }
}

@keyframes production-card-swap {
    from { opacity: .3; transform: translateY(.8rem) scale(.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes production-live {
    0%, 100% { opacity: .5; }
    50% { opacity: 1; }
}

@media (max-width: 800px) {
    .glass-theme .site-header {
        position: relative;
    }

    .map-stage {
        min-height: 53rem;
    }

    .home-glass {
        top: 2rem;
        left: 5%;
        width: 90%;
        padding: 1.5rem;
    }

    .home-glass h1 {
        font-size: clamp(3.25rem, 15vw, 5rem);
    }

    .home-glass > p:not(.eyebrow) {
        font-size: 1rem;
    }

    .map-search {
        display: none;
    }

    .demo-request {
        right: 5%;
        bottom: 5.5rem;
        left: 5%;
        width: auto;
    }

    .live-badge {
        right: 5%;
        bottom: 2rem;
    }

    .pin-garden { top: 60%; left: 13%; }
    .pin-home { top: 55%; right: 12%; }
    .pin-tech { right: 38%; bottom: 27%; }
    .pin-moving { right: 7%; bottom: 33%; }
    .pin-care { top: 49%; right: 45%; }

    .home-steps {
        grid-template-columns: 1fr;
    }

    .brand-manifesto {
        grid-template-columns: 1fr;
        padding: 1rem;
    }

    .manifesto-card {
        padding: 1rem;
    }

    .subscription-status-card,
    .subscription-benefit-grid,
    .annual-qr-layout {
        grid-template-columns: 1fr;
    }

    .annual-qr-head {
        display: grid;
    }

    .subscription-shell h1,
    .fake-checkout-card h1 {
        font-size: clamp(2.8rem, 15vw, 4.2rem);
    }

    .pricing-card form .button {
        width: 100%;
    }

}

@media (prefers-reduced-motion: reduce) {
    .map-canvas,
    .demo-pin,
    .demo-pin.is-active::after,
    .demo-request.is-changing,
    .live-badge i {
        animation: none;
    }

    .demo-pin {
        opacity: 1;
    }
}
