﻿html {
    overflow-x: hidden;
}

body {
    font-family: 'Helvetica Neue', Arial, sans-serif;
    color: #12233b;
    background: #f4f7fa;
}

.pa-home a {
    text-decoration: none;
}

.pa-btn-yellow {
    background-color: #ffcb05;
    color: #0a1e38;
    font-weight: 700;
    letter-spacing: .02em;
    padding: .85rem 2rem;
    border-radius: 6px;
    border: none;
    display: inline-block;
    transition: background-color .2s ease, transform .15s ease;
}

    .pa-btn-yellow:hover {
        background-color: #f0bd00;
        color: #0a1e38;
        transform: translateY(-1px);
    }

.pa-view-all {
    color: #1c78c0;
    font-weight: 600;
}

.pa-form-page {
    max-width: 880px;
    margin: 0 auto;
    padding: 2.5rem 1rem 5rem;
}

.pa-form-title {
    font-size: 2rem;
    font-weight: 800;
    color: #0f2a4a;
    margin-bottom: .35rem;
}

.pa-form-title-accent {
    color: #1c78c0;
}

.pa-form-sub {
    color: #5c7188;
    font-size: .95rem;
    margin-bottom: .5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
}

    .pa-form-sub .req {
        color: #e0663e;
    }

.pa-draft-status {
    font-size: .8rem;
    color: #2fa84f;
    font-weight: 600;
    opacity: 0;
    transition: opacity .3s ease;
    display: flex;
    align-items: center;
    gap: .35rem;
}

    .pa-draft-status.is-visible {
        opacity: 1;
    }

.pa-start-over {
    font-size: .8rem;
    color: #8695a5;
    font-weight: 600;
}

    .pa-start-over:hover {
        color: #e0663e;
    }

.pa-stepper {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin: 1.75rem 0 2.5rem;
    position: relative;
}

    .pa-stepper::before {
        content: "";
        position: absolute;
        top: 19px;
        left: 6%;
        right: 6%;
        height: 2px;
        background: #dce6ef;
        z-index: 0;
    }

.pa-step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    cursor: pointer;
}

.pa-step-circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #dce6ef;
    color: #9fb0c0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .95rem;
    transition: all .2s ease;
}

.pa-step-label {
    font-size: .72rem;
    font-weight: 600;
    color: #9fb0c0;
    margin-top: .5rem;
    text-align: center;
    max-width: 90px;
    letter-spacing: .01em;
    text-transform: uppercase;
}

.pa-step.is-active .pa-step-circle {
    background: #12284C;
    border-color: #12284C;
    color: #fff;
    box-shadow: 0 0 0 5px rgba(18,40,76,0.12);
}

.pa-step.is-active .pa-step-label {
    color: #12284C;
}

.pa-step.is-done .pa-step-circle {
    background: #2fa84f;
    border-color: #2fa84f;
    color: #fff;
}

.pa-step.is-done .pa-step-label {
    color: #2fa84f;
}

.pa-step.is-locked {
    cursor: default;
}

.pa-card {
    background: #fff;
    border-radius: 14px;
    padding: 2rem 2rem 2.25rem;
    box-shadow: 0 2px 10px rgba(15,42,74,0.06);
    margin-bottom: 1.5rem;
}

.pa-card-head {
    display: flex;
    align-items: center;
    gap: .9rem;
    margin-bottom: 1.5rem;
}

.pa-card-icon {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 2px solid #1c78c0;
    color: #1c78c0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    background: #fff;
}

.pa-card-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #0f2a4a;
    margin: 0;
}

.pa-card-note {
    color: #1c78c0;
    font-weight: 600;
    font-size: .9rem;
    margin-bottom: 1.25rem;
}

.pa-field {
    margin-bottom: 1.25rem;
}

    .pa-field label {
        font-weight: 600;
        font-size: .88rem;
        color: #0f2a4a;
        margin-bottom: .35rem;
        display: block;
    }

        .pa-field label .req {
            color: #e0663e;
            margin-left: 2px;
        }

    .pa-field .form-control, .pa-field .form-select {
        border: 1.5px solid #dce6ef;
        border-radius: 8px;
        padding: .6rem .85rem;
        font-size: .95rem;
        color: #12233b;
    }

        .pa-field .form-control:focus, .pa-field .form-select:focus {
            border-color: #1c78c0;
            box-shadow: 0 0 0 3px rgba(28,120,192,0.12);
        }

        .pa-field .form-control.is-invalid, .pa-field .form-select.is-invalid {
            border-color: #e0663e;
            background-image: none;
        }

.pa-help {
    font-size: .78rem;
    color: #8695a5;
    margin-top: .3rem;
}

.invalid-feedback {
    font-size: .78rem;
    color: #e0663e;
    font-weight: 600;
    margin-top: .3rem;
}

.pa-agreement-box {
    border: 1.5px solid #dce6ef;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
    max-height: 220px;
    overflow-y: auto;
    font-size: .88rem;
    color: #3c4b5c;
    line-height: 1.6;
    background: #fafbfc;
}

    .pa-agreement-box ul {
        padding-left: 1.1rem;
        margin-bottom: .5rem;
    }

.pa-agree-check {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    background: #e8f3fb;
    border-radius: 10px;
    padding: 1rem 1.1rem;
    margin-top: 1.25rem;
}

    .pa-agree-check input {
        margin-top: .2rem;
        width: 18px;
        height: 18px;
    }

    .pa-agree-check label {
        font-weight: 600;
        color: #0f2a4a;
        font-size: .9rem;
        margin: 0;
    }

.pa-check-row {
    display: flex;
    align-items: center;
    gap: .65rem;
    background: #eef3f8;
    border-radius: 8px;
    padding: .85rem 1rem;
    margin-bottom: 1.25rem;
}

    .pa-check-row input {
        width: 18px;
        height: 18px;
    }

    .pa-check-row label {
        margin: 0;
        font-weight: 600;
        color: #0f2a4a;
        font-size: .9rem;
    }

.pa-iexit-row {
    background: #eaf6ee;
    border: 1px solid #cbe8d4;
}

.pa-toggle-group {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

    .pa-toggle-group input {
        position: absolute;
        opacity: 0;
        width: 1px;
        height: 1px;
    }

    .pa-toggle-group label {
        border: 1.5px solid #dce6ef;
        border-radius: 8px;
        padding: .55rem 1.1rem;
        font-weight: 600;
        font-size: .88rem;
        color: #3c4b5c;
        cursor: pointer;
        transition: all .15s ease;
        margin: 0;
    }

    .pa-toggle-group input:checked + label {
        background: #12284C;
        border-color: #12284C;
        color: #fff;
    }

    .pa-toggle-group input:focus-visible + label {
        outline: 2px solid #1c78c0;
        outline-offset: 2px;
    }

    .pa-toggle-group label i.fa-check,
    .pa-nights-group label i.fa-check {
        display: none;
        font-size: .75em;
        margin-right: .35rem;
    }

    .pa-toggle-group input:checked + label i.fa-check,
    .pa-nights-group input:checked + label i.fa-check {
        display: inline-block;
    }

.pa-nights-group {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

    .pa-nights-group input {
        position: absolute;
        opacity: 0;
        width: 1px;
        height: 1px;
    }

    .pa-nights-group label {
        border: 1.5px solid #dce6ef;
        border-radius: 999px;
        padding: .5rem 1.15rem;
        font-weight: 600;
        font-size: .85rem;
        color: #3c4b5c;
        cursor: pointer;
        transition: all .15s ease;
        margin: 0;
    }

    .pa-nights-group input:checked + label {
        background: #1c78c0;
        border-color: #1c78c0;
        color: #fff;
    }

.pa-callout {
    background: #f0f6fb;
    border-left: 4px solid #1c78c0;
    border-radius: 0 10px 10px 0;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    font-size: .9rem;
    color: #2a3d52;
}

    .pa-callout strong {
        color: #0f2a4a;
    }

.pa-amenity-group-title {
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #5c7188;
    margin: 1.25rem 0 .6rem;
}

    .pa-amenity-group-title:first-child {
        margin-top: 0;
    }

.pa-chip-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

    .pa-chip-grid input {
        position: absolute;
        opacity: 0;
        width: 1px;
        height: 1px;
    }

    .pa-chip-grid label {
        border: 1.5px solid #dce6ef;
        border-radius: 999px;
        padding: .4rem .9rem;
        font-size: .83rem;
        font-weight: 600;
        color: #3c4b5c;
        cursor: pointer;
        transition: all .15s ease;
        margin: 0;
        display: inline-flex;
        align-items: center;
        gap: .35rem;
    }

    .pa-chip-grid input:checked + label {
        background: #e8f3fb;
        border-color: #1c78c0;
        color: #1c78c0;
    }

    .pa-chip-grid label i.fa-check {
        display: none;
        font-size: .7rem;
    }

    .pa-chip-grid input:checked + label i.fa-check {
        display: inline-block;
    }

.pa-chip-placeholder {
    font-size: .82rem;
    color: #8695a5;
    font-style: italic;
    padding: .4rem 0;
}

.pa-step-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1rem;
}

.pa-btn-back {
    color: #5c7188;
    font-weight: 600;
    font-size: .9rem;
    background: none;
    border: none;
    display: flex;
    align-items: center;
    gap: .4rem;
}

    .pa-btn-back:hover {
        color: #12284C;
    }

.pa-btn-next {
    background: #12284C;
    color: #fff;
    font-weight: 700;
    border: none;
    border-radius: 8px;
    padding: .75rem 1.75rem;
    font-size: .95rem;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    transition: background .15s ease;
}

    .pa-btn-next:hover {
        background: #0e1d38;
        color: #fff;
    }

.pa-submit-note {
    text-align: center;
    color: #12233b;
    font-weight: 600;
    margin-bottom: .35rem;
}

.pa-submit-sub {
    text-align: center;
    color: #1c78c0;
    font-size: .9rem;
    margin-bottom: 1.5rem;
}

.pa-fieldset-hidden {
    display: none;
}

.pa-toggle-group input:disabled + label {
    opacity: .45;
    cursor: not-allowed;
    background: #f4f7fa;
}

.pa-review-section {
    border-bottom: 1px solid #eef1f5;
    padding: 1.1rem 0;
}

    .pa-review-section:first-child {
        padding-top: 0;
    }

    .pa-review-section:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

.pa-review-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .75rem;
}

    .pa-review-section-head h3 {
        font-size: .95rem;
        font-weight: 700;
        color: #0f2a4a;
        margin: 0;
        display: flex;
        align-items: center;
        gap: .5rem;
    }

        .pa-review-section-head h3 i {
            color: #1c78c0;
            font-size: .85rem;
        }

.pa-review-edit {
    font-size: .8rem;
    font-weight: 600;
    color: #1c78c0;
    display: flex;
    align-items: center;
    gap: .3rem;
}

    .pa-review-edit:hover {
        color: #0f2a4a;
    }

.pa-review-row {
    display: flex;
    gap: 1rem;
    padding: .4rem 0;
    font-size: .87rem;
}

.pa-review-label {
    flex: 0 0 190px;
    color: #5c7188;
    font-weight: 600;
}

.pa-review-value {
    flex: 1;
    color: #12233b;
    word-break: break-word;
    white-space: pre-line;
}

.pa-review-empty {
    color: #b7c1cc;
    font-style: italic;
}

@media (max-width: 575.98px) {
    .pa-review-row {
        flex-direction: column;
        gap: .15rem;
    }

    .pa-review-label {
        flex: none;
    }
}

.pa-thanks-hero {
    text-align: center;
    padding: 1rem 1rem 2.5rem;
}

.pa-thanks-badge {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    background: #e9f8ee;
    border: 3px solid #2fa84f;
    color: #2fa84f;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.1rem;
    margin: 0 auto 1.5rem;
}

.pa-thanks-title {
    font-size: 2.1rem;
    font-weight: 800;
    color: #0f2a4a;
    margin-bottom: .65rem;
}

.pa-thanks-sub {
    color: #5c7188;
    font-size: 1.05rem;
    max-width: 46ch;
    margin: 0 auto;
}

    .pa-thanks-sub strong {
        color: #0f2a4a;
    }

.pa-confirmation-strip {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    background: #e8f3fb;
    border-radius: 999px;
    padding: .6rem 1.4rem;
    font-size: .85rem;
    font-weight: 700;
    color: #0f2a4a;
    letter-spacing: .02em;
    width: fit-content;
    margin: 1.5rem auto 0;
}

    .pa-confirmation-strip i {
        color: #1c78c0;
    }

    .pa-confirmation-strip span.mono {
        font-family: 'Courier New', monospace;
        color: #1c78c0;
    }

.pa-next-step {
    display: flex;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid #eef1f5;
}

    .pa-next-step:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    .pa-next-step:first-child {
        padding-top: 0;
    }

.pa-next-step-num {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #12284C;
    color: #fff;
    font-weight: 700;
    font-size: .9rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pa-next-step-title {
    font-weight: 700;
    color: #0f2a4a;
    font-size: .98rem;
    margin-bottom: .2rem;
}

.pa-next-step-text {
    color: #5c7188;
    font-size: .9rem;
    margin: 0;
}

.pa-summary-row {
    display: flex;
    gap: 1rem;
    padding: .5rem 0;
    font-size: .9rem;
}

.pa-summary-label {
    flex: 0 0 160px;
    color: #5c7188;
    font-weight: 600;
}

.pa-summary-value {
    color: #12233b;
    font-weight: 600;
}

.pa-help-callout {
    background: #f0f6fb;
    border-left: 4px solid #1c78c0;
    border-radius: 0 10px 10px 0;
    padding: 1rem 1.25rem;
    font-size: .9rem;
    color: #2a3d52;
}

    .pa-help-callout strong {
        color: #0f2a4a;
    }

.pa-thanks-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin-top: .5rem;
}

@media (max-width: 575.98px) {
    .pa-thanks-title {
        font-size: 1.65rem;
    }

    .pa-summary-row {
        flex-direction: column;
        gap: .15rem;
    }

    .pa-summary-label {
        flex: none;
    }
}
