/* ============================================================================
 * NAVBAR CONSOLIDATED STYLES
 * ============================================================================
 * 
 * This file consolidates all navbar-related styles from:
 * - header.css (fixed positioning, main nav styles)
 * - responsive.css (responsive breakpoints)
 * - mobile-consolidated.css (mobile navbar)
 * - forms.css (search form in header)
 * 
 * Organization:
 * 1. Desktop Base Styles (default)
 * 2. Desktop Responsive Adjustments
 * 3. Mobile Specific Styles (≤991px)
 * 4. Admin Bar Compensation
 * 
 * Principles:
 * - Uses CSS custom properties from variables.css and breakpoints.css
 * - Maintains existing class names for compatibility
 * - Reduces !important declarations where possible
 * - Preserves exact visual appearance and functionality
 */

/* ============================================================================
 * DESKTOP BASE STYLES (Default - No Media Query)
 * ============================================================================ */

/* Fixed Header Positioning */
body.theme-pt .header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    z-index: var(--z-index-header, 99);
    background-color: var(--header-bg-color, rgba(255, 255, 255, .98));
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Bootstrap Override - Comprehensive */
body.theme-pt .header.navbar-expand-lg,
body.theme-pt .navbar-expand-lg.header,
body.theme-pt .navbar.header,
body.theme-pt .header.navbar,
body.theme-pt nav.header,
body.theme-pt header.navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    min-width: 100%;
    z-index: var(--z-index-header, 99);
    margin: 0;
    padding: 0;
    background-color: var(--header-bg-color, rgba(255, 255, 255, .98));
    box-sizing: border-box;
}

/* Override all Bootstrap responsive classes */
body.theme-pt .navbar-expand-sm.header,
body.theme-pt .navbar-expand-md.header,
body.theme-pt .navbar-expand-lg.header,
body.theme-pt .navbar-expand-xl.header,
body.theme-pt .navbar-expand-xxl.header {
    position: fixed;
    display: block;
    flex-wrap: nowrap;
}

/* Main Navigation Container */
body.theme-pt .main-nav {
    position: relative;
    z-index: 2;
    padding-top: 0;
    padding-bottom: 0;
    height: 100%;
    display: flex;
    align-items: center;
}

body.theme-pt .main-nav .navbar {
    z-index: 2;
    position: unset;
    padding: 0;
    height: 100%;
    display: flex;
    align-items: center;
}

body.theme-pt .main-nav .navbar ul {
    margin-bottom: 0;
    list-style-type: none;
    padding-left: 0;
    justify-content: center;
    align-items: center;
    height: 100%;
    display: flex;
}

body.theme-pt .main-nav .navbar .navbar-nav.middle {
    padding-bottom: 0px;
    justify-content: center;
    align-items: center;
    height: 100%;
}

/* Navigation Links */
body.theme-pt .main-nav .navbar .navbar-nav .nav-item {
    position: relative;
    padding: var(--space-nav-item-padding, 8px) 0;
    margin: 0 0 0 25px;
    white-space: nowrap;
    display: flex;
    align-items: center;
}

body.theme-pt .main-nav .navbar .navbar-nav .nav-item:first-child .nav-link {
    margin-left: 0;
}

body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link {
    position: relative;
    border-bottom: 1px solid var(--color-text-primary);
    padding: 2px 0 2px;
    color: var(--link-navigation);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.111em;
    text-decoration: none;
}

body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link i {
    font-size: 18px;
    line-height: 0;
    position: relative;
    top: 4px;
}

/* Right-aligned navigation items */
body.theme-pt .main-nav .navbar .navbar-nav.rt li a {
    color: var(--link-navigation);
    text-decoration: none;
    border-bottom: none;
}

body.theme-pt .main-nav .navbar .navbar-nav.rt li.nav-item {
    margin-left: 17px;
}

body.theme-pt .main-nav .navbar .navbar-nav.rt li:first-child {
    border-right: 1px solid var(--color-text-muted);
    margin-right: 0;
    padding-right: 1rem;
}

/* Header navigation styling */
body.theme-pt .header .main-nav .navbar .navbar-nav > .nav-item > .nav-link {
    border-bottom: 1px solid transparent;
}

body.theme-pt .navbar-expand-lg .navbar-nav > .nav-item {
    position: relative;
}

/* Navigation Hover States */
body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link:hover,
body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link:focus,
body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link.active {
    color: var(--link-navigation-hover);
    text-underline-offset: .15em;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
}

body.theme-pt .main-nav .navbar .navbar-nav.rt li a:hover {
    color: var(--link-navigation-hover);
    text-underline-offset: .15em;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    border-bottom: none;
}

body.theme-pt .header .main-nav .navbar .navbar-nav > .nav-item:hover > .nav-link {
    border-color: var(--color-bg-primary);
    color: var(--link-navigation-hover);
    text-underline-offset: .15em;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
}

/* Remove border on focus and active states */
body.theme-pt .header .main-nav .navbar .navbar-nav > .nav-item > .nav-link:focus,
body.theme-pt .header .main-nav .navbar .navbar-nav > .nav-item > .nav-link:active,
body.theme-pt .header .main-nav .navbar .navbar-nav > .nav-item > .nav-link:focus-visible {
    border-color: transparent !important;
    outline: none;
}

body.theme-pt .header .main-nav .navbar .navbar-nav > .nav-item.active > .nav-link,
body.theme-pt .header .main-nav .navbar .navbar-nav > .nav-item.active:hover > .nav-link {
    color: var(--link-navigation-hover);
}

/* Dropdown Navigation Menus */
body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link.dropdown-toggle {
    padding-right: 20px;
}

body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link.dropdown-toggle::before {
    content: "";
    font-family: IcoFont;
    position: absolute;
    top: 50%;
    right: 0;
    line-height: 1;
    font-size: 17px;
    border: .3em solid transparent;
    border-top-color: currentColor;
    border-bottom: 0;
}

body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link.dropdown-toggle::after {
    display: none;
}

body.theme-pt .navbar-expand-lg .navbar-nav > .nav-item .dropdown-menu {
    position: absolute;
    bottom: 0;
    right: 0;
    left: auto;
    opacity: 0;
    padding: 5px 0;
    display: block;
    box-shadow: var(--shadow-md);
    border: 1px solid #b7b7b7;
    border-radius: 1rem;
    background-color: var(--color-bg-primary);
    overflow: hidden;
    text-align: left;
}

body.theme-pt .navbar-expand-lg .navbar-nav > .nav-item .dropdown-menu li {
    padding: 5px 20px;
}

body.theme-pt .navbar-expand-lg .navbar-nav > .nav-item .dropdown-menu a.nav-link {
    display: block;
    width: 100%;
    white-space: nowrap;
    text-transform: inherit;
    letter-spacing: 0px;
    text-decoration: none;
    border: none;
    background: none;
    border-bottom: 1px solid transparent;
    padding: 2px 0 2px;
    color: var(--link-navigation);
    font-size: 18px;
    font-weight: 500;
}

/* Show dropdown on hover */
body.theme-pt .navbar-expand-lg .navbar-nav > .nav-item:hover .dropdown-menu {
    opacity: 1;
}

body.theme-pt .navbar-expand-lg .navbar-nav > .nav-item .dropdown-menu a.nav-link:hover {
    background: none;
    color: var(--link-navigation-hover);
    text-underline-offset: .15em;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
}

body.theme-pt .main-nav .navbar .navbar-nav.middle .nav-item .nav-link:after {
    display: none !important;
}

/* Logo and Navbar Brand */
body.theme-pt .main-nav .navbar .logo .nav-item img {
    object-fit: fill;
    width: 250px;
}

body.theme-pt .main-nav .navbar .logo .nav-item {
    margin-left: 0;
    padding-top: 0;
    padding-bottom: 0;
}

body.theme-pt .navbar-brand {
    display: inline-flex;
    align-items: center;
    height: auto;
}

body.theme-pt .navbar-brand:focus,
body.theme-pt .navbar-brand:active {
    outline: none !important;
    border: none !important;
}

body.theme-pt .navbar-brand:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

body.theme-pt .navbar-brand img {
    max-height: calc(var(--space-header-height-mobile, 70px) - 2*var(--space-header-padding-vertical, 8px) - 2*var(--space-nav-item-padding, 8px));
    width: auto;
    height: auto;
    object-fit: contain;
    aspect-ratio: auto;
}

/* Search Icon */
body.theme-pt .filter-search-header-icon:hover {
    color: var(--color-accent);
}

body.theme-pt .filter-search-header-icon {
    font-family: Icons Realtor Template, sans-serif;
    font-size: 26px;
    line-height: 1em;
    display: flex;
}

body.theme-pt .searchbtn {
    cursor: pointer;
}

/* Search Form (from forms.css) */
.formstyle {
    padding: 32px;
    overflow: visible;
    box-shadow: var(--shadow-sm);
    background-color: var(--color-bg-primary);
    border-radius: var(--radius-2xl);
    position: fixed;
    top: 100px;
    right: 20px;
    width: 720px;
    display: none;
    align-items: center;
    transition: all 0.3s ease-in-out;
    z-index: 1001;
}

.formstyle.active {
    display: flex;
}

.formstyle .subscribe-form {
    margin: 0;
    justify-content: space-between;
    align-items: center;
    display: flex;
    width: 100%;
}

.formstyle .subscribe-form .form-control {
    background: #f6f6f6;
    margin-bottom: 0;
    margin-right: 20px;
}

/* WPML Language Switcher */
body.theme-pt .otgs-development-site-front-end {
    display: none;
}

body.theme-pt .main-nav .navbar .navbar-nav.rt li.nav-item:first-child {
    border: 0;
    padding-right: 0;
}

body.theme-pt .main-nav .navbar .navbar-nav.rt li.nav-item {
    margin-left: var(--space-md);
}

body.theme-pt .wpml-ls-legacy-list-horizontal a,
body.theme-pt .wpml-ls-legacy-list-horizontal {
    padding: 0;
}

body.theme-pt .wpml-ls-legacy-list-horizontal a {
    font-size: var(--font-size-xl);
}

body.theme-pt .header .wpml-ls-legacy-list-horizontal.wpml-ls-statics-footer {
    margin-bottom: 0;
}

/* Header Padding */
body.theme-pt .header .spr {
    padding: var(--space-header-padding-vertical, 8px) var(--space-md);
}

/* Current Page Styling */
body.theme-pt .header .main-nav .navbar .navbar-nav > .nav-item.current_page_item > .nav-link {
    color: var(--link-navigation-hover);
}

body.theme-pt .main-nav .navbar .navbar-nav ul.sub-menu .nav-item.current-menu-item > a {
    color: var(--link-navigation-hover);
}

body.theme-pt .nav-item.current-menu-item > .nav-link,
body.theme-pt .nav-link[aria-current="page"] {
    color: var(--link-navigation-hover);
}

/* ============================================================================
 * DESKTOP RESPONSIVE ADJUSTMENTS
 * ============================================================================ */

/* Desktop body padding for fixed header */
@media only screen and (min-width: 992px) {
    body {
        padding-top: var(--space-header-height, 80px) !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        min-height: 100vh !important;
    }
    
    html {
        scroll-padding-top: var(--space-header-height, 80px) !important;
        scroll-behavior: smooth !important;
        margin: 0 !important;
    }
    
    body.theme-pt .header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: var(--z-index-header, 99) !important;
        height: var(--space-header-height, 80px) !important;
        min-height: var(--space-header-height, 80px) !important;
        max-height: var(--space-header-height, 80px) !important;
    }
    
    @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
        body.theme-pt .header {
            -webkit-transform: translateZ(0);
            transform: translateZ(0);
        }
    }
}

/* Large Desktop - Tablet Landscape Range (1200px - 1399px) */
@media only screen and (min-width: 1200px) and (max-width: 1399px) {
    .main-nav .navbar .navbar-nav .nav-item {
        margin-left: 25px;
    }
    
    header .main-nav .navbar .navbar-nav > .nav-item > .nav-link {
        font-size: var(--font-size-lg);
    }
}

/* Reduce nav font-size and padding at narrow widths */
@media (max-width: 1200px) {
    body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link {
        font-size: 16px;
    }
    
    body.theme-pt .main-nav .navbar .navbar-nav .nav-item {
        margin: 0 0 0 20px;
        padding: var(--space-nav-item-padding, 6px) 0;
    }
}

@media (max-width: 1024px) {
    body.theme-pt .main-nav .navbar .navbar-nav .nav-item .nav-link {
        font-size: 15px;
    }
    
    body.theme-pt .main-nav .navbar .navbar-nav .nav-item {
        margin: 0 0 0 15px;
        padding: var(--space-nav-item-padding, 4px) 0;
    }
}

/* Tablet Landscape Range (992px - 1199px) */
@media only screen and (min-width: 992px) and (max-width: 1199px) {
    .main-nav .navbar .navbar-nav .nav-item .nav-link {
        font-size: var(--font-size-sm);
    }
    
    .main-nav .navbar .navbar-nav .nav-item {
        margin-left: 13px;
    }
    
    .main-nav .navbar .navbar-nav .nav-item.menu-item-has-children > a:before {
        top: 9px;
    }
    
    .formstyle {
        width: 90%;
        right: 5%;
        padding: var(--space-xl) var(--space-md);
        border-radius: var(--radius-lg);
        top: var(--space-header-height, 80px);
    }
    
    .formstyle.active {
        display: flex;
    }
}

/* ============================================================================
 * MOBILE SPECIFIC STYLES (≤991px)
 * ============================================================================ */

/* Mobile Header Positioning and Height */
@media (max-width: var(--breakpoint-tablet-max, 991px)) {
    body.theme-pt .header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        min-width: 100% !important;
        z-index: var(--z-index-header, 99) !important;
        background-color: var(--header-bg-color, rgba(255, 255, 255, .98)) !important;
        height: var(--space-header-height-mobile, 70px) !important;
        min-height: var(--space-header-height-mobile, 70px) !important;
        max-height: var(--space-header-height-mobile, 70px) !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }
    
    /* Bootstrap navbar override for mobile */
    body.theme-pt .navbar-expand-lg.header,
    body.theme-pt .header.navbar-expand-lg,
    body.theme-pt .navbar.header,
    body.theme-pt .header.navbar {
        position: fixed !important;
        display: block !important;
        flex-wrap: nowrap !important;
        top: 0 !important;
        width: 100% !important;
    }
    
    /* Mobile viewport specific rules */
    @supports (-webkit-touch-callout: none) {
        body.theme-pt .header {
            -webkit-transform: translateZ(0);
            transform: translateZ(0);
        }
    }
}

/* Mobile Body Padding */
@media screen and (max-width: 991px) {
    body.theme-pt,
    body.theme-pt.wp-theme-peter-thompson,
    body.theme-pt.home {
        padding-top: 78px !important;
    }
}

/* Safe area support for notched devices */
@supports (padding-top: env(safe-area-inset-top)) {
    @media screen and (max-width: 991px) {
        body.theme-pt,
        body.theme-pt.wp-theme-peter-thompson {
            padding-top: calc(78px + env(safe-area-inset-top)) !important;
        }
    }
}

/* Mobile Navigation Styles */
@media only screen and (max-width: 991px) {
    /* Mobile Logo */
    .header.fixed .navbar-brand img,
    .header .navbar-brand img {
        max-height: 45px;
        width: auto;
        height: auto;
        object-fit: contain;
        aspect-ratio: auto;
    }
    
    .main-nav .navbar-brand,
    .header .navbar-brand {
        display: inline-flex;
        align-items: center;
        width: auto;
        max-width: 150px;
        flex: 0 0 auto;
        max-width: fit-content;
    }
    
    .main-nav .navbar-brand img,
    .header .navbar-brand img {
        width: auto;
        height: 40px;
        max-width: none;
        object-fit: contain;
    }
    
    /* Mobile Menu Structure */
    .navbar-expand-lg .navbar-nav > .nav-item .sub-menu {
        position: relative;
        display: none;
        opacity: 1;
        left: 0;
        border: none;
        border-radius: 0;
        box-shadow: none;
    }
    
    .navbar-expand-lg .navbar-nav > .nav-item.is-open > .sub-menu {
        position: relative;
        display: block;
        opacity: 1;
        left: 0;
        width: 100%;
    }
    
    .main-nav .navbar .navbar-nav .nav-item {
        margin: 0;
        margin-left: 0;
        padding-bottom: 25px;
    }
    
    /* Mobile Menu Toggle */
    .navbar-toggler.menu-icon {
        width: 45px;
        min-width: 45px;
        min-height: 45px;
        max-height: 45px;
        padding: 10px 12px;
        font-size: 26px;
        cursor: pointer;
        position: relative;
        border: 0;
        margin-right: 0;
        outline: none;
        box-shadow: none;
        background-color: var(--color-text-secondary);
        border-radius: var(--radius-lg);
    }
    
    .navbar-toggler.menu-icon span {
        background: var(--color-bg-primary);
        height: 2px;
        margin: 5px 0;
        width: 20px;
        display: block;
    }
    
    .navbar-toggler.menu-icon.active {
        background-color: var(--color-accent);
    }
    
    .navbar-toggler.menu-icon.active span {
        position: absolute;
        top: calc(54% - 8px);
    }
    
    .navbar-toggler.menu-icon.active span:nth-child(2) {
        display: none;
    }
    
    /* Mobile Header States */
    .header.active {
        background: var(--color-bg-primary);
    }
    
    .header {
        margin-bottom: 0;
    }
    
    /* Mobile Navigation Content */
    .main-nav .navbar .navbar-nav {
        padding-bottom: 0;
        width: 100%;
        text-align: center;
    }
    
    .main-nav .navbar .navbar-nav.middle {
        padding-bottom: 0;
        width: 100%;
        justify-content: start;
        align-items: start;
        padding-left: var(--space-md);
        padding-top: var(--space-lg);
    }
    
    .main-nav .navbar .navbar-nav ul.sub-menu .nav-item a {
        padding: 9px 0 2px;
        font-size: 28px;
    }
    
    .header .main-nav .navbar .navbar-nav > .nav-item > .nav-link {
        border-bottom: 1px solid transparent;
        font-size: 28px;
    }
}

/* Mobile Search Form */
@media (max-width: 768px) {
    .formstyle {
        width: 95%;
        right: 2.5%;
        left: 2.5%;
        padding: var(--space-lg) var(--space-md);
        border-radius: var(--radius-lg);
        display: none;
        position: fixed;
        top: 80px;
        z-index: 1002;
    }
    
    .formstyle.active {
        display: block;
    }
    
    .formstyle .subscribe-form {
        display: block;
        gap: var(--space-md);
    }
    
    .formstyle .subscribe-form .form-control {
        margin-right: 0;
        margin-bottom: var(--space-md);
        width: 100%;
    }
    
    .formstyle .subscribe-form .btn.btn-primary {
        width: 100%;
        margin-top: 0;
    }
}

/* Mobile Header Padding */
@media (max-width: var(--breakpoint-mobile-max, 767px)) {
    body.theme-pt .header .spr {
        padding: var(--space-header-padding-vertical-mobile, 6px) var(--space-md);
    }
}

/* ============================================================================
 * ADMIN BAR COMPENSATION
 * ============================================================================ */

/* Desktop Admin Bar */
body.admin-bar.theme-pt .header {
    top: var(--space-admin-bar-desktop, 32px) !important;
}

@media only screen and (min-width: 992px) {
    body.admin-bar {
        padding-top: calc(var(--space-header-height, 80px) + var(--space-admin-bar-desktop, 32px)) !important;
    }
    
    html.admin-bar {
        scroll-padding-top: calc(var(--space-header-height, 80px) + var(--space-admin-bar-desktop, 32px)) !important;
    }
}

/* Mobile Admin Bar */
@media (max-width: 782px) {
    body.admin-bar.theme-pt .header {
        top: var(--space-admin-bar-mobile, 46px) !important;
    }
}

/* Fallback admin bar compensation */
body.admin-bar.theme-pt .header:not([style*="top"]) {
    top: 32px !important;
}

@media (max-width: 782px) {
    body.admin-bar.theme-pt .header:not([style*="top"]) {
        top: 46px !important;
    }
}

/* Admin bar compensation with correct header height */
@media screen and (max-width: 991px) {
    body.theme-pt.admin-bar,
    body.theme-pt.admin-bar.wp-theme-peter-thompson {
        padding-top: calc(78px + 46px) !important;
    }
}