/*
Theme Name: CGXP
Theme URI: 
Author: 
Author URI: 
Description: Custom theme for CGXP
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cgxp
*/
  /* Exact custom styles from globals.scss */
        .innter-page-menu li.page-active {
            color: #2e90fa;
            font-weight: 500;
            border-bottom: #4638C9 solid 2px;
        }
        
        .text-regular { 
            color: #000000;
            font-size: 16px;
            font-weight: 400;
            line-height: 25px;
        }
        
        @media screen and (max-width:991px) {
            .text-regular {
                font-size: 14px;  
            }
        }
        
        .contact-cnt-bg h4 {
            font-size: 28px;
            font-weight: 500;
            color: #ffffff;
            text-align: center;
            margin-bottom: 25px;
        }
        
        .contact-cnt-bg .shape-1 {
            position: absolute;
            top: 0px;
            left: 0px;
            background: url('images/shape-1.svg') no-repeat;
            background-size: 100%;
            width: 254px;
            height: 182px;
        }
        
        .contact-cnt-bg .shape-2 {
            position: absolute;
            right: 0px;
            bottom: -75px;
            background: url('images/shape-2.svg') no-repeat;
            background-size: 100%;
            width: 278px;
            height: 181px;
        }
        
        @media screen and (max-width:991px) {
            .contact-cnt-bg .shape-1 {
                width: 120px !important;
                height: 135px !important;
            }
            .contact-cnt-bg .shape-2 {
                width: 150px !important;
                height: 120px !important;
            }
        }
        
        .about-section { 
            @media screen and (max-width:991px) {
               padding: 20px 0px 30px; 
            }
        }

        /* Contact Form 7 Styles - Tailwind-inspired */
        
        /* Form Container */
        .wpcf7 {
            max-width: 100%;
            margin: 0 auto;
        }
        
        .wpcf7-form {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }
        
        /* Form Fields */
        .wpcf7-form-control-wrap {
            position: relative;
            width: 100%;
        }
        
        .wpcf7-form-control {
            width: 100%;
            padding: 0.75rem 1rem;
            border: 1px solid #d1d5db;
            border-radius: 0.375rem;
            font-size: 1rem;
            line-height: 1.5;
            color: #374151;
            background-color: #ffffff;
            transition: all 0.15s ease-in-out;
            box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
        }
        
        .wpcf7-form-control:focus {
            outline: none;
            border-color: #3b82f6;
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
        }
        
        .wpcf7-form-control:invalid {
            border-color: #ef4444;
        }
        
        .wpcf7-form-control:valid {
            border-color: #10b981;
        }
        
        /* Text Inputs */
        .wpcf7-text,
        .wpcf7-email,
        .wpcf7-tel,
        .wpcf7-url,
        .wpcf7-number {
            height: 2.75rem;
        }
        
        /* Textarea */
        .wpcf7-textarea {
            min-height: 6rem;
            resize: vertical;
        }
        
        /* Select Dropdown */
        .wpcf7-select {
            height: 2.75rem;
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
            background-position: right 0.5rem center;
            background-repeat: no-repeat;
            background-size: 1.5em 1.5em;
            padding-right: 2.5rem;
            appearance: none;
        }
        
        /* Checkbox and Radio */
        .wpcf7-checkbox,
        .wpcf7-radio {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
        }
        
        .wpcf7-list-item {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            margin: 0;
        }
        
        .wpcf7-list-item input[type="checkbox"],
        .wpcf7-list-item input[type="radio"] {
            width: 1rem;
            height: 1rem;
            border: 1px solid #d1d5db;
            border-radius: 0.25rem;
            background-color: #ffffff;
            cursor: pointer;
        }
        
        .wpcf7-list-item input[type="radio"] {
            border-radius: 50%;
        }
        
        .wpcf7-list-item input[type="checkbox"]:checked,
        .wpcf7-list-item input[type="radio"]:checked {
            background-color: #3b82f6;
            border-color: #3b82f6;
        }
        
        .wpcf7-list-item-label {
            font-size: 0.875rem;
            color: #374151;
            cursor: pointer;
        }
        
        /* Submit Button */
        .wpcf7-submit {
            background-color: #3b82f6;
            color: #ffffff;
            padding: 0.75rem 1.5rem;
            border: none;
            border-radius: 0.375rem;
            font-size: 1rem;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.15s ease-in-out;
            box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
            align-self: flex-start;
        }
        
        .wpcf7-submit:hover {
            background-color: #2563eb;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
        }
        
        .wpcf7-submit:focus {
            outline: none;
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
        }
        
        .wpcf7-submit:active {
            background-color: #1d4ed8;
        }
        
        /* File Upload */
        .wpcf7-file {
            padding: 0.5rem;
            border: 2px dashed #d1d5db;
            border-radius: 0.375rem;
            background-color: #f9fafb;
            cursor: pointer;
            transition: all 0.15s ease-in-out;
        }
        
        .wpcf7-file:hover {
            border-color: #3b82f6;
            background-color: #eff6ff;
        }
        
        /* Labels */
        .wpcf7-form-control-wrap label {
            display: block;
            font-size: 0.875rem;
            font-weight: 500;
            color: #374151;
            margin-bottom: 0.25rem;
        }
        
        /* Required Field Indicator */
        .wpcf7-form-control-wrap .required {
            color: #ef4444;
        }
        
        /* Validation Messages */
        .wpcf7-not-valid-tip {
            color: #ef4444;
            font-size: 0.75rem;
            margin-top: 0.25rem;
            display: block;
        }
        
        .wpcf7-validation-errors {
            background-color: #fef2f2;
            border: 1px solid #fecaca;
            border-radius: 0.375rem;
            padding: 1rem;
            margin-bottom: 1rem;
            color: #dc2626;
        }
        
        .wpcf7-mail-sent-ok {
            background-color: #f0fdf4;
            border: 1px solid #bbf7d0;
            border-radius: 0.375rem;
            padding: 1rem;
            margin-bottom: 1rem;
            color: #166534;
        }
        
        .wpcf7-spam-blocked {
            background-color: #fef2f2;
            border: 1px solid #fecaca;
            border-radius: 0.375rem;
            padding: 1rem;
            margin-bottom: 1rem;
            color: #dc2626;
        }
        
        /* Response Messages */
        .wpcf7-response-output {
            margin-top: 1rem;
            padding: 1rem;
            border-radius: 0.375rem;
            font-size: 0.875rem;
        }
        
        /* Loading State */
        .wpcf7-form.sending .wpcf7-submit {
            background-color: #9ca3af;
            cursor: not-allowed;
        }
        
        .wpcf7-form.sending .wpcf7-submit::after {
            content: "";
            display: inline-block;
            width: 1rem;
            height: 1rem;
            margin-left: 0.5rem;
            border: 2px solid #ffffff;
            border-radius: 50%;
            border-top-color: transparent;
            animation: spin 1s linear infinite;
        }
        
        @keyframes spin {
            to {
                transform: rotate(360deg);
            }
        }
        
        /* Responsive Design */
        @media (max-width: 768px) {
            .wpcf7-form {
                gap: 1rem;
            }
            
            .wpcf7-form-control {
                padding: 0.625rem 0.875rem;
                font-size: 0.875rem;
            }
            
            .wpcf7-text,
            .wpcf7-email,
            .wpcf7-tel,
            .wpcf7-url,
            .wpcf7-number {
                height: 2.5rem;
            }
            
            .wpcf7-textarea {
                min-height: 5rem;
            }
            
            .wpcf7-submit {
                width: 100%;
                padding: 0.875rem 1.5rem;
            }
        }
        
        /* Dark Mode Support */
        @media (prefers-color-scheme: dark) {
            .wpcf7-form-control {
                background-color: #1f2937;
                border-color: #374151;
                color: #f9fafb;
            }
            
            .wpcf7-form-control:focus {
                border-color: #60a5fa;
                box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.1);
            }
            
            .wpcf7-list-item-label {
                color: #f9fafb;
            }
            
            .wpcf7-file {
                background-color: #374151;
                border-color: #4b5563;
            }
            
            .wpcf7-file:hover {
                background-color: #1e3a8a;
                border-color: #60a5fa;
            }
        }

        /* Navigation Menu Styles - Tailwind-inspired */
        
        /* Main Navigation */
        .main-navigation {
            position: relative;
        }
        
        .main-navigation ul {
            list-style: none;
            margin: 0;
            padding: 0;
        }
        
        .main-navigation li {
            position: relative;
        }
        
        .main-navigation a {
            text-decoration: none;
            display: block;
            transition: all 0.2s ease-in-out;
        }
        
        /* Desktop Navigation */
        @media (min-width: 768px) {
            .main-navigation .menu {
                display: flex;
                align-items: center;
                gap: 2rem;
            }
            
            .main-navigation .menu-item {
                position: relative;
            }
            
            .main-navigation .menu-item > a {
                padding: 0.5rem 0.75rem;
                font-size: 0.875rem;
                font-weight: 500;
                color: #374151;
                border-radius: 0.375rem;
                transition: all 0.15s ease-in-out;
            }
            
            .main-navigation .menu-item > a:hover {
                color: #1f2937;
                background-color: #f3f4f6;
            }
            
            .main-navigation .menu-item.current-menu-item > a,
            .main-navigation .menu-item.current_page_item > a {
                color: #2e90fa;
                font-weight: 600;
            }
            
            /* Dropdown Styles */
            .main-navigation .menu-item-has-children > a::after {
                content: '';
                display: inline-block;
                width: 0;
                height: 0;
                margin-left: 0.5rem;
                border-left: 4px solid transparent;
                border-right: 4px solid transparent;
                border-top: 4px solid currentColor;
                transition: transform 0.2s ease-in-out;
            }
            
            .main-navigation .menu-item-has-children:hover > a::after {
                transform: rotate(180deg);
            }
            
            .main-navigation .sub-menu {
                position: absolute;
                top: 100%;
                left: 0;
                min-width: 12rem;
                background-color: #ffffff;
                border: 1px solid #e5e7eb;
                border-radius: 0.5rem;
                box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
                padding: 0.5rem 0;
                opacity: 0;
                visibility: hidden;
                transform: translateY(-0.5rem);
                transition: all 0.2s ease-in-out;
                z-index: 50;
            }
            
            .main-navigation .menu-item-has-children:hover .sub-menu {
                opacity: 1;
                visibility: visible;
                transform: translateY(0);
            }
            
            .main-navigation .sub-menu .menu-item {
                margin: 0;
            }
            
            .main-navigation .sub-menu .menu-item > a {
                padding: 0.75rem 1rem;
                font-size: 0.875rem;
                color: #374151;
                border-radius: 0;
                transition: all 0.15s ease-in-out;
            }
            
            .main-navigation .sub-menu .menu-item > a:hover {
                background-color: #f3f4f6;
                color: #1f2937;
            }
            
            .main-navigation .sub-menu .menu-item:first-child > a {
                border-top-left-radius: 0.5rem;
                border-top-right-radius: 0.5rem;
            }
            
            .main-navigation .sub-menu .menu-item:last-child > a {
                border-bottom-left-radius: 0.5rem;
                border-bottom-right-radius: 0.5rem;
            }
            
            /* Multi-level dropdowns */
            .main-navigation .sub-menu .menu-item-has-children > a::after {
                content: '';
                display: inline-block;
                width: 0;
                height: 0;
                margin-left: auto;
                border-top: 4px solid transparent;
                border-bottom: 4px solid transparent;
                border-left: 4px solid currentColor;
                transform: rotate(0deg);
            }
            
            .main-navigation .sub-menu .menu-item-has-children:hover > a::after {
                transform: rotate(0deg);
            }
            
            .main-navigation .sub-menu .sub-menu {
                top: 0;
                left: 100%;
                margin-left: 0.25rem;
            }
        }
        
        /* Mobile Navigation */
        @media (max-width: 767px) {
            .main-navigation .menu {
                display: none;
            }
            
            .main-navigation .menu.mobile-menu-open {
                display: block;
                position: absolute;
                top: 100%;
                left: 0;
                right: 0;
                background-color: #ffffff;
                border: 1px solid #e5e7eb;
                border-radius: 0.5rem;
                box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
                padding: 1rem;
                z-index: 50;
            }
            
            .main-navigation .menu-item {
                margin: 0;
                border-bottom: 1px solid #f3f4f6;
            }
            
            .main-navigation .menu-item:last-child {
                border-bottom: none;
            }
            
            .main-navigation .menu-item > a {
                padding: 0.75rem 0;
                font-size: 0.875rem;
                font-weight: 500;
                color: #374151;
                display: flex;
                align-items: center;
                justify-content: space-between;
            }
            
            .main-navigation .menu-item > a:hover {
                color: #2e90fa;
            }
            
            .main-navigation .menu-item-has-children > a::after {
                content: '';
                display: inline-block;
                width: 0;
                height: 0;
                border-left: 4px solid transparent;
                border-right: 4px solid transparent;
                border-top: 4px solid currentColor;
                transition: transform 0.2s ease-in-out;
            }
            
            .main-navigation .menu-item-has-children.menu-open > a::after {
                transform: rotate(180deg);
            }
            
            .main-navigation .sub-menu {
                display: none;
                padding-left: 1rem;
                margin-top: 0.5rem;
                border-left: 2px solid #e5e7eb;
            }
            
            .main-navigation .sub-menu.mobile-submenu-open {
                display: block;
            }
            
            .main-navigation .sub-menu .menu-item > a {
                padding: 0.5rem 0;
                font-size: 0.8rem;
                color: #6b7280;
            }
            
            .main-navigation .sub-menu .menu-item > a:hover {
                color: #2e90fa;
            }
        }
        
        /* Mobile Menu Button */
        .mobile-menu-button {
            display: none;
            padding: 0.5rem;
            border-radius: 0.375rem;
            color: #374151;
            background-color: transparent;
            border: none;
            cursor: pointer;
            transition: all 0.15s ease-in-out;
        }
        
        .mobile-menu-button:hover {
            color: #1f2937;
            background-color: #f3f4f6;
        }
        
        .mobile-menu-button:focus {
            outline: none;
            box-shadow: 0 0 0 2px rgba(46, 144, 250, 0.2);
        }
        
        @media (max-width: 767px) {
            .mobile-menu-button {
                display: block;
            }
        }
        
        /* Menu Animation Classes */
        .menu-fade-in {
            animation: fadeIn 0.2s ease-in-out;
        }
        
        .menu-fade-out {
            animation: fadeOut 0.2s ease-in-out;
        }
        
        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(-0.5rem);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        @keyframes fadeOut {
            from {
                opacity: 1;
                transform: translateY(0);
            }
            to {
                opacity: 0;
                transform: translateY(-0.5rem);
            }
        }
        
        /* Accessibility Improvements */
        .main-navigation a:focus {
            outline: 2px solid #2e90fa;
            outline-offset: 2px;
        }
        
        .main-navigation .menu-item-has-children > a[aria-expanded="true"] {
            background-color: #f3f4f6;
        }
        
        /* High contrast mode support */
        @media (prefers-contrast: high) {
            .main-navigation .sub-menu {
                border: 2px solid #000000;
            }
            
            .main-navigation .menu-item > a:hover {
                background-color: #000000;
                color: #ffffff;
            }
        }

        /* Shortcode-specific styles */
        
        /* Menu not assigned message */
        .menu-not-assigned,
        .mobile-menu-not-assigned,
        .footer-menu-not-assigned {
            padding: 1rem;
            background-color: #fef2f2;
            border: 1px solid #fecaca;
            border-radius: 0.375rem;
            color: #dc2626;
            font-size: 0.875rem;
        }
        
        .menu-not-assigned p,
        .mobile-menu-not-assigned p,
        .footer-menu-not-assigned p {
            margin: 0 0 0.5rem 0;
        }
        
        .menu-not-assigned p:last-child,
        .mobile-menu-not-assigned p:last-child,
        .footer-menu-not-assigned p:last-child {
            margin-bottom: 0;
        }
        
        /* Mobile menu container */
        .mobile-menu-container {
            position: relative;
        }
        
        .mobile-menu-content {
            padding: 1rem;
            background-color: #ffffff;
            border: 1px solid #e5e7eb;
            border-radius: 0.5rem;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
        }
        
        .mobile-menu-list {
            list-style: none;
            margin: 0;
            padding: 0;
        }
        
        .mobile-menu-list .menu-item {
            margin: 0;
            border-bottom: 1px solid #f3f4f6;
        }
        
        .mobile-menu-list .menu-item:last-child {
            border-bottom: none;
        }
        
        .mobile-menu-list .menu-item > a {
            display: block;
            padding: 0.75rem 0;
            font-size: 0.875rem;
            font-weight: 500;
            color: #374151;
            text-decoration: none;
            transition: color 0.15s ease-in-out;
        }
        
        .mobile-menu-list .menu-item > a:hover {
            color: #2e90fa;
        }
        
        /* Footer navigation styles */
        .footer-navigation {
            margin: 0;
        }
        
        .footer-menu {
            display: flex;
            flex-wrap: wrap;
            gap: 1.5rem;
            list-style: none;
            margin: 0;
            padding: 0;
        }
        
        .footer-menu .menu-item {
            margin: 0;
        }
        
        .footer-menu .menu-item > a {
            font-size: 0.875rem;
            color: #6b7280;
            text-decoration: none;
            transition: color 0.15s ease-in-out;
        }
        
        .footer-menu .menu-item > a:hover {
            color: #2e90fa;
        }
        
        /* Responsive footer menu */
        @media (max-width: 767px) {
            .footer-menu {
                flex-direction: column;
                gap: 0.75rem;
            }
        }
        
        /* Screen reader only text */
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border: 0;
        }