/*==================================================
=          01. Appointment Section
==================================================*/

.appointment-section{

    position:relative;

    padding:120px 0;

    overflow:hidden;

}

.appointment-section::before{

    content:"";

    position:absolute;

    inset:0;

    background:

    radial-gradient(circle at top right,
    rgba(216,168,91,.08),
    transparent 45%),

    radial-gradient(circle at bottom left,
    rgba(45,140,255,.05),
    transparent 45%);

    pointer-events:none;

}

.appointment-section .container{

    position:relative;

    z-index:2;

}


/*==================================================
=          02. Wrapper
==================================================*/

.appointment-wrapper{

    display:grid;

    grid-template-columns:480px 1fr;

    gap:60px;

    padding:35px;

    border-radius:30px;

    overflow:hidden;

}


/*==================================================
=          03. Left Image
==================================================*/

.appointment-image{

    position:relative;

    border-radius:24px;

    overflow:hidden;

}

.appointment-image img{

    width:100%;

    height:100%;

    min-height:640px;

    object-fit:cover;

    display:block;

}

.appointment-image::after{

    content:"";

    position:absolute;

    inset:0;

    background:

    linear-gradient(

        to top,

        rgba(0,0,0,.45),

        transparent

    );

}


/*==================================================
=          04. Right Form
==================================================*/

.appointment-form{

    display:flex;

    align-items:center;

}

.appointment-form form{

    width:100%;

}


/*==================================================
=          05. Grid
==================================================*/

.form-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:24px;

}


/*==================================================
=          06. Form Group
==================================================*/

.form-group{

    margin-bottom:24px;

}

.form-group label{

    display:block;

    margin-bottom:10px;

    font-size:14px;

    font-weight:600;

    color:#cbd5e1;

}


/*==================================================
=          07. Inputs
==================================================*/

.form-group input,

.form-group select,

.form-group textarea{

    width:100%;

    border:none;

    outline:none;

    border-radius:18px;

    padding:16px 20px;

    font-size:15px;

    font-family:inherit;

    color:#fff;

    background:

    rgba(255,255,255,.05);

    border:1px solid

    rgba(255,255,255,.08);

    transition:.35s;

}


/*==================================================
=          08. Textarea
==================================================*/

.form-group textarea{

    resize:vertical;

    min-height:170px;

}


/*==================================================
=          09. Placeholder
==================================================*/

.form-group input::placeholder,

.form-group textarea::placeholder{

    color:#94a3b8;

}


/*==================================================
=          10. Focus
==================================================*/

.form-group input:focus,

.form-group textarea:focus,

.form-group select:focus{

    border-color:#d8a85b;

    background:

    rgba(255,255,255,.08);

    box-shadow:

    0 0 0 4px

    rgba(216,168,91,.12);

}
/*==================================================
=          11. Submit Button
==================================================*/

.appointment-submit{

    width:100%;

    height:60px;

    border:none;

    border-radius:18px;

    cursor:pointer;

    font-size:16px;

    font-weight:700;

    font-family:inherit;

    color:#fff;

    background:linear-gradient(
        135deg,
        #d8a85b,
        #c89338
    );

    box-shadow:
        0 15px 35px rgba(216,168,91,.25);

    transition:.35s;

}


/*==================================================
=          12. Submit Hover
==================================================*/

.appointment-submit:hover{

    transform:translateY(-4px);

    box-shadow:
        0 20px 45px rgba(216,168,91,.35);

}


.appointment-submit:active{

    transform:scale(.98);

}


/*==================================================
=          13. Disabled
==================================================*/

.appointment-submit:disabled{

    opacity:.6;

    cursor:not-allowed;

    transform:none;

}


/*==================================================
=          14. Loading State
==================================================*/

.appointment-submit.loading{

    position:relative;

    color:transparent;

}


.appointment-submit.loading::after{

    content:"";

    position:absolute;

    left:50%;

    top:50%;

    width:22px;

    height:22px;

    margin-left:-11px;

    margin-top:-11px;

    border-radius:50%;

    border:3px solid rgba(255,255,255,.35);

    border-top-color:#fff;

    animation:appointmentSpin .7s linear infinite;

}


/*==================================================
=          15. Result Message
==================================================*/

.appointment-result{

    display:none;

    margin-top:25px;

    padding:16px 20px;

    border-radius:16px;

    font-size:14px;

    line-height:1.9;

}


/*==================================================
=          16. Success
==================================================*/

.appointment-result.success{

    display:block;

    background:

    rgba(34,197,94,.08);

    border:1px solid

    rgba(34,197,94,.18);

    color:#4ade80;

}


/*==================================================
=          17. Error
==================================================*/

.appointment-result.error{

    display:block;

    background:

    rgba(239,68,68,.08);

    border:1px solid

    rgba(239,68,68,.18);

    color:#f87171;

}


/*==================================================
=          18. Glass Card
==================================================*/

.appointment-wrapper.glass-card{

    background:

    rgba(255,255,255,.03);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    border:1px solid

    rgba(255,255,255,.08);

}


/*==================================================
=          19. Select Style
==================================================*/

.form-group select{

    appearance:none;

    -webkit-appearance:none;

    background-image:

    linear-gradient(45deg,transparent 50%,#d8a85b 50%),

    linear-gradient(135deg,#d8a85b 50%,transparent 50%);

    background-position:

    calc(100% - 24px) calc(50% - 3px),

    calc(100% - 18px) calc(50% - 3px);

    background-size:

    6px 6px,

    6px 6px;

    background-repeat:no-repeat;

}


/*==================================================
=          20. Invalid Fields
==================================================*/

.form-group input:invalid,

.form-group textarea:invalid{

    box-shadow:none;

}


/*==================================================
=          21. Hover Inputs
==================================================*/

.form-group input:hover,

.form-group textarea:hover,

.form-group select:hover{

    border-color:

    rgba(216,168,91,.35);

}


/*==================================================
=          22. Animation
==================================================*/

@keyframes appointmentSpin{

    from{

        transform:rotate(0);

    }

    to{

        transform:rotate(360deg);

    }

}


/*==================================================
=          23. Fade Up
==================================================*/

.appointment-wrapper{

    animation:appointmentFade .7s ease;

}


@keyframes appointmentFade{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:none;

    }

}
/*==================================================
=          24. Responsive - Large Desktop
==================================================*/

@media (max-width:1400px){

    .appointment-wrapper{

        grid-template-columns:420px 1fr;

        gap:45px;

    }

}


/*==================================================
=          25. Responsive - Laptop
==================================================*/

@media (max-width:1200px){

    .appointment-wrapper{

        grid-template-columns:380px 1fr;

        gap:35px;

        padding:30px;

    }

    .appointment-image img{

        min-height:560px;

    }

}


/*==================================================
=          26. Responsive - Tablet
==================================================*/

@media (max-width:992px){

    .appointment-wrapper{

        grid-template-columns:1fr;

    }

    .appointment-image{

        height:420px;

    }

    .appointment-image img{

        min-height:100%;

        height:100%;

    }

    .appointment-form{

        margin-top:15px;

    }

}


/*==================================================
=          27. Responsive - Small Tablet
==================================================*/

@media (max-width:768px){

    .appointment-section{

        padding:90px 0;

    }

    .appointment-wrapper{

        padding:22px;

        gap:28px;

        border-radius:24px;

    }

    .form-grid{

        grid-template-columns:1fr;

        gap:0;

    }

    .appointment-image{

        height:320px;

        border-radius:18px;

    }

    .appointment-image img{

        height:100%;

    }

    .form-group{

        margin-bottom:18px;

    }

    .form-group input,

    .form-group textarea,

    .form-group select{

        padding:15px 16px;

        font-size:14px;

        border-radius:14px;

    }

    .appointment-submit{

        height:56px;

        font-size:15px;

        border-radius:14px;

    }

}


/*==================================================
=          28. Responsive - Mobile
==================================================*/

@media (max-width:576px){

    .appointment-section{

        padding:70px 0;

    }

    .appointment-wrapper{

        padding:16px;

    }

    .appointment-image{

        height:240px;

    }

    .appointment-image img{

        height:100%;

    }

    .section-header h2{

        font-size:28px;

    }

    .section-header p{

        font-size:14px;

    }

    .form-group label{

        font-size:13px;

    }

    .form-group textarea{

        min-height:140px;

    }

    .appointment-submit{

        height:52px;

        font-size:14px;

    }

    .appointment-result{

        font-size:13px;

    }

}


/*==================================================
=          29. Dark Inputs Autofill
==================================================*/

input:-webkit-autofill,

textarea:-webkit-autofill,

select:-webkit-autofill{

    -webkit-box-shadow:0 0 0 1000px rgba(255,255,255,.05) inset;

    -webkit-text-fill-color:#fff;

    transition:background-color 9999s;

}


/*==================================================
=          30. Smooth Transition
==================================================*/

.appointment-wrapper,

.form-group input,

.form-group textarea,

.form-group select,

.appointment-submit{

    transition:all .3s ease;

}