/*
Theme Name: Nosei
Theme URI: http://demo.bravisthemes.com/nosei/
Author: Bravis-Themes
Author URI: https://themeforest.net/user/bravis-themes/
Description: Nosei is a stunning, professional and flexible IT Solutions, IT Business, and Services Company WordPress theme. Nosei based on in-depth research into IT Solutions, IT Services, IT Business, Consulting, SaaS & Software, Digital Solution, Technical Engineering, Technology, and Services Company, to deliver all needed layouts and blocks.
Version: 1.0.4
License: ThemeForest
License URI: https://themeforest.net/licenses
Text Domain: nosei
Tags: agency, app, business, digital, it services, it solutions, network solution, saas, services, software, startup, technology, technology company, technology service
*/



        /* main container with subtle glass effect */
        .booking-form {
            font-family: 'Poppins', 'Segoe UI', system-ui, -apple-system, 'Inter', sans-serif;
            min-height: 100vh;
            padding: 2rem 1.5rem;
            max-width: 860px;
            width: 100%;
            margin: 0 auto;
            background: rgba(255, 255, 255, 0.96);
            backdrop-filter: blur(0px);
            border-radius: 2rem;
            padding: 2rem 2rem 2.5rem;
            box-shadow: 0 25px 45px -12px rgba(0, 0, 0, 0.5), 0 4px 12px rgba(0, 0, 0, 0.1);
            transition: all 0.3s ease;
            border: 1px solid rgba(255, 255, 255, 0.3);
        }

        /* Smooth entrance animation */
        .booking-form {
            animation: formGlideUp 0.6s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards;
        }

        @keyframes formGlideUp {
            0% {
                opacity: 0;
                transform: translateY(35px) scale(0.98);
            }
            100% {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        /* each label acts as a form field container */
        .booking-form label {
            display: block;
            margin-bottom: 1.4rem;
            font-weight: 500;
            font-size: 0.9rem;
            letter-spacing: -0.2px;
            color: #1f1f2b;
            transition: transform 0.2s;
        }

        /* inputs, selects, textarea styling */
        .booking-form input:not([type="checkbox"]):not([type="submit"]),
        .booking-form select,
        .booking-form textarea {
            width: 100%;
            padding: 0.9rem 1rem;
            margin-top: 0.5rem;
            font-family: inherit;
            font-size: 0.95rem;
            font-weight: 400;
            background: white;
            border: 1.5px solid #e2e8f0;
            border-radius: 1.2rem;
            transition: all 0.25s ease-out;
            outline: none;
            color: #1e293b;
            box-shadow: 0 1px 2px rgba(0,0,0,0.02);
        }

        /* Special focus effect with golden glow */
        .booking-form input:focus,
        .booking-form select:focus,
        .booking-form textarea:focus {
            border-color: #fda610;
            box-shadow: 0 0 0 4px rgba(253, 166, 16, 0.2), 0 2px 6px rgba(0,0,0,0.05);
            transform: scale(1.01);
            background-color: #fffef7;
        }

        /* Hover effect on fields */
        .booking-form input:hover:not(:focus),
        .booking-form select:hover,
        .booking-form textarea:hover {
            border-color: #fda610;
            background-color: #fefcf5;
        }

        /* checkbox and radio adjustments */
        .booking-form input[type="checkbox"] {
            width: 1.2rem;
            height: 1.2rem;
            margin-right: 0.6rem;
            margin-top: 0;
            transform: translateY(0.15rem);
            accent-color: #fda610;
            cursor: pointer;
            transition: all 0.2s;
        }

        /* labels that contain checkboxes look better */
        .booking-form label:has(input[type="checkbox"]) {
            display: flex;
            align-items: center;
            gap: 0.3rem;
            cursor: pointer;
            font-weight: 500;
        }

        /* select dropdown arrow custom */
        .booking-form select {
            appearance: none;
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23fda610' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'></polyline></svg>");
            background-repeat: no-repeat;
            background-position: right 1rem center;
            background-size: 1.2rem;
        }

        /* number input spinner subtle */
        input[type="number"] {
            -moz-appearance: textfield;
        }

        input[type="number"]::-webkit-inner-spin-button, 
        input[type="number"]::-webkit-outer-spin-button {
            opacity: 0.5;
        }

        /* placeholder styling */
        .booking-form input::placeholder,
        .booking-form textarea::placeholder {
            color: #a0aec0;
            font-weight: 300;
            font-size: 0.85rem;
            transition: opacity 0.2s;
        }

        .booking-form input:focus::placeholder,
        .booking-form textarea:focus::placeholder {
            opacity: 0.6;
        }

        /* full-width sections (for special blocks) */
        .full-width {
            width: 100%;
            margin-top: 0.2rem;
        }

        .full-width label {
            display: block;
            width: 100%;
        }

        /* submit button styling with rich animations */
        .booking-form input[type="submit"] {
            background: #fda610;
            border: none;
            padding: 1rem 1.8rem;
            font-size: 1.1rem;
            font-weight: 700;
            color: #1e1e2a;
            border-radius: 3rem;
            cursor: pointer;
            width: 100%;
            letter-spacing: 0.5px;
            transition: all 0.3s ease;
            margin-top: 0.8rem;
            box-shadow: 0 8px 18px -6px rgba(253, 166, 16, 0.4);
            font-family: inherit;
            text-transform: uppercase;
            display: inline-block;
            transform: scale(1);
            background: linear-gradient(95deg, #fda610 0%, #ffbc48 100%);
            border: 1px solid rgba(255,215,130,0.7);
        }

        .booking-form input[type="submit"]:hover {
            background: linear-gradient(95deg, #ffb12a 0%, #ffc85c 100%);
            transform: translateY(-3px) scale(1.01);
            box-shadow: 0 20px 28px -12px rgba(253, 166, 16, 0.5);
            color: #000000;
        }

        .booking-form input[type="submit"]:active {
            transform: translateY(2px) scale(0.99);
            transition: all 0.05s;
        }

        /* define placeholder text specifically for selects with first disabled option */
        .booking-form select option[value=""] {
            color: #a0aec0;
        }

        /* grid optimization for responsiveness & better layout */
        @media (min-width: 680px) {
            .booking-form {
                grid-template-columns: repeat(2, 1fr);
                gap: 0 1.8rem;
                align-items: start;
            }
            
            /* full width elements span both columns */
            .booking-form .full-width {
                grid-column: span 2;
            }
            
            /* submit button spans full */
            .booking-form .full-width:last-child {
                grid-column: span 2;
                margin-top: 0.5rem;
            }
            
            /* Make each label naturally fills grid cell */
            .booking-form label {
                margin-bottom: 0.8rem;
                width: 100%;
            }
        }

        /* mobile first: default single column */
        @media (max-width: 679px) {
            .booking-form {
                padding: 1.5rem;
            }
        }
        
        /* additional micro-animations for interactive elements */
        .booking-form input[type="checkbox"]:checked {
            transform: scale(1.1);
            filter: drop-shadow(0 0 2px #fda610);
        }
        
        /* animated border pulse on focus for extra flair */
        .booking-form input:focus, 
        .booking-form select:focus, 
        .booking-form textarea:focus {
            animation: subtlePulse 0.3s ease;
        }
        
        @keyframes subtlePulse {
            0% {
                box-shadow: 0 0 0 0 rgba(253, 166, 16, 0.4);
            }
            70% {
                box-shadow: 0 0 0 5px rgba(253, 166, 16, 0.1);
            }
            100% {
                box-shadow: 0 0 0 4px rgba(253, 166, 16, 0.2);
            }
        }
        
        /* custom placeholder with fade effect */
        .booking-form input:placeholder-shown,
        .booking-form textarea:placeholder-shown {
            transition: all 0.2s;
        }
        
        /* style for date and time picker consistency */
        input[type="date"], 
        input[type="time"] {
            font-family: 'Poppins', monospace;
            color-scheme: light;
        }
        
        /* style for Return Trip checkbox group more natural */
        label:has([name="return-trip"]) {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            background: #fef7e8;
            padding: 0.6rem 1rem;
            border-radius: 2rem;
            transition: background 0.2s;
        }
        
        label:has([name="return-trip"]):hover {
            background: #fff0db;
        }
        
        /* child seat checkbox & full-width checkbox group */
        .full-width label:has([name="child-seat"]) {
            background: #faf9fe;
            padding: 0.6rem 1rem;
            border-radius: 2rem;
            transition: background 0.2s;
        }
        
        .full-width label:has([name="child-seat"]):hover {
            background: #fff1df;
        }
        
        /* style select elements for disabled placeholder */
        select option:first-child {
            color: #8e9aaf;
        }
        
        /* additional refinement for error/message but not needed */
        .booking-form .full-width label {
            font-weight: 500;
            margin-bottom: 0.5rem;
        }
        
        /* remove default spin buttons cosmetics */
        input[type="number"] {
            padding-right: 0.5rem;
        }
        
        /* special smooth loading for any dynamic but we use pure CSS */
        .booking-form * {
            transition: all 0.2s ease;
        }
        
        /* White card shadows with orange accent border-top */
        .booking-form {
            border-top: 6px solid #fda610;
        }
        
        /* ensure checkbox groups have consistent spacing */
        .booking-form input[type="checkbox"] + span {
            margin-left: 0.2rem;
        }
        
        /* select: after field open animation */
        .booking-form select:focus option {
            background: white;
            color: #1e293b;
        }
        
        /* nice ripple on submit click (pure css, no JS) */
        .booking-form input[type="submit"]:active {
            transition-duration: 0.05s;
        }
        
        /* make disabled-like style for static but no fields disabled, design consistency */
        .booking-form label {
            position: relative;
        }
        
        /* tooltip effect on focus (optional smoothness) */
        .booking-form label::after {
            display: none;
        }
        
        /* Number of Passengers / luggage small margin tweaks */
        input[name="passengers"], 
        input[name="luggage-bags"] {
            text-align: left;
        }
        
        /* Background white purity */
        .booking-form textarea {
            resize: vertical;
            min-height: 85px;
        }
        
        /* Finally: shimmer effect on submit button on hover extra lux */
        .booking-form input[type="submit"]:hover {
            background-size: 200% auto;
            background-image: linear-gradient(115deg, #fda610 20%, #ffcd72 50%, #fda610 80%);
            background-position: right center;
        }
        
        /* shadow for container when any inner field focus */
        .booking-form:focus-within {
            box-shadow: 0 28px 40px -16px rgba(0, 0, 0, 0.4), 0 0 0 2px rgba(253, 166, 16, 0.2);
        }
