/*
 Theme Name:        Prespa Digital
 Theme URI:         https://nasiothemes.com/themes/prespa/
 Description:       Prespa Digital serves as a child theme of Prespa, inheriting all the features of Prespa. The theme is crafted for digital marketing agencies, seo companies, affiliate marketers, copywriters and others who are engaged in creating high quality digital content. The theme is highly optimized for speed and seo. It uses Schema.org markup (microdata) to help you rank higher in the search results. The theme puts an emphasis on readability that combines clean design and excellent user experience. Theme demo: https://prespa-digital-demo.nasiothemes.com/ Theme documentation: https://nasiothemes.com/prespa-theme-documentation/
 Author:            Atanas Yonkov
 Author URI:        http://nasiothemes.com
 Template:          prespa
 Requires at least: 6.1
 Tested up to:      6.7
 Requires PHP:      5.6
 Version:           1.0.7
 License:           GNU General Public License v2 or later
 License URI:       http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:       prespa-digital
 Tags:              blog, news, e-commerce, one-column, two-columns, three-columns, four-columns, grid-layout, right-sidebar, left-sidebar, block-patterns, wide-blocks, custom-colors, custom-header, custom-logo, custom-menu, featured-image-header, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready
*/

/* Add your child theme's custom css below */

.hentry,
#secondary>section,
.comment-body,
.comment-form {
    border-radius: .625rem;
}

.dark-mode {
    --wp--preset--color--dark-gray: #f7f7f7;
    --wp--preset--color--silver-blue: #020205;
    --wp--preset--color--text-secondary: #d2d2d2;
}

/* hover animation for project pattern */
.pattern-projects .style-skew-animation-image img {
    transition: all ease 0.2s;
    height: 100%;
    width: 100%;
}

.pattern-projects .style-skew-animation-image:hover img {
    transform: rotate(5deg) scale(1.2);
    opacity: 0.7;
}

.pattern-projects .style-overflow-after-animation {
    overflow: clip;
    object-fit: cover;
    border-radius: 10px;
}

/* hover animation for testimonial pattern */
.pattern-client-feedback .style-zoom-in-animation {
    transition: transform .2s;
}

.pattern-client-feedback .style-zoom-in-animation:hover {
    transform: scale(1.05)
}

.dark-mode .pattern-client-feedback .has-gray-background-color {
    background-color: #020205 !important;
}



/* =========================================
   Custom Contact Form 7 Styles - Premium Design
   ========================================= */

/* Form container with smooth entry animation */
.bosa-law-firm-contact-form-custom {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Grid layout - ONE COLUMN */
.bosa-law-firm-contact-form-custom .form-grid {
    display: grid;
    grid-template-columns: 1fr;  /* Single column layout */
    gap: 20px;
    align-items: stretch;
    margin-bottom: 25px;
}

.bosa-law-firm-contact-form-custom .form-cell {
    margin: 0;
    position: relative;
}

/* Remove default paragraph margins inside form */
.bosa-law-firm-contact-form-custom .form-cell p {
    margin: 0 !important;
}

/* Hide BR tags from Contact Form 7 */
.bosa-law-firm-contact-form-custom br {
    display: none !important;
}

/* Labels - modern typography */
.bosa-law-firm-contact-form-custom label {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #101011 !important;
    margin-bottom: 8px !important;
    display: block !important;
    letter-spacing: 0.3px !important;
}

/* Make span wrapper full width */
.bosa-law-firm-contact-form-custom .wpcf7-form-control-wrap {
    display: block !important;
    width: 100% !important;
}

/* Premium Input Fields */
.bosa-law-firm-contact-form-custom input[type="text"],
.bosa-law-firm-contact-form-custom input[type="email"],
.bosa-law-firm-contact-form-custom input[type="tel"] {
    width: 100% !important;
    height: 56px !important;
    border: 2px solid #e5e7eb !important;
    border-radius: 8px !important;
    padding: 0 18px !important;
    color: #101011 !important;
    font-size: 15px !important;
    box-sizing: border-box !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    background: #ffffff !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
}

/* Placeholder styling */
.bosa-law-firm-contact-form-custom input::placeholder {
    color: #9ca3af !important;
    font-weight: 400 !important;
}

/* Focus states - premium blue accent */
.bosa-law-firm-contact-form-custom input:focus {
    border-color: #0029e0 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(0, 41, 224, 0.1), 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    transform: translateY(-1px) !important;
}

/* Hover state */
.bosa-law-firm-contact-form-custom input:hover:not(:focus) {
    border-color: #cbd5e1 !important;
}

/* Premium Submit Button - Project Blue */
.bosa-law-firm-contact-form-custom button.wpcf7-submit,
.bosa-law-firm-contact-form-custom input[type="submit"] {
    width: 100% !important;
    height: 56px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    border-radius: 8px !important;
    background: linear-gradient(135deg, #0029e0 0%, #0021b8 100%) !important;
    color: #ffffff !important;
    border: none !important;
    cursor: pointer !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    padding: 0 24px !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: 0 4px 6px rgba(0, 41, 224, 0.15), 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    letter-spacing: 0.5px !important;
    text-transform: none !important;
}

/* Button hover effect */
.bosa-law-firm-contact-form-custom button.wpcf7-submit:hover,
.bosa-law-firm-contact-form-custom input[type="submit"]:hover {
    background: linear-gradient(135deg, #0021b8 0%, #001a94 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 12px rgba(0, 41, 224, 0.25), 0 2px 4px rgba(0, 0, 0, 0.12) !important;
}

/* Button active/pressed state */
.bosa-law-firm-contact-form-custom button.wpcf7-submit:active,
.bosa-law-firm-contact-form-custom input[type="submit"]:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 4px rgba(0, 41, 224, 0.2) !important;
}

/* Icon style */
.bosa-law-firm-contact-form-custom button.wpcf7-submit i {
    font-size: 1.1em;
    transition: transform 0.3s ease;
}

.bosa-law-firm-contact-form-custom button.wpcf7-submit:hover i {
    transform: translateX(2px);
}

/* Error/Validation messages */
.bosa-law-firm-contact-form-custom .wpcf7-not-valid-tip {
    color: #dc2626 !important;
    font-size: 13px !important;
    margin-top: 6px !important;
}

.bosa-law-firm-contact-form-custom .wpcf7-not-valid {
    border-color: #dc2626 !important;
}

/* Success message */
.bosa-law-firm-contact-form-custom .wpcf7-response-output {
    border-radius: 8px !important;
    padding: 16px !important;
    margin-top: 20px !important;
}

.bosa-law-firm-contact-form-custom .wpcf7-mail-sent-ok {
    background: #d1fae5 !important;
    border-color: #10b981 !important;
    color: #065f46 !important;
}

/* Responsive: Stack on mobile */
@media (max-width: 600px) {
    .bosa-law-firm-contact-form-custom .form-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    
    .bosa-law-firm-contact-form-custom input[type="text"],
    .bosa-law-firm-contact-form-custom input[type="email"],
    .bosa-law-firm-contact-form-custom input[type="tel"],
    .bosa-law-firm-contact-form-custom button.wpcf7-submit {
        height: 52px !important;
    }
}


/* =========================================
   Language Switcher Dropdown - Modern UI/UX
   ========================================= */

/* Language switcher container */
#top-menu .menu-item-type-custom {
    display: none !important;
}
.language-switcher-dropdown {
    position: relative;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Toggle button */
.language-switcher-toggle {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 8px 12px !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    color: #334142 !important;
    height: auto !important;
    line-height: 1 !important;
    min-height: auto !important;
}

.language-switcher-toggle:hover,
.language-switcher-toggle[aria-expanded="true"] {
    background: rgba(0, 0, 0, 0.03) !important;
    border-color: rgba(0, 0, 0, 0.08) !important;
}

.language-switcher-toggle:hover {
    background: rgba(0, 41, 224, 0.06) !important;
    border-color: rgba(0, 41, 224, 0.15) !important;
    color: #0029e0 !important;
}

.language-switcher-toggle:focus {
    outline: 2px solid rgba(0, 41, 224, 0.2) !important;
    outline-offset: 2px !important;
}

/* Current language flag */
.current-language-flag {
    display: flex !important;
    align-items: center !important;
    line-height: 1 !important;
}

.current-language-flag img,
.current-language-flag svg {
    width: 20px !important;
    height: 15px !important;
    object-fit: cover !important;
    border-radius: 2px !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important;
}

/* Fix for Polylang inline SVG flags */
.current-language-flag svg,
.language-switcher-menu svg {
    display: inline-block !important;
    vertical-align: middle !important;
}

/* Polylang generates img inside span */
.current-language-flag span img {
    width: 20px !important;
    height: 15px !important;
}

/* Fallback for missing flags */
.flag-fallback {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 24px !important;
    height: 18px !important;
    background: rgba(0, 41, 224, 0.1) !important;
    border: 1px solid rgba(0, 41, 224, 0.2) !important;
    border-radius: 2px !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #0029e0 !important;
}

.dark-mode .flag-fallback {
    background: rgba(0, 41, 224, 0.2) !important;
    border-color: rgba(0, 41, 224, 0.3) !important;
    color: #6b9eff !important;
}

/* Current language name */
.current-language-name {
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    font-weight: 600 !important;
}

/* Dropdown arrow */
.dropdown-arrow {
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    stroke: currentColor !important;
}

.language-switcher-toggle[aria-expanded="true"] .dropdown-arrow {
    transform: rotate(180deg) !important;
}

/* Dropdown menu */
.language-switcher-menu {
    position: absolute !important;
    top: calc(100% + 6px) !important;
    right: 0 !important;
    left: auto !important;
    min-width: 180px !important;
    background: #ffffff !important;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.05) !important;
    padding: 6px !important;
    margin: 0 !important;
    list-style: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-8px) scale(0.95) !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 1000 !important;
}

.language-switcher-menu.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
}

/* Menu items */
.language-switcher-menu li {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.language-switcher-menu a {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 12px !important;
    border-radius: 6px !important;
    color: #334142 !important;
    text-decoration: none !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.language-switcher-menu a:hover {
    background: rgba(0, 41, 224, 0.08) !important;
    color: #0029e0 !important;
}

.language-switcher-menu a:active {
    background: rgba(0, 41, 224, 0.12) !important;
}

.language-switcher-menu img,
.language-switcher-menu svg:not(.dropdown-arrow) {
    width: 20px !important;
    height: 15px !important;
    object-fit: cover !important;
    border-radius: 2px !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important;
}

/* Override for Polylang span wrapped flags */
.language-switcher-menu a span img,
.language-switcher-menu a span svg {
    margin: 0 !important;
}

.language-switcher-menu span {
    flex: 1 !important;
}

/* Dark mode support */
.dark-mode .language-switcher-toggle {
    background: transparent !important;
    border-color: transparent !important;
    color: #f7f7f7 !important;
}

.dark-mode .language-switcher-toggle[aria-expanded="true"] {
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
}

.dark-mode .language-switcher-toggle:hover {
    background: rgba(0, 41, 224, 0.15) !important;
    border-color: rgba(0, 41, 224, 0.3) !important;
}

.dark-mode .language-switcher-menu {
    background: #1a1a1a !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2) !important;
}

.dark-mode .language-switcher-menu a {
    color: #f7f7f7 !important;
}

.dark-mode .language-switcher-menu a:hover {
    background: rgba(0, 41, 224, 0.2) !important;
}

/* Hide default language switcher items if they exist */
#top-menu .lang-item,
#top-menu > li.lang-item,
#top-menu .menu-item.lang-item,
#top-menu li[class*="lang-"],
.top-menu .lang-item,
.top-menu > li.lang-item,
.top-menu .menu-item.lang-item,
.top-menu li[class*="lang-"] {
    display: none !important;
}

/* Show only our custom dropdown */
#top-menu .language-switcher-dropdown,
.top-menu .language-switcher-dropdown {
    display: block !important;
}


/* =========================================
   Mobile Menu - Language Switcher Integration
   ========================================= */

/* Mobile menu adjustments for Language Switcher */
@media (max-width: 54rem) {

    .moved-items .menu-item-type-custom{
        display: none !important;
    }
    
    /* Language Switcher in Mobile Menu - Always Expanded */
    .slide-menu .language-switcher-dropdown {
        border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
        padding-top: 1.5rem !important;
        margin-top: 1.5rem !important;
    }
    
    /* Toggle button in mobile - styled as section header */
    .slide-menu .language-switcher-toggle {
        background: transparent !important;
        border: none !important;
        color: rgba(255, 255, 255, 0.7) !important;
        font-size: 0.75rem !important;
        text-transform: uppercase !important;
        letter-spacing: 1px !important;
        padding: 0 0 0.75rem 0 !important;
        cursor: default !important;
        pointer-events: none !important;
        justify-content: flex-start !important;
    }
    
    .slide-menu .language-switcher-toggle:hover {
        background: transparent !important;
        border: none !important;
    }
    
    /* Hide arrow in mobile menu */
    .slide-menu .dropdown-arrow {
        display: none !important;
    }
    
    /* Always show language menu in mobile */
    .slide-menu .language-switcher-menu {
        position: static !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        min-width: auto !important;
    }
    
    /* Language menu items in mobile */
    .slide-menu .language-switcher-menu li {
        margin-bottom: 0.5rem !important;
    }
    
    .slide-menu .language-switcher-menu a {
        color: #fff !important;
        background: rgba(255, 255, 255, 0.05) !important;
        border: 1px solid rgba(255, 255, 255, 0.15) !important;
        border-radius: 8px !important;
        padding: 12px 16px !important;
        font-size: 1rem !important;
        font-weight: 500 !important;
        transition: all 0.2s ease !important;
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        min-height: 48px !important; /* Better touch target */
    }
    
    .slide-menu .language-switcher-menu a:hover,
    .slide-menu .language-switcher-menu a:active {
        background: rgba(0, 41, 224, 0.3) !important;
        border-color: rgba(0, 41, 224, 0.5) !important;
        color: #fff !important;
    }
    
    /* Larger flags in mobile for better visibility */
    .slide-menu .current-language-flag img,
    .slide-menu .current-language-flag svg,
    .slide-menu .language-switcher-menu img,
    .slide-menu .language-switcher-menu svg:not(.dropdown-arrow) {
        width: 24px !important;
        height: 18px !important;
        flex-shrink: 0 !important;
    }
    
    /* Language name styling in mobile */
    .slide-menu .language-switcher-menu span {
        flex: 1 !important;
        text-align: left !important;
    }
    
    /* Current language indicator in mobile menu */
    .slide-menu .current-language-name {
        color: rgba(255, 255, 255, 0.7) !important;
        font-size: 0.875rem !important;
    }
    
    /* Active language highlight */
    .slide-menu .language-switcher-menu .current-lang a {
        background: rgba(0, 41, 224, 0.4) !important;
        border-color: rgba(0, 41, 224, 0.6) !important;
        position: relative !important;
    }
    
    .slide-menu .language-switcher-menu .current-lang a::after {
        content: "✓" !important;
        position: absolute !important;
        right: 16px !important;
        color: #fff !important;
        font-weight: bold !important;
    }
}

/* Responsive: Desktop remains dropdown */
@media (min-width: 54rem) {
    .language-switcher-menu {
        right: 0 !important;
        left: auto !important;
    }
    
    .language-switcher-toggle {
        font-size: 0.875rem !important;
        padding: 6px 12px !important;
    }
    
    .current-language-flag img,
    .current-language-flag svg,
    .language-switcher-menu img,
    .language-switcher-menu svg:not(.dropdown-arrow) {
        width: 20px !important;
        height: 15px !important;
    }
}
.sticky-header.show {
  background-color: #fff !important;
}