/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/
.error404 {
    background-color: #0b07fd; /* Example background color */
    text-align: center;
}

.error404 h1 {
    font-size: 200px;
    color: white;
}

.error404 p {
    font-size: 150px;
    color: white;
}

.dcontainer {
    width: 100%;
    max-width: 100vw;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    overflow-x: auto;
}

.dcontainer table {
    width: 100%;
    border-collapse: collapse;
    min-width: 900px; /* Ensures table doesn't squish too much on small screens */
}

.dcontainer th, .dcontainer td {
    padding: 8px 12px;
    text-align: left;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .dcontainer table {
        min-width: 600px;
    }
}

@media (max-width: 600px) {
    .dcontainer {
        padding: 0 5px;
    }
    .dcontainer table,
    .dcontainer thead,
    .dcontainer tbody,
    .dcontainer th,
    .dcontainer td,
    .dcontainer tr {
        display: block;
        width: 100%;
    }
    .dcontainer thead tr {
        display: none;
    }
    .dcontainer tr {
        margin-bottom: 15px;
        border-bottom: 2px solid #eee;
    }
    .dcontainer td {
        position: relative;
        padding-left: 50%;
        text-align: left;
        border: none;
        border-bottom: 1px solid #eee;
    }
    .dcontainer td:before {
        position: absolute;
        top: 8px;
        left: 12px;
        width: 45%;
        white-space: normal;
        font-weight: bold;
        content: attr(data-label);
    }
}
/* Form Styles */
h1 {
    text-align: left;
    margin: 24px 0px;
    font-size: 30px;
    font-weight: 600;
    line-height: 39px;
    font-style: normal;
}
#tourist_registration_form {
    margin: 0 auto;
    padding: 50px;
    border-radius: 10px;
    background-color: #fdf1f4;
}
.field_wrapper {
    margin-bottom: 15px;
}

.field_wrapper label {
    display: block;
    margin-bottom: 5px;
}

.field_wrapper input[type="text"],
.field_wrapper input[type="email"],
.field_wrapper input[type="tel"],
.field_wrapper input[type="number"] {
    width: 100% !important;
    padding: 8px !important;
    box-sizing: border-box !important;
}

.field_wrapper input[type="date"] {
    border: 1px solid #e5e7f2;
    background: #f9f9f9;
    width: 100%;
    padding: 10px 20px;
    border-radius: 4px;
    color: #7d93b2;
    font-size: 0.923em;
    line-height: 18px;
    outline: none;
    overflow: hidden;
}

.field_wrapper {
    margin-bottom: 20px;
}

.field_wrapper .camera {
    justify-content: center;
    padding: 50px;
    border-radius: 15px;
    background-color: #FFF;
}
.camera {
    display: grid;
    grid-template-columns: 49.5% 49.5%;
    gap: 1%;
}
.after_capture_frame{
    width: 100%;
     object-fit: cover;
     max-height: 287px;
}
div#my_camera{
    width: 100% !important;
}
.pre_capture_frame, .pre_capture_frame video, .camera #results {
    /* width: 100% !important; */
    min-width: 0 !important;
    min-height: 0 !important;
    width: 100% !important;
    position: relative;
    object-fit: cover;
}
div#my_camera, #my_camera video
 {
    min-width: 0 !important;
    min-height: 0 !important;
    width: 100% !important;
    position: relative;
    object-fit: cover;
    transform: none !important;
}
img {
    /* height: auto; */
    max-width: 100%;
    width: 100%;
}

@media only screen and (max-width: 767px) {
    #temp-registration-form {
        padding: 40px 20px;
    }

    .field_wrapper .row {
        grid-template-columns: 100%;
    }

    .field_wrapper .row.camera {
        padding: 20px 20px 40px;
    }

    .field_wrapper .child {
        margin-top: 0px !important;
    }

    .pre_capture_frame,
    .pre_capture_frame video {
        width: 100% !important;
    }

    .ticket_wrapper {
        width: auto;
    }

    .field_wrapper .camera {
        display: grid;
        grid-template-columns: 100%;
        padding: 20px;
    }

    #temp-registration-form {
        margin: 40px 0;
    }
}

/* Responsive adjustments */
.mcontainer {
    flex-direction: column;
    gap: 16px;
    padding: 8px;
    max-width: 100%;
    border-radius: 10px;
}
.posts {
    width: 100%;
    min-height: unset;
    padding: 12px;
    border-radius: 6px;
}
.swiper {
    width: 100% !important;
    min-width: 0;
}
.fimage img {
    height: 200px;
}
.post_item, .post_item2 {
    flex-direction: column !important;
    gap: 10px;
}
.btn a {
    display: block;
    width: 100%;
    margin-top: 10px;
}
.gender_options {
    display: flex;
    flex-direction: row;
    gap: 24px;
    justify-content: start;
    align-items: center;
    margin: 16px 0;
}
.gender_options label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    cursor: pointer;
}
.gender_options input[type="radio"] {
    accent-color: #0b07fd;
    width: 18px;
    height: 18px;
}
.personscount {
    display: flex;
    gap: 16px; /* space between each input group */
    align-items: center;
}

.personscount > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Preview Page Styles*/
/* .pre_container {
            background-color: #ffffff;
            padding: 3rem;
            border-radius: 1rem;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
            max-width: 56rem;
            width: 100%;
            margin: 2rem auto;
        } */

/* Title Styling */
.pre_form-title {
    font-size: 1.875rem; /* 3xl */
    font-weight: 700; /* bold */
    text-align: center;
    color: #1e293b; /* slate-800 */
    margin-bottom: 2rem;
}

/* Field Wrappers and Layout */
.pre_form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}
@media (min-width: 768px) {
    .pre_form-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
.pre_field-wrapper {
    display: flex;
    flex-direction: column;
}

/* Label and Input Styles */
label {
    font-weight: 500;
    color: #334155; /* slate-700 */
    margin-bottom: 0.25rem;
}
input[type="text"],
input[type="tel"],
input[type="number"],
input[type="date"] {
    width: 100%;
    padding: 0.5rem 1rem;
    border: 1px solid #cbd5e1; /* slate-300 */
    border-radius: 0.5rem;
    transition: all 0.2s ease-in-out;
}
input:focus {
    outline: none;
    border-color: #0ea5e9; /* sky-500 */
    box-shadow: 0 0 0 2px #0ea5e9;
}

/* Radio Buttons and Checkboxes */
.pre_radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 0.5rem;
}
.pre_radio-label {
    display: flex;
    align-items: center;
    column-gap: 0.5rem;
    color: #475569; /* slate-600 */
}
input[type="radio"] {
    accent-color: #0ea5e9; /* sky-500 */
}

/* Number of Persons Section */
.pre_persons-count-group {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}
@media (min-width: 768px) {
    .pre_persons-count-group {
        gap: 2rem;
    }
}
.pre_persons-count-item {
    display: flex;
    align-items: center;
    column-gap: 0.5rem;
}
.pre_persons-count-item input {
    width: 5rem;
    text-align: center;
    padding: 0.25rem 0.5rem;
}

/* Horizontal Rule */
hr {
    border: 0;
    height: 1px;
    background-color: #e2e8f0; /* slate-200 */
    margin-top: 2rem;
    margin-bottom: 2rem;
}

/* Image Preview Section */
.pre_image-preview-section {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.pre_preview_container {
    width: 20rem; /* 320px */
    height: 15rem; /* 240px */
    background-color: #f1f5f9; /* slate-100 */
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #cbd5e1; /* slate-300 */
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.pre_preview_container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0.5rem;
}
/* Custom styles for the SVG checkmark animation */
.checkmark {
    width: 50px;
    height: 50px;
    position: relative;
    display: inline-block;
}
.checkmark-circle {
    stroke-dasharray: 166;
    stroke-dashoffset: 166;
    stroke-width: 2;
    stroke-miterlimit: 10;
    stroke: #48bb78; /* A green color */
    fill: none;
    animation: stroke-circle 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}
.checkmark-path {
    transform-origin: 50% 50%;
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
    animation: stroke-path 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
}
@keyframes stroke-circle {
    100% {
        stroke-dashoffset: 0;
    }
}
@keyframes stroke-path {
    100% {
        stroke-dashoffset: 0;
    }
}
/* .um-form{
    padding: 40px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    width: 380px;
    box-sizing: border-box;
}
.um-form input[type="text"],
input[type="password"] {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 16px;
    box-sizing: border-box;
    transition: border-color 0.3s, box-shadow 0.3s;
} */
/* Css For Hotel Registration Form */
/* Registration Form Heading */
.um-row-heading{
    font-size: 25px !important;
    text-align: center;
    font-weight: 700;
    line-height: 22px;
}
.um.um-register.um-52{
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
    padding: 30px;
    text-align: left;
    max-width: 100%;
    margin: 0 auto;
    animation: slideUp 0.6s ease-out;
}
.um.um-register.um-52 h2 {
    font-size: 24px;
    margin-bottom: 20px;
    color: #333;
}
.um.um-register.um-52 .um-field {
    margin-bottom: 20px;
}
.um.um-register.um-52 .um-field label {
    display: block;
    margin-bottom: 8px;
    color: #333;
    font-weight: 600;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.um.um-register.um-52 .um-field input[type="text"],
.um.um-register.um-52 .um-field input[type="password"],
.um.um-register.um-52 .um-field input[type="email"],
.um.um-register.um-52 .um-field input[type="tel"],
.um.um-register.um-52 .um-field input[type="number"],
.um.um-register.um-52 .um-field textarea{
    width: 100%;
    height: 40px !important;
    padding: 15px 20px;
    border: 2px solid #e1e5e9;
    /* border-radius: 12px; */
    font-size: 1rem;
    transition: all 0.3s ease;
    background: #fff;
    outline: none;
}
.um.um-register.um-52 .um-field input[type="text"]:focus,
.um.um-register.um-52 .um-field input[type="password"]:focus,
.um.um-register.um-52 .um-field input[type="email"]:focus,
.um.um-register.um-52 .um-field input[type="tel"]:focus,
.um.um-register.um-52 .um-field input[type="number"]:focus,
.um.um-register.um-52 .um-field textarea:focus{
    border-color: #667eea;
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
    transform: translateY(-2px);
}
.um.um-register.um-52 .um-field input[type="text"]:hover,
.um.um-register.um-52 .um-field input[type="password"]:hover,
.um.um-register.um-52 .um-field input[type="email"]:hover,
.um.um-register.um-52 .um-field input[type="tel"]:hover,
.um.um-register.um-52 .um-field input[type="number"]:hover,
.um.um-register.um-52 .um-field textarea:hover{
    border-color: #b8c5f2;
}
/* Hide the field label icon */
.um-field-label-icon {
    display: none !important;
}
.um input[type=submit].um-button{
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
    color: white;
    border: none;
    padding: 18px 40px;
    border-radius: 12px;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    width: 100%;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.um input[type=submit].um-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3);
}
.um input[type=submit].um-button:active {
    transform: translateY(-1px);
}

/* CSS for Login Form */
.um-misc-img {
    display: none !important;
}

.um-login .um-form {
    background-color: #ffffff; /* A clean, white background */
    border-radius: 12px; /* Smoother, rounded corners */
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1); /* Soft, professional shadow */
    padding: 30px; /* Ample space inside the card */
    text-align: center; /* Center everything inside */
    max-width: 400px; /* Optional: Sets a max width for better centering on larger screens */
}

/* Style for the username text */
.um-login .um-form-username {
    font-size: 1.5rem; /* Larger font size */
    font-weight: 600; /* Bolder text */
    color: #333333; /* Darker text for readability */
    margin-bottom: 20px; /* Space below the username */
    position: relative; /* Needed for the pseudo-element line */
    padding-bottom: 20px; /* Pushing the line down */
}

/* Card-like container for the entire module */
.um-login .um-form {
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
    padding: 30px;
    text-align:left;
    max-width: 400px;
}

/* Style for the username text */
.um-login .um-form-username {
    font-size: 1.5rem;
    font-weight: 600;
    color: #333333;
    margin-bottom: 20px;
    position: relative;
    padding-bottom: 20px;
}
.um-button.um-alt {
    /* Match the background color to the Login button */
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
    width: 100%;
    padding: 16px 0 !important;
    text-align: center;
    border: none !important;
    color: #ffffff !important;
    cursor: pointer;
    display: block !important;
    font-size: 16px;
    font-weight: 500;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.um-button.um-alt:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3);
}
.um input[type=submit].um-button:active {
    transform: translateY(-1px);
}

/* otp-popup */
.modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

/* Modal Content/Box */
.modal-content {
    background-color: #fefefe;
    margin: 15% auto; /* 15% from the top and centered */
    padding: 20px;
    border: 1px solid #888;
    width: 80%; /* Could be more or less, depending on screen size */
    max-width: 400px; /* Optional: Sets a max-width for better appearance on large screens */
    border-radius: 8px;
    text-align: center;
}

/* Close Button */
.close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

.close:hover,
.close:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
}

/* OTP Form Styles */
.otpform {
    padding: 20px;
}

.otpform h3 {
    margin-bottom: 20px;
    color: #333;
}

.otpform label {
    display: block;
    margin-bottom: 10px;
    font-weight: bold;
    color: #555;
}

.otpform input[type="text"] {
    width: calc(100% - 22px);
    padding: 10px;
    margin-bottom: 20px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.otpform button {
    background-color: #4CAF50; /* Green */
    color: white;
    padding: 14px 20px;
    margin: 8px 0;
    border: none;
    cursor: pointer;
    width: 100%;
    border-radius: 4px;
    font-size: 16px;
}

.otpform button:hover {
    background-color: #45a049;
}

/* Main Dashboard Table Styles */
.tablerows td{
    padding: .7em 1em;
    border-width: 0 1px 1px 0;
    text-align: center;
}

.pdcontainer {
    width: 100%;
    max-width: 100vw;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    overflow-x: auto;
}