@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap');

body, html {
    scroll-behavior: smooth;
}

.p24__wrapper {
    position:relative;
    background:transparent url(img/p24_bg@2x.jpg) no-repeat center;
    background-size: cover;
    border-radius:20px;
    padding:5rem 0;
    font-family: 'Lato', sans-serif;
    font-size:14px;
    line-height:19px;
    color:#3F4346;
}
.p24__wrapper--stripe {
    background:none !important;
    border-radius:0;
    padding:0;
}
.p24__wrapper * {
    box-sizing: border-box;
}
.p24__container {
    display:block;
    margin:0 auto;
    width:100%;
    max-width:688px;
    background-color:#fff;
    border-radius:20px;
    box-shadow:0 30px 60px rgba(0,0,0,.16);
}
.p24__container--stripe {
    box-shadow:none;
    max-width:100%;
    border-radius:0px;
}

.p24__content {
    padding:2rem 4rem;
    text-align: left;
}
.p24__payment-banner {
    margin-bottom:3rem;
}
.p24__header {
    font-size:30px;
    line-height:36px;
    font-weight:bold;
    margin-bottom:2rem;
    font-family: 'Lato', sans-serif;
}

.p24__form-header {
    font-size:16px;
    line-height:19px;
    font-weight:bold;
    font-family: 'Lato', sans-serif;
    margin-bottom:1.5rem;
}
.p24__form-section {
    margin-bottom:3rem;
}
.p24__form .form-group {
    position:relative;
}

.p24__form .radio--plain {
    position:relative;
    margin-bottom: .75rem;
    min-height:32px;
}
.p24__form .radio--plain label{
    margin:0;
    padding-top: 0.42rem;
    cursor:pointer;
    padding-left:calc(30px + 1rem);
}
.p24__form .radio--plain input {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    margin:0;
    opacity:0;
    cursor:pointer;
}
.p24__form .radio--plain label::before{
    content: "";
    position:absolute;
    left:0;
    top:0;
    width:30px;
    height:30px;
    border-radius:2rem;
    border:2px solid #D9D9D9;
}
.p24__form .radio--plain label::after{
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:14px;
    height:14px;
    margin:10px;
    background-color: #7CB937;
    border-radius:1rem;
    opacity:0;
}
.p24__form .radio--plain input:checked + label::before{
    border-color:#7CB937;
}
.p24__form .radio--plain input:checked + label::after{
    opacity:1;
}

.p24__form .radio-group {
    display:flex;
    flex-wrap:wrap;  
    gap:1.5rem;
}
.p24__form .radio-group > div {
    flex: 0 0 calc(50% - .75rem);
    position:relative;
}

.p24__form .radio-group > div > input {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    opacity:0;
    z-index:10;
    cursor:pointer;
    margin:0;
}

.p24__form .radio-group > div > label:not(.error),
#other_amount_input, #stripe_other_amount_input {
    display:block;
    font-size:24px;
    line-height:80px;
    height:80px;
    border-radius:10px;
    background-color:#DAE7EE;
    color:#163B66;
    text-align: center;
    font-weight:bold;
    cursor:pointer;
    border:2px solid #DAE7EE;
    margin:0;
}
.p24__form.p24__form--stripe .radio-group > div > label:not(.error),
#stripe_other_amount_input {
    line-height:87px;
    height:87px;
}

.p24__form .radio-group > div > label.error {
    position:absolute;
    top:0;
    left:0;
    display:none;
}

.p24__form .radio-group > div > input:checked + label,
#other_amount_input, #stripe_other_amount_input {
    background: rgb(22,59,102);
    background: -moz-linear-gradient(140deg, rgba(22,59,102,1) 0%, rgba(66,131,187,1) 100%);
    background: -webkit-linear-gradient(140deg, rgba(22,59,102,1) 0%, rgba(66,131,187,1) 100%);
    background: linear-gradient(140deg, rgba(22,59,102,1) 0%, rgba(66,131,187,1) 100%);
    color:#fff;
    border-color: #9ACDDA;
} 
#other_amount_input,
#stripe_other_amount_input{
    display:none;
}
#other_amount_input:focus-visible,
#stripe_other_amount_input:focus-visible{
    border-color: #9ACDDA;
    outline: none;
    box-shadow:none;
}

.p24__form .radio-group > div.radio-other > input:checked + label {
    display:none;
}

.p24__form .radio-group > div.radio-other > input:checked + label + #other_amount_input{
    position:relative;
    display:block;
    opacity:1;
    z-index:100;
}
.p24__form--stripe .radio-group > div.radio-other > input:checked + label + #stripe_other_amount_input{
    position:relative;
    display:block;
    opacity:1;
    z-index:100;
}

.p24__form .form-control {
    border:1px solid #D9D9D9 !important;
    border-radius: 10px !important;
    line-height:46px;
    height:46px;
    padding:0 1rem !important;
    margin-bottom: 25px;
    transition: border-color .35s ease, border-width .15s ease;
}
.p24__form .form-control::placeholder {
    color:#939393 !important;
}
.p24__form .form-control + label {
    position:absolute;
    top:0;
    left:.75rem;
    transform: translateY(-50%);
    background-color: #fff;
    padding:0 .25rem;
    font-size:12px;
    line-height:1;
}

.p24__form .paymant-group {
    display:flex;
    flex-wrap:wrap;
    gap:1.5rem;
}
.p24__form .paymant-group > div {
    position:relative;
    flex: 0 0 calc(33.333% - 1rem);
    aspect-ratio: 1/1;
}
.p24__form .paymant-group > div > label{
    width:100%;
    border:1px solid #D9D9D9;
    height:100%;
    border-radius:10px;
    margin:0;
    display:flex;
    justify-content: center;
    align-items: center;
    cursor:pointer;
    padding:1rem;
}
.p24__form .paymant-group > div > input{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    margin:0;
    opacity:0;
    cursor:pointer;
}
.p24__form .paymant-group > div > input:checked + label{
    border:2px solid #7CB937;
    box-shadow: 0 10px 20px rgba(0,0,0,.075);
}

.p24__form .checkbox > label {
    position:relative;
    font-size:8px;
    line-height:11px;
    padding-left:2.25rem;
    cursor:pointer;
    display:block;
}
.p24__form .checkbox > label >  input {
    position:absolute;
    left:1px;
    top:1px;
    margin:0;
}
.p24__form .checkbox > label >  input::before {
    content:"";
    position:absolute;
    left:-1px;
    top:-1px;
    width:20px;
    height:20px;
    border-radius: 4px;
    background-color: #fff;
    border:1px solid #D9D9D9;
}
.p24__form .checkbox > label >  input::after {
    content:url(img/checked.svg);
    position:absolute;
    left:0;
    top:0;
    margin: 1px 4px;
}
.p24__form .checkbox> label > input.error::before {
    border:2px solid #f32c2c;
}
.p24__form .checkbox> label > label.error {
    position:absolute;
    top:100%;
    transform:translateY(100%);
    color:#f32c2c;
    font-size: 12px;
}
.p24__form .checkbox > label >  input:checked::before {
    background-color: #7CB937;
    border-color:#7CB937;
}
.p24__required-fields {
    display:block;
    font-size:10px;
    line-height:14px;
    letter-spacing: -0.02em;
    margin-top:2rem;
}
.p24__summary{
    display:flex;
    flex-direction:column;
    align-items: flex-end;
    margin:2rem 0;
}
.p24__summary--stripe {
    flex-direction: row;
    gap:1.5rem;
    margin-top: 0rem ;
    align-items: center;
}
.p24__summary--stripe hr{
    flex-grow: 1;
    height:2px;
    border-color:#707070;
    margin: 0;
    margin-top: 5px;
}
.p24__checkout {
    display: flex;
    flex-direction: row;
    width: 100%;
    justify-content: flex-end;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
.stripe__priceinfo {
    display:flex;
    flex-direction:row;
    justify-content: flex-end;
    align-items: center;
    gap:1.5rem;
    min-width:30%;
}

.p24__checkout strong{
    font-size:20px;
    line-height:24px;
    font-weight:bold;
    color:#7CB937;
    display:inline-block;
    text-align: right;
    min-width:calc(50px - 1rem);
    margin-left:1rem;
}
.p24__summary--stripe .p24__checkout {
    margin-bottom:0;
}
.p24__summary--stripe .p24__checkout strong{
    margin-left:0.5rem;
}
.p24__checkout hr{
    flex-grow: 1;
    height:2px;
    border-color:#707070;
    margin: 0;
    margin-top: 5px;
}
.p24__btn img {
    width:auto;
}
.p24__btn{
    display:flex;
    font-family: 'Lato', sans-serif;
    flex-direction: row;
    font-size:14px;
    font-weight:bold;
    line-height: 46px;
    color:#fff;
    background-color: #7CB937 !important;
    text-transform:uppercase !important;
    padding: .8rem 1.5rem !important;
    border:none;
    border-radius:3rem;
    cursor:pointer;
    align-items: center;
    justify-content: space-between;
    min-width:190px;
}
.p24__btn--stripe {
    padding: 1.1rem 1.75rem !important;
    min-width: 294px;
    border-radius: 60px;
}
.form-control.error {
    border-width:2px;
    border-color:#f32c2c !important;
    box-shadow:none;
    outline:none;
}
.form-control.error + label.error {
    color:#f32c2c;
    position: absolute;
    bottom: 0;
    top:auto;
    left: auto;
    transform: translateY(-20px);
    background-color: #fff;
    padding: 0 0.25rem;
    font-size: 12px;
    line-height: 1; 
    right:.75rem;
}
.form-control.error + label.error + label {
    color:#f32c2c;
    position: absolute;
    top: 0;
    left: 0.75rem;
    transform: translateY(-50%);
    background-color: #fff;
    padding: 0 0.25rem;
    font-size: 12px;
    line-height: 1;
}
.form-control.valid {
    border-width:2px;
    border-color:#7CB937 !important; 
}
.form-control.valid + label.error {
    display:none;
}
.form-control.valid + label {
    color:#7CB937;
}
.form-control.valid + label.error + label {
    color:#7CB937;
    position: absolute;
    top: 0;
    left: 0.75rem;
    transform: translateY(-50%);
    background-color: #fff;
    padding: 0 0.25rem;
    font-size: 12px;
    line-height: 1;
}

.amount-group.error .radio-group > div > label:not(.error){
    box-shadow: 0 0 0 2px #f32c2c;
}
.amount-group.error label.error{
    font-size: 12px;
    color: #f32c2c; 
    transform: translateY(8px);
    font-weight:400;
}
.p24_thankyou {
    padding:6rem 0;
}
.p24_thankyou img{
    max-width:140px;
    margin-bottom:1.5rem;
}
body:has(.p24_thankyou) #sub-header {
    display:none !important;
}
.p24_thankyou {
    text-align:center;
}
.elementor-kit-5 .p24_thankyou h1 {
    font-size:36px;
}
.stripe__cols {
    display:grid;
    grid-template-columns: repeat(2, 1fr);
    gap:1.5rem;
}
.stripe__cols .p24__form-section {
    margin-bottom:0;
}
@media (max-width:840px) {
    .p24__content--stripe {
        padding: 0 .7rem;
    }
    .stripe__cols {
        grid-template-columns: repeat(1, 1fr);
        gap:0;
        margin-bottom:40px;
    }
    .p24__summary--stripe hr {
        width:100%;
    }
    .p24__summary--stripe {
        flex-direction:column;
    }
    .stripe__priceinfo {

        justify-content: space-between;
        width:100%;
    }
    /*.p24__checkout {*/
    /*    justify-content: flex-start;*/
    /*}*/
    .p24__required-fields {
        margin-top:1rem;
        margin-bottom:1rem;
    }
    .p24__summary--stripe .p24__checkout{
        justify-content: flex-start;
    }
}
@media (max-width:600px) {
    .p24__content {
        padding:2rem;
    }
    .p24__form .radio-group > div {
        flex: 0 0 100%;
    }
    .p24__form .paymant-group > div{
        flex: 0 0 calc(50% - .75rem);
    }
    .p24__btn--stripe {
        min-width: 70%;
        line-height: 1.15;
    }

    .stripe__priceinfo {
        flex-direction:column;
        align-items: flex-end;
    }
    .p24__summary--stripe .p24__checkout {
        justify-content: flex-end;
    }
}
.p24__btn--stripe:disabled,
.p24__btn--stripe:disabled:hover  {
    background-color: #939393 !important;
    cursor:pointer !important;
}

.p24__form--stripe .radio-group > div > label.error {
    display:none !important;
}
.p24__form .radio-group:has(.radio-other.error) #stripe_other_amount_input {
    border-color: #f32c2c !important; 
    background: #ff6c6c !important; 
}
.radio-other.error:before {
    content: "Minimlna kwota to 5zł";
    position:absolute;
    width:100%;
    font-size:13px;
    bottom:0;
    left:0;
    padding: 2px 0px;
    color: #f32c2c;
    border-radius: 4px;
    transform: translateY(100%);
}
