/* PlusParking design system */
:root {
    --pp-ink: #102326;
    --pp-ink-soft: #4c6063;
    --pp-night: #082f32;
    --pp-night-2: #0d4143;
    --pp-green: #13b77b;
    --pp-green-dark: #078b60;
    --pp-lime: #c9f66b;
    --pp-mint: #e9f8f1;
    --pp-mist: #f4f8f6;
    --pp-sand: #f6f3ea;
    --pp-white: #ffffff;
    --pp-line: #dce8e3;
    --pp-orange: #ffb763;
    --pp-blue: #dff2ff;
    --pp-radius-sm: 16px;
    --pp-radius: 26px;
    --pp-radius-lg: 38px;
    --pp-shadow: 0 28px 80px rgba(8, 47, 50, .14);
    --pp-shadow-soft: 0 16px 44px rgba(8, 47, 50, .08);
    --pp-shell: 1400px;
    --pp-dashboard-shell: 1680px;
}

/* The page title is supplied inside the landing-page HTML. */
.plusparking-page .entry-title,
.plusparking-page .page-title,
.plusparking-page .page-header,
.plusparking-page .wp-block-post-title,
.plusparking-page .elementor-page-title,
.plusparking-page .elementor-widget-theme-post-title,
.plusparking-page header.entry-header {
    display: none !important;
}

.plusparking-page .site-main,
.plusparking-fullwidth,
.pp-site {
    overflow: hidden;
}

.plusparking-page .site-main,
.plusparking-fullwidth {
    margin: 0;
    padding: 0;
    max-width: none;
}

.pp-site,
.pp-site * {
    box-sizing: border-box;
}

.pp-site {
    color: var(--pp-ink);
    background: var(--pp-white);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.62;
}

.pp-site h1,
.pp-site h2,
.pp-site h3,
.pp-site p {
    margin-top: 0;
}

.pp-site a {
    color: inherit;
}

.pp-section {
    position: relative;
    padding: clamp(76px, 8vw, 124px) 24px;
}

.pp-shell {
    width: min(100%, var(--pp-shell));
    margin: 0 auto;
}

.pp-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--pp-green-dark);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.pp-kicker-dot {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: var(--pp-green);
    box-shadow: 0 0 0 7px rgba(19, 183, 123, .13);
}

.pp-site h1 {
    max-width: 850px;
    margin-bottom: 26px;
    font-size: clamp(3.15rem, 6.6vw, 6.25rem);
    line-height: .96;
    letter-spacing: -.064em;
    font-weight: 770;
}

.pp-site h1 span {
    color: var(--pp-green-dark);
}

.pp-site h2 {
    margin-bottom: 18px;
    font-size: clamp(2.25rem, 4.7vw, 4.35rem);
    line-height: 1.02;
    letter-spacing: -.052em;
    font-weight: 750;
}

.pp-site h3 {
    margin-bottom: 12px;
    font-size: 1.3rem;
    line-height: 1.25;
    letter-spacing: -.025em;
}

.pp-lead {
    max-width: 700px;
    margin-bottom: 32px;
    color: var(--pp-ink-soft);
    font-size: clamp(1.06rem, 1.5vw, 1.26rem);
    line-height: 1.72;
}

.pp-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.pp-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 56px;
    padding: 14px 24px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 780;
    text-decoration: none !important;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}

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

.pp-button-primary {
    color: #fff !important;
    background: var(--pp-green-dark);
    box-shadow: 0 14px 34px rgba(7, 139, 96, .24);
}

.pp-button-primary:hover {
    background: var(--pp-night);
}

.pp-button-secondary {
    border-color: var(--pp-line);
    background: rgba(255, 255, 255, .76);
}

.pp-button-secondary:hover {
    border-color: var(--pp-green);
}

.pp-button-light {
    color: var(--pp-night) !important;
    background: var(--pp-white);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .16);
}

.pp-button-light:hover {
    background: var(--pp-lime);
}

.pp-button-dark-outline {
    color: #fff !important;
    border-color: rgba(255, 255, 255, .26);
    background: transparent;
}

.pp-button-dark-outline:hover {
    border-color: var(--pp-lime);
}

.pp-text-link {
    color: var(--pp-green-dark) !important;
    font-weight: 820;
    text-decoration: none !important;
}

.pp-text-link span {
    display: inline-block;
    margin-left: 8px;
    transition: transform .2s ease;
}

.pp-text-link:hover span {
    transform: translateX(4px);
}

.pp-section-heading {
    max-width: 820px;
    margin-bottom: 54px;
}

.pp-section-heading > p,
.pp-split-heading > p {
    max-width: 680px;
    color: var(--pp-ink-soft);
    font-size: 1.08rem;
}

.pp-section-heading-light .pp-kicker {
    color: var(--pp-lime);
}

.pp-section-heading-light > p {
    color: rgba(255, 255, 255, .72);
}

.pp-split-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .75fr);
    align-items: end;
    gap: clamp(38px, 8vw, 110px);
    margin-bottom: 58px;
}

.pp-customer-proof {
    display: flex;
    flex-wrap: wrap;
    gap: 13px 22px;
    margin-top: 34px;
    color: var(--pp-ink-soft);
    font-size: .84rem;
    font-weight: 680;
}

.pp-customer-proof span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.pp-customer-proof b {
    color: var(--pp-green-dark);
}

/* Customer hero */
.pp-customer-hero {
    min-height: 790px;
    display: flex;
    align-items: center;
    padding-top: clamp(84px, 9vw, 132px);
    background:
        radial-gradient(circle at 82% 19%, rgba(201, 246, 107, .42), transparent 18%),
        radial-gradient(circle at 88% 60%, rgba(19, 183, 123, .14), transparent 30%),
        linear-gradient(145deg, #fbfdfc 0%, #eef8f3 100%);
}

.pp-customer-hero::after,
.pp-owner-new-hero::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--pp-line), transparent);
}

.pp-customer-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(420px, .96fr);
    align-items: center;
    gap: clamp(44px, 8vw, 104px);
}

.pp-customer-demo {
    position: relative;
    min-height: 610px;
    display: grid;
    place-items: center;
}

.pp-demo-glow {
    position: absolute;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(19, 183, 123, .22), rgba(19, 183, 123, 0) 67%);
}

.pp-phone-shell {
    position: relative;
    z-index: 2;
    width: min(100%, 385px);
    padding: 12px 24px 24px;
    border: 9px solid var(--pp-night);
    border-radius: 44px;
    background: #fff;
    box-shadow: var(--pp-shadow);
    transform: rotate(2deg);
}

.pp-phone-shell::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    width: 96px;
    height: 22px;
    border-radius: 99px;
    background: var(--pp-night);
    transform: translateX(-50%);
}

.pp-phone-status,
.pp-phone-brand,
.pp-phone-rate {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.pp-phone-status {
    padding: 4px 4px 20px;
    font-size: .68rem;
    font-weight: 800;
}

.pp-phone-brand {
    margin-bottom: 24px;
    padding-top: 12px;
}

.pp-mini-logo {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: #fff;
    background: var(--pp-night);
    font-weight: 900;
}

.pp-phone-brand strong {
    flex: 1;
    font-size: .95rem;
}

.pp-secure {
    color: var(--pp-green-dark);
    font-size: .68rem;
    font-weight: 850;
}

.pp-phone-place small,
.pp-phone-rate small,
.pp-phone-timer span,
.pp-phone-timer small {
    display: block;
    color: #718287;
    font-size: .72rem;
}

.pp-phone-place strong {
    display: block;
    font-size: 1.02rem;
}

.pp-phone-plate {
    display: flex;
    align-items: stretch;
    height: 58px;
    margin: 24px 0;
    border: 3px solid #161d20;
    border-radius: 8px;
    overflow: hidden;
}

.pp-phone-plate span {
    width: 38px;
    display: grid;
    place-items: center;
    color: #fff;
    background: #1260ad;
    font-size: .75rem;
    font-weight: 850;
}

.pp-phone-plate strong {
    flex: 1;
    display: grid;
    place-items: center;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 1.28rem;
    letter-spacing: .08em;
}

.pp-phone-timer {
    padding: 22px;
    border-radius: 22px;
    background: var(--pp-mist);
}

.pp-phone-timer strong {
    display: block;
    margin: 3px 0 5px;
    font-size: 2.15rem;
    letter-spacing: -.04em;
}

.pp-phone-rate {
    margin: 20px 0;
}

.pp-phone-rate span {
    width: 50%;
}

.pp-phone-rate b {
    display: block;
    margin-top: 3px;
    font-size: .82rem;
}

.pp-phone-button {
    padding: 14px 16px;
    border-radius: 16px;
    color: #fff;
    background: var(--pp-night);
    text-align: center;
    font-size: .85rem;
    font-weight: 800;
}

.pp-demo-chip,
.pp-owner-float {
    position: absolute;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 16px;
    border: 1px solid rgba(255, 255, 255, .84);
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--pp-shadow-soft);
    font-size: .79rem;
    font-weight: 820;
    backdrop-filter: blur(12px);
}

.pp-demo-chip span,
.pp-owner-float span {
    width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    border-radius: 99px;
    color: #fff;
    background: var(--pp-green-dark);
    font-size: .72rem;
}

.pp-demo-chip-top {
    top: 15%;
    right: -3%;
}

.pp-demo-chip-bottom {
    bottom: 17%;
    left: -4%;
}

/* Customer quick access */
.pp-quick-actions {
    position: relative;
    z-index: 5;
    margin-top: -34px;
    padding: 0 24px;
}

.pp-quick-actions-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--pp-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--pp-shadow-soft);
    overflow: hidden;
}

.pp-quick-action {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 16px;
    min-height: 118px;
    padding: 23px 26px;
    border-right: 1px solid var(--pp-line);
    text-decoration: none !important;
    transition: background .2s ease;
}

.pp-quick-action:last-child {
    border-right: 0;
}

.pp-quick-action:hover {
    background: var(--pp-mint);
}

.pp-quick-icon {
    width: 45px;
    height: 45px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-weight: 900;
}

.pp-quick-action strong,
.pp-quick-action small {
    display: block;
}

.pp-quick-action small {
    margin-top: 2px;
    color: var(--pp-ink-soft);
    font-size: .77rem;
}

.pp-quick-action > b {
    color: var(--pp-green-dark);
}

/* Customer steps */
.pp-customer-steps {
    padding-top: clamp(110px, 11vw, 160px);
}

.pp-customer-step-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.pp-customer-step {
    position: relative;
    min-height: 300px;
    padding: 32px;
    border: 1px solid var(--pp-line);
    border-radius: var(--pp-radius);
    background: #fff;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.pp-customer-step:hover {
    transform: translateY(-6px);
    border-color: rgba(19, 183, 123, .48);
    box-shadow: var(--pp-shadow-soft);
}

.pp-step-count {
    position: absolute;
    top: 26px;
    right: 28px;
    color: #c1cec9;
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .12em;
}

.pp-step-symbol {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    margin-bottom: 50px;
    border-radius: 18px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-size: 1.2rem;
    font-weight: 900;
}

.pp-customer-step p {
    margin-bottom: 0;
    color: var(--pp-ink-soft);
}

/* Customer tariff cards */
.pp-customer-tariffs {
    background: var(--pp-mist);
}

.pp-tariff-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.pp-tariff-card {
    min-height: 360px;
    display: flex;
    flex-direction: column;
    padding: 29px;
    border: 1px solid var(--pp-line);
    border-radius: var(--pp-radius);
    background: #fff;
    box-shadow: 0 10px 34px rgba(8, 47, 50, .04);
}

.pp-tariff-featured {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(150deg, var(--pp-night), var(--pp-night-2));
}

.pp-tariff-tag,
.pp-business-label,
.pp-access-label {
    align-self: flex-start;
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-size: .67rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.pp-tariff-featured .pp-tariff-tag {
    color: var(--pp-night);
    background: var(--pp-lime);
}

.pp-tariff-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin: 44px 0 26px;
    border-radius: 19px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-size: 1.25rem;
    font-weight: 900;
}

.pp-tariff-featured .pp-tariff-icon {
    color: var(--pp-night);
    background: var(--pp-lime);
}

.pp-tariff-card h3 {
    font-size: 1.52rem;
}

.pp-tariff-card p {
    color: var(--pp-ink-soft);
}

.pp-tariff-featured p {
    color: rgba(255, 255, 255, .72);
}

.pp-tariff-card small {
    display: block;
    margin-top: auto;
    padding-top: 22px;
    color: #718287;
    font-weight: 700;
}

.pp-tariff-featured small {
    color: rgba(255, 255, 255, .62);
}

/* Camera / QR customer section */
.pp-customer-access,
.pp-technology-choice {
    color: #fff;
    background:
        radial-gradient(circle at 10% 10%, rgba(201, 246, 107, .14), transparent 24%),
        radial-gradient(circle at 94% 90%, rgba(19, 183, 123, .16), transparent 25%),
        var(--pp-night);
}

.pp-access-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.pp-access-card {
    min-height: 460px;
    padding: clamp(32px, 4vw, 48px);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--pp-radius-lg);
    background: rgba(255, 255, 255, .055);
}

.pp-access-card-green {
    background: linear-gradient(150deg, rgba(19, 183, 123, .26), rgba(255, 255, 255, .055));
}

.pp-access-head,
.pp-technology-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 52px;
}

.pp-access-symbol,
.pp-technology-icon {
    width: 66px;
    height: 66px;
    display: grid;
    place-items: center;
    border-radius: 21px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-size: 1.28rem;
    font-weight: 900;
}

.pp-access-card h3,
.pp-technology-card h3 {
    font-size: clamp(1.75rem, 3vw, 2.55rem);
}

.pp-access-card p,
.pp-technology-card p {
    color: rgba(255, 255, 255, .72);
}

.pp-access-card ul,
.pp-technology-card ul,
.pp-feature-box ul {
    display: grid;
    gap: 11px;
    margin: 27px 0 0;
    padding: 0;
    list-style: none;
}

.pp-access-card li::before,
.pp-technology-card li::before,
.pp-feature-box li::before {
    content: "✓";
    margin-right: 9px;
    color: var(--pp-lime);
    font-weight: 900;
}

/* Customer exit */
.pp-customer-exit {
    background: linear-gradient(145deg, #fff, #f2f8f5);
}

.pp-customer-exit-grid {
    display: grid;
    grid-template-columns: 1fr .72fr;
    align-items: center;
    gap: clamp(46px, 9vw, 120px);
}

.pp-exit-card {
    padding: clamp(30px, 5vw, 48px);
    border: 1px solid var(--pp-line);
    border-radius: var(--pp-radius-lg);
    background: #fff;
    box-shadow: var(--pp-shadow);
}

.pp-exit-status {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 34px;
}

.pp-exit-status > span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-weight: 900;
}

.pp-exit-status small,
.pp-exit-countdown small {
    display: block;
    color: #718287;
    font-size: .75rem;
}

.pp-exit-countdown {
    padding: 24px;
    border-radius: 22px;
    background: var(--pp-mist);
}

.pp-exit-countdown strong {
    display: block;
    margin: 4px 0 16px;
    font-size: 2.6rem;
    letter-spacing: -.05em;
}

.pp-exit-countdown > div {
    height: 7px;
    border-radius: 99px;
    background: #dce7e2;
    overflow: hidden;
}

.pp-exit-countdown i {
    display: block;
    width: 68%;
    height: 100%;
    border-radius: inherit;
    background: var(--pp-green);
}

.pp-exit-card > p {
    margin: 24px 0 0;
    color: var(--pp-ink-soft);
    font-size: .84rem;
}

/* Customer confidence */
.pp-customer-confidence {
    background: var(--pp-sand);
}

.pp-confidence-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.pp-confidence-card {
    min-height: 230px;
    padding: 28px;
    border-radius: var(--pp-radius);
    background: #fff;
}

.pp-confidence-card > span {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    margin-bottom: 38px;
    border-radius: 15px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-weight: 900;
}

.pp-confidence-card p {
    margin-bottom: 0;
    color: var(--pp-ink-soft);
}

/* Common CTA */
.pp-final-cta {
    padding-top: 58px;
}

.pp-cta-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 42px;
    padding: clamp(36px, 6vw, 72px);
    border-radius: var(--pp-radius-lg);
    color: #fff;
    background:
        radial-gradient(circle at 84% 0, rgba(201, 246, 107, .24), transparent 34%),
        var(--pp-night);
}

.pp-cta-box .pp-kicker {
    color: var(--pp-lime);
}

.pp-cta-box h2 {
    max-width: 740px;
    margin-bottom: 13px;
    font-size: clamp(2rem, 4.5vw, 3.9rem);
}

.pp-cta-box p {
    max-width: 700px;
    margin-bottom: 0;
    color: rgba(255, 255, 255, .72);
}

.pp-owner-link {
    margin-top: 32px;
    text-align: center;
}

.pp-owner-link a {
    color: var(--pp-ink-soft);
    font-size: .9rem;
    font-weight: 760;
    text-decoration: none;
}

.pp-owner-link a:hover {
    color: var(--pp-green-dark);
}

/* Owner hero */
.pp-owner-new-hero {
    min-height: 820px;
    display: flex;
    align-items: center;
    padding-top: clamp(84px, 9vw, 132px);
    background:
        radial-gradient(circle at 77% 17%, rgba(201, 246, 107, .44), transparent 18%),
        radial-gradient(circle at 92% 62%, rgba(19, 183, 123, .16), transparent 26%),
        linear-gradient(145deg, #fafdfb, #edf8f3);
}

.pp-owner-new-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(460px, .98fr);
    align-items: center;
    gap: clamp(44px, 7vw, 96px);
}

.pp-owner-dashboard {
    position: relative;
    width: 100%;
    padding: 27px;
    border: 1px solid rgba(255, 255, 255, .9);
    border-radius: 32px;
    background: rgba(255, 255, 255, .9);
    box-shadow: var(--pp-shadow);
    backdrop-filter: blur(16px);
}

.pp-owner-dashboard-top,
.pp-owner-chart-head,
.pp-owner-event {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.pp-owner-dashboard-top small,
.pp-owner-dashboard-top strong {
    display: block;
}

.pp-owner-dashboard-top small,
.pp-owner-kpis small,
.pp-owner-kpis span,
.pp-owner-event small {
    color: #718287;
    font-size: .72rem;
}

.pp-online-dot {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--pp-green-dark);
    font-size: .74rem;
    font-weight: 850;
}

.pp-online-dot::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 99px;
    background: var(--pp-green);
    box-shadow: 0 0 0 6px rgba(19, 183, 123, .12);
}

.pp-owner-kpis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 24px 0;
}

.pp-owner-kpis > div {
    padding: 17px;
    border-radius: 18px;
    background: var(--pp-mist);
}

.pp-owner-kpis small,
.pp-owner-kpis strong,
.pp-owner-kpis span {
    display: block;
}

.pp-owner-kpis strong {
    margin: 4px 0;
    font-size: 1.65rem;
    letter-spacing: -.04em;
}

.pp-owner-kpis span {
    color: var(--pp-green-dark);
    font-weight: 760;
}

.pp-owner-chart {
    padding: 20px;
    border: 1px solid var(--pp-line);
    border-radius: 20px;
}

.pp-owner-chart-head {
    font-size: .78rem;
}

.pp-owner-chart-head span {
    color: #718287;
}

.pp-bars {
    height: 126px;
    display: flex;
    align-items: end;
    gap: 9px;
    margin-top: 20px;
}

.pp-bars i {
    flex: 1;
    min-height: 8px;
    border-radius: 8px 8px 3px 3px;
    background: linear-gradient(180deg, var(--pp-green), var(--pp-green-dark));
}

.pp-owner-event {
    margin-top: 14px;
    padding: 15px;
    border-radius: 18px;
    background: var(--pp-night);
    color: #fff;
}

.pp-event-icon {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-weight: 900;
}

.pp-owner-event > div {
    flex: 1;
}

.pp-owner-event strong,
.pp-owner-event small {
    display: block;
}

.pp-owner-event b {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .82rem;
}

.pp-owner-float-payment {
    top: -32px;
    right: 28px;
}

.pp-owner-float-qr {
    bottom: 44px;
    left: -54px;
}

.pp-owner-value-strip {
    padding: 21px 24px;
    color: rgba(255, 255, 255, .78);
    background: var(--pp-night);
    font-size: .78rem;
    font-weight: 760;
    letter-spacing: .035em;
}

.pp-owner-value-strip .pp-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.pp-owner-value-strip i {
    width: 4px;
    height: 4px;
    flex: 0 0 4px;
    border-radius: 99px;
    background: var(--pp-lime);
}

/* Business models */
.pp-business-models {
    background: var(--pp-mist);
}

.pp-business-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.pp-business-card {
    position: relative;
    min-height: 365px;
    padding: 36px;
    border: 1px solid var(--pp-line);
    border-radius: var(--pp-radius);
    background: #fff;
}

.pp-business-card-wide {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) minmax(310px, .72fr);
    gap: 34px;
    min-height: 390px;
    padding: 48px;
    background: linear-gradient(135deg, #fff, #eaf8f1);
}

.pp-business-card-dark {
    color: #fff;
    border-color: transparent;
    background: var(--pp-night);
}

.pp-business-number {
    color: var(--pp-green-dark);
    font-size: .77rem;
    font-weight: 900;
    letter-spacing: .14em;
}

.pp-business-card-dark .pp-business-number {
    color: var(--pp-lime);
}

.pp-business-card .pp-business-label {
    margin-bottom: 18px;
}

.pp-business-card-dark .pp-business-label {
    color: var(--pp-night);
    background: var(--pp-lime);
}

.pp-business-card h3 {
    font-size: clamp(1.75rem, 3.2vw, 2.7rem);
}

.pp-business-card p {
    color: var(--pp-ink-soft);
}

.pp-business-card-dark p {
    color: rgba(255, 255, 255, .72);
}

.pp-business-result {
    display: grid;
    gap: 4px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--pp-line);
}

.pp-business-result strong {
    color: var(--pp-green-dark);
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pp-feature-box {
    align-self: stretch;
    padding: 28px;
    border-radius: 22px;
    color: #fff;
    background: var(--pp-night);
}

.pp-feature-box small {
    display: block;
    color: var(--pp-lime);
    font-weight: 820;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pp-feature-box li {
    color: rgba(255, 255, 255, .83);
}

.pp-feature-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 28px;
}

.pp-feature-pills span {
    padding: 8px 11px;
    border: 1px solid var(--pp-line);
    border-radius: 999px;
    background: rgba(255, 255, 255, .8);
    font-size: .78rem;
    font-weight: 740;
}

.pp-business-card-dark .pp-feature-pills span {
    border-color: rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .07);
}

/* Technology choice */
.pp-technology-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.pp-technology-card {
    min-height: 520px;
    padding: 34px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: var(--pp-radius-lg);
    background: rgba(255, 255, 255, .055);
}

.pp-technology-card-light {
    color: var(--pp-ink);
    background: #fff;
}

.pp-technology-card-accent {
    color: var(--pp-ink);
    border-color: transparent;
    background: var(--pp-lime);
}

.pp-technology-top > span:last-child {
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .68;
}

.pp-technology-card-light p,
.pp-technology-card-accent p {
    color: var(--pp-ink-soft);
}

.pp-technology-card-light li::before,
.pp-technology-card-accent li::before {
    color: var(--pp-green-dark);
}

.pp-technology-card-accent .pp-technology-icon {
    color: #fff;
    background: var(--pp-night);
}

/* Operator platform */
.pp-operator-platform {
    background: linear-gradient(140deg, #fff, #f1f8f5);
}

.pp-operator-platform-grid {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    align-items: center;
    gap: clamp(50px, 9vw, 120px);
}

.pp-platform-feature-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.pp-platform-feature {
    min-height: 235px;
    padding: 29px;
    border: 1px solid var(--pp-line);
    border-radius: var(--pp-radius);
    background: #fff;
}

.pp-platform-feature > span {
    display: block;
    margin-bottom: 40px;
    color: var(--pp-green-dark);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .14em;
}

.pp-platform-feature p {
    margin-bottom: 0;
    color: var(--pp-ink-soft);
}

/* Examples */
.pp-site-examples {
    background: var(--pp-sand);
}

.pp-example-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.pp-example-card {
    min-height: 290px;
    padding: 29px;
    border-radius: var(--pp-radius);
    background: #fff;
}

.pp-example-card > span {
    display: inline-block;
    margin-bottom: 48px;
    color: var(--pp-green-dark);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.pp-example-card h3 {
    font-size: 1.45rem;
}

.pp-example-card p {
    margin-bottom: 0;
    color: var(--pp-ink-soft);
}

/* Owner process */
.pp-owner-process-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--pp-line);
}

.pp-owner-process-list li {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
    padding: 30px 0;
    border-bottom: 1px solid var(--pp-line);
}

.pp-owner-process-list li > span {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 99px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-weight: 900;
}

.pp-owner-process-list h3 {
    margin-bottom: 5px;
}

.pp-owner-process-list p {
    max-width: 780px;
    margin-bottom: 0;
    color: var(--pp-ink-soft);
}

.pp-owner-process-list b {
    color: #75868a;
    font-size: .7rem;
    letter-spacing: .11em;
    text-transform: uppercase;
}

/* Responsible operation */
.pp-responsible {
    background: var(--pp-mist);
}

.pp-responsible-grid {
    display: grid;
    grid-template-columns: 1fr .78fr;
    align-items: center;
    gap: clamp(48px, 9vw, 120px);
}

.pp-responsible-list {
    display: grid;
    gap: 12px;
    padding: 30px;
    border-radius: var(--pp-radius-lg);
    background: #fff;
}

.pp-responsible-list > div {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 15px;
    border-bottom: 1px solid var(--pp-line);
}

.pp-responsible-list > div:last-child {
    border-bottom: 0;
}

.pp-responsible-list span {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    display: grid;
    place-items: center;
    border-radius: 99px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-size: .8rem;
    font-weight: 900;
}

/* Reveal animation */
.pp-reveal {
    opacity: 1;
    transform: none;
}

.pp-js .pp-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .65s ease, transform .65s ease;
}

.pp-js .pp-reveal.pp-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 1080px) {
    .pp-tariff-grid,
    .pp-confidence-grid,
    .pp-example-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .pp-technology-grid {
        grid-template-columns: 1fr;
    }

    .pp-technology-card {
        min-height: auto;
    }
}

@media (max-width: 980px) {
    .pp-customer-hero-grid,
    .pp-owner-new-grid,
    .pp-customer-exit-grid,
    .pp-operator-platform-grid,
    .pp-responsible-grid,
    .pp-split-heading {
        grid-template-columns: 1fr;
    }

    .pp-hero-copy {
        max-width: 780px;
    }

    .pp-customer-demo {
        min-height: 590px;
    }

    .pp-owner-dashboard {
        max-width: 680px;
        margin: 20px auto 0;
    }

    .pp-owner-float-qr {
        left: -20px;
    }

    .pp-quick-actions-grid,
    .pp-customer-step-grid,
    .pp-access-grid {
        grid-template-columns: 1fr;
    }

    .pp-quick-action {
        border-right: 0;
        border-bottom: 1px solid var(--pp-line);
    }

    .pp-quick-action:last-child {
        border-bottom: 0;
    }

    .pp-business-card-wide {
        grid-template-columns: 56px 1fr;
    }

    .pp-business-card-wide .pp-feature-box {
        grid-column: 2;
    }

    .pp-owner-value-strip .pp-shell {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

@media (max-width: 720px) {
    .pp-section {
        padding: 70px 18px;
    }

    .pp-site h1 {
        font-size: clamp(3rem, 14vw, 4.65rem);
    }

    .pp-site h2 {
        font-size: clamp(2.15rem, 10vw, 3.25rem);
    }

    .pp-customer-hero,
    .pp-owner-new-hero {
        min-height: auto;
        padding-top: 72px;
    }

    .pp-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .pp-actions .pp-button {
        width: 100%;
    }

    .pp-customer-proof {
        display: grid;
    }

    .pp-customer-demo {
        min-height: 535px;
    }

    .pp-phone-shell {
        width: min(94%, 370px);
        padding-right: 19px;
        padding-left: 19px;
    }

    .pp-demo-chip,
    .pp-owner-float {
        font-size: .7rem;
    }

    .pp-demo-chip-top {
        top: 7%;
        right: -2%;
    }

    .pp-demo-chip-bottom {
        bottom: 8%;
        left: -1%;
    }

    .pp-quick-actions {
        margin-top: -20px;
        padding: 0 18px;
    }

    .pp-tariff-grid,
    .pp-confidence-grid,
    .pp-business-grid,
    .pp-platform-feature-grid,
    .pp-example-grid {
        grid-template-columns: 1fr;
    }

    .pp-tariff-card,
    .pp-business-card {
        min-height: auto;
    }

    .pp-business-card-wide {
        grid-column: auto;
        grid-template-columns: 1fr;
        gap: 22px;
        padding: 34px;
    }

    .pp-business-card-wide .pp-feature-box {
        grid-column: auto;
    }

    .pp-access-card {
        min-height: auto;
    }

    .pp-access-head,
    .pp-technology-top {
        margin-bottom: 36px;
    }

    .pp-owner-dashboard {
        padding: 18px;
    }

    .pp-owner-kpis {
        grid-template-columns: 1fr;
    }

    .pp-owner-float-payment {
        top: -28px;
        right: 8px;
    }

    .pp-owner-float-qr {
        bottom: -24px;
        left: 12px;
    }

    .pp-owner-value-strip {
        display: none;
    }

    .pp-owner-process-list li {
        grid-template-columns: 50px 1fr;
        align-items: start;
    }

    .pp-owner-process-list b {
        display: none;
    }

    .pp-cta-box {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 430px) {
    .pp-site h1 {
        font-size: 3.05rem;
    }

    .pp-phone-timer strong {
        font-size: 1.8rem;
    }

    .pp-owner-event {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .pp-owner-event b {
        width: 100%;
        padding-left: 55px;
    }
}

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

    .pp-js .pp-reveal {
        opacity: 1;
        transform: none;
    }
}

/* ==========================================================
   PlusParking 0.3 — Canvas shell, navigation and legal pages
   ========================================================== */
html {
    scroll-behavior: smooth;
}

body.plusparking-page {
    margin: 0;
    background: var(--pp-white);
}

body.plusparking-page .entry-title,
body.plusparking-page .page-title,
body.plusparking-page .page-header,
body.plusparking-page .entry-header,
body.plusparking-page .wp-block-post-title,
body.plusparking-page .elementor-page-title,
body.plusparking-page .elementor-widget-theme-post-title,
body.page-template-page-templatesplusparking-fullwidth-php .entry-title,
body.page-template-page-templatesplusparking-fullwidth-php .page-title,
body.page-template-page-templatesplusparking-fullwidth-php .page-header,
body.page-template-page-templatesplusparking-fullwidth-php .entry-header {
    display: none !important;
}

.plusparking-fullwidth {
    width: 100%;
    min-height: 100vh;
}

.pp-skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 10000;
    padding: 12px 16px;
    border-radius: 12px;
    color: #fff;
    background: var(--pp-night);
    transform: translateY(-160%);
    transition: transform .18s ease;
}

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

.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Global header */
.pp-global-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid rgba(220, 232, 227, .85);
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 10px 35px rgba(8, 47, 50, .055);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.pp-header-inner {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.pp-brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--pp-night) !important;
    text-decoration: none !important;
}

.pp-brand-mark {
    position: relative;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 13px;
    color: #fff;
    background: var(--pp-night);
    box-shadow: 0 10px 26px rgba(8, 47, 50, .2);
}

.pp-brand-mark i {
    position: absolute;
    right: -8px;
    bottom: -8px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--pp-lime);
}

.pp-brand-mark b {
    position: relative;
    z-index: 2;
    font-size: 1.08rem;
    font-weight: 900;
}

.pp-brand-name {
    font-size: 1.12rem;
    letter-spacing: -.035em;
    font-weight: 660;
}

.pp-brand-name strong {
    font-weight: 900;
}

.pp-main-nav {
    display: flex;
    align-items: center;
    gap: 6px;
}

.pp-main-nav > a {
    position: relative;
    padding: 10px 13px;
    border-radius: 999px;
    color: var(--pp-ink-soft) !important;
    font-size: .91rem;
    font-weight: 730;
    text-decoration: none !important;
    transition: color .18s ease, background .18s ease, transform .18s ease;
}

.pp-main-nav > a:hover,
.pp-main-nav > a.is-active {
    color: var(--pp-night) !important;
    background: var(--pp-mint);
}

.pp-main-nav > a.pp-nav-cta {
    margin-left: 8px;
    padding: 11px 18px;
    color: #fff !important;
    background: var(--pp-green-dark);
    box-shadow: 0 10px 25px rgba(7, 139, 96, .2);
}

.pp-main-nav > a.pp-nav-cta:hover {
    color: #fff !important;
    background: var(--pp-night);
    transform: translateY(-1px);
}

.pp-menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    padding: 10px;
    border: 1px solid var(--pp-line);
    border-radius: 13px;
    background: #fff;
    cursor: pointer;
}

.pp-menu-toggle > span:not(.screen-reader-text) {
    display: block;
    width: 20px;
    height: 2px;
    margin: 4px auto;
    border-radius: 9px;
    background: var(--pp-night);
    transition: transform .18s ease, opacity .18s ease;
}

.pp-menu-toggle[aria-expanded="true"] > span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.pp-menu-toggle[aria-expanded="true"] > span:nth-child(2) {
    opacity: 0;
}

.pp-menu-toggle[aria-expanded="true"] > span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* Footer */
.pp-global-footer {
    padding: 70px 24px 24px;
    color: rgba(255, 255, 255, .72);
    background:
        radial-gradient(circle at 16% 0%, rgba(201, 246, 107, .13), transparent 24%),
        linear-gradient(145deg, #062729 0%, #0b393c 100%);
}

.pp-footer-top {
    display: grid;
    grid-template-columns: minmax(260px, 1.55fr) repeat(3, minmax(150px, .7fr));
    gap: clamp(34px, 6vw, 74px);
    padding-bottom: 55px;
}

.pp-brand-light {
    color: #fff !important;
}

.pp-brand-light .pp-brand-mark {
    color: var(--pp-night);
    background: var(--pp-lime);
}

.pp-brand-light .pp-brand-mark i {
    background: var(--pp-green);
}

.pp-footer-brand p {
    max-width: 440px;
    margin: 22px 0 0;
    font-size: .96rem;
}

.pp-footer-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 11px;
}

.pp-footer-column strong {
    margin-bottom: 6px;
    color: #fff;
    font-size: .78rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.pp-footer-column a {
    color: rgba(255, 255, 255, .72) !important;
    font-size: .91rem;
    text-decoration: none !important;
}

.pp-footer-column a:hover {
    color: var(--pp-lime) !important;
}

.pp-footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .12);
    font-size: .78rem;
}

/* Legal pages */
.pp-legal-hero {
    position: relative;
    padding: clamp(90px, 10vw, 148px) 24px clamp(78px, 8vw, 116px);
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(201, 246, 107, .22), transparent 21%),
        radial-gradient(circle at 20% 90%, rgba(19, 183, 123, .2), transparent 28%),
        linear-gradient(140deg, #06282b 0%, #0b3c3f 100%);
}

.pp-legal-hero::after {
    content: "";
    position: absolute;
    right: 7%;
    bottom: -170px;
    width: 420px;
    height: 420px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 42px rgba(255, 255, 255, .025), 0 0 0 84px rgba(255, 255, 255, .018);
}

.pp-legal-hero .pp-shell {
    position: relative;
    z-index: 2;
}

.pp-legal-hero .pp-kicker {
    color: var(--pp-lime);
}

.pp-legal-hero h1 {
    max-width: 980px;
    margin-bottom: 26px;
    font-size: clamp(3.4rem, 8vw, 7rem);
    color: #fff;
}

.pp-legal-hero > .pp-shell > p {
    max-width: 820px;
    color: rgba(255, 255, 255, .74);
    font-size: clamp(1.08rem, 1.8vw, 1.3rem);
}

.pp-legal-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 34px;
}

.pp-legal-meta span {
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
    color: rgba(255, 255, 255, .78);
    background: rgba(255, 255, 255, .06);
    font-size: .75rem;
    font-weight: 760;
}

.pp-legal-layout {
    padding: 76px 24px 110px;
    background: linear-gradient(180deg, #f4f8f6 0%, #fff 18%);
}

.pp-legal-grid {
    display: grid;
    grid-template-columns: 260px minmax(0, 820px);
    align-items: start;
    justify-content: center;
    gap: clamp(50px, 8vw, 110px);
}

.pp-legal-toc {
    position: sticky;
    top: 108px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 23px;
    border: 1px solid var(--pp-line);
    border-radius: 22px;
    background: rgba(255, 255, 255, .86);
    box-shadow: var(--pp-shadow-soft);
}

.pp-legal-toc strong {
    margin: 0 0 10px 10px;
    color: var(--pp-night);
    font-size: .78rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.pp-legal-toc a {
    padding: 8px 10px;
    border-radius: 10px;
    color: var(--pp-ink-soft) !important;
    font-size: .84rem;
    font-weight: 650;
    text-decoration: none !important;
}

.pp-legal-toc a:hover {
    color: var(--pp-green-dark) !important;
    background: var(--pp-mint);
}

.pp-legal-content > section {
    padding: 0 0 60px;
    margin: 0 0 60px;
    border-bottom: 1px solid var(--pp-line);
    scroll-margin-top: 110px;
}

.pp-legal-content > section:last-child {
    margin-bottom: 0;
    border-bottom: 0;
}

.pp-legal-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    min-height: 30px;
    margin-bottom: 16px;
    padding: 5px 10px;
    border-radius: 999px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-size: .72rem;
    font-weight: 880;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.pp-legal-content h2 {
    max-width: 760px;
    margin-bottom: 22px;
    font-size: clamp(2rem, 4vw, 3.25rem);
}

.pp-legal-content h3 {
    margin-top: 30px;
    font-size: 1.2rem;
}

.pp-legal-content p,
.pp-legal-content li {
    color: #42575a;
    font-size: 1rem;
    line-height: 1.78;
}

.pp-legal-content ul {
    padding-left: 1.2rem;
}

.pp-legal-content li {
    margin: 8px 0;
    padding-left: 5px;
}

.pp-legal-content a {
    color: var(--pp-green-dark) !important;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.pp-legal-card,
.pp-legal-note {
    padding: clamp(24px, 4vw, 34px);
    border: 1px solid var(--pp-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--pp-shadow-soft);
}

.pp-legal-note {
    margin: 28px 0;
    border-color: rgba(19, 183, 123, .28);
    background: linear-gradient(135deg, var(--pp-mint), #fff);
}

.pp-legal-note strong {
    color: var(--pp-night);
}

.pp-legal-note p:last-child,
.pp-legal-card p:last-child {
    margin-bottom: 0;
}

.pp-legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0;
}

.pp-legal-links a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 15px;
    border: 1px solid var(--pp-line);
    border-radius: 999px;
    background: #fff;
    font-weight: 760;
    text-decoration: none !important;
}

.pp-legal-links a:hover {
    border-color: var(--pp-green);
    background: var(--pp-mint);
}

/* Imprint */
.pp-imprint-content {
    padding: 85px 24px 110px;
    background: linear-gradient(180deg, var(--pp-mist), #fff 40%);
}

.pp-imprint-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    align-items: start;
    gap: clamp(34px, 7vw, 90px);
}

.pp-imprint-primary {
    position: sticky;
    top: 108px;
    padding: clamp(34px, 5vw, 54px);
    border-radius: 30px;
    color: #fff;
    background: linear-gradient(145deg, var(--pp-night), var(--pp-night-2));
    box-shadow: var(--pp-shadow);
}

.pp-imprint-primary .pp-legal-number {
    color: var(--pp-night);
    background: var(--pp-lime);
}

.pp-imprint-primary h2 {
    margin-bottom: 24px;
    color: #fff;
    font-size: clamp(2.7rem, 5vw, 4.6rem);
}

.pp-imprint-address {
    color: rgba(255, 255, 255, .76) !important;
    font-size: 1.2rem !important;
}

.pp-imprint-primary dl {
    margin: 35px 0 0;
}

.pp-imprint-primary dl > div {
    display: grid;
    grid-template-columns: 145px 1fr;
    gap: 20px;
    padding: 17px 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.pp-imprint-primary dt {
    color: rgba(255, 255, 255, .54);
    font-size: .78rem;
    font-weight: 760;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pp-imprint-primary dd {
    margin: 0;
    color: #fff;
    font-weight: 720;
}

.pp-imprint-primary a {
    color: var(--pp-lime) !important;
}

.pp-imprint-primary small {
    color: rgba(255, 255, 255, .55);
    font-weight: 500;
}

.pp-imprint-secondary {
    display: grid;
    gap: 20px;
}

.pp-imprint-secondary .pp-legal-card {
    padding: 34px;
}

.pp-imprint-secondary h3 {
    font-size: 1.45rem;
}

@media (max-width: 980px) {
    .pp-header-inner {
        padding-right: 18px;
        padding-left: 18px;
    }

    .pp-menu-toggle {
        display: block;
    }

    .pp-main-nav {
        position: absolute;
        top: calc(100% + 1px);
        right: 18px;
        left: 18px;
        display: none;
        align-items: stretch;
        flex-direction: column;
        gap: 4px;
        padding: 14px;
        border: 1px solid var(--pp-line);
        border-radius: 20px;
        background: rgba(255, 255, 255, .98);
        box-shadow: var(--pp-shadow);
    }

    .pp-main-nav.is-open {
        display: flex;
    }

    .pp-main-nav > a {
        padding: 12px 14px;
    }

    .pp-main-nav > a.pp-nav-cta {
        margin: 5px 0 0;
        text-align: center;
    }

    .pp-footer-top {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pp-footer-brand {
        grid-column: 1 / -1;
    }

    .pp-legal-grid {
        grid-template-columns: 1fr;
    }

    .pp-legal-toc {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .pp-legal-toc strong {
        grid-column: 1 / -1;
    }

    .pp-imprint-grid {
        grid-template-columns: 1fr;
    }

    .pp-imprint-primary {
        position: static;
    }
}

@media (max-width: 640px) {
    .pp-header-inner {
        min-height: 68px;
    }

    .pp-brand-mark {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
    }

    .pp-brand-name {
        font-size: 1rem;
    }

    .pp-global-footer {
        padding-right: 18px;
        padding-left: 18px;
    }

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

    .pp-footer-brand {
        grid-column: auto;
    }

    .pp-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .pp-legal-hero {
        padding-right: 18px;
        padding-left: 18px;
    }

    .pp-legal-hero h1 {
        font-size: clamp(3rem, 15vw, 4.55rem);
    }

    .pp-legal-layout,
    .pp-imprint-content {
        padding-right: 18px;
        padding-left: 18px;
    }

    .pp-legal-toc {
        grid-template-columns: 1fr;
    }

    .pp-legal-toc strong {
        grid-column: auto;
    }

    .pp-legal-content > section {
        margin-bottom: 48px;
        padding-bottom: 48px;
    }

    .pp-imprint-primary dl > div {
        grid-template-columns: 1fr;
        gap: 5px;
    }
}

/* ==========================================================
   PlusParking 0.4 — safer type scale and service pages
   ========================================================== */
.pp-site h1,
.pp-site h2,
.pp-site h3 {
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: auto;
    text-wrap: balance;
}

.pp-customer-hero-grid > *,
.pp-owner-new-grid > *,
.pp-service-hero-grid > *,
.pp-legal-grid > *,
.pp-imprint-grid > *,
.pp-cta-box > * {
    min-width: 0;
}

.pp-site h1 {
    font-size: clamp(2.8rem, 5.25vw, 5.2rem);
    line-height: 1;
    letter-spacing: -.055em;
}

.pp-site h2 {
    font-size: clamp(1.95rem, 3.55vw, 3.35rem);
    line-height: 1.06;
    letter-spacing: -.043em;
}

.pp-cta-box h2 {
    font-size: clamp(1.9rem, 3.3vw, 3.1rem);
}

.pp-legal-hero h1 {
    max-width: 900px;
    font-size: clamp(2.85rem, 5.8vw, 5.25rem);
    line-height: 1.02;
}

.pp-legal-content h2 {
    font-size: clamp(1.75rem, 3vw, 2.65rem);
}

.pp-imprint-primary h2 {
    font-size: clamp(2.2rem, 4vw, 3.65rem);
}

/* Service / support pages */
.pp-service-hero {
    min-height: 660px;
    display: flex;
    align-items: center;
    padding-top: clamp(88px, 10vw, 138px);
    padding-bottom: clamp(88px, 10vw, 138px);
    background:
        radial-gradient(circle at 83% 18%, rgba(201, 246, 107, .25), transparent 22%),
        linear-gradient(180deg, #f3faf6 0%, #fff 78%);
}

.pp-service-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(330px, .72fr);
    align-items: center;
    gap: clamp(48px, 8vw, 105px);
}

.pp-service-hero h1 {
    max-width: 760px;
}

.pp-service-panel {
    position: relative;
    padding: clamp(30px, 4vw, 44px);
    border: 1px solid var(--pp-line);
    border-radius: 30px;
    background: rgba(255, 255, 255, .9);
    box-shadow: var(--pp-shadow);
    overflow: hidden;
}

.pp-service-panel::before {
    content: "";
    position: absolute;
    top: -90px;
    right: -90px;
    width: 210px;
    height: 210px;
    border-radius: 50%;
    background: rgba(19, 183, 123, .08);
}

.pp-service-panel-accent {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(145deg, var(--pp-night), var(--pp-night-2));
}

.pp-service-panel-accent h2,
.pp-service-panel-accent p {
    color: inherit;
}

.pp-service-panel h2 {
    position: relative;
    margin-bottom: 16px;
    font-size: clamp(1.65rem, 2.8vw, 2.35rem);
}

.pp-service-panel p {
    position: relative;
    margin-bottom: 24px;
    color: var(--pp-ink-soft);
}

.pp-service-panel-accent p {
    color: rgba(255, 255, 255, .74);
}

.pp-service-panel-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 28px;
    border-radius: 18px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-weight: 900;
    letter-spacing: -.03em;
}

.pp-status-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 9px 13px;
    border-radius: 999px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-size: .78rem;
    font-weight: 800;
}

.pp-service-panel-accent .pp-status-badge {
    color: var(--pp-lime);
    background: rgba(255, 255, 255, .09);
}

.pp-status-badge i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 5px rgba(19, 183, 123, .12);
}

.pp-support-contact-row {
    position: relative;
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 16px;
    padding: 15px 0;
    border-top: 1px solid var(--pp-line);
}

.pp-support-contact-row span {
    color: var(--pp-ink-soft);
    font-size: .75rem;
    font-weight: 760;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pp-support-contact-row a {
    color: var(--pp-green-dark) !important;
    font-weight: 760;
    overflow-wrap: anywhere;
}

.pp-help-topics,
.pp-status-options {
    background: var(--pp-mist);
}

.pp-help-topic-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: 44px;
}

.pp-help-topic {
    min-height: 230px;
    padding: 28px;
    border: 1px solid var(--pp-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--pp-shadow-soft);
    text-decoration: none !important;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.pp-help-topic:hover {
    transform: translateY(-4px);
    border-color: rgba(19, 183, 123, .45);
    box-shadow: var(--pp-shadow);
}

.pp-help-topic > span,
.pp-status-option > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 35px;
    border-radius: 15px;
    color: var(--pp-green-dark);
    background: var(--pp-mint);
    font-size: .82rem;
    font-weight: 900;
}

.pp-help-topic p,
.pp-status-option p {
    margin-bottom: 0;
    color: var(--pp-ink-soft);
}

.pp-help-faq-grid {
    display: grid;
    grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr);
    align-items: start;
    gap: clamp(45px, 8vw, 110px);
}

.pp-help-faq-intro {
    position: sticky;
    top: 110px;
}

.pp-accordion-list {
    display: grid;
    gap: 12px;
}

.pp-accordion {
    border: 1px solid var(--pp-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 25px rgba(8, 47, 50, .05);
    overflow: hidden;
}

.pp-accordion summary {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 21px 24px;
    color: var(--pp-night);
    font-weight: 780;
    cursor: pointer;
    list-style: none;
}

.pp-accordion summary::-webkit-details-marker {
    display: none;
}

.pp-accordion summary span {
    flex: 0 0 auto;
    color: var(--pp-green-dark);
    font-size: 1.35rem;
    transition: transform .2s ease;
}

.pp-accordion[open] summary span {
    transform: rotate(45deg);
}

.pp-accordion > div {
    padding: 0 24px 22px;
}

.pp-accordion p {
    margin: 0;
    color: var(--pp-ink-soft);
}

.pp-start-notice {
    background: linear-gradient(180deg, #fff, var(--pp-mist));
}

.pp-notice-card {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: clamp(25px, 5vw, 50px);
    padding: clamp(32px, 6vw, 65px);
    border: 1px solid var(--pp-line);
    border-radius: 32px;
    background: #fff;
    box-shadow: var(--pp-shadow);
}

.pp-notice-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 66px;
    height: 66px;
    border-radius: 21px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-size: 1.5rem;
    font-weight: 900;
}

.pp-notice-card h2 {
    max-width: 700px;
}

.pp-status-option-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 42px;
}

.pp-status-option {
    min-height: 260px;
    padding: 32px;
    border: 1px solid var(--pp-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--pp-shadow-soft);
}

.pp-support-cta {
    padding-top: 10px;
}

@media (max-width: 980px) {
    .pp-service-hero-grid,
    .pp-help-faq-grid {
        grid-template-columns: 1fr;
    }

    .pp-service-hero {
        min-height: auto;
    }

    .pp-help-faq-intro {
        position: static;
    }

    .pp-help-topic-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .pp-site h1 {
        font-size: clamp(2.35rem, 10.5vw, 3.25rem);
        line-height: 1.03;
        letter-spacing: -.045em;
    }

    .pp-site h2,
    .pp-cta-box h2 {
        font-size: clamp(1.75rem, 8vw, 2.4rem);
        line-height: 1.08;
    }

    .pp-legal-hero h1 {
        font-size: clamp(2.2rem, 10vw, 3.15rem);
        overflow-wrap: anywhere;
    }

    .pp-legal-content h2 {
        font-size: clamp(1.65rem, 7.5vw, 2.15rem);
    }

    .pp-service-hero {
        padding-top: 68px;
        padding-bottom: 78px;
    }

    .pp-service-panel {
        padding: 28px;
    }

    .pp-help-topic-grid,
    .pp-status-option-grid {
        grid-template-columns: 1fr;
    }

    .pp-help-topic,
    .pp-status-option {
        min-height: auto;
    }

    .pp-notice-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 430px) {
    .pp-site h1 {
        font-size: 2.45rem;
    }

    .pp-legal-hero h1 {
        font-size: 2.25rem;
    }

    .pp-service-panel h2 {
        font-size: 1.65rem;
    }

    .pp-support-contact-row {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

/* ==========================================================
   PlusParking 0.5 — focused business model, safer typography
   ========================================================== */
.pp-site h1,
.pp-site h2,
.pp-site h3,
.pp-site h4,
.pp-site strong,
.pp-site summary {
    -webkit-hyphens: none;
    hyphens: none;
    word-break: normal;
    overflow-wrap: normal;
}

.pp-site h1 {
    font-size: clamp(2.4rem, 4.8vw, 4.55rem);
    line-height: 1.01;
    letter-spacing: -.05em;
}

.pp-site h2 {
    font-size: clamp(1.8rem, 3.15vw, 2.85rem);
    line-height: 1.08;
    letter-spacing: -.038em;
}

.pp-site h3 {
    font-size: 1.22rem;
    line-height: 1.28;
}

.pp-legal-hero h1 {
    max-width: 820px;
    font-size: clamp(2.25rem, 4.7vw, 4.15rem);
}

.pp-legal-content h2 {
    font-size: clamp(1.6rem, 2.7vw, 2.35rem);
}

.pp-business-card h3 {
    font-size: clamp(1.55rem, 2.45vw, 2.15rem);
}

.pp-owner-core-value {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 18px;
    max-width: 690px;
    margin: 26px 0 22px;
    padding: 22px 24px;
    border: 1px solid rgba(7, 139, 96, .2);
    border-radius: 22px;
    background: linear-gradient(135deg, #eefaf4, #fff);
    box-shadow: 0 16px 42px rgba(8, 47, 50, .08);
}

.pp-owner-core-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 17px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-size: 1.35rem;
    font-weight: 900;
}

.pp-owner-core-value small {
    display: block;
    margin-bottom: 4px;
    color: var(--pp-green-dark);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.pp-owner-core-value strong {
    display: block;
    color: var(--pp-night);
    font-size: clamp(1.28rem, 2.3vw, 1.85rem);
    line-height: 1.15;
    letter-spacing: -.025em;
}

.pp-owner-core-value p {
    margin: 7px 0 0;
    color: var(--pp-ink-soft);
    font-size: .94rem;
    line-height: 1.5;
}

.pp-owner-dashboard {
    position: relative;
}

.pp-dashboard-sample {
    position: absolute;
    z-index: 3;
    top: 18px;
    right: 20px;
    padding: 6px 10px;
    border-radius: 999px;
    color: rgba(255, 255, 255, .82);
    background: rgba(8, 47, 50, .7);
    backdrop-filter: blur(10px);
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pp-business-grid-refined {
    align-items: stretch;
}

.pp-business-grid-refined .pp-business-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 32px;
}

.pp-business-main {
    flex: 1 1 auto;
}

.pp-business-card-featured {
    grid-column: 1 / -1;
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1.04fr) minmax(320px, .96fr);
    gap: 32px;
    padding: clamp(34px, 5vw, 54px) !important;
    border-radius: 34px;
    background:
        radial-gradient(circle at 10% 10%, rgba(201, 246, 107, .13), transparent 28%),
        linear-gradient(135deg, var(--pp-night), #0a3e40);
    box-shadow: 0 30px 74px rgba(8, 47, 50, .22);
}

.pp-business-card-featured h3 {
    max-width: 560px;
    font-size: clamp(2rem, 3.6vw, 3.15rem);
}

.pp-business-card-featured > .pp-model-details {
    align-self: stretch;
    margin-top: 0;
}

.pp-business-result {
    margin-top: 25px;
    padding: 19px 20px;
    border: 1px solid var(--pp-line);
    border-radius: 18px;
    background: var(--pp-mist);
}

.pp-business-result small {
    color: var(--pp-green-dark);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.pp-business-result strong {
    display: block;
    color: var(--pp-night);
    font-size: 1.02rem;
    line-height: 1.3;
    letter-spacing: -.01em;
    text-transform: none;
}

.pp-business-result-primary {
    margin-top: 30px;
    padding: 25px 26px;
    border-color: rgba(201, 246, 107, .32);
    background: rgba(255, 255, 255, .075);
}

.pp-business-result-primary small {
    color: var(--pp-lime);
}

.pp-business-result-primary strong {
    margin-top: 4px;
    color: #fff;
    font-size: clamp(1.65rem, 3vw, 2.55rem);
    line-height: 1.05;
    letter-spacing: -.035em;
}

.pp-business-result-primary span {
    display: block;
    margin-top: 12px;
    color: rgba(255, 255, 255, .68);
    font-size: .9rem;
    line-height: 1.5;
}

.pp-model-details {
    margin-top: 24px;
    border: 1px solid var(--pp-line);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}

.pp-business-card-dark .pp-model-details {
    border-color: rgba(255, 255, 255, .15);
    background: rgba(255, 255, 255, .06);
}

.pp-model-details summary,
.pp-assumption-details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    color: var(--pp-night);
    font-size: .92rem;
    font-weight: 850;
    cursor: pointer;
    list-style: none;
}

.pp-business-card-dark .pp-model-details summary {
    color: #fff;
}

.pp-model-details summary::-webkit-details-marker,
.pp-assumption-details summary::-webkit-details-marker {
    display: none;
}

.pp-model-details summary span,
.pp-assumption-details summary span {
    flex: 0 0 auto;
    color: var(--pp-green-dark);
    font-size: 1.2rem;
    transition: transform .2s ease;
}

.pp-business-card-dark .pp-model-details summary span {
    color: var(--pp-lime);
}

.pp-model-details[open] summary span,
.pp-assumption-details[open] summary span {
    transform: rotate(45deg);
}

.pp-model-details > div,
.pp-assumption-details > div {
    padding: 0 20px 20px;
}

.pp-model-details p {
    margin: 0 0 12px;
    font-size: .92rem;
}

.pp-model-details ul {
    margin: 14px 0 0;
    padding-left: 18px;
}

.pp-model-details li {
    margin: 7px 0;
    color: var(--pp-ink-soft);
    font-size: .9rem;
}

.pp-business-card-dark .pp-model-details p,
.pp-business-card-dark .pp-model-details li {
    color: rgba(255, 255, 255, .76);
}

.pp-revenue-examples {
    background: #fff;
}

.pp-revenue-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, .55fr);
    align-items: end;
    gap: clamp(32px, 7vw, 86px);
    margin-bottom: 26px;
}

.pp-revenue-heading h2 {
    max-width: 700px;
    margin-bottom: 0;
}

.pp-revenue-stat {
    padding: 24px;
    border: 1px solid var(--pp-line);
    border-radius: 22px;
    background: var(--pp-mist);
}

.pp-revenue-stat strong {
    display: block;
    color: var(--pp-green-dark);
    font-size: 2.35rem;
    line-height: 1;
}

.pp-revenue-stat span {
    display: block;
    margin: 8px 0 9px;
    color: var(--pp-ink-soft);
    line-height: 1.45;
}

.pp-revenue-stat a {
    color: var(--pp-green-dark);
    font-size: .75rem;
    font-weight: 800;
    text-decoration: none;
}

.pp-revenue-intro {
    max-width: 860px;
    margin: 0 0 38px;
    color: var(--pp-ink-soft);
}

.pp-calculation-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.pp-calculation-card {
    padding: 30px;
    border: 1px solid var(--pp-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--pp-shadow-soft);
}

.pp-calculation-card-accent {
    border-color: transparent;
    background: var(--pp-lime);
}

.pp-calculation-card > span {
    color: var(--pp-green-dark);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.pp-calculation-card h3 {
    margin: 7px 0 24px;
    font-size: 1.65rem;
}

.pp-calculation-card dl {
    display: grid;
    gap: 9px;
    margin: 0;
}

.pp-calculation-card dl > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--pp-line);
}

.pp-calculation-card-accent dl > div {
    border-color: rgba(8, 47, 50, .16);
}

.pp-calculation-card dt {
    color: var(--pp-ink-soft);
}

.pp-calculation-card dd {
    margin: 0;
    color: var(--pp-night);
    font-weight: 800;
    text-align: right;
}

.pp-formula {
    margin-top: 22px;
    padding: 12px 14px;
    border-radius: 12px;
    color: var(--pp-ink-soft);
    background: var(--pp-mist);
    font: 700 .78rem/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.pp-calculation-card-accent .pp-formula {
    background: rgba(255, 255, 255, .55);
}

.pp-calc-result {
    display: block;
    margin-top: 18px;
    color: var(--pp-night);
    font-size: clamp(1.55rem, 2.7vw, 2.15rem);
    line-height: 1.05;
}

.pp-calc-result small {
    display: block;
    margin-top: 6px;
    color: var(--pp-ink-soft);
    font-size: .7rem;
    font-weight: 750;
}

.pp-assumption-details {
    max-width: 850px;
    margin-top: 22px;
    border: 1px solid var(--pp-line);
    border-radius: 18px;
    background: var(--pp-mist);
    overflow: hidden;
}

.pp-assumption-details p {
    margin: 0 0 10px;
    color: var(--pp-ink-soft);
}

@media (max-width: 980px) {
    .pp-business-card-featured {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .pp-business-card-featured > .pp-model-details {
        grid-column: 2;
    }

    .pp-revenue-heading,
    .pp-calculation-grid {
        grid-template-columns: 1fr;
    }

    .pp-revenue-stat {
        max-width: 520px;
    }
}

@media (max-width: 720px) {
    .pp-section {
        padding-top: 68px;
        padding-bottom: 68px;
    }

    .pp-site h1 {
        font-size: 2.15rem;
        line-height: 1.06;
        letter-spacing: -.04em;
    }

    .pp-site h2,
    .pp-cta-box h2 {
        font-size: 1.68rem;
        line-height: 1.12;
        letter-spacing: -.03em;
    }

    .pp-legal-hero h1 {
        font-size: 1.95rem;
        line-height: 1.08;
    }

    .pp-legal-content h2 {
        font-size: 1.5rem;
    }

    .pp-business-card h3,
    .pp-business-card-featured h3 {
        font-size: 1.6rem;
    }

    .pp-owner-core-value {
        grid-template-columns: 44px minmax(0, 1fr);
        padding: 18px;
    }

    .pp-owner-core-icon {
        width: 44px;
        height: 44px;
        border-radius: 14px;
    }

    .pp-owner-core-value strong {
        font-size: 1.25rem;
    }

    .pp-business-grid-refined .pp-business-card,
    .pp-business-card-featured {
        padding: 25px !important;
    }

    .pp-business-card-featured {
        display: flex !important;
        gap: 14px;
    }

    .pp-business-card-featured > .pp-model-details {
        grid-column: auto;
    }

    .pp-business-result-primary strong {
        font-size: 1.75rem;
    }

    .pp-calculation-card {
        padding: 24px;
    }
}

@media (max-width: 430px) {
    .pp-site h1 {
        font-size: 1.95rem;
    }

    .pp-site h2,
    .pp-cta-box h2 {
        font-size: 1.55rem;
    }

    .pp-legal-hero h1 {
        font-size: 1.72rem;
        letter-spacing: -.028em;
    }

    .pp-owner-core-value {
        grid-template-columns: 1fr;
    }

    .pp-dashboard-sample {
        top: 12px;
        right: 12px;
    }

    .pp-business-grid-refined .pp-business-card,
    .pp-business-card-featured {
        padding: 21px !important;
    }

    .pp-business-result-primary strong {
        font-size: 1.58rem;
    }

    .pp-model-details summary,
    .pp-assumption-details summary {
        padding: 16px;
        font-size: .86rem;
    }

    .pp-model-details > div,
    .pp-assumption-details > div {
        padding: 0 16px 17px;
    }
}

/* ==========================================================
   PlusParking 0.6 — target groups, B2B terms and compact type
   ========================================================== */
.pp-site h1,
.pp-site h2,
.pp-site h3,
.pp-site h4,
.pp-site summary,
.pp-site .pp-business-result strong,
.pp-site .pp-owner-core-value strong {
    -webkit-hyphens: none;
    hyphens: none;
    word-break: normal;
    overflow-wrap: break-word;
}

.pp-site h1 {
    font-size: clamp(2.25rem, 4.25vw, 4rem);
    line-height: 1.035;
    letter-spacing: -.046em;
}

.pp-site h2 {
    font-size: clamp(1.7rem, 2.8vw, 2.55rem);
    line-height: 1.1;
    letter-spacing: -.034em;
}

.pp-site h3 {
    line-height: 1.24;
}

.pp-owner-new-hero h1 {
    max-width: 720px;
    font-size: clamp(2.55rem, 4.7vw, 4.3rem);
}

.pp-owner-new-hero h1 span {
    display: block;
    color: var(--pp-green-dark);
}

.pp-owner-hero-subtitle {
    max-width: 650px;
    margin: 18px 0 8px;
    color: var(--pp-night);
    font-size: clamp(1.18rem, 1.9vw, 1.48rem);
    font-weight: 820;
    line-height: 1.3;
    letter-spacing: -.025em;
}

.pp-owner-core-value {
    max-width: 720px;
    border-width: 2px;
    border-color: rgba(7, 139, 96, .28);
    background: linear-gradient(135deg, #e6f9ef, #fff 72%);
}

.pp-owner-core-value strong {
    font-size: clamp(1.35rem, 2.25vw, 1.9rem);
}

.pp-business-card-featured h3 {
    font-size: clamp(1.85rem, 3.1vw, 2.75rem);
}

.pp-business-result-primary strong {
    font-size: clamp(1.55rem, 2.65vw, 2.25rem);
}

.pp-legal-hero h1 {
    max-width: 760px;
    font-size: clamp(2.15rem, 3.8vw, 3.55rem);
}

.pp-legal-content h2 {
    font-size: clamp(1.48rem, 2.25vw, 2rem);
}

.pp-legal-content h3 {
    font-size: 1.12rem;
}

.pp-legal-content a,
.pp-footer-column a,
.pp-support-contact-row a {
    overflow-wrap: anywhere;
}

.pp-audience-section {
    background: #fff;
}

.pp-audience-tabs {
    margin-top: 44px;
    border: 1px solid var(--pp-line);
    border-radius: 30px;
    background: var(--pp-mist);
    box-shadow: var(--pp-shadow-soft);
    overflow: hidden;
}

.pp-audience-tablist {
    display: flex;
    gap: 6px;
    padding: 10px;
    border-bottom: 1px solid var(--pp-line);
    background: #fff;
    overflow-x: auto;
    scrollbar-width: thin;
}

.pp-audience-tablist button {
    flex: 0 0 auto;
    min-height: 46px;
    padding: 11px 17px;
    border: 0;
    border-radius: 14px;
    color: var(--pp-ink-soft);
    background: transparent;
    font: inherit;
    font-size: .88rem;
    font-weight: 820;
    cursor: pointer;
    white-space: nowrap;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}

.pp-audience-tablist button:hover,
.pp-audience-tablist button:focus-visible {
    color: var(--pp-night);
    background: var(--pp-mist);
    outline: none;
}

.pp-audience-tablist button[aria-selected="true"] {
    color: #fff;
    background: var(--pp-night);
    box-shadow: 0 8px 22px rgba(8, 47, 50, .16);
}

.pp-audience-panels {
    padding: clamp(25px, 4.5vw, 48px);
}

.pp-audience-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
    gap: clamp(34px, 7vw, 84px);
    align-items: start;
}

.pp-js .pp-audience-panel[hidden] {
    display: none;
}

.pp-audience-label {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--pp-green-dark);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.pp-audience-panel h3 {
    max-width: 730px;
    margin: 0 0 15px;
    color: var(--pp-night);
    font-size: clamp(1.5rem, 2.65vw, 2.2rem);
    letter-spacing: -.032em;
}

.pp-audience-panel p {
    max-width: 720px;
    margin: 0;
    color: var(--pp-ink-soft);
    line-height: 1.65;
}

.pp-audience-model {
    margin-top: 24px;
    padding: 18px 20px;
    border-left: 4px solid var(--pp-green);
    border-radius: 0 16px 16px 0;
    background: #fff;
}

.pp-audience-model small {
    display: block;
    margin-bottom: 3px;
    color: var(--pp-green-dark);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.pp-audience-model strong {
    color: var(--pp-night);
    font-size: 1.05rem;
}

.pp-audience-panel ul {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pp-audience-panel li {
    position: relative;
    padding: 14px 16px 14px 45px;
    border: 1px solid var(--pp-line);
    border-radius: 15px;
    color: var(--pp-night);
    background: #fff;
    font-size: .92rem;
    font-weight: 730;
    line-height: 1.45;
}

.pp-audience-panel li::before {
    content: "✓";
    position: absolute;
    top: 13px;
    left: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-size: .72rem;
    font-weight: 900;
}

.pp-revenue-heading {
    align-items: start;
}

.pp-revenue-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.pp-revenue-facts .pp-revenue-stat {
    min-width: 0;
    padding: 20px;
}

.pp-revenue-facts .pp-revenue-stat strong {
    font-size: 1.95rem;
}

.pp-revenue-facts .pp-revenue-stat span {
    font-size: .86rem;
}

.pp-terms-entry {
    padding: 0 24px 54px;
    background: var(--pp-mist);
}

.pp-terms-entry-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: -34px;
    position: relative;
    z-index: 4;
}

.pp-terms-entry-card {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    min-height: 170px;
    padding: 28px;
    border: 1px solid var(--pp-line);
    border-radius: 24px;
    color: var(--pp-night);
    background: #fff;
    box-shadow: var(--pp-shadow-soft);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.pp-terms-entry-card:hover,
.pp-terms-entry-card:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 22px 50px rgba(8, 47, 50, .13);
    outline: none;
}

.pp-terms-entry-card > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 16px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-size: .74rem;
    font-weight: 950;
    letter-spacing: .07em;
}

.pp-terms-entry-card small {
    display: block;
    margin-bottom: 5px;
    color: var(--pp-green-dark);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pp-terms-entry-card strong {
    display: block;
    font-size: clamp(1.25rem, 2.1vw, 1.65rem);
    line-height: 1.15;
    letter-spacing: -.025em;
}

.pp-terms-entry-card p {
    margin: 8px 0 0;
    color: var(--pp-ink-soft);
    font-size: .9rem;
    line-height: 1.5;
}

.pp-terms-entry-card > b {
    font-size: 1.5rem;
}

.pp-terms-entry-card-dark {
    border-color: transparent;
    color: #fff;
    background: var(--pp-night);
}

.pp-terms-entry-card-dark small,
.pp-terms-entry-card-dark p {
    color: rgba(255, 255, 255, .7);
}

.pp-legal-part {
    margin: 8px 0 42px;
    padding: clamp(25px, 4vw, 38px);
    border-radius: 24px;
    color: #fff;
    background: linear-gradient(135deg, var(--pp-night), #0b4447);
}

.pp-legal-part-business {
    background: linear-gradient(135deg, #075f48, #0b8360);
}

.pp-legal-part > span {
    display: inline-flex;
    margin-bottom: 10px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-size: .67rem;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.pp-legal-part h2 {
    margin: 0 0 10px;
    color: #fff;
    font-size: clamp(1.65rem, 2.7vw, 2.35rem);
}

.pp-legal-part p {
    margin: 0;
    color: rgba(255, 255, 255, .74);
}

.pp-toc-divider {
    display: block;
    height: 1px;
    margin: 8px 0;
    background: var(--pp-line);
}

@media (max-width: 1100px) {
    .pp-revenue-heading {
        grid-template-columns: 1fr;
    }

    .pp-revenue-facts {
        max-width: 760px;
    }
}

@media (max-width: 820px) {
    .pp-audience-panel,
    .pp-terms-entry-grid {
        grid-template-columns: 1fr;
    }

    .pp-terms-entry-grid {
        margin-top: -20px;
    }
}

@media (max-width: 720px) {
    .pp-site h1 {
        font-size: 2.05rem;
        line-height: 1.07;
    }

    .pp-owner-new-hero h1 {
        font-size: 2.35rem;
    }

    .pp-site h2,
    .pp-cta-box h2 {
        font-size: 1.58rem;
        line-height: 1.14;
    }

    .pp-legal-hero h1 {
        font-size: 1.86rem;
    }

    .pp-legal-content h2 {
        font-size: 1.42rem;
    }

    .pp-audience-tablist {
        padding: 8px;
    }

    .pp-audience-tablist button {
        min-height: 42px;
        padding: 9px 13px;
        font-size: .82rem;
    }

    .pp-audience-panels {
        padding: 24px 20px;
    }

    .pp-audience-panel h3 {
        font-size: 1.55rem;
    }

    .pp-revenue-facts {
        grid-template-columns: 1fr;
    }

    .pp-terms-entry {
        padding-right: 18px;
        padding-left: 18px;
    }

    .pp-terms-entry-card {
        grid-template-columns: 46px minmax(0, 1fr);
        min-height: 0;
        padding: 22px;
    }

    .pp-terms-entry-card > span {
        width: 46px;
        height: 46px;
    }

    .pp-terms-entry-card > b {
        display: none;
    }
}

@media (max-width: 430px) {
    .pp-site h1 {
        font-size: 1.88rem;
    }

    .pp-owner-new-hero h1 {
        font-size: 2.08rem;
    }

    .pp-site h2,
    .pp-cta-box h2 {
        font-size: 1.46rem;
    }

    .pp-legal-hero h1 {
        font-size: 1.68rem;
    }

    .pp-owner-hero-subtitle {
        font-size: 1.08rem;
    }

    .pp-audience-panel h3 {
        font-size: 1.42rem;
    }

    .pp-terms-entry-card {
        grid-template-columns: 1fr;
        gap: 13px;
    }
}

/* ==========================================================
   PlusParking 0.6.1 — WCAG-oriented contrast safeguards
   ========================================================== */

/* Accessible brand/action green: AA contrast on white and mint surfaces. */
:root {
    --pp-green-dark: #087a55;
}

/* Dark surfaces must never inherit dark heading colors from WordPress/Hello Biz. */
.pp-site :is(
    .pp-legal-hero,
    .pp-global-footer,
    .pp-customer-access,
    .pp-technology-choice,
    .pp-cta-box,
    .pp-business-card-dark,
    .pp-business-card-featured,
    .pp-feature-box,
    .pp-service-panel-accent,
    .pp-imprint-primary,
    .pp-legal-part,
    .pp-tariff-featured,
    .pp-owner-event
) :is(h1, h2, h3, h4, h5, h6, strong, summary) {
    color: #fff !important;
}

.pp-site :is(
    .pp-legal-hero,
    .pp-global-footer,
    .pp-customer-access,
    .pp-technology-choice,
    .pp-cta-box,
    .pp-business-card-dark,
    .pp-business-card-featured,
    .pp-feature-box,
    .pp-service-panel-accent,
    .pp-imprint-primary,
    .pp-legal-part,
    .pp-tariff-featured,
    .pp-owner-event
) :is(p, li, dd) {
    color: rgba(255, 255, 255, .84) !important;
}

.pp-site :is(
    .pp-legal-hero,
    .pp-global-footer,
    .pp-customer-access,
    .pp-technology-choice,
    .pp-cta-box,
    .pp-business-card-dark,
    .pp-business-card-featured,
    .pp-feature-box,
    .pp-service-panel-accent,
    .pp-imprint-primary,
    .pp-legal-part,
    .pp-tariff-featured,
    .pp-owner-event
) small {
    color: rgba(255, 255, 255, .76) !important;
}

/* Intentional lime labels remain high contrast on dark green. */
.pp-site :is(
    .pp-legal-hero,
    .pp-technology-choice,
    .pp-cta-box,
    .pp-business-card-dark,
    .pp-business-card-featured,
    .pp-feature-box,
    .pp-service-panel-accent,
    .pp-imprint-primary,
    .pp-legal-part
) :is(.pp-kicker, .pp-business-number, .pp-feature-box > small, .pp-status-badge) {
    color: var(--pp-lime) !important;
}

/* Dark cards with light inset panels need their original dark text restored. */
.pp-business-card-dark .pp-model-details:not([open]),
.pp-business-card-dark .pp-model-details:not([open]) summary {
    color: #fff;
}

.pp-business-card-dark .pp-business-result:not(.pp-business-result-primary) {
    border-color: rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .09);
}

.pp-business-card-dark .pp-business-result:not(.pp-business-result-primary) small {
    color: var(--pp-lime) !important;
}

.pp-business-card-dark .pp-business-result:not(.pp-business-result-primary) strong {
    color: #fff !important;
}

.pp-business-result-primary strong,
.pp-business-card-featured h3,
.pp-terms-entry-card-dark strong,
.pp-terms-entry-card-dark > b {
    color: #fff !important;
}

.pp-terms-entry-card-dark small,
.pp-terms-entry-card-dark p {
    color: rgba(255, 255, 255, .82) !important;
}

.pp-terms-entry-card-dark > span {
    color: var(--pp-night) !important;
    background: var(--pp-lime);
}

.pp-legal-part > span,
.pp-business-card-dark .pp-business-label,
.pp-tariff-featured .pp-tariff-tag {
    color: var(--pp-night) !important;
}

/* Explicit light-card colors prevent inverse inheritance inside dark sections. */
.pp-technology-card-light :is(h2, h3, h4, strong),
.pp-technology-card-accent :is(h2, h3, h4, strong),
.pp-calculation-card-accent :is(h2, h3, h4, strong),
.pp-model-details:not(.pp-business-card-dark .pp-model-details) :is(summary, strong) {
    color: var(--pp-night) !important;
}

.pp-technology-card-light :is(p, li),
.pp-technology-card-accent :is(p, li),
.pp-calculation-card-accent :is(p, li, dt) {
    color: #344b4e !important;
}

/* Footer links and secondary text receive a safer minimum opacity. */
.pp-global-footer :is(p, a, span) {
    color: rgba(255, 255, 255, .82) !important;
}

.pp-global-footer :is(.pp-brand, .pp-brand-name, .pp-brand-name strong, .pp-footer-column > strong) {
    color: #fff !important;
}

.pp-global-footer a:hover,
.pp-global-footer a:focus-visible {
    color: var(--pp-lime) !important;
}

/* Focus indication must be visible on both light and dark surfaces. */
.pp-site a:focus-visible,
.pp-site button:focus-visible,
.pp-site summary:focus-visible {
    outline: 3px solid var(--pp-lime);
    outline-offset: 3px;
}

/* Light technology cards sit inside a dark section and must opt out explicitly. */
.pp-site .pp-technology-choice .pp-technology-card-light :is(h2, h3, h4, strong),
.pp-site .pp-technology-choice .pp-technology-card-accent :is(h2, h3, h4, strong) {
    color: var(--pp-night) !important;
}

.pp-site .pp-technology-choice .pp-technology-card-light :is(p, li),
.pp-site .pp-technology-choice .pp-technology-card-accent :is(p, li) {
    color: #344b4e !important;
}

.pp-site .pp-technology-choice .pp-technology-card-light .pp-technology-top > span:last-child,
.pp-site .pp-technology-choice .pp-technology-card-accent .pp-technology-top > span:last-child {
    color: #344b4e !important;
    opacity: 1;
}

/* ==========================================================
   PlusParking 0.7.1 — Partner network, footer callout and safer words
   ========================================================== */
.pp-word-lock {
    display: inline-block;
    white-space: nowrap;
}

.pp-footer-partner-callout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
    margin-bottom: 58px;
    padding: 28px 32px;
    border: 1px solid rgba(201, 246, 107, .24);
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(201, 246, 107, .13), rgba(255, 255, 255, .055));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
}

.pp-footer-partner-callout > div > span {
    display: block;
    margin-bottom: 7px;
    color: var(--pp-lime) !important;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.pp-footer-partner-callout strong {
    display: block;
    margin-bottom: 6px;
    color: #fff !important;
    font-size: clamp(1.2rem, 2vw, 1.62rem);
    line-height: 1.2;
}

.pp-footer-partner-callout p {
    max-width: 760px;
    margin: 0;
    color: rgba(255, 255, 255, .82) !important;
}

.pp-footer-partner-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 50px;
    padding: 12px 20px;
    border-radius: 999px;
    color: var(--pp-night) !important;
    background: var(--pp-lime);
    font-weight: 850;
    text-decoration: none !important;
    white-space: nowrap;
    transition: transform .2s ease, background .2s ease;
}

.pp-footer-partner-button:hover {
    color: var(--pp-night) !important;
    background: #fff;
    transform: translateY(-2px);
}

.pp-footer-top {
    grid-template-columns: minmax(250px, 1.45fr) repeat(4, minmax(135px, .68fr));
    gap: clamp(28px, 4.5vw, 58px);
}

.pp-partner-hero {
    padding-top: clamp(94px, 10vw, 148px);
    background:
        radial-gradient(circle at 85% 18%, rgba(201, 246, 107, .36), transparent 21%),
        radial-gradient(circle at 78% 70%, rgba(19, 183, 123, .14), transparent 28%),
        linear-gradient(145deg, #fbfdfc, #eef8f3);
}

.pp-partner-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(360px, .78fr);
    align-items: center;
    gap: clamp(48px, 8vw, 112px);
}

.pp-partner-hero h1 {
    max-width: 780px;
}

.pp-partner-hero h1 span {
    display: block;
}

.pp-partner-highlight {
    position: relative;
    padding: clamp(30px, 4vw, 46px);
    border-radius: 34px;
    color: #fff;
    background:
        radial-gradient(circle at 92% 4%, rgba(201, 246, 107, .24), transparent 26%),
        linear-gradient(145deg, #073235, #0c4748);
    box-shadow: var(--pp-shadow);
    overflow: hidden;
}

.pp-partner-highlight::after {
    content: "P";
    position: absolute;
    right: -12px;
    bottom: -72px;
    color: rgba(255, 255, 255, .04);
    font-size: 15rem;
    font-weight: 900;
    line-height: 1;
}

.pp-partner-highlight > * {
    position: relative;
    z-index: 1;
}

.pp-partner-highlight-label {
    display: inline-flex;
    margin-bottom: 18px;
    padding: 7px 12px;
    border-radius: 999px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.pp-partner-highlight h2 {
    margin-bottom: 18px;
    color: #fff !important;
    font-size: clamp(1.7rem, 2.7vw, 2.45rem);
    line-height: 1.08;
}

.pp-partner-highlight p {
    color: rgba(255, 255, 255, .82) !important;
}

.pp-partner-highlight-list {
    display: grid;
    gap: 10px;
    margin-top: 25px;
}

.pp-partner-highlight-list span {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 15px;
    color: #fff;
    background: rgba(255, 255, 255, .06);
    font-weight: 720;
}

.pp-partner-highlight-list b {
    color: var(--pp-lime);
    font-size: .72rem;
    letter-spacing: .08em;
}

.pp-partner-models {
    background: #fff;
}

.pp-partner-model-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.pp-partner-model-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: clamp(27px, 4vw, 43px);
    border: 1px solid var(--pp-line);
    border-radius: 30px;
    background: var(--pp-mist);
    box-shadow: var(--pp-shadow-soft);
}

.pp-partner-model-card-dark {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(145deg, #073235, #0c4648);
}

.pp-partner-model-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 25px;
}

.pp-partner-model-top > span {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 14px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-weight: 900;
}

.pp-partner-model-top small {
    color: var(--pp-green-dark);
    font-weight: 820;
}

.pp-partner-model-card-dark .pp-partner-model-top small,
.pp-partner-model-card-dark p,
.pp-partner-model-card-dark li {
    color: rgba(255, 255, 255, .82) !important;
}

.pp-partner-model-card h3 {
    font-size: clamp(1.65rem, 2.7vw, 2.3rem);
}

.pp-partner-model-card-dark h3,
.pp-partner-model-card-dark strong {
    color: #fff !important;
}

.pp-partner-model-card > p {
    color: var(--pp-ink-soft);
}

.pp-partner-payout {
    margin: 22px 0;
    padding: 18px 20px;
    border: 1px solid rgba(8, 122, 85, .17);
    border-radius: 18px;
    background: #fff;
}

.pp-partner-payout small,
.pp-partner-payout strong {
    display: block;
}

.pp-partner-payout small {
    margin-bottom: 4px;
    color: var(--pp-green-dark);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.pp-partner-payout strong {
    color: var(--pp-night) !important;
    font-size: 1.12rem;
    line-height: 1.35;
}

.pp-partner-model-card-dark .pp-partner-payout {
    border-color: rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .08);
}

.pp-partner-model-card-dark .pp-partner-payout small {
    color: var(--pp-lime) !important;
}

.pp-partner-model-card ul {
    display: grid;
    gap: 10px;
    margin: 0 0 28px;
    padding-left: 21px;
    color: var(--pp-ink-soft);
}

.pp-partner-model-card .pp-text-link {
    margin-top: auto;
}

.pp-text-link-light {
    color: var(--pp-lime) !important;
}

.pp-partner-audiences {
    background: var(--pp-mist);
}

.pp-partner-audience-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.pp-partner-audience-grid article {
    min-width: 0;
    padding: 26px;
    border: 1px solid var(--pp-line);
    border-radius: 23px;
    background: #fff;
}

.pp-partner-audience-grid article > span {
    display: grid;
    width: 48px;
    height: 48px;
    margin-bottom: 20px;
    place-items: center;
    border-radius: 15px;
    background: var(--pp-mint);
    font-size: 1.35rem;
}

.pp-partner-audience-grid p {
    margin-bottom: 0;
    color: var(--pp-ink-soft);
}

.pp-partner-fit {
    background: #fff;
}

.pp-partner-fit-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
    gap: clamp(44px, 8vw, 110px);
    align-items: center;
}

.pp-partner-fit-list {
    display: grid;
    gap: 13px;
}

.pp-partner-fit-list > div {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: start;
    gap: 14px;
    padding: 17px 18px;
    border: 1px solid var(--pp-line);
    border-radius: 17px;
    background: var(--pp-mist);
}

.pp-partner-fit-list span {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-weight: 900;
}

.pp-partner-fit-list p {
    margin: 1px 0 0;
    color: var(--pp-ink-soft);
}

.pp-partner-process {
    color: #fff;
    background: linear-gradient(145deg, #06282b, #0b3e40);
}

.pp-partner-process .pp-kicker {
    color: var(--pp-lime);
}

.pp-partner-process h2,
.pp-partner-process h3 {
    color: #fff !important;
}

.pp-partner-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pp-partner-steps li {
    min-width: 0;
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 21px;
    background: rgba(255, 255, 255, .06);
}

.pp-partner-steps li > span {
    display: grid;
    width: 38px;
    height: 38px;
    margin-bottom: 20px;
    place-items: center;
    border-radius: 12px;
    color: var(--pp-night);
    background: var(--pp-lime);
    font-weight: 900;
}

.pp-partner-steps p {
    margin-bottom: 0;
    color: rgba(255, 255, 255, .78) !important;
}

.pp-partner-details {
    background: var(--pp-sand);
}

.pp-partner-details-grid {
    display: grid;
    grid-template-columns: minmax(0, .76fr) minmax(0, 1.14fr);
    gap: clamp(44px, 8vw, 100px);
    align-items: start;
}

.pp-partner-faq {
    display: grid;
    gap: 12px;
}

.pp-partner-faq details {
    border: 1px solid var(--pp-line);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}

.pp-partner-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    color: var(--pp-night);
    font-weight: 820;
    cursor: pointer;
    list-style: none;
}

.pp-partner-faq summary::-webkit-details-marker {
    display: none;
}

.pp-partner-faq summary span {
    display: grid;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    background: var(--pp-mint);
    transition: transform .2s ease;
}

.pp-partner-faq details[open] summary span {
    transform: rotate(45deg);
}

.pp-partner-faq details > div {
    padding: 0 20px 18px;
}

.pp-partner-faq p {
    margin: 0;
    color: var(--pp-ink-soft);
}

@media (max-width: 1080px) {
    .pp-footer-top {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pp-footer-brand {
        grid-column: 1 / -1;
    }

    .pp-partner-hero-grid,
    .pp-partner-fit-grid,
    .pp-partner-details-grid {
        grid-template-columns: 1fr;
    }

    .pp-partner-highlight {
        max-width: 760px;
    }

    .pp-partner-audience-grid,
    .pp-partner-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .pp-word-lock {
        white-space: normal;
    }

    .pp-footer-partner-callout {
        grid-template-columns: 1fr;
        padding: 24px;
    }

    .pp-footer-partner-button {
        justify-self: start;
    }

    .pp-partner-model-grid,
    .pp-partner-audience-grid,
    .pp-partner-steps {
        grid-template-columns: 1fr;
    }

    .pp-partner-hero-grid {
        gap: 38px;
    }
}

@media (max-width: 430px) {
    .pp-owner-hero-subtitle {
        font-size: 1.02rem;
    }

    .pp-footer-partner-callout {
        padding: 21px;
        border-radius: 20px;
    }

    .pp-partner-highlight,
    .pp-partner-model-card {
        padding: 24px;
        border-radius: 24px;
    }
}

@media (min-width: 1081px) {
    .pp-footer-top {
        grid-template-columns: minmax(240px, 1.25fr) repeat(4, minmax(160px, .72fr));
        gap: clamp(28px, 3.5vw, 44px);
    }

    .pp-footer-column a {
        overflow-wrap: normal;
        word-break: normal;
    }
}

/* Parking-space dashboard page */
.pp-dashboard-hero {
    padding-top: clamp(82px, 8vw, 118px);
    padding-bottom: clamp(54px, 6vw, 82px);
    background:
        radial-gradient(circle at 84% 20%, rgba(201, 246, 107, .32), transparent 22%),
        linear-gradient(145deg, #fbfdfc 0%, #edf8f3 100%);
}

.pp-dashboard-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, .72fr);
    align-items: end;
    gap: clamp(34px, 7vw, 92px);
}

.pp-parking-dashboard-page .pp-dashboard-hero h1 {
    max-width: 720px;
    margin-bottom: 20px;
    font-size: clamp(2.55rem, 5vw, 4.75rem);
    line-height: 1;
    letter-spacing: -.052em;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.pp-dashboard-hero-actions {
    display: grid;
    gap: 12px;
}

.pp-dashboard-quick-link {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    min-width: 0;
    padding: 16px 18px;
    border: 1px solid rgba(8, 47, 50, .1);
    border-radius: 19px;
    color: var(--pp-night) !important;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 12px 36px rgba(8, 47, 50, .07);
    text-decoration: none !important;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.pp-dashboard-quick-link:hover {
    transform: translateY(-2px);
    border-color: rgba(8, 122, 85, .34);
    box-shadow: var(--pp-shadow-soft);
}

.pp-dashboard-quick-link > span {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 15px;
    color: #fff;
    background: var(--pp-night);
    font-weight: 900;
}

.pp-dashboard-quick-link strong,
.pp-dashboard-quick-link small {
    display: block;
}

.pp-dashboard-quick-link small {
    margin-top: 2px;
    color: var(--pp-ink-soft);
    font-size: .77rem;
}

.pp-dashboard-quick-link > b {
    color: var(--pp-green-dark);
    font-size: 1.1rem;
}

.pp-dashboard-content {
    padding-top: clamp(60px, 7vw, 92px);
    padding-right: clamp(12px, 1.4vw, 24px);
    padding-left: clamp(12px, 1.4vw, 24px);
    background: var(--pp-mist);
}

/*
 * The dashboard has its own width because the embedded ParkingMeter tables
 * are much wider than normal marketing content. This selector deliberately
 * overrides the generic .pp-shell width used by the other pages.
 */
.pp-parking-dashboard-page .pp-dashboard-content > .pp-shell {
    width: min(100%, var(--pp-dashboard-shell));
    max-width: var(--pp-dashboard-shell);
}

.pp-dashboard-frame {
    min-width: 0;
    border: 1px solid var(--pp-line);
    border-radius: 28px;
    background: #fff;
    box-shadow: var(--pp-shadow-soft);
    overflow: hidden;
}

.pp-dashboard-frame-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 26px clamp(22px, 4vw, 38px);
    border-bottom: 1px solid var(--pp-line);
    background: linear-gradient(180deg, #fff, #fbfdfc);
}

.pp-dashboard-frame-head h2 {
    margin: 4px 0 0;
    font-size: clamp(1.65rem, 3vw, 2.6rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.pp-dashboard-eyebrow {
    color: var(--pp-green-dark);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.pp-dashboard-live {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--pp-night);
    background: var(--pp-mint);
    font-size: .74rem;
    font-weight: 780;
}

.pp-dashboard-live i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--pp-green-dark);
    box-shadow: 0 0 0 5px rgba(8, 122, 85, .12);
}

.pp-dashboard-embed {
    min-width: 0;
    padding: clamp(12px, 1.5vw, 24px);
    color: var(--pp-ink);
    background: #fff;
}

.pp-parking-dashboard-page .pp-dashboard-embed > .hpa-front-dashboard,
.pp-parking-dashboard-page .pp-dashboard-embed [data-hpa-front-dashboard-root] {
    width: 100%;
    max-width: none !important;
    margin-right: 0;
    margin-left: 0;
}

.pp-parking-dashboard-page .hpa-front-dashboard-table-wrap {
    width: 100%;
    max-width: none;
}

.pp-dashboard-embed :where(input, select, textarea) {
    max-width: 100%;
    min-height: 44px;
    border: 1px solid #cddbd5;
    border-radius: 12px;
    background: #fff;
}

.pp-dashboard-embed :where(button, input[type="button"], input[type="submit"], .button) {
    min-height: 44px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: var(--pp-green-dark);
    font-weight: 760;
}

.pp-dashboard-embed :where(table) {
    width: 100%;
    border-collapse: collapse;
}

.pp-dashboard-embed :where(th, td) {
    padding: 12px 14px;
    border-bottom: 1px solid var(--pp-line);
    text-align: left;
}

.pp-dashboard-embed :where(th) {
    color: var(--pp-night);
    background: var(--pp-mist);
}

.pp-dashboard-unavailable {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
    padding: 24px;
    border: 1px dashed #bfd2ca;
    border-radius: 20px;
    background: var(--pp-mist);
}

.pp-dashboard-unavailable > span {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border-radius: 18px;
    color: #fff;
    background: var(--pp-night);
    font-size: 1.35rem;
    font-weight: 900;
}

.pp-dashboard-unavailable h3 {
    margin-bottom: 6px;
    color: var(--pp-night) !important;
}

.pp-dashboard-unavailable p {
    margin-bottom: 0;
    color: var(--pp-ink-soft);
}

.pp-dashboard-unavailable code {
    color: var(--pp-night);
    background: #e3eee9;
}

@media (max-width: 980px) {
    .pp-dashboard-hero-grid {
        grid-template-columns: 1fr;
    }

    .pp-dashboard-hero-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .pp-parking-dashboard-page .pp-dashboard-hero h1 {
        font-size: clamp(2.25rem, 12vw, 3.4rem);
    }

    .pp-dashboard-hero-actions {
        grid-template-columns: 1fr;
    }

    .pp-dashboard-frame {
        border-radius: 20px;
    }

    .pp-dashboard-frame-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .pp-dashboard-embed {
        overflow-x: auto;
    }

    .pp-dashboard-unavailable {
        grid-template-columns: 1fr;
    }
}

/* Switch the expanded navigation to the mobile menu before long labels wrap. */
@media (min-width: 981px) and (max-width: 1120px) {
    .pp-header-inner {
        padding-right: 18px;
        padding-left: 18px;
    }

    .pp-menu-toggle {
        display: block;
    }

    .pp-main-nav {
        position: absolute;
        top: calc(100% + 1px);
        right: 18px;
        left: 18px;
        display: none;
        align-items: stretch;
        flex-direction: column;
        gap: 4px;
        padding: 14px;
        border: 1px solid var(--pp-line);
        border-radius: 20px;
        background: rgba(255, 255, 255, .98);
        box-shadow: var(--pp-shadow);
    }

    .pp-main-nav.is-open {
        display: flex;
    }

    .pp-main-nav > a {
        padding: 12px 14px;
    }

    .pp-main-nav > a.pp-nav-cta {
        margin: 5px 0 0;
        text-align: center;
    }
}
