/*
* Prefixed by https://autoprefixer.github.io
* PostCSS: v8.4.14,
* Autoprefixer: v10.4.7
* Browsers: last 4 version
*/

/* Google Fonts */
@import url("https://fonts.googleapis.com/css2?family=UnifrakturCook:wght@700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&family=UnifrakturCook:wght@700&display=swap");

/* CSS Variables */
:root {
    /* Background Core Colors */
    --background-primary-color: #dfe2e2;
    --background-secondary-color: #fafafa;
    --background-tertiary-color: #f3f4f6;
    --border-color: #edeaea;

    /* Text Core Colors */
    --text-primary-color: #141414;
    --text-secondary-color: #6b7280;

    /* Text Fonts */
    --primary-font-family: "UnifrakturCook", cursive;
    --secondary-font-family: "Open Sans", sans-serif;

    /* Accent Colors */
    --accent-color-primary: #700a0a;
    --accent-color-secondary: #32236c;
    --info-link-color: #232e21;
    --info-link-hover-color: #32533d;
}

/* Navbar */
#logo img {
    width: 50px;
    height: 50px;
}

#logo-footer img {
    width: 50px;
    height: 50px;
    margin-right: 10px;
}

#main-nav a {
    color: var(--text-primary-color);
}

#main-nav a:hover {
    color: var(--accent-color-secondary);
    text-decoration: underline;
}

#main-nav .main-button {
    background-color: var(--accent-color-primary);
    color: var(--background-primary-color);
    margin-left: 0.5rem;
    font-family: var(--primary-font-family);
}

#main-nav .main-button:hover {
    background-color: var(--accent-color-secondary);
    color: var(--background-primary-color);
    text-decoration: none;
}

#main-nav .navbar-nav {
    gap: 10px;
    font-weight: 600;
}

/* Global styles */
h1,
h2,
h3,
h4 {
    font-family: var(--primary-font-family);
    color: var(--accent-color-primary);
}

body {
    font-family: var(--secondary-font-family);
    background-color: var(--background-secondary-color);
    color: var(--text-primary-color);
    margin: 0;
    padding: 0;
}

.responsive-map {
    width: 100%;
    max-width: 100%; /* Good practice */
    height: 350px;
    border-radius: 8px;
}

/* Hero section */
#hero {
    background: var(--background-primary-color) url(../images/home-hero.webp)
        no-repeat center center;
    background-size: cover;
    padding: 2rem;
    height: 75vh;
    /* Overlay Shadow */
    -webkit-box-shadow: inset 0 0 0 1000px rgba(0, 0, 0, 0.5);
            box-shadow: inset 0 0 0 1000px rgba(0, 0, 0, 0.5);
    /* Outer Shadow */
    -webkit-box-shadow: 0px 7px 29px 0px rgba(112, 10, 10, 0.3);
            box-shadow: 0px 7px 29px 0px rgba(112, 10, 10, 0.3);
}

#hero h1 {
    text-align: center;
    margin: 0 auto;
    margin-bottom: 2rem;
    padding-top: 5rem;
    color: var(--accent-color-primary);
    font-size: 3.5rem;
    /* text border */
    text-shadow: 0 0 5px whitesmoke, 0 0 20px rgba(112, 10, 10, 0.2);
}

#hero p {
    -ms-flex-line-pack: center;
        align-content: center;
    margin: 0 auto;
    font-size: 1.5rem;
    max-width: 600px;
    font-weight: 500;
    text-align: center;
    color: whitesmoke;
}

#hero .main-button {
    background-color: var(--accent-color-primary);
    color: var(--background-primary-color);
    margin-left: 0.5rem;
    font-family: var(--primary-font-family);
    margin-top: 30px;
    padding: 0.75rem 2rem;
}

#hero .main-button:hover {
    background-color: var(--accent-color-secondary);
}

/* Rooms section */
#rooms {
    padding: 0;
}

#rooms h1 {
    text-align: center;
    margin-bottom: 2rem;
    margin-top: 2rem;
}

#rooms .room {
    border: 1px solid var(--border-color);
    border-radius: 8px;
    -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    -webkit-transition: -webkit-transform 0.3s, -webkit-box-shadow 0.3s;
    transition: -webkit-transform 0.3s, -webkit-box-shadow 0.3s;
    -o-transition: transform 0.3s, box-shadow 0.3s;
    transition: transform 0.3s, box-shadow 0.3s;
    transition: transform 0.3s, box-shadow 0.3s, -webkit-transform 0.3s, -webkit-box-shadow 0.3s;
    margin-bottom: 2rem;
}

#rooms .room:hover {
    -webkit-transform: translateY(-5px);
        -ms-transform: translateY(-5px);
            transform: translateY(-5px);
    -webkit-box-shadow: 0 4px 8px rgba(112, 10, 10, 0.2);
            box-shadow: 0 4px 8px rgba(112, 10, 10, 0.2);
}

#rooms .room:hover h2 {
    -webkit-animation: flicker 2s infinite;
            animation: flicker 2s infinite;
    text-shadow: 0 0 5px var(--accent-color-primary),
        0 0 20px rgba(112, 10, 10, 0.2);
}

#cast .main-button {
    background-color: var(--accent-color-primary);
    color: var(--background-primary-color);
    margin-top: 20px;
    margin-left: 0.5rem;
    font-family: var(--primary-font-family);
    padding: 0.75rem 2rem;
}

#cast .main-button:hover {
    background-color: var(--accent-color-secondary);
}

#rooms .room img {
    border-radius: 0;
}

#rooms .room {
    border-radius: 0;
}

/* Cast section */
#cast {
    padding: 2rem 0;
    background-color: var(--background-secondary-color);
}

#cast h1 {
    text-align: center;
    margin: 0 auto;
    padding-bottom: 2rem;
    color: var(--accent-color-primary);
    font-size: 3rem;
}

/* Events section */
#events {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
}

#events h2 {
    padding-bottom: 2rem;
}

#events .student-discount {
    font-family: var(--primary-font-family);
    font-size: 1.5rem;
    color: var(--accent-color-primary);
}

#events table {
    border: 1px solid var(--border-color);
    padding: 10px;
}

#events table th {
    font-family: var(--primary-font-family);
    font-size: 1.25rem;
}

/* Footer section */
footer {
    background-color: var(--background-primary-color);
    padding-top: 30px;
    padding-bottom: 30px;
}
footer h3 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding-left: 25px;
}

.social-links i {
    font-size: 1.75rem;
    color: var(--accent-color-primary);
    -webkit-transition: -webkit-transform 0.3s;
    transition: -webkit-transform 0.3s;
    -o-transition: transform 0.3s;
    transition: transform 0.3s;
    transition: transform 0.3s, -webkit-transform 0.3s;
}

.social-links i:hover {
    color: var(--accent-color-secondary);
}

.social-links a {
    margin-right: 15px;
}

.footer-links a{
    margin-top: 15px;
    text-decoration: none;
    font-family: var(--secondary-font-family);
    color: var(--accent-color-primary);
    font-weight: 600;
    display: inline-block;
    margin-right: 15px;
    -webkit-transition: color 0.3s;
    -o-transition: color 0.3s;
    transition: color 0.3s;
}
.footer-links a:hover{
    color: var(--accent-color-secondary);
    text-decoration: underline;
}
.footer-links {
    list-style: none;
    padding: 0;
    margin-top: 15px;
    font-size: 1rem;
    line-height: 1.6;
}
/* Booking Page */
#booking-card > div {
    border: var(--accent-color-primary) 2px solid;
    border-radius: 8px;
    padding: 15px;
    margin: 20px 0 25px 0;
    -webkit-box-shadow: 0 4px 8px rgba(112, 10, 10, 0.2);
            box-shadow: 0 4px 8px rgba(112, 10, 10, 0.2);
    background-color: var(--background-tertiary-color);
    background-image: url('data:image/svg+xml,%3Csvg width="12" height="24" viewBox="0 0 12 24" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%239C92AC" fill-opacity="0.4"%3E%3Cpath d="M2 0h2v12H2V0zm1 20c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM9 8c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm-1 4h2v12H8V12z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E');
}

#booking-form .main-button {
    background-color: var(--accent-color-primary);
    color: var(--background-primary-color);
    font-family: var(--primary-font-family);
    padding: 0.75rem 2rem;
}

#booking-form .main-button:hover {
    background-color: var(--accent-color-secondary);
}

#booking-card .form-label {
    font-weight: 600;
    font-size: 1rem;
    color: var(--accent-color-primary);
}

input.form-control,
select.form-control,
textarea.form-control {
    border: 3px solid var(--border-color);
    border-radius: 4px;
    padding: 10px;
    font-size: 1rem;
    -webkit-transition: border-color 0.5s;
    -o-transition: border-color 0.5s;
    transition: border-color 0.5s;
}

input.form-control:focus,
select.form-control:focus,
textarea.form-control:focus {
    -webkit-box-shadow: 0 0 5px rgba(112, 10, 10, 0.2);
            box-shadow: 0 0 5px rgba(112, 10, 10, 0.2);
    outline: none;
    border: 3px solid rgba(112, 10, 10, 0.2);
}
/* Lottie box positioned top-right of the card */
.lottie-wrapper {
    position: absolute;
    top: 10px;
    left: 25%;
    z-index: 10;
}

/* Text Flicker Animation */
@-webkit-keyframes flicker {
    0%,
    18%,
    22%,
    25%,
    53%,
    57%,
    100% {
        opacity: 1;
    }
    20%,
    24%,
    55% {
        opacity: 0;
    }
}
@keyframes flicker {
    0%,
    18%,
    22%,
    25%,
    53%,
    57%,
    100% {
        opacity: 1;
    }
    20%,
    24%,
    55% {
        opacity: 0;
    }
}
.text-flicker {
    -webkit-animation: flicker 2s infinite;
            animation: flicker 2s infinite;
    text-shadow: 0 0 5px gray, 0 0 20px darkred;
}

/* Success page styles */
main#success-page {
    padding: 5rem 1rem;
    min-height: 80vh;
    background: url(../images/success-page-background.webp) no-repeat center center;
    background-size: cover;
}
.lottie-success{
    margin: 0 auto;
}
/* Success page shadow */

main#success-page {
    /* Overlay Shadow */
    -webkit-box-shadow: inset 0 0 0 1000px rgba(0, 0, 0, 0.5);
            box-shadow: inset 0 0 0 1000px rgba(0, 0, 0, 0.5);
}

main#success-page h1 {
    text-align: center;
    margin: 0 auto;
    margin-bottom: 2rem;
    color: var(--accent-color-primary);
    font-size: 3.5rem;
    /* text border */
    text-shadow: 0 0 5px whitesmoke, 0 0 20px rgba(112, 10, 10, 0.2);
}
main#success-page p {
    -ms-flex-line-pack: center;
        align-content: center;
    margin: 0 auto;
    font-size: 1.5rem;
    max-width: 600px;
    font-weight: 500;
    text-align: center;
    color: whitesmoke;
}
#success-page .main-button {
    background-color: var(--accent-color-primary);
    color: var(--background-primary-color);
    margin-left: 0.5rem;
    font-family: var(--primary-font-family);
    margin-top: 30px;
    padding: 0.75rem 2rem;
}
#success-page .main-button:hover {
    background-color: var(--accent-color-secondary);
}
/* Responsive Styles */
/* Extra Extra Large Screens */
@media (max-width: 1400px) {
    .lottie-wrapper {
    position: absolute;
    top: 10px;
    left: 20%;
    z-index: 10;
}
}

/* Extra Large Screens */
@media (max-width: 1200px) {
    /* Home Page */
    .card-body {
        min-height: 221px;
    }
    .lottie-wrapper {
    position: absolute;
    top: 10px;
    left: 250px;
    z-index: 10;
}
}

/* Large Screens */
@media (max-width: 992px) {
    /* Home Page */
    .card-body {
        min-height: 220px;
    }
    #cast h2 {
        font-size: 2.5rem;
        padding: 1rem 0 1rem 0;
    }
    #main-nav .navbar-nav {
        text-align: center;
        gap: 10px;
        font-weight: 600;
    }
    .lottie-wrapper {
        position: static;
        margin-top: -70px;
        margin-bottom: -130px;
        margin-left: 50px;
    }
}

/* Medium Screens */
@media (max-width: 768px) {
    /* Home Page */
    #main-nav .navbar-nav {
        text-align: center;
        gap: 10px;
        font-weight: 600;
    }
    #hero h1 {
        font-size: 2.5rem;
        padding-top: 3rem;
    }
    #hero p {
        font-size: 1.2rem;
        padding: 0 1rem;
    }
    #rooms h1 {
        font-size: 2.5rem;
    }
    #rooms .room {
        margin-bottom: 1.5rem;
    }
    #rooms .room h2 {
        font-size: 2rem;
    }
    #cast h2 {
        font-size: 2.5rem;
        padding: 1rem 0 1rem 0;
    }
    .card-body {
        min-height: 193px;
    }
    .lottie-wrapper {
        position: static;
        margin-top: -70px;
        margin-bottom: -130px;
        margin-left: -20px;
    }
    #booking-card .main-button {
        margin-bottom: 10px;
        width: 100%;
    }
}

/* Small Screens */
@media (max-width: 576px) {
    /* navbar list */
    #main-nav .navbar-nav {
        text-align: center;
        gap: 10px;
        font-weight: 600;
    }
    /* Home Page */
    #hero h1 {
        font-size: 2.5rem;
        padding-top: 3rem;
    }
    #hero p {
        font-size: 1.2rem;
        padding: 0 1rem;
    }
    #rooms h1 {
        font-size: 2.5rem;
    }
    #rooms .room {
        margin-bottom: 1.5rem;
    }
    #rooms .room h2 {
        font-size: 2rem;
    }
    #cast h2 {
        font-size: 2.5rem;
        padding: 1rem 0 1rem 0;
    }
    /* Booking Page */
    /* Lottie box positioned top-right of the card */
    .lottie-wrapper {
        position: static;
        top: 10px;
        left: 50px;
        margin-top: -40px;
        margin-bottom: -130px;
    }
    #booking-card .main-button {
        margin-bottom: 10px;
        width: 100%;
    }
}