/* -------------------------
   1) ROOT / GLOBAL VARIABLES
   ------------------------- */
:root{
  --sidebar-w: 230px; /* keep in sync with your .sidebar width */
}

/* -------------------------
   10) SIDEBAR / HEADER SMALL STYLES (non-footer part)
   ------------------------- */
.sidebar h2 {
  font-family: 'Outfit', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 25px;
  text-align: center;
}

/* keep animated background behind everything if present globally */
.animated-background { z-index: 0 !important; }

/* -------------------------
   11) GLOBAL BUTTON STYLES (variables + base)
   ------------------------- */
/* ============================
   GLOBAL BUTTON STYLES (paste into global.css)
   Covers: .menu-btn, .select-btn, .final-select-btn,
           .apply-btn, .button, #jobsBtn, .btn-green
   ============================ */

/* Optional variables (adjust if needed) */
:root{
  --btn-gradient: linear-gradient(135deg,#667eea 0%,#764ba2 100%);
  --btn-shadow: 0 6px 20px rgba(102,126,234,0.35);
  --btn-radius: 12px;
  --btn-font: "Space Grotesk", "Outfit", sans-serif;
}

/* Generic button reset & base */
.button,
button,
.menu-btn,
.select-btn,
.final-select-btn,
.apply-btn,
.job-card-content .view-btn,
a.menu-btn {
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  font-family: var(--btn-font);
  font-weight: 600;
  color: #fff;
  background: var(--btn-gradient);
  border: none;
  border-radius: var(--btn-radius);
  cursor: pointer;
  transition: all 0.35s cubic-bezier(.4,0,.2,1);
  box-shadow: var(--btn-shadow);
  position: relative;
  overflow: hidden;
  text-decoration: none; /* for anchors */
  -webkit-tap-highlight-color: transparent;
}

/* Full-width sidebar buttons */
.menu-btn,
a.menu-btn {
  width: 100%;
  padding: 14px 0;
  font-size: 1rem;
  display: inline-flex; /* anchors */
}

/* Inline/select/apply buttons */
.select-btn,
.apply-btn,
.job-card-content .view-btn {
  padding: 10px 22px;
  font-size: .95rem;
  border-radius: 10px;
}

/* Big popup-select / CTA */
.final-select-btn {
  padding: 12px 0;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 8px;
}

/* Slightly smaller variant for narrow contexts */
.job-card-content .view-btn {
  padding: 8px 18px;
  font-size: .9rem;
}

/* Wide-box override (smaller select inside wide previews) */
.wide-box .select-btn {
  padding: 8px 22px;
  font-size: .95rem;
  border-radius: 10px;
}

/* Reusable green helper (if you want a green select somewhere) */
.btn-green {
  background: linear-gradient(135deg,#28a745 0%, #218838 100%);
  box-shadow: 0 6px 18px rgba(34,139,34,0.18);
}

/* Jobs button id (keeps same visual language, tweakable) */
#jobsBtn {
  background: var(--btn-gradient);
  box-shadow: 0 4px 18px rgba(102,126,234,0.28);
}

/* Shimmer effect (reusable) */
.menu-btn::before,
.select-btn::before,
.apply-btn::before,
.final-select-btn::before,
.job-card-content .view-btn::before,
.button::before,
a.menu-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -120%;
  width: 120%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.22), transparent);
  transform: skewX(-12deg);
  transition: left .45s cubic-bezier(.2,.9,.2,1);
  pointer-events: none;
}

/* Shimmer on hover */
.menu-btn:hover::before,
.select-btn:hover::before,
.apply-btn:hover::before,
.final-select-btn:hover::before,
.job-card-content .view-btn:hover::before,
a.menu-btn:hover::before {
  left: 120%;
}

/* Hover elevation */
.menu-btn:hover,
.select-btn:hover,
.apply-btn:hover,
.final-select-btn:hover,
.job-card-content .view-btn:hover,
a.menu-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(102,126,234,0.55);
}

/* Pressed state */
.menu-btn:active,
.select-btn:active,
.apply-btn:active,
.final-select-btn:active,
.job-card-content .view-btn:active,
a.menu-btn:active {
  transform: translateY(1px);
  box-shadow: 0 3px 12px rgba(102,126,234,0.4);
}

/* Focus accessible outline */
.menu-btn:focus,
.select-btn:focus,
.apply-btn:focus,
.final-select-btn:focus,
.job-card-content .view-btn:focus,
a.menu-btn:focus {
  outline: 3px solid rgba(102,126,234,0.16);
  outline-offset: 3px;
  box-shadow: 0 10px 30px rgba(102,126,234,0.32);
}

/* If an element is an anchor but needs to look like the smaller inline button */
a.menu-btn.small {
  display: inline-flex;
  width: auto;
  padding: 8px 18px;
}

/* Accessibility: ensure disabled style */
[disabled],
button[disabled],
.menu-btn[disabled] {
  opacity: .55;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}

/* Ensure icons inside buttons don't overflow */
.menu-btn i,
.select-btn i,
.apply-btn i,
.final-select-btn i {
  pointer-events: none;
  font-size: 1.05em;
}

/* Final safety: increase specificity if other CSS still overrides */
html body .menu-btn,
html body .select-btn,
html body .final-select-btn {
  /* no-op placeholder: keeps specificity higher than low-specificity rules */
}

/* -------------------------
   13) SETTINGS SUBMENU + SWITCH
   ------------------------- */
/* ==== Settings submenu ==== */
.settings-wrap { position: relative; }
.settings-submenu {
  display: none;
  margin-top: 8px;
  padding: 10px;
  border-radius: 8px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.03);
  box-shadow: none;
}

/* when open we'll add .open via JS */
.settings-submenu.open { display: block; }

.settings-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 6px;
  font-size: 0.95rem;
}

/* Notification switch */
.switch-wrap {
  position: relative;
  width: 46px;
  height: 24px;
  display: inline-block;
}
.switch-wrap input[type="checkbox"] {
  opacity: 0;
  width: 0;
  height: 0;
}
.switch-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  border-radius: 999px;
  background: rgba(255,255,255,0.12);
  transition: background 0.18s ease;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.2);
}
.switch-slider::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.18s cubic-bezier(.2,.9,.3,1);
  box-shadow: 0 2px 6px rgba(0,0,0,0.18);
}
/* checked state */
.switch-wrap input:checked + .switch-slider {
  background: linear-gradient(90deg,#10b981,#06b6d4); /* green-ish */
}
.switch-wrap input:checked + .switch-slider::after {
  transform: translateX(22px);
}

/* message area */
.notif-msg {
  margin-top: 6px;
  padding: 6px 8px;
  border-radius: 6px;
  font-size: 0.85rem;
  color: #e6f7ee; /* light */
  background: rgba(16,185,129,0.12); /* faint green by default, JS will change for denied */
  display: none;
}
.notif-msg.denied {
  background: rgba(239,68,68,0.08);
  color: #ffd7d7;
}

/* small adjustments to caret icon */
.settings-btn .caret { margin-left: 8px; font-size: 0.9rem; }
.settings-btn[aria-expanded="true"] .caret { transform: rotate(180deg); transition: transform 0.18s ease; }

/* link style for account settings in submenu */
.account-settings-btn {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 8px;
  text-decoration: none;
  background: rgba(255,255,255,0.03);
  color: inherit;
  border: 1px solid rgba(255,255,255,0.03);
}

/* ===== settings page styles (paste into global.css) ===== */
.settings-page {
  max-width: 900px;
  margin: 40px auto;
  padding: 18px;
  font-family: Inter, "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

.settings-page h1 { font-size: 28px; margin-bottom: 18px; }
.setting-card {
  border: 1px solid rgba(0,0,0,0.06);
  background: #fff;
  padding: 16px;
  margin-bottom: 16px;
  border-radius: 8px;
  box-shadow: 0 6px 14px rgba(20,20,20,0.03);
}
.setting-card h2 { margin: 0 0 8px; font-size: 18px; }
.setting-card p { margin: 0 0 12px; color: #555; font-size: 14px; }

.setting-card input[type="text"],
.setting-card input[type="password"] {
  width: 100%;
  padding: 10px 12px;
  margin: 6px 0 10px;
  border: 1px solid #ddd;
  border-radius: 6px;
  box-sizing: border-box;
  font-size: 14px;
}

.btn {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 8px;
  border: 0;
  cursor: pointer;
  background: #1f8a4c;
  color: white;
  font-weight: 600;
  font-size: 14px;
}
.btn:hover { opacity: 0.95; }

.btn.danger {
  background: #c0392b;
}

.status {
  margin-top: 8px;
  font-size: 14px;
  min-height: 18px;
}
.status.ok { color: #1f8a4c; }
.status.error { color: #c0392b; }

/* modal */
.modal-hidden { display: none; }
.modal-visible {
  position: fixed;
  inset: 0;
  background: rgba(20,20,20,0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.modal-inner {
  background: white;
  padding: 18px;
  border-radius: 10px;
  max-width: 600px;
  width: calc(100% - 40px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.checkbox-row { display:flex; gap:8px; align-items:center; margin-top:10px; }

/* -------------------------
   14) ABOUT PAGE (legacy / paste into global.css)
   ------------------------- */
/* ================================
   about.css
   ================================ */
  /* About page styles (paste into global.css) */
.about-hero { padding: 40px 0; background: linear-gradient(90deg, #fafbfd 0%, #ffffff 100%); }
.about-hero .container { max-width: 980px; margin: 0 auto; }
.about-hero h1 { margin: 0 0 8px; font-size: 32px; }
.about-hero .lede { margin: 0; color: #444; font-size: 16px; }

.about-page .container { max-width: 980px; margin: 18px auto; padding: 0 18px; }
.features-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 18px; margin: 18px 0; }
.feature { background: #fff; padding: 16px; border-radius: 10px; box-shadow: 0 6px 18px rgba(20,20,20,0.04); }
.about-audience, .about-creator, .about-roadmap { margin-top: 20px; }
.about-creator a { color: inherit; text-decoration: underline; }
.about-cta { margin: 28px 0 48px; }
.btn { display: inline-block; padding: 10px 16px; border-radius: 8px; background: #2ecc71; color: #fff; text-decoration: none; font-weight: 600; }

/* Footer small link */
.footer-links { margin-bottom: 8px; }
.footer-link { display: inline-block; margin-right: 14px; text-decoration: none; color: inherit; font-weight: 500; }
.footer-link.about-link { text-decoration: underline; }

/* Sidebar About - ensure it doesn't override sidebar styles */
.sidebar .menu-btn.active { font-weight: 600; }
/* ========================================
   ABOUT PAGE STYLES
   Add to end of global.css
======================================== */

/* About Page Container */
.about-standalone {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #1e3c72 100%);
  min-height: 100vh;
  position: relative;
}

.about-standalone::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: 
    radial-gradient(circle at 20% 50%, rgba(120, 119, 198, 0.3), transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(99, 102, 241, 0.2), transparent 50%);
  pointer-events: none;
  z-index: 0;
}

.about-page {
  position: relative;
  z-index: 1;
  padding-bottom: 60px;
}

/* About Hero Section */
.about-hero {
  padding: 80px 0 60px !important;
  background: transparent !important;
  text-align: center;
  animation: fadeInDown 0.8s ease-out;
}

.about-hero h1 {
  font-family: 'Outfit', 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 48px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  margin: 0 0 16px !important;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
  letter-spacing: -0.5px;
}

.about-hero .lede {
  font-size: 20px !important;
  color: rgba(255, 255, 255, 0.9) !important;
  font-weight: 400 !important;
  max-width: 700px;
  margin: 0 auto !important;
  line-height: 1.6;
}

/* About Intro Section */
.about-intro {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 20px;
  padding: 32px !important;
  margin: 40px auto !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  animation: fadeInUp 0.8s ease-out 0.2s both;
}

.about-intro p {
  color: #ffffff;
  font-size: 18px;
  line-height: 1.8;
  margin: 0;
}

/* Features Grid */
.features-grid {
  animation: fadeInUp 0.8s ease-out 0.4s both;
}

.features-grid .feature {
  background: rgba(255, 255, 255, 0.12) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 16px !important;
  padding: 28px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1) !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
}

.features-grid .feature::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.features-grid .feature:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.2) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}

.features-grid .feature:hover::before {
  opacity: 1;
}

.features-grid .feature h3 {
  font-family: 'Outfit', 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 600;
  color: #ffffff;
  margin: 0 0 12px;
}

.features-grid .feature p {
  color: rgba(255, 255, 255, 0.85);
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
}

/* Content Sections (Audience, Creator, Roadmap) */
.about-audience,
.about-creator,
.about-roadmap {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 20px;
  padding: 32px !important;
  margin: 32px auto !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  animation: fadeInUp 0.8s ease-out 0.6s both;
}

.about-audience h2,
.about-creator h2,
.about-roadmap h2 {
  font-family: 'Outfit', 'Space Grotesk', sans-serif;
  font-size: 28px;
  font-weight: 600;
  color: #ffffff;
  margin: 0 0 16px;
}

.about-audience p,
.about-creator p {
  color: rgba(255, 255, 255, 0.9);
  font-size: 17px;
  line-height: 1.7;
  margin: 0;
}

.about-creator a {
  color: #a78bfa;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.3s ease;
}

.about-creator a:hover {
  color: #c4b5fd;
  text-decoration: underline;
}

.about-roadmap ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.about-roadmap ul li {
  color: rgba(255, 255, 255, 0.9);
  font-size: 17px;
  line-height: 1.7;
  padding: 12px 0 12px 32px;
  position: relative;
}

.about-roadmap ul li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: #a78bfa;
  font-weight: 700;
  font-size: 20px;
}

/* CTA Section */
.about-cta {
  text-align: center;
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 20px;
  padding: 40px 32px !important;
  margin: 40px auto 60px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  animation: fadeInUp 0.8s ease-out 0.8s both;
}

.about-cta p {
  color: rgba(255, 255, 255, 0.9);
  font-size: 18px;
  margin: 0;
}

.about-cta .btn {
  display: inline-block !important;
  padding: 14px 32px !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  color: #ffffff !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  margin: 0 8px;
}

.about-cta .btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 25px rgba(102, 126, 234, 0.6);
  border-color: rgba(255, 255, 255, 0.4);
}

.about-cta a:not(.btn) {
  color: #a78bfa;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.3s ease;
}

.about-cta a:not(.btn):hover {
  color: #c4b5fd;
  text-decoration: underline;
}

/* Header Override for About Page */
.about-standalone .site-header {
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
}

.about-standalone .site-header .main-nav a {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
  transition: color 0.3s ease;
}

.about-standalone .site-header .main-nav a:hover {
  color: #ffffff;
}

/* Animations */
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* -------------------------
   15) MOBILE RESPONSIVE (ABOUT + GLOBAL)
   ------------------------- */
/* Mobile Responsive */
@media (max-width: 768px) {
  .about-hero {
    padding: 60px 0 40px !important;
  }

  .about-hero h1 {
    font-size: 36px !important;
  }

  .about-hero .lede {
    font-size: 17px !important;
  }

  .about-intro,
  .about-audience,
  .about-creator,
  .about-roadmap {
    padding: 24px !important;
    margin: 24px auto !important;
  }

  .features-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .features-grid .feature {
    padding: 24px !important;
  }

  .features-grid .feature h3 {
    font-size: 20px;
  }

  .about-audience h2,
  .about-creator h2,
  .about-roadmap h2 {
    font-size: 24px;
  }

  .about-cta {
    padding: 32px 24px !important;
  }

  .about-cta .btn {
    display: block !important;
    margin: 16px 0 !important;
    width: 100%;
  }
}

@media (max-width: 480px) {
  .about-hero h1 {
    font-size: 28px !important;
  }

  .about-hero .lede {
    font-size: 16px !important;
  }

  .about-intro,
  .about-audience,
  .about-creator,
  .about-roadmap,
  .about-cta {
    padding: 20px !important;
  }

  .about-intro p,
  .about-audience p,
  .about-creator p,
  .about-roadmap ul li {
    font-size: 15px;
  }
}

/* -------------------------
   17) NOTIFICATION-BUTTON + SETTINGS-SCOPED RULES
   ------------------------- */
/* Notification button inside settings submenu - makes it look like other sidebar buttons */
.notification-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  font-size: 0.98rem;
  width: 100%;
  text-align: left;
}

/* label inside the button */
.notification-btn .notif-label {
  display: inline-block;
  font-weight: 600;
  color: inherit;
  pointer-events: none; /* let clicks go to button/switch */
}

/* keep switch sizing and clickable */
.notification-btn .switch-wrap {
  margin-left: 12px;
  flex: 0 0 auto;
  width: 46px;
  height: 24px;
  position: relative;
}

/* ensure the switch slider sits above shimmer pseudo-element and is clickable */
.notification-btn .switch-slider {
  z-index: 3;
  position: relative;
}

/* make sure checkbox itself is above pseudo elements */
.notification-btn input[type="checkbox"] {
  position: relative;
  z-index: 4;
}

/* notification message: same behaviour as before but scoped */
.settings-submenu .notif-msg {
  margin-top: 8px;
  padding: 6px 8px;
  border-radius: 6px;
  font-size: 0.85rem;
  display: none; /* JS toggles */
}

/* denied style kept */
.settings-submenu .notif-msg.denied {
  background: rgba(239,68,68,0.08);
  color: #ffd7d7;
}

/* keep allowed style */
.settings-submenu .notif-msg.allowed {
  background: rgba(16,185,129,0.12);
  color: #e6f7ee;
}

/* small accessibility tweak: when button has focus */
.notification-btn:focus {
  outline: 3px solid rgba(102,126,234,0.12);
  outline-offset: 3px;
}

/* ===== Replace old .notification-btn + .switch-wrap rules with this ===== */

.notification-btn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;   /* label left, switch pushed to right */
  gap: 12px;
  padding: 10px 0;               /* reduce vertical padding so button doesn't grow */
  font-size: 0.98rem;
  width: 100%;
  text-align: left;
  overflow: visible;             /* allow switch knob + shimmer to show above */
  box-sizing: border-box;
}

.notification-btn .notif-label {
  display: inline-block;
  padding-left: 16px;            /* keep left padding for visual alignment */
  font-weight: 600;
  color: inherit;
  pointer-events: none;          /* clicks pass through to button/switch */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* keep switch sizing and force it to the right without stretching the row */
.notification-btn .switch-wrap {
  margin-left: auto;             /* push switch to far right */
  flex: 0 0 auto;
  width: 46px;
  height: 24px;
  position: relative;
  display: inline-block;
}

/* ensure the invisible native checkbox covers the full switch box so clicks always register */
.notification-btn .switch-wrap input[type="checkbox"] {
  position: absolute;
  inset: 0;                      /* top:0; right:0; bottom:0; left:0; */
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  z-index: 5;                     /* above shimmer */
  cursor: pointer;
}

/* keep visual slider above shimmer and centered */
.notification-btn .switch-slider {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: rgba(255,255,255,0.12);
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.2);
  z-index: 4;
}

/* knob */
.notification-btn .switch-slider::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.18s cubic-bezier(.2,.9,.3,1);
  box-shadow: 0 2px 6px rgba(0,0,0,0.18);
  z-index: 6;
}

/* checked state (keeps your existing colors) */
.notification-btn .switch-wrap input:checked + .switch-slider {
  background: linear-gradient(90deg,#10b981,#06b6d4);
}
.notification-btn .switch-wrap input:checked + .switch-slider::after {
  transform: translateX(22px);
}

/* small focus style so button stays accessible */
.notification-btn:focus {
  outline: 3px solid rgba(102,126,234,0.12);
  outline-offset: 3px;
}
/* Toasts */
#toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  gap: 12px;
  pointer-events: none; /* allow clicks through when no toast */
  max-width: calc(100% - 40px);
}

.toast {
  pointer-events: auto;
  min-width: 220px;
  max-width: 420px;
  background: white;
  color: #111827;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(2,6,23,0.2);
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: 'Outfit', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  transform: translateX(12px);
  opacity: 0;
  transition: transform 300ms cubic-bezier(.2,.9,.3,1), opacity 300ms;
  border-left: 4px solid transparent;
}

/* visible */
.toast.show {
  transform: translateX(0);
  opacity: 1;
}

/* types */
.toast.success { border-left-color: #10b981; }
.toast.error   { border-left-color: #ef4444; }
.toast.warn    { border-left-color: #f59e0b; }

/* icon */
.toast .t-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  font-weight: 700;
  background: rgba(0,0,0,0.04);
}

/* message area */
.toast .t-body {
  display: flex;
  flex-direction: column;
}
.toast .t-title {
  font-weight: 700;
  font-size: 0.95rem;
}
.toast .t-msg {
  font-size: 0.88rem;
  color: rgba(0,0,0,0.7);
}

/* dismiss button (small x) */
.toast .t-close {
  margin-left: 8px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: rgba(0,0,0,0.45);
  font-size: 1rem;
}

/* reduce motion support */
@media (prefers-reduced-motion: reduce) {
  .toast { transition: none; transform: none; opacity: 1; }
}

/* ============================================= */
/* ALL FOOTER CSS (MOVED TO THE END)             */
/* ============================================= */

/* ================================
   FOOTER - DEFAULT CLEAN VERSION
   Gradient background + mobile friendly
   No sidebar rules
================================ */

/* Footer base */
.site-footer {
  background: linear-gradient(180deg, #0b1420 0%, #070d17 100%);
  color: rgba(255, 255, 255, 0.85);
  padding: 50px 20px 30px;
  margin-top: 120px;
  font-family: 'Inter', sans-serif;
  border-top: none;
  position: relative;
}

/* Top section */
.footer-top {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.footer-left {
  flex: 0 0 480px;
  max-width: 480px;
  text-align: left;
  align-self: flex-start;
  padding-right: 20px;
}

.footer-logo-link {
  display: inline-block;
  margin: 12px 0 18px 0;
}

.footer-logo {
  height: 130px;
  width: auto;
  display: block;
  margin-left: 0;
}

.footer-logo-link:hover .footer-logo {
  opacity: 0.8;
}

.footer-desc {
  font-size: 0.95rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.7);
  margin: 0;
  font-weight: 400;
}

.footer-right {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 260px;
  align-self: flex-start;
  margin-top: 42px;
}

.contact-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.85);
}

.contact-row i {
  font-size: 1.1rem;
  color: #5dade2;
  width: 20px;
  text-align: center;
  flex-shrink: 0;
}

.contact-row a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  transition: color 0.3s ease;
}

.contact-row a:hover {
  color: #5dade2;
}

.contact-row span {
  color: rgba(255, 255, 255, 0.85);
}

/* Middle section */
.footer-middle {
  max-width: 1200px;
  margin: 30px auto 30px 0; /* Keeps it aligned to the left */
  padding-bottom: 30px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  
  /* Flexbox settings to stack them */
  display: flex;
  flex-direction: column;   /* Puts About on top, Privacy below */
  align-items: flex-start;  /* Keeps them both pushed to the complete left */
  gap: 15px;                /* Space between the two boxes */
}
.privacy-summary {
  display: block;
  width: fit-content;       /* Prevents the box from stretching long */
  min-width: 200px;         /* Optional: keeps a nice minimum size */
  max-width: 680px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  padding: 12px 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  margin-left: 0;           /* Absolute left positioning */
}
.privacy-summary summary {
  cursor: pointer;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.95rem;
  list-style: none;
  display: flex;
  align-items: center;
}

.privacy-summary summary::-webkit-details-marker {
  display: none;
}

.privacy-summary summary::before {
  content: '▸';
  margin-right: 10px;
  transition: transform 0.3s ease;
}

.privacy-summary[open] summary::before {
  transform: rotate(90deg);
}

.privacy-summary summary:hover {
  color: #5dade2;
}

.privacy-summary p {
  margin: 12px 0 0 0;
  font-size: 0.88rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.7);
}

/* Bottom section */
.footer-bottom {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-top: 20px;
  gap: 8px;
}

.rights {
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.6);
  font-weight: 400;
}

.small-tagline {
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.6);
  font-style: italic;
  font-weight: 400;
}

/* Scroll to top button */
.scroll-to-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 50px;
  height: 50px;
  background: #5dade2;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(93, 173, 226, 0.4);
  transition: all 0.3s ease;
  z-index: 1000;
  border: none;
  color: white;
  font-size: 1.2rem;
}

/* Responsive footer */
@media (max-width: 768px) {
  .site-footer {
    padding: 40px 20px 25px;
    margin-top: 80px;
  }

  .footer-top {
    flex-direction: column;
    gap: 35px;
  }

  .footer-left {
    max-width: 100%;
    padding-right: 0;
  }

  .footer-logo {
    height: 50px;
  }

  .footer-right {
    min-width: 100%;
    margin-top: 18px;
  }

  .footer-middle {
    margin: 25px 0;
  }

  .footer-bottom {
    align-items: center;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .site-footer {
    padding: 32px 16px 22px;
    margin-top: 60px;
  }

  .footer-top {
    gap: 24px;
    padding-bottom: 24px;
  }

  .footer-logo {
    height: 50px;
  }

  .footer-desc {
    font-size: 0.88rem;
    line-height: 1.6;
  }

  .contact-row {
    font-size: 0.88rem;
    gap: 8px;
    flex-wrap: wrap;
  }

  .privacy-summary {
    width: 100%;
    max-width: 100%;
    padding: 10px 12px;
  }

  .privacy-summary summary {
    font-size: 0.88rem;
  }

  .privacy-summary p {
    font-size: 0.82rem;
    line-height: 1.5;
  }

  .footer-bottom {
    padding-top: 14px;
    gap: 6px;
  }

  .rights,
  .small-tagline {
    font-size: 0.8rem;
  }

  .scroll-to-top {
    width: 42px;
    height: 42px;
    bottom: 18px;
    right: 18px;
    font-size: 1rem;
  }
}
/* Make "About" look exactly like the privacy box */
.footer-link.about-link {
  display: inline-block;
  width: fit-content;       /* Matches the look of the privacy box */
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 12px 16px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  margin-left: 0;           /* Absolute left positioning */
}

/* Hover effect same as privacy */
.footer-link.about-link:hover {
  color: #5dade2;
}
@media (max-width: 480px) {
  .footer-top {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding-bottom: 12px !important;
  }

  .footer-left,
  .footer-right {
    flex: unset !important;
    max-width: 100% !important;
    min-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .footer-right {
    margin-top: 4px !important;
    gap: 6px !important;
  }

  .footer-logo-link {
    margin: 0 0 8px 0 !important;
  }

  .footer-desc {
    margin: 0 !important;
  }
}