/* =====================================================================
   GiftCityNifty — "Aurora Glass" redesign (new-era view)
   Indigo→teal gradients · frosted glass · vivid accents · bold type.
   Light is default; [data-theme="dark"] overrides. Delivered via the
   giftnifty-frontend plugin — deactivate to revert. Scopes to GeneratePress
   chrome + content + .gn-* components; leaves Elementor homepage widgets alone.
   ===================================================================== */

:root,
[data-theme="light"] {
  --gn-bg:        #eef2fb;
  --gn-bg-2:      #e6ecf9;
  --gn-aurora-1:  rgba(99,102,241,.20);
  --gn-aurora-2:  rgba(20,184,166,.18);
  --gn-surface:   rgba(255,255,255,.66);
  --gn-surface-2: rgba(255,255,255,.85);
  --gn-glass-brd: rgba(255,255,255,.65);
  --gn-outline:   rgba(15,23,42,.08);
  --gn-ink:       #0f172a;
  --gn-ink-soft:  #25324a;
  --gn-muted:     #5b6b86;
  --gn-accent:    #4f46e5;
  --gn-accent-2:  #0d9488;
  --gn-grad:      linear-gradient(120deg,#6366f1 0%,#3b82f6 45%,#14b8a6 100%);
  --gn-grad-soft: linear-gradient(120deg,rgba(99,102,241,.14),rgba(20,184,166,.14));
  --gn-up:        #15a34a;
  --gn-down:      #dc2626;
  --gn-shadow:    0 1px 2px rgba(16,24,40,.06), 0 18px 40px -20px rgba(49,46,129,.35);
  --gn-shadow-sm: 0 6px 18px -10px rgba(49,46,129,.30);
  --gn-radius:    16px;
  --gn-radius-sm: 12px;
  --gn-blur:      saturate(160%) blur(14px);
}

[data-theme="dark"] {
  --gn-bg:        #080c1a;
  --gn-bg-2:      #0b1228;
  --gn-aurora-1:  rgba(129,140,248,.22);
  --gn-aurora-2:  rgba(45,212,191,.16);
  --gn-surface:   rgba(255,255,255,.055);
  --gn-surface-2: rgba(255,255,255,.085);
  --gn-glass-brd: rgba(255,255,255,.12);
  --gn-outline:   rgba(255,255,255,.10);
  --gn-ink:       #e9eefb;
  --gn-ink-soft:  #c7d2e8;
  --gn-muted:     #93a3c4;
  --gn-accent:    #a5b4fc;
  --gn-accent-2:  #2dd4bf;
  --gn-grad:      linear-gradient(120deg,#818cf8 0%,#60a5fa 45%,#2dd4bf 100%);
  --gn-grad-soft: linear-gradient(120deg,rgba(129,140,248,.18),rgba(45,212,191,.16));
  --gn-up:        #34d399;
  --gn-down:      #f87171;
  --gn-shadow:    0 1px 2px rgba(0,0,0,.4), 0 24px 50px -22px rgba(0,0,0,.7);
  --gn-shadow-sm: 0 10px 26px -14px rgba(0,0,0,.6);
}

/* ---- base / aurora background ------------------------------------- */
html { scroll-behavior: smooth; }
body {
  background-color: var(--gn-bg);
  background-image:
    radial-gradient(60vw 60vw at 8% -10%, var(--gn-aurora-1), transparent 60%),
    radial-gradient(55vw 55vw at 100% 0%, var(--gn-aurora-2), transparent 55%),
    radial-gradient(50vw 50vw at 50% 120%, var(--gn-grad-soft), transparent 60%);
  background-attachment: fixed;
  color: var(--gn-ink);
  -webkit-font-smoothing: antialiased;
  transition: background-color .35s ease, color .35s ease;
}
.site-content, .container.grid-container { background: transparent; }
a { color: var(--gn-accent); text-decoration-color: color-mix(in srgb, var(--gn-accent) 40%, transparent); }
a:hover { color: var(--gn-accent-2); }
::selection { background: color-mix(in srgb, var(--gn-accent) 30%, transparent); }
hr { border-color: var(--gn-outline); }

/* ---- typography --------------------------------------------------- */
.entry-content, .site-main { color: var(--gn-ink-soft); }
h1,h2,h3,h4 { color: var(--gn-ink); letter-spacing:-.01em; font-weight:800; }
.entry-title, .page-header h1, .entry-content h1 { font-weight:900; letter-spacing:-.02em; line-height:1.12; }
@supports ((-webkit-background-clip:text) or (background-clip:text)) {
  .entry-title, .entry-title a, .page-header h1 {
    background: var(--gn-grad);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent;
  }
}
.entry-content h2 {
  position: relative; padding-left:.7rem; margin-top:1.8rem;
}
.entry-content h2::before {
  content:""; position:absolute; left:0; top:.12em; bottom:.12em; width:5px;
  border-radius:4px; background: var(--gn-grad);
}

/* ---- glass primitive ---------------------------------------------- */
.gn-faq, .widget-area .widget, .gn-bank-live, .gn-history, .gn-dash > *,
.wp-block-table, .entry-content > table {
  background: var(--gn-surface);
  -webkit-backdrop-filter: var(--gn-blur); backdrop-filter: var(--gn-blur);
  border: 1px solid var(--gn-glass-brd);
  box-shadow: var(--gn-shadow);
  border-radius: var(--gn-radius);
}

/* ---- header ------------------------------------------------------- */
.site-header {
  position: sticky; top: 0; z-index: 200;
  background: var(--gn-surface-2);
  -webkit-backdrop-filter: var(--gn-blur); backdrop-filter: var(--gn-blur);
  border-bottom: 1px solid var(--gn-glass-brd);
  box-shadow: var(--gn-shadow-sm);
}
.site-header::after {
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px;
  background: var(--gn-grad); opacity:.9;
}
.inside-header { align-items:center; }

/* ---- navigation --------------------------------------------------- */
.main-navigation { background: transparent; }
.main-navigation .main-nav ul li a,
.main-navigation .menu li a {
  color: var(--gn-ink) !important; font-weight:600; border-radius:10px;
  transition: background .2s ease, color .2s ease;
}
.main-navigation .main-nav ul li a:hover,
.main-navigation .menu li.current-menu-item > a,
.main-navigation .menu li a:hover {
  background: var(--gn-grad-soft) !important; color: var(--gn-accent) !important;
}
.main-navigation .menu li.current-menu-item > a { color: var(--gn-accent-2) !important; }
.main-navigation .sub-menu {
  background: var(--gn-surface-2) !important;
  -webkit-backdrop-filter: var(--gn-blur); backdrop-filter: var(--gn-blur);
  border:1px solid var(--gn-glass-brd); border-radius:14px; overflow:hidden;
  box-shadow: var(--gn-shadow);
}
.main-navigation .menu-toggle, .menu-toggle { color: var(--gn-ink) !important; }

/* ---- buttons ------------------------------------------------------ */
.button, input[type="submit"],
.wp-block-button__link, a[role="button"], .gn-cta {
  background: var(--gn-grad) !important; color:#fff !important; border:0 !important;
  border-radius: 999px !important; padding:.6em 1.3em !important; font-weight:700 !important;
  box-shadow: var(--gn-shadow-sm); transition: transform .15s ease, box-shadow .2s ease;
  text-decoration:none !important;
}
.button:hover, .wp-block-button__link:hover, a[role="button"]:hover, input[type="submit"]:hover {
  transform: translateY(-1px); box-shadow: 0 14px 30px -12px rgba(79,70,229,.55);
}

/* ---- content cards / sidebar widgets ------------------------------ */
.widget-area .widget { padding:18px 20px; margin-bottom:24px; }
.widget-area .widget .widget-title, .widget-area .widget h2 {
  font-size:1.05rem; margin-bottom:.6rem; color:var(--gn-ink);
}
.widget-area .widget a { color: var(--gn-accent); }

/* ---- tables (generic + gn) ---------------------------------------- */
.entry-content table, .wp-block-table table { width:100%; border-collapse:collapse; overflow:hidden; border-radius:var(--gn-radius); }
.entry-content table th, .gn-history th {
  background: var(--gn-grad); color:#fff !important; font-weight:700;
  padding:10px 12px; border:0;
}
.entry-content table td, .gn-history td { padding:10px 12px; border-top:1px solid var(--gn-outline); color:var(--gn-ink-soft); }
.entry-content table tr:nth-child(even) td { background: color-mix(in srgb, var(--gn-accent) 5%, transparent); }

/* ---- FAQ accordion (glass) ---------------------------------------- */
.gn-faq { padding:18px 20px; margin:28px 0; }
.gn-faq__title {
  font-weight:900; letter-spacing:-.01em; margin:.2rem 0 1rem;
}
.gn-faq__item {
  background: var(--gn-surface-2);
  border:1px solid var(--gn-glass-brd); border-radius:var(--gn-radius-sm);
  margin:10px 0; overflow:hidden; transition: box-shadow .2s ease, border-color .2s ease;
}
.gn-faq__item[open] { box-shadow: var(--gn-shadow-sm); border-color: color-mix(in srgb, var(--gn-accent) 45%, transparent); }
.gn-faq__item > summary {
  cursor:pointer; list-style:none; padding:14px 46px 14px 18px; position:relative;
  font-weight:700; color:var(--gn-ink); user-select:none;
}
.gn-faq__item > summary::-webkit-details-marker { display:none; }
.gn-faq__item > summary::after {
  content:"+"; position:absolute; right:16px; top:50%; transform:translateY(-50%);
  width:26px; height:26px; line-height:24px; text-align:center; font-weight:700;
  border-radius:50%; background:var(--gn-grad); color:#fff; transition:transform .25s ease;
}
.gn-faq__item[open] > summary::after { content:"\2212"; transform:translateY(-50%) rotate(180deg); }
.gn-faq__a { padding:2px 18px 16px; color:var(--gn-ink-soft); }

/* ---- footer ------------------------------------------------------- */
.site-footer, .footer-widgets {
  background:
    radial-gradient(40vw 40vw at 0% 0%, rgba(99,102,241,.30), transparent 60%),
    radial-gradient(40vw 40vw at 100% 100%, rgba(20,184,166,.26), transparent 60%),
    #0a0f20;
  color:#cdd7ee;
}
.footer-widgets a, .site-info a { color:#cdd7ee; }
.footer-widgets a:hover, .site-info a:hover { color:#2dd4bf; }
.footer-widgets .widget-title, .footer-widgets h2 { color:#fff; }
.site-info { background:#070b16; color:#9fb0cc; }

/* ---- theme toggle ------------------------------------------------- */
.gn-theme-toggle {
  display:inline-flex; align-items:center; gap:.4em; cursor:pointer;
  background: var(--gn-surface-2) !important; color: var(--gn-ink) !important;
  border:1px solid var(--gn-glass-brd) !important; border-radius:999px !important;
  padding:.32em .7em !important; font-size:.85rem !important; font-weight:700 !important;
  line-height:1 !important; box-shadow: var(--gn-shadow-sm);
  -webkit-backdrop-filter: var(--gn-blur); backdrop-filter: var(--gn-blur);
  transition: transform .15s ease;
}
.gn-theme-toggle:hover { transform: translateY(-1px); }
.gn-theme-li { display:flex; align-items:center; }
.main-navigation .menu li.gn-theme-li a { display:none; }
.gn-theme-toggle .gn-ico { width:1.05em; height:1.05em; display:inline-block; }

/* keep above-the-fold logo crisp */
.site-logo img, .header-image { filter:none; }

/* ---- motion / responsive ------------------------------------------ */
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
@media (max-width: 768px) {
  body { background-attachment: scroll; }
  .site-header { position: static; }
  .gn-theme-li { width:100%; padding:8px 20px; }
}

/* ---- Bootstrap replacement -----------------------------------------------
   The 160KB site-wide Bootstrap CSS was removed for speed; these rules keep the
   .table / .table-responsive / .container markup used by the data shortcodes
   looking right, in the Aurora Glass style. */
.table-responsive { overflow-x:auto; -webkit-overflow-scrolling:touch; margin-bottom:1rem; }
.table { width:100%; max-width:100%; border-collapse:collapse; margin-bottom:1rem;
  background:var(--gn-surface-2); border-radius:var(--gn-radius-sm); overflow:hidden; }
.table th, .table td { padding:10px 12px; vertical-align:middle; text-align:left;
  border-top:1px solid var(--gn-outline); color:var(--gn-ink-soft); }
.table thead th, .table tr:first-child th { background:var(--gn-grad); color:#fff; border:0; font-weight:700; }
.table-bordered, .table-bordered th, .table-bordered td { border:1px solid var(--gn-outline); }
.table-striped tbody tr:nth-of-type(odd) td,
.table-striped tr:nth-of-type(even) td { background:color-mix(in srgb, var(--gn-accent) 5%, transparent); }
.nifty-chart { max-width:960px; margin:0 auto; padding:0 12px; }
.nifty-chart canvas { max-height:360px; }
/* Solid fallback if backdrop-filter is unsupported (older browsers) — avoids
   unreadable translucent glass. */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .site-header, .gn-faq, .gn-faq__item, .widget-area .widget, .main-navigation .sub-menu,
  .gn-theme-toggle { background: var(--gn-surface-2); }
  [data-theme="dark"] .site-header, [data-theme="dark"] .gn-faq,
  [data-theme="dark"] .gn-faq__item, [data-theme="dark"] .widget-area .widget { background:#121a33; }
}

/* =====================================================================
   Aurora Glass — QA fixes (dark-mode readability, mobile, tables, toggle).
   Appended last so equal-specificity rules win on load order; specificity
   raised where it must beat frontend.css (table.table ...).
   ===================================================================== */

/* 1.1 Dark-mode opaque table surfaces (override frontend.css table.table{#fff}) */
[data-theme="dark"] .entry-content table.table,
[data-theme="dark"] table.table,
[data-theme="dark"] .table-responsive { background:#0f1830 !important; color:var(--gn-ink-soft) !important; }
[data-theme="dark"] table.table td { color:var(--gn-ink-soft) !important; }
[data-theme="dark"] table.table th,
[data-theme="dark"] table.table td { border-color:var(--gn-glass-brd) !important; }
[data-theme="dark"] table.table.table-striped tbody tr:nth-child(odd) td,
[data-theme="dark"] table.table.table-striped tr:nth-of-type(even) td { background:#13203c !important; }
[data-theme="dark"] table.table tbody tr:hover td { background:#1a2a4d !important; }

/* 1.2 Dark-mode readability for Elementor homepage copy (narrow, justified) */
[data-theme="dark"] { --e-global-color-text:#c7d2e8; --e-global-color-secondary:#93a3c4; }
[data-theme="dark"] .elementor-widget-text-editor,
[data-theme="dark"] .elementor-widget-text-editor *,
[data-theme="dark"] .elementor-widget-toggle .elementor-tab-content,
[data-theme="dark"] .elementor-widget-toggle .elementor-tab-content * { color:var(--gn-ink-soft) !important; }
[data-theme="dark"] .elementor-widget-toggle .elementor-toggle-title,
[data-theme="dark"] .elementor-widget-toggle .elementor-toggle-icon,
[data-theme="dark"] .elementor-widget-toggle .elementor-toggle-icon svg { color:var(--gn-accent) !important; fill:var(--gn-accent) !important; }
[data-theme="dark"] .elementor-widget-heading .elementor-heading-title { color:var(--gn-ink) !important; }
/* 2.7 dark inline #777 disclaimers */
[data-theme="dark"] .entry-content [style*="color:#777"],
[data-theme="dark"] .entry-content [style*="color: #777"] { color:var(--gn-muted) !important; }

/* 2.1 Unify table headers (gradient) — beats frontend.css table.table thead th */
.entry-content table th,
.entry-content table thead th,
.entry-content table.table thead th,
.gn-history th, .table thead th, .table tr:first-child th {
  background:var(--gn-grad) !important; color:#fff !important; font-weight:700;
  text-transform:none; font-size:inherit; letter-spacing:normal; border:0;
}

/* 2.3 Stop content-heading rules leaking onto Elementor headings */
.elementor-heading-title { color:inherit; }
.elementor-heading-title::before { content:none !important; }

/* 1.4 Mobile: data tables scroll inside themselves, no page overflow */
@media (max-width: 768px) {
  .entry-content table.table, .entry-content table {
    display:block; width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
  }
}

/* 3.2 color-mix fallback (solid line first for pre-2023 engines) */
.entry-content table tr:nth-child(even) td { background:rgba(79,70,229,.05); }
.entry-content table tr:nth-child(even) td { background:color-mix(in srgb, var(--gn-accent) 5%, transparent); }

/* Floating theme toggle — always visible (desktop + mobile), no overlap */
.gn-theme-toggle.gn-theme-fab {
  position:fixed; z-index:9999;
  right:max(16px, env(safe-area-inset-right));
  bottom:max(16px, env(safe-area-inset-bottom));
  box-shadow:var(--gn-shadow);
}
