/* ═══════════════════════════════════════════════════════════
   EAS PRIMARY HEADER
   East Africa Safari Guides
   Child theme owned — zero dependencies
   v1.2 — real images, consolidated, final
═══════════════════════════════════════════════════════════ */

:root {
    --eas-gold:      #C8A96E;
    --eas-dark:      #1A1A1A;
    --eas-cream:     #FAFAF5;
    --eas-text:      #2A2A2A;
    --eas-muted:     #888888;
    --eas-border:    #E8E4DE;
    --eas-font-nav:  'Jost', sans-serif;
    --eas-font-head: 'Cormorant Garamond', serif;
    --eas-ease:      cubic-bezier(0.4, 0, 0.2, 1);
}

/* ─── RESET ─── */
.eas-header *,
.eas-header *::before,
.eas-header *::after {
    box-sizing: border-box;
}

.eas-header ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* ─── BASE ─── */
.eas-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
}

/* ─── BODY OFFSET ─── */
body {
    padding-top: 118px; /* utility 38px + nav 80px */
}

body.home,
body.header-transparent {
    padding-top: 0 !important;
}

@media (max-width: 480px) {
    body {
        padding-top: 80px;
    }
}

/* ═══════════════════════════════════════════════
   UTILITY BAR
═══════════════════════════════════════════════ */

.eas-utility-bar {
    background: var(--eas-dark);
    height: 38px;
    overflow: hidden;
    transition: height 0.35s var(--eas-ease),
                opacity 0.35s var(--eas-ease);
}

.eas-utility-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.eas-utility-left {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--eas-font-nav);
    font-size: 11px;
    letter-spacing: 1.5px;
    color: var(--eas-gold);
}

.eas-utility-left a {
    color: var(--eas-gold);
    text-decoration: none;
    transition: opacity 0.2s;
}

.eas-utility-left a:hover {
    opacity: 0.75;
}

.eas-utility-left span:not(.eas-divider) {
    color: #666;
}

.eas-divider {
    color: #333;
}

.eas-utility-right {
    font-family: var(--eas-font-nav);
    font-size: 10px;
    letter-spacing: 3px;
    color: #555;
    text-transform: uppercase;
}

/* ═══════════════════════════════════════════════
   MAIN NAV BAR
═══════════════════════════════════════════════ */

.eas-nav-bar {
    height: 80px;
    background: var(--eas-cream);
    border-bottom: 1px solid var(--eas-border);
    transition: background 0.35s var(--eas-ease),
                border-color 0.35s var(--eas-ease),
                box-shadow 0.35s var(--eas-ease);
}

.eas-nav-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
    height: 100%;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 40px;
}

/* ─── LOGO ─── */
.eas-logo {
    display: flex;
    justify-content: center;
    align-items: center;
}

.eas-logo a {
    display: block;
    line-height: 0;
}

.eas-logo img {
    height: 50px;
    width: auto;
    transition: filter 0.35s var(--eas-ease);
}

/* ─── NAV LISTS ─── */
.eas-nav-left ul,
.eas-nav-right ul {
    display: flex;
    align-items: center;
}

.eas-nav-right ul {
    justify-content: flex-end;
}

/* ─── NAV LINKS ─── */
.eas-nav-link {
    font-family: var(--eas-font-nav);
    font-size: 10.5px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--eas-text);
    text-decoration: none;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    gap: 5px;
    position: relative;
    white-space: nowrap;
    transition: color 0.25s;
}

.eas-nav-link:hover {
    color: var(--eas-gold);
}

.eas-nav-link::after {
    content: '';
    position: absolute;
    bottom: 4px;
    left: 16px;
    right: 16px;
    height: 1px;
    background: var(--eas-gold);
    transform: scaleX(0);
    transition: transform 0.3s var(--eas-ease);
}

.eas-nav-link:hover::after {
    transform: scaleX(1);
}

.eas-chevron {
    flex-shrink: 0;
    transition: transform 0.3s var(--eas-ease);
}

.has-mega:hover .eas-chevron,
.has-dropdown:hover .eas-chevron {
    transform: rotate(180deg);
}

/* ─── CTA BUTTON ─── */
.eas-cta-btn {
    font-family: var(--eas-font-nav);
    font-size: 10px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--eas-text);
    text-decoration: none;
    padding: 11px 22px;
    border: 1px solid var(--eas-text);
    margin-left: 8px;
    display: inline-block;
    white-space: nowrap;
    transition: all 0.25s var(--eas-ease);
}

.eas-cta-btn:hover {
    background: var(--eas-gold);
    border-color: var(--eas-gold);
    color: #fff;
}

/* ═══════════════════════════════════════════════
   TRANSPARENT STATE — homepage hero overlay
═══════════════════════════════════════════════ */

.eas-header.is-transparent .eas-utility-bar {
    height: 0;
    opacity: 0;
    pointer-events: none;
}

.eas-header.is-transparent .eas-nav-bar {
    background: transparent !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
    box-shadow: none !important;
}

.eas-header.is-transparent .eas-nav-link {
    color: #fff !important;
}

.eas-header.is-transparent .eas-nav-link:hover {
    color: var(--eas-gold) !important;
}

.eas-header.is-transparent .eas-nav-link::after {
    background: rgba(255, 255, 255, 0.6);
}

.eas-header.is-transparent .eas-logo img {
    filter: brightness(0) invert(1);
}

.eas-header.is-transparent .eas-cta-btn {
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.7) !important;
    background: transparent !important;
}

.eas-header.is-transparent .eas-cta-btn:hover {
    background: rgba(255, 255, 255, 0.15) !important;
    border-color: #fff !important;
}

.eas-header.is-transparent .eas-chevron {
    color: #fff;
}

.eas-header.is-transparent .eas-mobile-toggle span {
    background: #fff;
}

/* ─── SCROLLED STATE ─── */
.eas-header.is-scrolled .eas-nav-bar {
    box-shadow: 0 2px 24px rgba(0, 0, 0, 0.08);
}

/* ═══════════════════════════════════════════════
   MEGA MENU — THE JOURNEYS
═══════════════════════════════════════════════ */

.eas-mega-menu {
    position: fixed;
    top: 118px; /* utility 38px + nav 80px */
    left: 0;
    right: 0;
    background: #fff;
    border-top: 2px solid var(--eas-gold);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.3s var(--eas-ease),
                visibility 0.3s var(--eas-ease),
                transform 0.3s var(--eas-ease);
    z-index: 9998;
}

/* When transparent (homepage), mega drops directly from nav bar */
.eas-header.is-transparent .eas-mega-menu {
    top: 80px;
}

.has-mega:hover .eas-mega-menu,
.eas-mega-menu:hover {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.eas-mega-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1px;
    background: #E0DDD8; /* grid line colour */
}

/* ─── JOURNEY CARDS ─── */
.eas-journey-card {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    padding: 24px 18px 20px;
    text-decoration: none;
    min-height: 175px;
    background-size: cover;
    background-position: center;
    background-color: #1A1510; /* fallback if image fails */
    transition: transform 0.4s var(--eas-ease);
}

.eas-journey-card:hover {
    transform: scale(1.025);
    z-index: 1;
}

/* Gold top-bar on hover */
.eas-journey-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--eas-gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s var(--eas-ease);
    z-index: 2;
}

.eas-journey-card:hover::after {
    transform: scaleX(1);
}

/* Gradient overlay — always present */
.eas-jc-overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(
        to top,
        rgba(5, 3, 1, 0.92) 0%,
        rgba(5, 3, 1, 0.45) 45%,
        rgba(5, 3, 1, 0.08) 100%
    );
    transition: background 0.35s;
}

.eas-journey-card:hover .eas-jc-overlay {
    background: linear-gradient(
        to top,
        rgba(5, 3, 1, 0.96) 0%,
        rgba(5, 3, 1, 0.55) 50%,
        rgba(200, 169, 110, 0.15) 100%
    );
}

/* Text — always above overlay */
.eas-jc-title {
    position: relative;
    z-index: 1;
    font-family: var(--eas-font-nav);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #FFFFFF !important;
    margin-bottom: 6px;
    display: block;
    transition: color 0.25s;
}

.eas-journey-card:hover .eas-jc-title {
    color: var(--eas-gold) !important;
}

.eas-jc-sub {
    position: relative;
    z-index: 1;
    font-family: var(--eas-font-head);
    font-size: 13px;
    font-style: italic;
    color: rgba(255, 255, 255, 0.72) !important;
    line-height: 1.4;
    display: block;
    transition: color 0.25s;
}

.eas-journey-card:hover .eas-jc-sub {
    color: rgba(255, 255, 255, 0.90) !important;
}

/* ═══════════════════════════════════════════════
   DESTINATIONS DROPDOWN
═══════════════════════════════════════════════ */

.has-dropdown {
    position: relative;
}

.eas-dropdown {
    position: absolute;
    top: calc(100% + 1px);
    left: 0;
    min-width: 340px;
    background: #fff;
    border-top: 2px solid var(--eas-gold);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    overflow: hidden;
    transition: all 0.3s var(--eas-ease);
    z-index: 9998;
}

.has-dropdown:hover .eas-dropdown,
.eas-dropdown:hover {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Country header */
.eas-dd-country-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 13px 20px;
    background: #FAFAF5;
    border-bottom: 1px solid #EDEBE6;
}

.eas-dd-country-title {
    font-family: var(--eas-font-nav);
    font-size: 10px;
    letter-spacing: 3px;
    color: var(--eas-text);
    font-weight: 600;
    text-transform: uppercase;
}

.eas-dd-badge {
    font-family: var(--eas-font-nav);
    font-size: 9px;
    letter-spacing: 1.5px;
    color: var(--eas-gold);
    text-transform: uppercase;
    padding: 2px 8px;
    border: 1px solid rgba(200, 169, 110, 0.4);
    background: rgba(200, 169, 110, 0.08);
}

/* Circuit rows */
.eas-dd-circuit-group {
    padding: 4px 0;
}

.eas-dd-circuit-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 20px;
    text-decoration: none;
    border-bottom: 1px solid #F5F2EE;
    transition: background 0.25s var(--eas-ease),
                padding-left 0.25s var(--eas-ease);
    gap: 12px;
}

.eas-dd-circuit-row:hover {
    background: var(--eas-cream);
    padding-left: 26px;
}

.eas-dd-circuit-left {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
}

.eas-dd-circuit-label {
    font-family: var(--eas-font-nav);
    font-size: 12px;
    letter-spacing: 1px;
    color: var(--eas-text);
    font-weight: 500;
    transition: color 0.25s;
}

.eas-dd-circuit-row:hover .eas-dd-circuit-label {
    color: var(--eas-gold);
}

.eas-dd-parks {
    font-family: var(--eas-font-head);
    font-size: 12px;
    color: #AAAAAA;
    font-style: italic;
    line-height: 1.4;
}

.eas-dd-arrow {
    color: #CCC;
    flex-shrink: 0;
    transition: color 0.25s, transform 0.25s var(--eas-ease);
}

.eas-dd-circuit-row:hover .eas-dd-arrow {
    color: var(--eas-gold);
    transform: translateX(3px);
}

/* Coming soon row */
.eas-dd-coming-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 11px 20px;
    background: #FAFAF5;
    border-top: 1px solid #EDEBE6;
}

.eas-dd-coming-label {
    font-family: var(--eas-font-nav);
    font-size: 8px;
    letter-spacing: 2px;
    color: var(--eas-gold);
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
}

.eas-dd-coming-countries {
    display: flex;
    gap: 14px;
}

.eas-dd-coming-countries span {
    font-family: var(--eas-font-nav);
    font-size: 10px;
    letter-spacing: 1px;
    color: #BBBBBB;
    text-transform: uppercase;
}

/* ═══════════════════════════════════════════════
   MOBILE TOGGLE
═══════════════════════════════════════════════ */

.eas-mobile-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    justify-self: end;
}

.eas-mobile-toggle span {
    display: block;
    width: 24px;
    height: 1.5px;
    background: var(--eas-text);
    transition: all 0.3s var(--eas-ease);
}

.eas-mobile-toggle.is-open span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
}

.eas-mobile-toggle.is-open span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

.eas-mobile-toggle.is-open span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
}

/* ═══════════════════════════════════════════════
   MOBILE OVERLAY
═══════════════════════════════════════════════ */

.eas-mobile-overlay {
    position: fixed;
    inset: 0;
    background: #0F0F0F;
    z-index: 99999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s var(--eas-ease),
                visibility 0.4s var(--eas-ease);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.eas-mobile-overlay.is-open {
    opacity: 1;
    visibility: visible;
}

.eas-mobile-inner {
    padding: 70px 40px 40px;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
}

.eas-mobile-close {
    position: fixed;
    top: 20px;
    right: 24px;
    background: none;
    border: none;
    color: #666;
    font-size: 22px;
    cursor: pointer;
    padding: 8px;
    line-height: 1;
    transition: color 0.2s;
    z-index: 100000;
}

.eas-mobile-close:hover {
    color: var(--eas-gold);
}

.eas-mobile-nav {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.eas-mobile-section {
    border-bottom: 1px solid #1E1E1E;
    padding: 20px 0;
    display: flex;
    flex-direction: column;
}

.eas-mobile-label {
    font-family: var(--eas-font-nav);
    font-size: 9px;
    letter-spacing: 3px;
    color: var(--eas-gold);
    text-transform: uppercase;
    margin-bottom: 14px;
    display: block;
}

.eas-mobile-nav a {
    font-family: var(--eas-font-head);
    font-size: 22px;
    font-weight: 300;
    color: #E8E0D0;
    text-decoration: none;
    padding: 8px 0;
    border-bottom: 1px solid #1A1A1A;
    transition: color 0.2s;
    display: block;
}

.eas-mobile-nav a:last-child {
    border-bottom: none;
}

.eas-mobile-nav a:hover {
    color: var(--eas-gold);
}

.eas-mobile-soon {
    font-family: var(--eas-font-nav);
    font-size: 12px;
    letter-spacing: 1px;
    color: #444;
    padding: 8px 0;
    display: block;
}

.eas-mobile-cta {
    font-family: var(--eas-font-nav) !important;
    font-size: 11px !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
    color: var(--eas-gold) !important;
    border: 1px solid var(--eas-gold) !important;
    text-align: center !important;
    padding: 18px !important;
    margin-top: 32px !important;
    text-decoration: none !important;
    display: block !important;
    transition: all 0.25s !important;
}

.eas-mobile-cta:hover {
    background: var(--eas-gold) !important;
    color: #0F0F0F !important;
}

.eas-mobile-footer {
    padding-top: 28px;
    border-top: 1px solid #1E1E1E;
    margin-top: 8px;
}

.eas-mobile-footer p {
    font-family: var(--eas-font-nav);
    font-size: 13px;
    color: #555;
    letter-spacing: 0.5px;
    margin: 5px 0;
}

.eas-mobile-footer a {
    color: #555;
    text-decoration: none;
    transition: color 0.2s;
}

.eas-mobile-footer a:hover {
    color: var(--eas-gold);
}

/* ═══════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════ */

@media (max-width: 1200px) {
    .eas-utility-inner,
    .eas-nav-inner {
        padding: 0 40px;
    }

    .eas-nav-link {
        padding: 10px 10px;
        font-size: 10px;
        letter-spacing: 1.5px;
    }

    .eas-cta-btn {
        padding: 10px 16px;
        font-size: 9.5px;
    }

    .eas-mega-inner {
        padding: 0 40px;
    }
}

@media (max-width: 1024px) {
    .eas-nav-left,
    .eas-nav-right {
        display: none;
    }

    .eas-mobile-toggle {
        display: flex;
    }

    .eas-nav-inner {
        grid-template-columns: 40px 1fr 40px;
        padding: 0 24px;
        gap: 0;
    }

    .eas-logo {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .eas-utility-bar {
        display: none;
    }

    .eas-mobile-inner {
        padding: 70px 24px 40px;
    }

    .eas-mobile-nav a {
        font-size: 19px;
    }
}
