/* ==============================================================
   🌍 Around Europe Blog – Modern Header (2025)
   ============================================================== */

/* ---------- Base Header ----------
   Sticky, full‑width, subtle shadow */
#site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--c-bg);
    border-bottom: 1px solid var(--c-border);
    box-shadow: 0 2px 4px rgba(0,0,0,.05);
    transition: all .3s ease;
}

/* ---------- Header Container ----------
   Flex layout, centred, max‑width */
.header-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
    padding: .5rem 1.5rem;
    gap: 1rem;
}

/* ---------- Navigation (Desktop) ----------
   Centered list of links */
.main-nav {
    flex: 1 1 auto;
    text-align: center;
}
.main-nav ul {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2.2rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.main-nav a {
 
    font-size: 2.1rem;
    font-weight: 400;
    color: var(--c-text);
    text-decoration: none;
    transition: color .2s ease;
}
.main-nav a:hover,
.main-nav a:focus-visible {
    color: var(--c-primary);
}

/* ---------- Icons (Search + Menu) ----------
   Buttons – use <button> for semantics */
.header-icons {
    display: flex;
    align-items: center;
    gap: 1.2rem;
}
.header-icons button {
    font-size: 2.4rem;
    width: 2.2rem;               /* ≈ 35 px */
    height: 2.2rem;
    background: none;
    border: 2px solid var(--c-primary);
    border-radius: .375rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--c-primary);
    transition: background .2s ease, color .2s ease;
}
.header-icons button:hover,
.header-icons button:focus-visible {
    background: var(--c-primary);
    color: #fff;
}

/* ---------- Search Bar (hidden by default) ----------
   Visibility toggled with .active */
.search-bar {
    display: none;
    border-top: 1px solid var(--c-border);
    padding: 1rem 2rem;
    background: var(--c-bg);
    transition: all .3s ease;
}
.search-bar.active {
    display: block;
    animation: fadeIn .3s ease forwards;
}

/* ---------- Fade animation ----------
   Respect reduced‑motion preference */
@keyframes fadeIn {
    from { opacity:0; transform:translateY(-5px); }
    to   { opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .search-bar.active { animation:none; }
}

/* ==============================================================
   📱 Mobile & Tablet Navigation (≤1024px)
   ============================================================== */
@media (max-width:1024px) {

  /* --- Header layout --- */
  .header-container {
    position: relative;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    padding: 0.8rem 1.5rem;
  }

  /* --- Center hamburger icon --- */
  .menu-toggle {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1001;
    width: 3rem;
    height: 3rem;
    font-size: 2.2rem;
    border: 2px solid var(--c-primary);
    border-radius: .4rem;
    background: none;
    color: var(--c-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s ease, color .2s ease;
  }

  .menu-toggle:hover,
  .menu-toggle:focus-visible {
    background: var(--c-primary);
    color: #fff;
  }

  /* --- Search icon stays right --- */
  .search-toggle {
    width: 2.6rem;
    height: 2.6rem;
    font-size: 2rem;
    border: 2px solid var(--c-primary);
    border-radius: .4rem;
    background: none;
    color: var(--c-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s ease, color .2s ease;
  }

  .search-toggle:hover,
  .search-toggle:focus-visible {
    background: var(--c-primary);
    color: #fff;
  }

  /* --- Dropdown menu panel (absolute, animated) --- */
    /* --- Dropdown menu panel (absolute, animated) --- */
  #primary-menu.main-nav {
    position: relative;
    width: 100%;
  }

  #primary-menu.main-nav > ul {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: var(--c-bg);
    border-top: 1px solid var(--c-border);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    flex-direction: column;
    align-items: flex-start;
    padding: 1.5rem 2rem;
    gap: 1.2rem;
    z-index: 9999;

    /* hidden by default */
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    /* ✅ Added smooth fade */
    transition:
      max-height 0.4s ease,
      opacity 0.3s ease,
      visibility 0.3s ease;
  }

  #primary-menu.main-nav.active > ul {
    max-height: 500px;   /* enough for long menus */
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }


  #primary-menu.main-nav a {
    font-size: 1.8rem;
    width: 100%;
  }
    /* --- Ensure mobile menu always stays single column --- */
  #primary-menu.main-nav ul {
    flex-wrap: nowrap;          /* Prevent multiple columns */
    width: 100%;
  }

  #primary-menu.main-nav ul li {
    width: 100%;                /* Each menu item takes full width */
  }

  #primary-menu.main-nav ul li ul.sub-menu {
    width: 100%;
    padding-left: 1.5rem;       /* Indent submenu nicely */
  }

  #primary-menu.main-nav ul li ul.sub-menu li {
    width: 100%;
  }

}

/* ---------- Phones (≤600px) ----------
   Tighten spacing, shrink buttons */
@media (max-width:600px) {
  .header-container {
    flex-direction: row;
    justify-content: center;
    padding: .6rem 1rem;
  }

  .menu-toggle {
    width: 2.4rem;
    height: 2.4rem;
    font-size: 2rem;
  }

  .search-toggle {
    width: 2.2rem;
    height: 2.2rem;
    font-size: 1.8rem;
  }

  #primary-menu.main-nav > ul {
    padding: 1.2rem;
  }
}

/* ---------- Shrink header on scroll ---------- */
body.scrolled #site-header {
  box-shadow: 0 2px 8px rgba(0, 0, 0, .1);
  padding: .4rem 0;
}


/* ==============================================================
   📂 Dropdown Menu Styling (Primary Navigation)
   ============================================================== */
.main-nav ul li { position:relative; }               /* anchor for submenu */
.main-nav ul li ul {
    display:none;
    position:absolute;
    top:100%; left:0;
    background:var(--c-bg);
    border:1px solid var(--c-border);
    border-radius:.375rem;
    padding:.8rem 0;
    min-width:180px;
    box-shadow:0 4px 8px rgba(0,0,0,.08);
    z-index:999;
}
.main-nav ul li ul li a {
    display:block;
    font-size:1.5rem;
    font-weight:500;
    padding:.8rem 1.6rem;
    color:var(--c-text);
    white-space:nowrap;
}
.main-nav ul li ul li a:hover,
.main-nav ul li ul li a:focus-visible {
    background:var(--c-light-bg);
    color:var(--c-primary);
}

/* Desktop: show on hover or focus */
.main-nav ul li:hover > ul,
.main-nav ul li:focus-within > ul { display:block; }

/* Mobile: submenu stacks under its parent */
@media (max-width:1024px) {
    .main-nav ul li ul {
        position:static;
        display:none;
        border:none;
        box-shadow:none;
        background:transparent;
        padding:0;
    }
    .main-nav ul li.active > ul,
    .main-nav ul li:focus-within > ul { display:block; }

    .main-nav ul li ul li a {
        padding-left:2.5rem;
        font-size:1.7rem;
    }
}

/* --------------------------------------------------------------
   Accessibility helpers
   -------------------------------------------------------------- */
a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
}

