/* =========================================================
   PsychCura · Contribution Proposal
   Lightweight multi-step form
========================================================= */

.pc-proposal-page {

    --pc-navy: #102a43;
    --pc-navy-soft: #173b55;

    --pc-cyan: #08b8d1;
    --pc-cyan-dark: #078ca2;
    --pc-cyan-soft: #eafafd;

    --pc-text: #40586a;
    --pc-muted: #718595;

    --pc-line: #dce9ee;
    --pc-bg: #f6fafb;

    --pc-surface: #ffffff;

    --pc-green: #168c64;
    --pc-danger: #c34a4a;

    color: var(--pc-navy);
    background: var(--pc-bg);

    overflow-x: hidden;
}


.pc-proposal-main {

    min-height: 80vh;
}



/* =========================================================
   Intro
========================================================= */

.pc-proposal-intro {

    padding: 58px 0 46px;

    border-bottom: 1px solid var(--pc-line);

    background:
        radial-gradient(circle at 82% 20%,
            rgba(8, 184, 209, .11),
            transparent 29%),
        linear-gradient(135deg,
            #fbfdfd,
            #f2fafb);
}


.pc-proposal-back {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin-bottom: 32px;

    color: var(--pc-cyan-dark);

    font-size: 13px;

    font-weight: 700;

    text-decoration: none;
}


.pc-proposal-back:hover {

    color: var(--pc-navy);
}


.pc-proposal-intro-grid {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr) minmax(300px, 430px);

    gap: 60px;

    align-items: end;
}


.pc-proposal-kicker {

    display: block;

    margin-bottom: 10px;

    color: var(--pc-cyan-dark);

    font-size: 12px;

    font-weight: 800;

    letter-spacing: .12em;

    text-transform: uppercase;
}


.pc-proposal-intro h1 {

    margin: 0;

    color: var(--pc-navy);

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(2.8rem, 5vw, 4.4rem);

    font-weight: 600;

    line-height: 1.04;

    letter-spacing: -.025em;
}


.pc-proposal-intro h1 span {

    color: var(--pc-cyan-dark);
}


.pc-proposal-intro-grid>div:first-child>p {

    max-width: 650px;

    margin: 20px 0 0;

    color: var(--pc-text);

    font-size: 16px;

    line-height: 1.7;
}


.pc-proposal-intro-note {

    display: flex;

    gap: 14px;

    padding: 18px;

    border: 1px solid rgba(8, 184, 209, .2);

    border-radius: 18px;

    background: rgba(255, 255, 255, .84);

    box-shadow:
        0 12px 34px rgba(16, 42, 67, .05);
}


.pc-proposal-intro-note-icon {

    display: flex;

    width: 42px;

    height: 42px;

    align-items: center;

    justify-content: center;

    flex: 0 0 auto;

    border-radius: 13px;

    color: var(--pc-cyan-dark);

    background: var(--pc-cyan-soft);
}


.pc-proposal-intro-note strong,
.pc-proposal-intro-note span {

    display: block;
}


.pc-proposal-intro-note strong {

    color: var(--pc-navy);

    font-size: 13px;
}


.pc-proposal-intro-note span {

    margin-top: 4px;

    color: var(--pc-muted);

    font-size: 11px;

    line-height: 1.55;
}



/* =========================================================
   Workspace
========================================================= */

.pc-proposal-workspace {

    padding: 52px 0 100px;
}


.pc-proposal-layout {

    display: grid;

    grid-template-columns:
        290px minmax(0, 1fr);

    gap: 30px;

    align-items: start;
}



/* =========================================================
   Progress
========================================================= */

.pc-proposal-progress {

    position: sticky;

    top: 110px;

    padding: 24px;

    border: 1px solid var(--pc-line);

    border-radius: 22px;

    background: #ffffff;

    box-shadow:
        0 14px 42px rgba(16, 42, 67, .05);
}


.pc-proposal-progress-head {

    display: flex;

    justify-content: space-between;

    gap: 15px;

    align-items: center;

    color: var(--pc-muted);

    font-size: 11px;

    font-weight: 700;
}


.pc-proposal-progress-head strong {

    color: var(--pc-cyan-dark);
}


.pc-proposal-progress-bar {

    overflow: hidden;

    height: 5px;

    margin-top: 13px;

    border-radius: 999px;

    background: #edf3f5;
}


.pc-proposal-progress-bar span {

    display: block;

    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(90deg,
            var(--pc-cyan),
            var(--pc-cyan-dark));

    transition: width .25s ease;
}


.pc-proposal-steps {

    display: grid;

    gap: 5px;

    margin: 26px 0 0;

    padding: 0;

    list-style: none;
}


.pc-proposal-steps li {

    position: relative;

    display: flex;

    gap: 13px;

    padding: 12px;

    border-radius: 14px;

    opacity: .58;

    transition:
        opacity .2s ease,
        background-color .2s ease;
}


.pc-proposal-steps li.is-active {

    opacity: 1;

    background: #f5fbfc;
}


.pc-proposal-step-marker {

    display: flex;

    width: 34px;

    height: 34px;

    align-items: center;

    justify-content: center;

    flex: 0 0 auto;

    border: 1px solid var(--pc-line);

    border-radius: 50%;

    color: var(--pc-muted);

    background: #ffffff;

    font-size: 11px;

    font-weight: 800;
}


.pc-proposal-steps li.is-active .pc-proposal-step-marker {

    border-color:
        rgba(8, 184, 209, .25);

    color: #ffffff;

    background: var(--pc-cyan-dark);
}


.pc-proposal-steps strong,
.pc-proposal-steps div span {

    display: block;
}


.pc-proposal-steps strong {

    color: var(--pc-navy);

    font-size: 12px;
}


.pc-proposal-steps div span {

    margin-top: 3px;

    color: var(--pc-muted);

    font-size: 10px;

    line-height: 1.4;
}


.pc-proposal-progress-help {

    display: flex;

    gap: 10px;

    margin-top: 22px;

    padding-top: 18px;

    border-top: 1px solid var(--pc-line);

    color: var(--pc-muted);
}


.pc-proposal-progress-help i {

    margin-top: 2px;

    color: var(--pc-cyan-dark);
}


.pc-proposal-progress-help p {

    margin: 0;

    font-size: 10px;

    line-height: 1.55;
}



/* =========================================================
   Form card
========================================================= */

.pc-proposal-form-card {

    min-width: 0;

    padding: 38px;

    border: 1px solid var(--pc-line);

    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 18px 55px rgba(16, 42, 67, .055);
}


.pc-proposal-form-step[hidden] {

    display: none !important;
}


.pc-proposal-step-label {

    display: inline-block;

    margin-bottom: 7px;

    color: var(--pc-cyan-dark);

    font-size: 11px;

    font-weight: 800;

    letter-spacing: .1em;

    text-transform: uppercase;
}


.pc-proposal-form-heading h2 {

    margin: 0;

    color: var(--pc-navy);

    font-family:
        "Playfair Display",
        serif;

    font-size: 2.2rem;

    font-weight: 600;
}


.pc-proposal-form-heading p {

    margin: 10px 0 0;

    color: var(--pc-text);

    font-size: 13px;

    line-height: 1.65;
}



/* =========================================================
   Contribution types
========================================================= */

.pc-proposal-fieldset {

    margin: 34px 0 0;

    padding: 0;

    border: 0;
}


.pc-proposal-fieldset legend {

    margin-bottom: 13px;

    color: var(--pc-navy);

    font-size: 13px;

    font-weight: 700;
}


.pc-proposal-fieldset legend span,
.pc-proposal-field label>span,
.pc-proposal-required-note>span {

    color: var(--pc-danger);
}


.pc-proposal-type-grid {

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 11px;
}


.pc-proposal-type-card {

    position: relative;

    margin: 0;

    cursor: pointer;
}


.pc-proposal-type-card input {

    position: absolute;

    width: 1px;

    height: 1px;

    opacity: 0;

    pointer-events: none;
}


.pc-proposal-type-ui {

    position: relative;

    display: flex;

    min-height: 178px;

    flex-direction: column;

    padding: 18px;

    border: 1px solid var(--pc-line);

    border-radius: 17px;

    background: #ffffff;

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        background-color .18s ease;
}


.pc-proposal-type-card:hover .pc-proposal-type-ui {

    transform: translateY(-2px);

    border-color:
        rgba(8, 184, 209, .35);

    box-shadow:
        0 12px 28px rgba(16, 42, 67, .06);
}


.pc-proposal-type-card input:checked+.pc-proposal-type-ui {

    border-color: var(--pc-cyan);

    background:
        linear-gradient(180deg,
            #ffffff,
            #f3fcfd);

    box-shadow:
        0 0 0 3px rgba(8, 184, 209, .08);
}


.pc-proposal-type-icon {

    display: flex;

    width: 42px;

    height: 42px;

    align-items: center;

    justify-content: center;

    border-radius: 13px;

    color: var(--pc-cyan-dark);

    background: var(--pc-cyan-soft);
}


.pc-proposal-type-copy {

    margin-top: 17px;
}


.pc-proposal-type-copy strong,
.pc-proposal-type-copy small {

    display: block;
}


.pc-proposal-type-copy strong {

    color: var(--pc-navy);

    font-size: 12px;
}


.pc-proposal-type-copy small {

    margin-top: 6px;

    color: var(--pc-muted);

    font-size: 10px;

    line-height: 1.55;
}


.pc-proposal-radio-ui {

    position: absolute;

    top: 15px;

    right: 15px;

    display: flex;

    width: 23px;

    height: 23px;

    align-items: center;

    justify-content: center;

    border: 1px solid var(--pc-line);

    border-radius: 50%;

    color: transparent;

    background: #ffffff;

    font-size: 9px;
}


.pc-proposal-type-card input:checked+.pc-proposal-type-ui .pc-proposal-radio-ui {

    border-color: var(--pc-cyan-dark);

    color: #ffffff;

    background: var(--pc-cyan-dark);
}



/* =========================================================
   Fields
========================================================= */

.pc-proposal-fields {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 22px 18px;

    margin-top: 34px;
}


.pc-proposal-field {

    position: relative;

    min-width: 0;
}


.pc-proposal-field-wide {

    grid-column: 1 / -1;
}


.pc-proposal-field label {

    display: block;

    margin-bottom: 8px;

    color: var(--pc-navy);

    font-size: 12px;

    font-weight: 700;
}


.pc-proposal-field input {

    width: 100%;

    min-height: 50px;

    padding: 12px 14px;

    border: 1px solid var(--pc-line);

    border-radius: 13px;

    outline: none;

    color: var(--pc-navy);

    background: #ffffff;

    font: inherit;

    font-size: 13px;

    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background-color .18s ease;
}


.pc-proposal-field input::placeholder {

    color: #9aabb7;
}


.pc-proposal-field input:focus {

    border-color:
        rgba(8, 184, 209, .7);

    box-shadow:
        0 0 0 4px rgba(8, 184, 209, .08);
}


.pc-proposal-field input.is-invalid {

    border-color:
        rgba(195, 74, 74, .65);

    background: #fffafa;

    box-shadow:
        0 0 0 4px rgba(195, 74, 74, .06);
}


.pc-proposal-input-icon {

    position: relative;
}


.pc-proposal-input-icon>i {

    position: absolute;

    top: 50%;

    left: 15px;

    z-index: 1;

    color: var(--pc-cyan-dark);

    transform: translateY(-50%);

    pointer-events: none;
}


.pc-proposal-input-icon input {

    padding-left: 42px;
}


.pc-proposal-field-hint {

    display: block;

    margin-top: 6px;

    color: var(--pc-muted);

    font-size: 9.5px;

    line-height: 1.5;
}


.pc-proposal-field-error {

    min-height: 0;

    margin: 6px 0 0;

    color: var(--pc-danger);

    font-size: 10px;

    line-height: 1.45;
}


.pc-proposal-field-error:empty {

    display: none;
}



/* =========================================================
   Form footer
========================================================= */

.pc-proposal-form-footer {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    margin-top: 38px;

    padding-top: 25px;

    border-top: 1px solid var(--pc-line);
}


.pc-proposal-required-note {

    color: var(--pc-muted);

    font-size: 10px;
}


.pc-proposal-next-btn {

    display: inline-flex;

    min-height: 50px;

    align-items: center;

    justify-content: center;

    gap: 10px;

    padding: 12px 20px;

    border: 0;

    border-radius: 13px;

    color: #ffffff;

    background: var(--pc-navy);

    font-size: 12px;

    font-weight: 700;

    box-shadow:
        0 12px 28px rgba(16, 42, 67, .15);

    cursor: pointer;

    transition:
        transform .18s ease,
        background-color .18s ease,
        box-shadow .18s ease;
}


.pc-proposal-next-btn:hover {

    transform: translateY(-2px);

    background: var(--pc-navy-soft);

    box-shadow:
        0 17px 34px rgba(16, 42, 67, .19);
}


/* =========================================================
   Step 2 · Proposal details
========================================================= */

.pc-proposal-form-card {

    scroll-margin-top: 120px;
}


/* Selected contribution context */

.pc-proposal-type-context {

    display: flex;

    align-items: center;

    gap: 13px;

    margin-top: 26px;

    padding: 15px 17px;

    border: 1px solid rgba(8, 184, 209, .22);

    border-radius: 15px;

    background:
        linear-gradient(135deg,
            #f7fcfd,
            #ffffff);
}


.pc-proposal-type-context-icon {

    display: flex;

    width: 42px;

    height: 42px;

    align-items: center;

    justify-content: center;

    flex: 0 0 auto;

    border-radius: 13px;

    color: var(--pc-cyan-dark);

    background: var(--pc-cyan-soft);
}


.pc-proposal-type-context span,
.pc-proposal-type-context strong {

    display: block;
}


.pc-proposal-type-context span {

    color: var(--pc-muted);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .06em;

    text-transform: uppercase;
}


.pc-proposal-type-context strong {

    margin-top: 2px;

    color: var(--pc-navy);

    font-size: 12px;
}


/* =========================================================
   Step 3 · Partnership & links
========================================================= */

.pc-proposal-context-description {

    display: block;

    margin-top: 4px;

    color: var(--pc-muted);

    font-size: 10px;

    line-height: 1.5;
}



/* =========================================================
   Link details
========================================================= */

.pc-proposal-link-details {

    padding: 22px;

    border: 1px solid rgba(8, 184, 209, .22);

    border-radius: 18px;

    background:
        linear-gradient(135deg,
            #f7fcfd,
            #ffffff);
}


.pc-proposal-link-details-head {

    display: flex;

    align-items: center;

    gap: 13px;

    margin-bottom: 22px;
}


.pc-proposal-link-details-icon {

    display: flex;

    width: 42px;

    height: 42px;

    align-items: center;

    justify-content: center;

    flex: 0 0 auto;

    border-radius: 13px;

    color: var(--pc-cyan-dark);

    background: var(--pc-cyan-soft);
}


.pc-proposal-link-details-head strong,
.pc-proposal-link-details-head span {

    display: block;
}


.pc-proposal-link-details-head strong {

    color: var(--pc-navy);

    font-size: 12px;
}


.pc-proposal-link-details-head span {

    margin-top: 3px;

    color: var(--pc-muted);

    font-size: 10px;
}


.pc-proposal-link-fields {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 20px 18px;
}



/* =========================================================
   Editorial policy notice
========================================================= */

.pc-proposal-policy-note {

    display: flex;

    gap: 14px;

    margin-top: 30px;

    padding: 18px;

    border: 1px solid rgba(16, 42, 67, .09);

    border-radius: 16px;

    background: #f7f9fa;
}


.pc-proposal-policy-icon {

    display: flex;

    width: 40px;

    height: 40px;

    align-items: center;

    justify-content: center;

    flex: 0 0 auto;

    border-radius: 12px;

    color: var(--pc-cyan-dark);

    background: #ffffff;

    box-shadow:
        0 5px 18px rgba(16, 42, 67, .05);
}


.pc-proposal-policy-note strong {

    display: block;

    color: var(--pc-navy);

    font-size: 11px;
}


.pc-proposal-policy-note p {

    margin: 5px 0 0;

    color: var(--pc-muted);

    font-size: 10px;

    line-height: 1.6;
}


/* =========================================================
   Selects & textareas
========================================================= */

.pc-proposal-field select,
.pc-proposal-field textarea {

    width: 100%;

    border: 1px solid var(--pc-line);

    border-radius: 13px;

    outline: none;

    color: var(--pc-navy);

    background: #ffffff;

    font: inherit;

    font-size: 13px;

    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background-color .18s ease;
}


.pc-proposal-field select {

    min-height: 50px;

    padding: 12px 42px 12px 14px;

    cursor: pointer;
}


.pc-proposal-field textarea {

    display: block;

    min-height: 116px;

    padding: 14px;

    line-height: 1.65;

    resize: vertical;
}


.pc-proposal-field select:focus,
.pc-proposal-field textarea:focus {

    border-color:
        rgba(8, 184, 209, .7);

    box-shadow:
        0 0 0 4px rgba(8, 184, 209, .08);
}


.pc-proposal-field select.is-invalid,
.pc-proposal-field textarea.is-invalid {

    border-color:
        rgba(195, 74, 74, .65);

    background: #fffafa;

    box-shadow:
        0 0 0 4px rgba(195, 74, 74, .06);
}


.pc-proposal-field textarea::placeholder {

    color: #9aabb7;
}



/* =========================================================
   Field meta & character count
========================================================= */

.pc-proposal-field-meta {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    margin-bottom: 8px;
}


.pc-proposal-field-meta label {

    margin-bottom: 0;
}


.pc-proposal-character-count {

    flex: 0 0 auto;

    color: var(--pc-muted);

    font-size: 9px;

    font-variant-numeric: tabular-nums;
}



/* =========================================================
   Back button
========================================================= */

.pc-proposal-back-btn {

    display: inline-flex;

    min-height: 50px;

    align-items: center;

    justify-content: center;

    gap: 9px;

    padding: 12px 19px;

    border: 1px solid var(--pc-line);

    border-radius: 13px;

    color: var(--pc-navy);

    background: #ffffff;

    font-size: 12px;

    font-weight: 700;

    cursor: pointer;

    transition:
        transform .18s ease,
        border-color .18s ease,
        background-color .18s ease,
        color .18s ease;
}


.pc-proposal-back-btn:hover {

    transform: translateY(-2px);

    border-color:
        rgba(8, 184, 209, .35);

    color: var(--pc-cyan-dark);

    background: #f8fcfd;
}



/* =========================================================
   Completed progress steps
========================================================= */

.pc-proposal-steps li.is-complete {

    opacity: 1;
}


.pc-proposal-steps li.is-complete .pc-proposal-step-marker {

    border-color:
        rgba(22, 140, 100, .25);

    color: #ffffff;

    background:
        var(--pc-green);

    box-shadow:
        0 0 0 4px rgba(22, 140, 100, .08);
}


.pc-proposal-steps li.is-complete .pc-proposal-step-marker i {

    font-size: 10px;
}


/* =========================================================
   Step 4 · Review & confirm
========================================================= */

.pc-proposal-review-intro {

    display: flex;

    align-items: center;

    gap: 14px;

    margin-top: 26px;

    padding: 18px;

    border: 1px solid rgba(22, 140, 100, .18);

    border-radius: 17px;

    background:
        linear-gradient(135deg,
            rgba(22, 140, 100, .055),
            #ffffff);
}


.pc-proposal-review-intro-icon {

    display: flex;

    width: 46px;

    height: 46px;

    align-items: center;

    justify-content: center;

    flex: 0 0 auto;

    border-radius: 14px;

    color: var(--pc-green);

    background:
        rgba(22, 140, 100, .09);

    font-size: 17px;
}


.pc-proposal-review-intro span,
.pc-proposal-review-intro strong,
.pc-proposal-review-intro p {

    display: block;
}


.pc-proposal-review-intro span {

    color: var(--pc-muted);

    font-size: 9px;

    font-weight: 800;

    letter-spacing: .08em;

    text-transform: uppercase;
}


.pc-proposal-review-intro strong {

    margin-top: 2px;

    color: var(--pc-navy);

    font-size: 13px;
}


.pc-proposal-review-intro p {

    margin: 4px 0 0;

    color: var(--pc-muted);

    font-size: 10px;
}



/* =========================================================
   Review sections
========================================================= */

.pc-review-section {

    margin-top: 24px;

    overflow: hidden;

    border: 1px solid var(--pc-line);

    border-radius: 18px;

    background: #ffffff;
}


.pc-review-section-head {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    padding: 17px 20px;

    border-bottom: 1px solid var(--pc-line);

    background: #f8fbfc;
}


.pc-review-section-head>div {

    display: flex;

    align-items: center;

    gap: 11px;
}


.pc-review-section-number {

    display: flex;

    width: 30px;

    height: 30px;

    align-items: center;

    justify-content: center;

    border-radius: 9px;

    color: var(--pc-cyan-dark);

    background: var(--pc-cyan-soft);

    font-size: 9px;

    font-weight: 800;
}


.pc-review-section h3 {

    margin: 0;

    color: var(--pc-navy);

    font-size: 13px;

    font-weight: 700;
}


.pc-review-edit-btn {

    display: inline-flex;

    align-items: center;

    gap: 6px;

    padding: 7px 10px;

    border: 1px solid var(--pc-line);

    border-radius: 9px;

    color: var(--pc-cyan-dark);

    background: #ffffff;

    font-size: 10px;

    font-weight: 700;

    cursor: pointer;

    transition:
        border-color .18s ease,
        background-color .18s ease,
        transform .18s ease;
}


.pc-review-edit-btn:hover {

    transform: translateY(-1px);

    border-color:
        rgba(8, 184, 209, .3);

    background: #f5fcfd;
}


.pc-review-grid {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 0;

    padding: 4px 20px;
}


.pc-review-item {

    min-width: 0;

    padding: 16px 0;

    border-bottom: 1px solid rgba(220, 233, 238, .78);
}


.pc-review-item:nth-last-child(-n + 2) {

    border-bottom: 0;
}


.pc-review-item:nth-child(odd):not(.pc-review-item-wide) {

    padding-right: 20px;
}


.pc-review-item:nth-child(even):not(.pc-review-item-wide) {

    padding-left: 20px;

    border-left: 1px solid rgba(220, 233, 238, .78);
}


.pc-review-item-wide {

    grid-column: 1 / -1;
}


.pc-review-item>span {

    display: block;

    margin-bottom: 5px;

    color: var(--pc-muted);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .03em;
}


.pc-review-item strong,
.pc-review-item p {

    overflow-wrap: anywhere;
}


.pc-review-item strong {

    display: block;

    color: var(--pc-navy);

    font-size: 11px;

    line-height: 1.55;
}


.pc-review-item p {

    margin: 0;

    white-space: pre-wrap;

    color: var(--pc-text);

    font-size: 11px;

    line-height: 1.65;
}



/* =========================================================
   Declarations
========================================================= */

.pc-proposal-declarations {

    margin-top: 28px;

    padding: 23px;

    border: 1px solid var(--pc-line);

    border-radius: 18px;

    background: #fbfdfe;
}


.pc-proposal-declarations-head h3 {

    margin: 2px 0 0;

    color: var(--pc-navy);

    font-family:
        "Playfair Display",
        serif;

    font-size: 1.45rem;

    font-weight: 600;
}


.pc-proposal-consents {

    display: grid;

    gap: 10px;

    margin-top: 18px;
}


.pc-proposal-consent {

    position: relative;

    margin: 0;

    cursor: pointer;
}


.pc-proposal-consent>input {

    position: absolute;

    width: 1px;

    height: 1px;

    opacity: 0;

    pointer-events: none;
}


.pc-proposal-consent-ui {

    display: flex;

    gap: 13px;

    padding: 15px;

    border: 1px solid var(--pc-line);

    border-radius: 14px;

    background: #ffffff;

    transition:
        border-color .18s ease,
        background-color .18s ease,
        box-shadow .18s ease;
}


.pc-proposal-consent:hover .pc-proposal-consent-ui {

    border-color:
        rgba(8, 184, 209, .28);
}


.pc-proposal-consent-check {

    display: flex;

    width: 27px;

    height: 27px;

    align-items: center;

    justify-content: center;

    flex: 0 0 auto;

    border: 1px solid var(--pc-line);

    border-radius: 8px;

    color: transparent;

    background: #ffffff;

    font-size: 9px;

    transition:
        border-color .18s ease,
        background-color .18s ease,
        color .18s ease;
}


.pc-proposal-consent input:checked+.pc-proposal-consent-ui {

    border-color:
        rgba(22, 140, 100, .24);

    background:
        rgba(22, 140, 100, .035);
}


.pc-proposal-consent input:checked+.pc-proposal-consent-ui .pc-proposal-consent-check {

    border-color: var(--pc-green);

    color: #ffffff;

    background: var(--pc-green);
}


.pc-proposal-consent input.is-invalid+.pc-proposal-consent-ui {

    border-color:
        rgba(195, 74, 74, .55);

    background: #fffafa;
}


.pc-proposal-consent-ui strong,
.pc-proposal-consent-ui small {

    display: block;
}


.pc-proposal-consent-ui strong {

    color: var(--pc-navy);

    font-size: 11px;
}


.pc-proposal-consent-ui small {

    margin-top: 4px;

    color: var(--pc-muted);

    font-size: 10px;

    line-height: 1.55;
}


.pc-proposal-consent-error {

    margin: 10px 0 0;

    color: var(--pc-danger);

    font-size: 10px;
}


.pc-proposal-consent-error:empty {

    display: none;
}



/* =========================================================
   Final note
========================================================= */

.pc-proposal-final-note {

    display: flex;

    align-items: flex-start;

    gap: 12px;

    margin-top: 20px;

    padding: 15px 17px;

    border-radius: 14px;

    color: var(--pc-text);

    background: var(--pc-cyan-soft);
}


.pc-proposal-final-note>i {

    margin-top: 2px;

    color: var(--pc-cyan-dark);
}


.pc-proposal-final-note strong,
.pc-proposal-final-note span {

    display: block;
}


.pc-proposal-final-note strong {

    color: var(--pc-navy);

    font-size: 11px;
}


.pc-proposal-final-note span {

    margin-top: 4px;

    color: var(--pc-text);

    font-size: 10px;

    line-height: 1.55;
}



/* =========================================================
   Submit button
========================================================= */

.pc-proposal-submit-btn {

    display: inline-flex;

    min-height: 50px;

    align-items: center;

    justify-content: center;

    gap: 10px;

    padding: 12px 21px;

    border: 0;

    border-radius: 13px;

    color: #ffffff;

    background:
        linear-gradient(135deg,
            var(--pc-cyan-dark),
            var(--pc-cyan));

    font-size: 12px;

    font-weight: 700;

    box-shadow:
        0 13px 30px rgba(8, 184, 209, .2);

    cursor: pointer;

    transition:
        transform .18s ease,
        box-shadow .18s ease;
}


.pc-proposal-submit-btn:hover {

    transform: translateY(-2px);

    box-shadow:
        0 18px 38px rgba(8, 184, 209, .27);
}


/* =========================================================
   Phase 3B · Secure submission
========================================================= */


/* ---------------------------------------------------------
   Honeypot

   Intentionally not display:none.
   It remains outside the visible viewport for genuine users.
--------------------------------------------------------- */

.pc-proposal-honeypot {

    position: absolute !important;

    left: -10000px !important;

    top: auto !important;

    width: 1px !important;

    height: 1px !important;

    overflow: hidden !important;

    opacity: 0 !important;

    pointer-events: none !important;
}



/* ---------------------------------------------------------
   Submission loading state
--------------------------------------------------------- */

.pc-proposal-submit-btn:disabled {

    transform: none;

    opacity: .72;

    cursor: not-allowed;

    box-shadow:
        0 8px 20px rgba(8, 184, 209, .12);
}


.pc-proposal-back-btn:disabled,
.pc-review-edit-btn:disabled {

    transform: none;

    opacity: .5;

    cursor: not-allowed;

    pointer-events: none;
}


.pc-submit-spinner {

    display: inline-block;

    width: 15px;

    height: 15px;

    flex: 0 0 auto;

    border: 2px solid rgba(255, 255, 255, .4);

    border-top-color: #ffffff;

    border-radius: 50%;

    animation:
        pc-submit-spin .7s linear infinite;
}


@keyframes pc-submit-spin {

    to {

        transform:
            rotate(360deg);

    }

}



/* ---------------------------------------------------------
   Dialog variants
--------------------------------------------------------- */

.pc-dialog[data-variant="success"] .pc-dialog-icon {

    color: var(--pc-green);

    background:
        rgba(22, 140, 100, .1);
}


.pc-dialog[data-variant="error"] .pc-dialog-icon {

    color: var(--pc-danger);

    background:
        rgba(195, 74, 74, .09);
}



/* ---------------------------------------------------------
   Proposal reference
--------------------------------------------------------- */

.pc-dialog-reference {

    margin-top: 20px;

    padding: 14px 16px;

    border:
        1px solid rgba(8, 184, 209, .18);

    border-radius: 13px;

    background: var(--pc-cyan-soft);
}


.pc-dialog-reference[hidden] {

    display: none !important;
}


.pc-dialog-reference span,
.pc-dialog-reference strong {

    display: block;
}


.pc-dialog-reference span {

    color: var(--pc-muted);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .08em;

    text-transform: uppercase;
}


.pc-dialog-reference strong {

    margin-top: 4px;

    color: var(--pc-navy);

    font-size: 13px;

    font-weight: 800;

    letter-spacing: .04em;

    overflow-wrap: anywhere;
}


/* =========================================================
   Custom PsychCura Dialog
========================================================= */

.pc-dialog {

    position: fixed;

    inset: 0;

    z-index: 99999;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 20px;

    visibility: hidden;

    opacity: 0;

    pointer-events: none;

    transition:
        opacity .18s ease,
        visibility .18s ease;
}


.pc-dialog.is-open {

    visibility: visible;

    opacity: 1;

    pointer-events: auto;
}


.pc-dialog-backdrop {

    position: absolute;

    inset: 0;

    background:
        rgba(7, 28, 43, .58);

    backdrop-filter:
        blur(5px);
}


.pc-dialog-panel {

    position: relative;

    z-index: 1;

    width: min(100%, 430px);

    padding: 34px;

    border:
        1px solid rgba(255, 255, 255, .65);

    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 30px 90px rgba(5, 25, 40, .28);

    text-align: center;

    transform: translateY(12px) scale(.98);

    transition: transform .2s ease;
}


.pc-dialog.is-open .pc-dialog-panel {

    transform: translateY(0) scale(1);
}


.pc-dialog-close {

    position: absolute;

    top: 15px;

    right: 15px;

    display: flex;

    width: 34px;

    height: 34px;

    align-items: center;

    justify-content: center;

    border: 0;

    border-radius: 50%;

    color: var(--pc-muted);

    background: #f2f7f8;

    cursor: pointer;
}


.pc-dialog-icon {

    display: flex;

    width: 58px;

    height: 58px;

    align-items: center;

    justify-content: center;

    margin: 0 auto 18px;

    border-radius: 18px;

    color: var(--pc-cyan-dark);

    background: var(--pc-cyan-soft);

    font-size: 20px;
}


.pc-dialog-panel h2 {

    margin: 0;

    color: var(--pc-navy);

    font-family:
        "Playfair Display",
        serif;

    font-size: 1.7rem;

    font-weight: 600;
}


.pc-dialog-panel p {

    margin: 12px 0 0;

    color: var(--pc-text);

    font-size: 12px;

    line-height: 1.65;
}


.pc-dialog-action {

    width: 100%;

    min-height: 47px;

    margin-top: 23px;

    border: 0;

    border-radius: 12px;

    color: #ffffff;

    background: var(--pc-navy);

    font-size: 12px;

    font-weight: 700;

    cursor: pointer;
}


body.pc-dialog-lock {

    overflow: hidden;
}



/* =========================================================
   Accessibility
========================================================= */

.pc-proposal-page button:focus-visible,
.pc-proposal-page a:focus-visible,
.pc-proposal-page input:focus-visible {

    outline:
        3px solid rgba(8, 184, 209, .25);

    outline-offset: 2px;
}



/* =========================================================
   Tablet
========================================================= */

@media (max-width: 991.98px) {

    .pc-proposal-intro-grid {

        grid-template-columns: 1fr;

        gap: 28px;
    }


    .pc-proposal-layout {

        grid-template-columns: 1fr;
    }


    .pc-proposal-progress {

        position: static;
    }


    .pc-proposal-steps {

        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }


    .pc-proposal-steps li {

        display: block;

        padding: 10px;

        text-align: center;
    }


    .pc-proposal-step-marker {

        margin: 0 auto 8px;
    }


    .pc-proposal-steps div span {

        display: none;
    }


    .pc-proposal-progress-help {

        display: none;
    }

}



/* =========================================================
   Mobile
========================================================= */

@media (max-width: 767.98px) {

    .pc-proposal-intro {

        padding: 38px 0 34px;
    }


    .pc-proposal-back {

        margin-bottom: 24px;
    }


    .pc-proposal-intro h1 {

        font-size:
            clamp(2.5rem, 12vw, 3.5rem);
    }


    .pc-proposal-workspace {

        padding: 28px 0 72px;
    }


    .pc-proposal-progress {

        padding: 17px;

        border-radius: 18px;
    }


    .pc-proposal-steps {

        gap: 3px;
    }


    .pc-proposal-steps strong {

        font-size: 9px;
    }


    .pc-proposal-step-marker {

        width: 30px;

        height: 30px;

        font-size: 10px;
    }


    .pc-proposal-form-card {

        padding: 24px 18px;

        border-radius: 19px;
    }


    .pc-proposal-form-heading h2 {

        font-size: 1.9rem;
    }


    .pc-proposal-type-grid {

        grid-template-columns: 1fr;
    }


    .pc-proposal-type-ui {

        min-height: 0;

        flex-direction: row;

        align-items: flex-start;

        gap: 14px;
    }


    .pc-proposal-type-copy {

        margin-top: 0;

        padding-right: 25px;
    }


    .pc-proposal-fields {

        grid-template-columns: 1fr;

        gap: 18px;
    }


    .pc-proposal-field-wide {

        grid-column: auto;
    }


    .pc-proposal-form-footer {

        display: grid;
    }


    .pc-proposal-next-btn {

        width: 100%;
    }


    .pc-dialog-panel {

        padding:
            31px 22px 23px;

        border-radius: 20px;
    }

    .pc-proposal-field-meta {

        align-items: flex-start;
    }


    .pc-proposal-form-footer {

        grid-template-columns: 1fr;
    }


    .pc-proposal-back-btn {

        width: 100%;

        order: 2;
    }


    .pc-proposal-next-btn {

        order: 1;
    }

    .pc-proposal-link-details {

        padding: 18px;
    }


    .pc-proposal-link-fields {

        grid-template-columns: 1fr;
    }


    .pc-proposal-policy-note {

        align-items: flex-start;
    }

    /* Step 4 review */

    .pc-review-grid {

        grid-template-columns: 1fr;

        padding:
            4px 17px;
    }


    .pc-review-grid .pc-review-item,
    .pc-review-grid .pc-review-item:nth-child(odd):not(.pc-review-item-wide),
    .pc-review-grid .pc-review-item:nth-child(even):not(.pc-review-item-wide) {

        grid-column: auto;

        padding:
            14px 0;

        border-left: 0;

        border-bottom:
            1px solid rgba(220, 233, 238, .78);
    }


    .pc-review-grid .pc-review-item:last-child {

        border-bottom: 0;
    }


    .pc-proposal-declarations {

        padding: 18px;
    }


    .pc-proposal-submit-btn {

        width: 100%;

        order: 1;
    }


    #pcProposalStepFourBack {

        order: 2;
    }

}



/* =========================================================
   Reduced motion
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .pc-proposal-page *,
    .pc-proposal-page *::before,
    .pc-proposal-page *::after {

        scroll-behavior: auto !important;

        transition-duration: .01ms !important;

        animation-duration: .01ms !important;
    }

}