* {
    box-sizing: border-box;
}

body {
    margin: 0;
}


/* =================================
   PAGE
================================= */

.registration-page {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    background-color: #f4f6f9;
}

/* Pseudo-element to handle the background perfectly */
.registration-page::before {
    content: "";
    position: absolute;
    top: 120px; /* Leaves 120px gap for the WordPress transparent menu */
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    
    /* This gradient repeats with the image and fades the bottom of each tile into white, creating a smooth, seamless blend into the next tile! */
    background-image: 
        linear-gradient(to bottom, rgba(244,246,249,0) 80%, rgba(244,246,249,1) 100%),
        url('../images/hps/web_bg.webp');
        
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: top center;
}

@media (max-width: 768px) {
    .registration-page::before {
        top: 0px;
        background-image: 
            linear-gradient(to bottom, rgba(244,246,249,0) 80%, rgba(244,246,249,1) 100%),
            url('../images/hps/mobile_bg_v2.jpeg');
    }
}


/* =================================
   MAIN CONTENT
================================= */

.page-content {
    position: relative;
    z-index: 1;

    width: 90%;
    max-width: 1050px;

    margin: 0 auto;

    padding: 135px 0 40px; /* Pushed down to clear the menu (15px original + 120px clearance) */
}


/* =================================
   LOGO / HEADER
================================= */

.event-header {
    width: 100%;

    display: flex;
    justify-content: center;

    margin-bottom: 20px;
    
}

.event-header img {
    display: block;

    width: 100%;
    max-width: 90%;

    height: auto;
}


/* =================================
   AGENDA / EVENT INFORMATION
================================= */

.agenda-box {
    width: 100%;

    background: rgba(255, 255, 255, 0.6);

    border-radius: 45px;

    overflow: hidden;

    margin-bottom: 25px;
}

.agenda-content {
    padding: 30px 40px 40px;

    font-size: 16px;
    line-height: 1.5;

    color: #333;
}

.agenda-content h4 {
    margin: 0 0 10px;

    font-size: 18px;

    color: #33256f;

    text-decoration: underline;
}

.agenda-content h3 {
    margin: 0 0 10px;
    font-size: 2rem;
    color: #00AAD4;

}

.agenda-content p {
    margin: 0 0 12px;
}

.agenda-content ol {
    margin-top: 5px;
    padding-left: 25px;
}

.agenda-content li {
    margin-bottom: 5px;
}


/* =================================
   REGISTRATION
================================= */

.registration-box {
    width: 100%;

    background: rgba(255, 255, 255, 0.6);

    border-radius: 45px;

    overflow: hidden;
}


/* Registration heading */

.registration-title {
    height: 35px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: white;

    font-size: 20px;

    background: linear-gradient(to right,
            #a88bbb,
            #4a367e,
            #a88bbb);
}


/* Registration form */

.registration-form {
    padding: 25px 40px 35px;
}


/* Footer */

.registration-footer {
    background: #32256f;

    color: white;

    text-align: center;

    padding: 20px;

    font-size: 10px;

    line-height: 1.5;
}


/* =================================
   MOBILE
================================= */

@media (max-width: 768px) {

    .page-content {
        width: 92%;

        padding-top: 10px;
    }

    .event-header {
        margin-bottom: 15px;
    }

    .event-header img {
        width: 100%;
        max-width: none;
    }

    .agenda-box {
        margin-bottom: 20px;

        border-radius: 45px;
    }

    .agenda-content {
        padding: 20px 22px 30px;

        font-size: 16px;
    }

    .registration-box {
        border-radius: 45px;
    }

    .registration-form {
        padding: 20px;
    }
}

.form-horizontal .control-label {
    font-weight: normal !important;
}

.agenda-content p {
    font-size: 16px !important;
}

.bg-color {
    background: #fff;
    color: black !important;
}

.about-event .row {
    padding-top: 2%;
}

.event-meta-info .event-info h4 {
    font-style: normal;
    font-weight: 700;
    font-size: 17px;
    line-height: 20px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: black;
}

.event-meta-info .event-info p {
    padding-left: 2em;
    margin-bottom: 0px;
}

.about-event p {
    font-size: 18px;

}

.about-event .about_section p {
    line-height: 25px;
}

.container {
    padding-bottom: 2em;
}

.control-label {
    font-weight: 400;
    font-size: 16px !important;
}

label {
    font-size: 16px !important;
}

#form-individual {
    padding: 10px;

}

.container-fluid {
    padding: 2em 0em 4em 0em;
    background: none !important;
    padding-bottom: 0px !important;
}

.main_box {
    min-height: 850px !important;
}

.about_section {
    text-align: justify;
    font-size: 16px !important;
}

.about_section p {
    text-align: justify;
    font-size: 16px !important;
}

p {
    font-size: 16px !important;
}

.program_table td {
    font-size: 17px !important;
    font-family: roboto !important;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
}

.program_table tr th {
    border-bottom: 1px solid #000;
}

.program_table tr td:first-child {
    text-align: center !important;
    font-weight: bold;
    vertical-align: middle;
}

.program_table tr td:last-child {
    border-left: 1px solid black;
    padding-top: 20px;
    padding-bottom: 20px !important;
}

.first_td {
    width: 9% !important;
}

.step1-text {
    width: 7%;
}

.step3-text {
    width: 7%;
}

.step2-text {
    min-width: 7%;
    width: auto;
}

.p-text {
    display: flex;
}

.box-tools {
    margin-right: 10%;
}

.program_table {
    width: 90%;
}

@media only screen and (max-width: 600px) {
    .step1-text {
        width: 30% !important;
    }

    .step2-text {
        width: 90% !important;
    }

    .step3-text {
        width: 38% !important;
    }

    .p-text {
        display: grid;
    }

    .p-text a:nth-child(2) {
        padding-top: 5px;
    }

    .program_table tr td:first-child {
        width: 25% !important;
    }

    .box-tools {
        margin-right: 0%;
    }

    .program_table {
        width: 100% !important;
    }

    .event-header {
        width: 100%;

        display: flex;
        justify-content: center;

        margin-bottom: 20px;
     
    }
}

.glyphicon-refresh.spinning {
    transform-origin: 48% 50%;
}