

    /* ══════════════════════════════════════════
   HERO
══════════════════════════════════════════ */
    .prs-hero {
        background: linear-gradient(135deg, #091830 0%, #0d2d5e 55%, #1a4a7a 100%);
        padding: var(--space-9) 0 var(--space-8);
        position: relative;
        overflow: hidden;
    }

    .prs-hero::before {
        content: '';
        position: absolute;
        inset: 0;
        background-image:
            linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
            linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
        background-size: 64px 64px;
        pointer-events: none;
    }

    .prs-hero::after {
        content: '';
        position: absolute;
        top: -80px;
        right: -80px;
        width: 420px;
        height: 420px;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(232, 112, 96, 0.18) 0%, transparent 70%);
        pointer-events: none;
    }

    .prs-hero-inner {
        position: relative;
        z-index: 1;
        max-width: 720px;
    }

    .prs-eyebrow {
        display: inline-flex;
        align-items: center;
        gap: var(--space-2);
        padding: 6px 14px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: var(--radius-full);
        background: rgba(255, 255, 255, 0.07);
        font-size: var(--text-sm);
        font-weight: 500;
        color: rgba(255, 255, 255, 0.75);
        margin-bottom: var(--space-5);
    }

    .prs-eyebrow::before {
        content: '';
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--coral-hex);
        flex-shrink: 0;
    }

    .prs-hero h1 {
        font-size: clamp(36px, 5vw, 68px);
        font-weight: 800;
        line-height: 1.05;
        letter-spacing: -0.035em;
        color: #ffffff;
        margin-bottom: var(--space-4);
    }

    .prs-hero h1 .accent {
        position: relative;
        color: var(--coral-soft-hex);
    }

    .prs-hero-sub {
        font-size: var(--text-md);
        color: rgba(255, 255, 255, 0.6);
        line-height: 1.7;
        max-width: 540px;
    }

    .prs-hero-sep {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.10), transparent);
    }

    .hpa-highlight {
        background: linear-gradient(90deg, var(--coral) 0%, var(--coral-soft) 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }

    .page {
        padding: var(--space-6) 0 var(--space-9);
    }

    .brandbar {
        display: flex;
        align-items: baseline;
        gap: var(--space-2);
        margin-bottom: var(--space-6);
    }

    .brandbar .mark {
        font-weight: 700;
        font-size: var(--text-lg);
        color: var(--navy-900);
        letter-spacing: -0.01em;
    }

    .brandbar .tag {
        font-size: var(--text-sm);
        color: var(--navy-500);
        border-left: 1px solid var(--border);
        padding-left: var(--space-3);
    }

    .layout {
        display: grid;
        grid-template-columns: 1.7fr 1fr;
        gap: var(--space-5);
        align-items: start;
    }

    .card {
        position: relative;
        overflow: hidden;
        background: var(--surface-card);
        border-radius: var(--radius-lg);
        box-shadow: var(--shadow-md);
        border: 1px solid var(--border);
        transition: box-shadow var(--duration) var(--ease-out);
    }


    /* ---------- SURVEY ---------- */
    .survey {
        padding: var(--space-7) var(--space-7) var(--space-6);
    }

    .survey-head {
        display: flex;
        align-items: center;
        gap: var(--space-3);
        padding-bottom: var(--space-5);
        border-bottom: 1px solid var(--border);
        margin-bottom: var(--space-6);
    }

    .survey-head .icon {
        width: 42px;
        height: 42px;
        border-radius: var(--radius-full);
        background: var(--navy-900);
        display: flex;
        align-items: center;
        justify-content: center;
        flex: none;
    }

    .survey-head .icon svg {
        width: 20px;
        height: 20px;
        stroke: #fff;
    }

    .survey-head h2 {
        font-weight: 700;
        font-size: var(--text-lg);
        margin: 0;
        color: var(--navy-900);
    }

    .survey-head .sub {
        font-size: var(--text-sm);
        color: var(--navy-500);
        margin-top: 2px;
    }

    #survey-body {
        animation: fadeSlide var(--duration) var(--ease-out);
    }

    @keyframes fadeSlide {
        from {
            opacity: 0;
            transform: translateY(6px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    .qblock {
        margin-bottom: var(--space-7);
    }

    .qblock:last-of-type {
        margin-bottom: var(--space-2);
    }

    .q-row {
        display: flex;
        gap: var(--space-3);
        margin-bottom: var(--space-4);
    }

    .q-num {
        flex: none;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        border-radius: var(--radius-full);
        background: var(--coral-hex);
        color: #fff;
        font-weight: 700;
        font-size: var(--text-xs);
        margin-top: 1px;
    }

    .q-text {
        font-size: var(--text-base);
        line-height: 1.55;
        color: var(--navy-900);
    }

    .options {
        display: flex;
        flex-direction: column;
        gap: var(--space-2);
        padding-left: 38px;
    }

    .opt {
        display: flex;
        align-items: flex-start;
        gap: var(--space-3);
        padding: var(--space-3) var(--space-4);
        border-radius: var(--radius-md);
        border: 1px solid transparent;
        cursor: pointer;
        transition: background var(--duration) var(--ease-out), border-color var(--duration) var(--ease-out);
    }

    .opt:hover {
        background: var(--surface-muted);
        border-color: var(--border);
    }

    .opt.selected {
        background: rgba(232, 112, 95, 0.07);
        border-color: var(--coral-soft-hex);
    }

    .radio {
        flex: none;
        width: 20px;
        height: 20px;
        border-radius: var(--radius-full);
        border: 1.5px solid var(--navy-300);
        margin-top: 1px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #fff;
    }

    .opt.selected .radio {
        border-color: var(--coral-hex);
        background: var(--coral-hex);
    }

    .opt.selected .radio svg {
        width: 11px;
        height: 11px;
        stroke: #fff;
    }

    .opt span.label {
        font-size: var(--text-base);
        line-height: 1.5;
        color: var(--navy-900);
    }

    /* scale */
    .scale-row {
        padding-left: 38px;
        margin-bottom: var(--space-5);
    }

    .scale-row:last-child {
        margin-bottom: 0;
    }

    .scale-label {
        font-size: var(--text-sm);
        color: var(--navy-500);
        margin-bottom: var(--space-3);
    }

    .scale-track {
        display: flex;
        gap: var(--space-1);
    }

    .scale-pip {
        flex: 1;
        height: 38px;
        border-radius: var(--radius-sm);
        border: 1px solid var(--border);
        background: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: var(--text-sm);
        font-weight: 500;
        color: var(--navy-500);
        cursor: pointer;
        transition: transform .12s var(--ease-out), background var(--duration) var(--ease-out), color var(--duration) var(--ease-out), border-color var(--duration) var(--ease-out);
    }

    .scale-pip:hover {
        transform: translateY(-1px);
    }

    .scale-pip.filled {
        background: var(--coral-soft-hex);
        border-color: var(--coral-soft-hex);
        color: #fff;
    }

    .scale-pip.active {
        background: var(--coral-hex);
        border-color: var(--coral-hex);
        color: #fff;
        font-weight: 600;
    }

    .scale-ends {
        display: flex;
        justify-content: space-between;
        font-size: var(--text-xs);
        color: var(--navy-300);
        margin-top: var(--space-2);
        padding: 0 2px;
    }

    /* text input questions */
    .text-wrap {
        padding-left: 38px;
    }

    .text-input,
    .text-area {
        width: 100%;
        background: var(--surface-muted);
        border: 1px solid var(--border);
        border-radius: var(--radius-md);
        padding: var(--space-3) var(--space-4);
        font-size: var(--text-base);
        color: var(--navy-900);
        transition: border-color var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out);
    }

    .text-input {
        height: 46px;
    }

    .text-area {
        min-height: 96px;
        resize: vertical;
        line-height: 1.5;
    }

    .text-input::placeholder,
    .text-area::placeholder {
        color: var(--navy-300);
    }

    .text-input:focus,
    .text-area:focus {
        outline: none;
        border-color: var(--coral-hex);
        background: #fff;
        box-shadow: 0 0 0 3px rgba(232, 112, 95, 0.12);
    }

    .text-hint {
        font-size: var(--text-xs);
        color: var(--navy-300);
        margin-top: var(--space-2);
    }

    .survey-foot {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-top: var(--space-5);
        border-top: 1px solid var(--border);
        margin-top: var(--space-2);
    }

    .progress-text {
        font-size: var(--text-sm);
        color: var(--navy-500);
    }

    .progress-text b {
        color: var(--navy-900);
        font-weight: 600;
    }

    .foot-actions {
        display: flex;
        gap: var(--space-3);
    }

    .btn {
        border: none;
        border-radius: var(--radius-md);
        padding: var(--space-3) var(--space-5);
        font-size: var(--text-base);
        font-weight: 600;
        cursor: pointer;

        display: flex;
        align-items: center;
        gap: var(--space-2);
        transition: opacity var(--duration) var(--ease-out), transform .1s var(--ease-out), box-shadow var(--duration) var(--ease-out);
    }

    .btn:active {
        transform: scale(.98);
    }

    .btn-ghost {
        background: #fff;
        border: 1px solid var(--border);
        color: black !important;
    }

    .btn-ghost:hover:not([disabled]) {
        border-color: var(--border-hover);
        color: black;
    }

    .btn-ghost[disabled] {
        color: black;
        cursor: not-allowed;
        opacity: .6;
        color: black;
    }

    .btn-primary {
        background: var(--coral-hex);
        color: #fff;
        box-shadow: var(--shadow-sm);
    }

    .btn-primary:hover {
        opacity: .92;
    }

    /* ---------- RIGHT RAIL ---------- */
    .rail {
        display: flex;
        flex-direction: column;
        gap: var(--space-5);
    }

    .profile-card {
        padding: var(--space-6) var(--space-5) var(--space-5);
        text-align: center;
        background: linear-gradient(165deg, rgba(232, 112, 95, 0.06), #fff 55%);
    }

    .profile-card .head,
    .journey-card .head {
        display: flex;
        align-items: center;
        gap: var(--space-3);
        text-align: left;
        padding-bottom: var(--space-4);
        margin-bottom: var(--space-5);
        border-bottom: 1px solid var(--border);
    }

    .profile-card .head .icon,
    .journey-card .head .icon {
        width: 36px;
        height: 36px;
        border-radius: var(--radius-full);
        background: var(--navy-900);
        display: flex;
        align-items: center;
        justify-content: center;
        flex: none;
    }

    .profile-card .head .icon svg,
    .journey-card .head .icon svg {
        width: 17px;
        height: 17px;
        stroke: #fff;
    }

    .profile-card .head h3,
    .journey-card .head h3 {
        font-weight: 700;
        font-size: var(--text-md);
        margin: 0;
        color: var(--navy-900);
    }

    .avatar-ring {
        width: 118px;
        height: 118px;
        margin: 0 auto var(--space-4);
        border-radius: var(--radius-full);
        background: linear-gradient(135deg, rgba(232, 112, 95, 0.14), rgba(56, 217, 192, 0.14));
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .avatar-ring svg {
        width: 42px;
        height: 42px;
        stroke: var(--navy-700);
    }

    .status-pill {
        display: inline-block;
        font-weight: 700;
        font-size: var(--text-sm);
        color: var(--coral-hex);
        background: rgba(232, 112, 95, 0.10);
        padding: 6px 14px;
        border-radius: var(--radius-full);
        margin-bottom: var(--space-3);
        letter-spacing: .02em;
    }

    .status-desc {
        font-size: var(--text-sm);
        color: var(--navy-500);
        line-height: 1.55;
        max-width: 240px;
        margin: 0 auto var(--space-5);
    }

    .profile-card .btn {
        width: 100%;
        justify-content: center;
        margin-bottom: var(--space-3);
    }

    .profile-card .btn-secondary {
        background: #fff;
        border: 1.5px solid var(--navy-700);
        color: var(--navy-900);
    }

    .profile-card .btn-secondary:hover {
        background: var(--navy-100);
    }

    .journey-card {
        padding: var(--space-6) var(--space-5) var(--space-5);
    }

    .step {
        display: flex;
        gap: var(--space-4);
        position: relative;
        padding-bottom: var(--space-6);
    }

    .step:last-of-type {
        padding-bottom: var(--space-1);
    }

    .step::before {
        content: "";
        position: absolute;
        left: 18px;
        top: 38px;
        bottom: 0;
        width: 2px;
        background: var(--border);
    }

    .step:last-of-type::before {
        display: none;
    }

    .step-ring {
        flex: none;
        width: 38px;
        height: 38px;
        border-radius: var(--radius-full);
        border: 2px solid var(--border);
        background: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 700;
        font-size: var(--text-base);
        color: var(--navy-300);
        z-index: 1;
        transition: all var(--duration) var(--ease-out);
    }

    .step.done .step-ring {
        background: var(--teal-dark);
        border-color: var(--teal-dark);
        color: #fff;
    }

    .step.current .step-ring {
        border-color: var(--coral-hex);
        color: var(--coral-hex);
        background: rgba(232, 112, 95, 0.06);
    }

    .step h4 {
        margin: 0 0 3px;
        font-size: var(--text-base);
        font-weight: 600;
        color: var(--navy-900);
    }

    .step p {
        margin: 0;
        font-size: var(--text-xs);
        color: var(--navy-500);
        line-height: 1.5;
    }

    .journey-progress {
        margin-top: var(--space-1);
    }

    .journey-progress .track {
        height: 8px;
        border-radius: var(--radius-full);
        background: var(--navy-100);
        overflow: hidden;
    }

    .journey-progress .fill {
        height: 100%;
        width: 0%;
        border-radius: var(--radius-full);
        background: linear-gradient(90deg, var(--coral-hex), var(--teal));
        transition: width .4s var(--ease-out);
    }

    .journey-progress .label {
        display: flex;
        justify-content: space-between;
        font-size: var(--text-xs);
        color: var(--navy-500);
        margin-top: var(--space-2);
    }

    .journey-progress .label b {
        color: var(--navy-900);
    }

    /* ---------- COMPLETION SCREEN ---------- */
    .complete-view {
        text-align: center;
        padding: var(--space-8) var(--space-6) var(--space-7);
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .complete-check {
        width: 84px;
        height: 84px;
        margin: 0 auto var(--space-5);
        border-radius: var(--radius-full);
        background: var(--teal);
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: var(--shadow-md);
    }

    .complete-check svg {
        width: 38px;
        height: 38px;
        stroke: #fff;
    }

    .complete-view h2 {
        font-weight: 700;
        font-size: var(--text-xl);
        color: var(--navy-900);
        margin: 0 0 var(--space-3);
    }

    .complete-view p {
        font-size: var(--text-md);
        color: var(--navy-500);
        max-width: 420px;
        margin: 0 auto var(--space-6);
        line-height: 1.6;
    }

    .complete-view .btn-primary {
        padding: var(--space-3) var(--space-7);
        font-size: var(--text-base);
    }

    /* ── Completion action buttons ── */
    .complete-actions {
        display: flex;
        flex-direction: column;
        gap: var(--space-3);
        width: 100%;
        max-width: 380px;
        margin: 0 auto var(--space-4);
    }

    .btn-complete-primary {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: var(--space-2);
        width: 100%;
        padding: 14px var(--space-5);
        border: none;
        border-radius: var(--radius-full);
        background: linear-gradient(135deg, var(--coral-hex, #e8603a) 0%, var(--coral-soft-hex, #e8705f) 100%);
        color: #fff;
        font-size: var(--text-base);
        font-weight: 700;
        cursor: pointer;
        box-shadow: 0 6px 20px rgba(232, 96, 58, 0.38);
        transition: transform 0.2s var(--ease-out), box-shadow 0.2s;
    }

    .btn-complete-primary:hover:not([disabled]) {
        transform: translateY(-2px);
        box-shadow: 0 10px 28px rgba(232, 96, 58, 0.46);
    }

    .btn-complete-primary:disabled {
        opacity: 0.75;
        cursor: not-allowed;
    }

    .btn-complete-primary i {
        font-size: 16px;
    }

    .btn-complete-upgrade {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: var(--space-2);
        width: 100%;
        padding: 14px var(--space-5);
        border: 2px solid var(--navy-700, #1a4a7a);
        border-radius: var(--radius-full);
        background: #fff;
        color: var(--navy-900, #0d2d5e);
        font-size: var(--text-base);
        font-weight: 700;
        cursor: pointer;
        transition: background 0.2s, border-color 0.2s, transform 0.2s var(--ease-out);
        position: relative;
        overflow: hidden;
    }

    .btn-complete-upgrade:hover {
        background: var(--navy-100, #eef2f7);
        border-color: var(--navy-900);
        transform: translateY(-1px);
    }

    .btn-complete-upgrade i {
        color: var(--coral-hex, #e8603a);
        font-size: 15px;
    }

    .upgrade-price {
        margin-left: auto;
        background: var(--coral-hex, #e8603a);
        color: #fff;
        font-size: var(--text-xs);
        font-weight: 700;
        padding: 3px 10px;
        border-radius: var(--radius-full);
        letter-spacing: 0.02em;
        white-space: nowrap;
    }

    .complete-note {
        font-size: var(--text-sm) !important;
        color: var(--navy-300, #4a5f78) !important;
        max-width: 360px !important;
        margin: 0 auto !important;
        line-height: 1.55 !important;
        display: flex;
        align-items: flex-start;
        gap: 6px;
    }

    .complete-note i {
        margin-top: 2px;
        color: var(--navy-300);
        flex-shrink: 0;
    }

    @media (max-width: 480px) {
        .complete-actions {
            max-width: 100%;
        }
        .upgrade-price {
            font-size: 10px;
        }
    }

    @media (max-width: 980px) {
        .container {
            padding: 0 var(--space-4);
        }
        .layout {
            grid-template-columns: 1fr;
        }

        .survey {
            padding: var(--space-5);
        }

        .options,
        .scale-row,
        .text-wrap {
            padding-left: 0;
        }
    }

    @media (max-width: 480px) {
        .container {
            padding: 0 var(--space-4);
        }
    }

    @media (max-width: 375px) {
        .container {
            padding: 0 var(--space-4);
        }
    }
