/* =====================================================
   EASTERN FRONTER — Premium Design System
   premium.css
   ===================================================== */

/* ---- Design Tokens ---- */
:root {
  /* Brand */
  --brand:           #485CC7;
  --brand-dark:      #3347A8;
  --brand-deeper:    #263494;
  --brand-light:     #EEF0FB;
  --brand-tint:      rgba(72, 92, 199, 0.07);

  /* Ink (dark palette) */
  --ink:             #0D1B2A;
  --ink-mid:         #152232;
  --ink-light:       #1E3145;

  /* Gold accent */
  --gold:            #C4A24A;
  --gold-light:      #E8D48A;

  /* Neutrals */
  --white:           #FFFFFF;
  --off-white:       #F7F8FC;
  --surface:         #F0F2FA;
  --border:          #E4E8F3;
  --border-mid:      #CDD3E8;

  /* Text */
  --text:            #0D1B2A;
  --text-mid:        #4A5568;
  --text-light:      #8896A8;
  --text-ghost:      #B0BAC9;

  /* Typography */
  --font-display:    'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:       'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;

  /* Sizing */
  --topbar-h:        38px;
  --header-h:        72px;
  --total-header:    calc(var(--topbar-h) + var(--header-h));
  --radius:          6px;
  --radius-lg:       12px;
  --radius-pill:     50px;

  /* Easing */
  --ease:            cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out:        cubic-bezier(0, 0, 0.2, 1);

  /* Shadows */
  --shadow-sm:       0 1px 3px rgba(13,27,42,0.08), 0 1px 2px rgba(13,27,42,0.04);
  --shadow-md:       0 4px 20px rgba(13,27,42,0.10), 0 2px 8px rgba(13,27,42,0.06);
  --shadow-lg:       0 12px 48px rgba(13,27,42,0.14), 0 4px 16px rgba(13,27,42,0.08);
  --shadow-brand:    0 4px 20px rgba(72, 92, 199, 0.28);
}

/* =====================================================
   GLOBAL OVERRIDES
   ===================================================== */
body {
  font-family: var(--font-body) !important;
  padding-top: var(--total-header) !important;
}

/* =====================================================
   SCROLL PROGRESS BAR
   ===================================================== */
.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0%;
  background: linear-gradient(90deg, var(--brand-deeper), var(--brand) 50%, #8B9FE8);
  z-index: 9999;
  pointer-events: none;
  transition: width 0.1s linear;
}

/* =====================================================
   SITE HEADER
   ===================================================== */
.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1000 !important;
  transition: transform 0.38s var(--ease), box-shadow 0.3s var(--ease);
  background: transparent;
  padding: 0 !important;
}

.site-header.header-hidden {
  transform: translateY(calc(-1 * var(--total-header)));
}

/* ----- Top Bar ----- */
.header-topbar {
  height: var(--topbar-h);
  background: var(--ink);
  display: flex;
  align-items: center;
}

.topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0 24px;
}

.topbar-edition {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

.topbar-time-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}

.topbar-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4ade80;
  flex-shrink: 0;
  animation: pulse-dot 2.2s ease-in-out infinite;
}

@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.45); }
  50%       { box-shadow: 0 0 0 5px rgba(74, 222, 128, 0); }
}

.topbar-time {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: 0.02em;
}

/* ----- Main Header ----- */
.header-main {
  height: var(--header-h);
  background: var(--white);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  transition: background 0.3s var(--ease),
              box-shadow 0.3s var(--ease),
              backdrop-filter 0.3s var(--ease);
}

.site-header.is-scrolled .header-main {
  background: rgba(255, 255, 255, 0.93);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: var(--shadow-md);
  border-bottom-color: transparent;
}

.header-inner {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0 24px;
  gap: 28px;
}

/* ----- Logo ----- */
.header-logo {
  flex-shrink: 0;
  display: flex !important;
  align-items: center;
  text-decoration: none !important;
  line-height: 1;
}

.header-logo .logo-img {
  height: 48px;
  width: auto;
  display: block;
  transition: opacity 0.22s var(--ease);
}

.header-logo:hover .logo-img {
  opacity: 0.82;
}

.logo-wordmark {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.logo-primary {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  color: var(--brand);
  letter-spacing: -0.02em;
  line-height: 1;
  display: block;
}

.logo-sub {
  font-family: var(--font-body);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-light);
  display: block;
}

/* ----- Desktop Navigation ----- */
.header-nav {
  flex: 1;
  display: flex;
  justify-content: center;
}

.nav-list {
  display: flex;
  align-items: center;
  gap: 2px;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.nav-list li {
  margin: 0 !important;
  padding: 0 !important;
}

.nav-list .nav-link {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  padding: 8px 14px !important;
  font-family: var(--font-body) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--text-mid) !important;
  text-decoration: none !important;
  border-radius: var(--radius) !important;
  background: transparent !important;
  transition: color 0.2s var(--ease), background 0.2s var(--ease) !important;
  white-space: nowrap;
}

.nav-list .nav-link::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%) scaleX(0);
  width: calc(100% - 28px);
  height: 2px;
  background: var(--brand);
  border-radius: 1px;
  transition: transform 0.24s var(--ease);
}

.nav-list .nav-link:hover {
  color: var(--brand) !important;
  background: var(--brand-tint) !important;
}

.nav-list .nav-link:hover::after,
.nav-list .nav-link.is-active::after {
  transform: translateX(-50%) scaleX(1);
}

.nav-list .nav-link.is-active {
  color: var(--brand) !important;
  font-weight: 600 !important;
}

/* ----- Header Actions ----- */
.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex-shrink: 0;
}

/* CTA Button */
.btn-reach-us {
  display: inline-flex !important;
  align-items: center;
  gap: 7px;
  padding: 9px 20px !important;
  background: var(--brand) !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  border-radius: var(--radius) !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background 0.22s var(--ease),
              transform 0.22s var(--ease),
              box-shadow 0.22s var(--ease) !important;
  line-height: 1 !important;
}

.btn-reach-us svg {
  transition: transform 0.22s var(--ease);
  flex-shrink: 0;
}

.btn-reach-us:hover {
  background: var(--brand-dark) !important;
  box-shadow: var(--shadow-brand) !important;
  transform: translateY(-1px) !important;
  color: var(--white) !important;
}

.btn-reach-us:hover svg {
  transform: translateX(3px);
}

.btn-reach-us:active {
  transform: translateY(0) !important;
  box-shadow: none !important;
}

/* ----- Mobile Toggle ----- */
.mobile-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 38px;
  height: 38px;
  padding: 8px;
  background: none !important;
  border: 1.5px solid var(--border) !important;
  border-radius: var(--radius) !important;
  cursor: pointer;
  transition: border-color 0.2s var(--ease);
  flex-shrink: 0;
}

.mobile-toggle:hover {
  border-color: var(--brand) !important;
}

.toggle-bar {
  display: block;
  width: 100%;
  height: 1.5px;
  background: var(--text);
  border-radius: 1px;
  transform-origin: center;
  transition: transform 0.3s var(--ease),
              opacity 0.3s var(--ease);
}

.mobile-toggle.is-open .toggle-bar:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}
.mobile-toggle.is-open .toggle-bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.mobile-toggle.is-open .toggle-bar:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

/* ----- Mobile Menu ----- */
.mobile-menu {
  background: var(--white);
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s var(--ease-out),
              box-shadow 0.3s var(--ease);
}

.mobile-menu.is-open {
  max-height: 420px;
  box-shadow: var(--shadow-lg);
}

.mobile-menu-inner {
  padding: 6px 0 20px;
  border-top: 1px solid var(--border);
}

.mobile-nav-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.mobile-nav-list li {
  opacity: 0;
  transform: translateX(-10px);
  transition: opacity 0.3s var(--ease) calc(var(--i, 0) * 0.06s + 0.05s),
              transform 0.3s var(--ease) calc(var(--i, 0) * 0.06s + 0.05s);
}

.mobile-menu.is-open .mobile-nav-list li {
  opacity: 1;
  transform: translateX(0);
}

.mobile-nav-list a {
  display: block !important;
  padding: 13px 24px !important;
  font-family: var(--font-body) !important;
  font-size: 14.5px !important;
  font-weight: 500 !important;
  color: var(--text-mid) !important;
  text-decoration: none !important;
  border-left: 3px solid transparent !important;
  transition: color 0.2s var(--ease),
              border-color 0.2s var(--ease),
              background 0.2s var(--ease),
              padding-left 0.2s var(--ease) !important;
}

.mobile-nav-list a:hover,
.mobile-nav-list a.is-active {
  color: var(--brand) !important;
  border-left-color: var(--brand) !important;
  background: var(--brand-tint) !important;
  padding-left: 28px !important;
}

.mobile-nav-list .mobile-cta {
  color: var(--brand) !important;
  font-weight: 600 !important;
}

/* =====================================================
   CATEGORY PILLS (tabs.php)
   ===================================================== */
.nav-pills {
  gap: 6px !important;
  flex-wrap: wrap;
}

.nav-pills .nav-link {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase !important;
  color: var(--text-mid) !important;
  padding: 8px 18px !important;
  border-radius: var(--radius-pill) !important;
  border: 1.5px solid var(--border) !important;
  background: transparent !important;
  transition: all 0.2s var(--ease) !important;
  margin: 2px !important;
  line-height: 1.4 !important;
}

.nav-pills .nav-link:hover {
  color: var(--brand) !important;
  border-color: var(--brand) !important;
  background: var(--brand-tint) !important;
}

.nav-pills .nav-link.active,
.nav-pills .nav-link.active:focus {
  background: var(--brand) !important;
  color: var(--white) !important;
  border-color: var(--brand) !important;
  box-shadow: var(--shadow-brand) !important;
}

/* =====================================================
   SITE FOOTER
   ===================================================== */
.site-footer {
  font-family: var(--font-body);
  margin-top: 56px;
}

/* Top accent line */
.footer-accent-line {
  height: 4px;
  background: linear-gradient(
    90deg,
    var(--brand-deeper) 0%,
    var(--brand) 35%,
    #7B8FE0 65%,
    var(--gold) 100%
  );
}

/* ----- Footer Main ----- */
.footer-main {
  background: var(--ink);
  padding: 64px 0 56px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1.6fr;
  gap: 48px;
  align-items: start;
  padding: 0 24px;
}

/* ----- Brand Column ----- */
.footer-logo-wrap {
  margin-bottom: 20px;
}

.footer-logo {
  height: 52px;
  width: auto;
  display: block;
}

.footer-wordmark {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 700;
  color: var(--white);
  letter-spacing: -0.02em;
  line-height: 1;
}

.footer-tagline {
  font-size: 13.5px !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.48) !important;
  line-height: 1.75 !important;
  margin: 0 0 28px !important;
  text-indent: 0 !important;
  max-width: 280px;
}

.footer-social {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.social-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius) !important;
  background: rgba(255, 255, 255, 0.07) !important;
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 13px !important;
  text-decoration: none !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  transition: background 0.22s var(--ease),
              color 0.22s var(--ease),
              transform 0.22s var(--ease),
              border-color 0.22s var(--ease) !important;
  flex-shrink: 0;
}

.social-btn:hover {
  background: var(--brand) !important;
  color: var(--white) !important;
  border-color: var(--brand) !important;
  transform: translateY(-2px) !important;
}

/* ----- Footer Widget Columns ----- */
.footer-col-title {
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  margin: 0 0 20px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07) !important;
}

.footer-link-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.footer-link-list li {
  margin: 0 !important;
  padding: 0 !important;
}

.footer-link-list a {
  display: block !important;
  padding: 7px 0 !important;
  font-family: var(--font-body) !important;
  font-size: 13.5px !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.5) !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
  transition: color 0.2s var(--ease),
              padding-left 0.2s var(--ease) !important;
}

.footer-link-list a:hover {
  color: var(--white) !important;
  padding-left: 8px !important;
}

/* ----- Newsletter Column ----- */
.footer-newsletter-desc {
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.48) !important;
  line-height: 1.65 !important;
  margin: 0 0 20px !important;
  text-indent: 0 !important;
}

.footer-form-group {
  display: flex;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1.5px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
  transition: border-color 0.22s var(--ease);
}

.footer-form-group:focus-within {
  border-color: var(--brand);
  background: rgba(255, 255, 255, 0.08);
}

.footer-email-input {
  flex: 1;
  min-width: 0;
  padding: 11px 14px;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--white) !important;
  box-shadow: none !important;
}

.footer-email-input::placeholder {
  color: rgba(255, 255, 255, 0.28) !important;
}

.footer-subscribe-btn {
  padding: 11px 18px;
  background: var(--brand);
  border: none !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.22s var(--ease);
}

.footer-subscribe-btn:hover {
  background: var(--brand-dark);
}

.footer-trust-badges {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 14px;
}

.trust-badge {
  display: flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.32);
}

.trust-badge i {
  font-size: 10px;
  color: var(--gold);
  opacity: 0.65;
}

/* ----- Footer Bottom ----- */
.footer-bottom {
  background: var(--ink-mid);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding: 18px 0;
}

.footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 24px;
}

.footer-copy {
  font-family: var(--font-body) !important;
  font-size: 12.5px !important;
  color: rgba(255, 255, 255, 0.38) !important;
  margin: 0 !important;
  text-indent: 0 !important;
  line-height: 1 !important;
}

.footer-copy strong {
  color: rgba(255, 255, 255, 0.6);
  font-weight: 600;
}

.footer-bottom-nav {
  display: flex;
  align-items: center;
  gap: 10px;
}

.footer-bottom-nav a {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.35) !important;
  text-decoration: none !important;
  transition: color 0.2s var(--ease) !important;
  display: inline !important;
}

.footer-bottom-nav a:hover {
  color: rgba(255, 255, 255, 0.7) !important;
}

.footer-bottom-nav .sep {
  color: rgba(255, 255, 255, 0.18);
  font-size: 10px;
  display: inline !important;
}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width: 991.98px) {
  .header-nav,
  .btn-reach-us {
    display: none !important;
  }

  .mobile-toggle {
    display: flex !important;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }

  .footer-col--brand {
    grid-column: 1 / -1;
  }

  .footer-tagline {
    max-width: 100%;
  }
}

@media (max-width: 575.98px) {
  :root {
    --topbar-h:  32px;
    --header-h:  60px;
  }

  .topbar-edition {
    display: none;
  }

  .header-logo .logo-img {
    height: 38px;
  }

  .logo-primary {
    font-size: 20px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .footer-col--brand {
    grid-column: auto;
  }

  .footer-bottom-inner {
    flex-direction: column;
    text-align: center;
    gap: 10px;
  }

  .footer-main {
    padding: 48px 0 40px;
  }

  .footer-grid {
    padding: 0 16px;
  }

  .topbar-inner,
  .header-inner,
  .footer-bottom-inner {
    padding: 0 16px;
  }
}
