/* ============================================================
   HUB4LCA — "Meridian" design system (shared across all pages)
   Front-page aesthetic adapted for content / navigation / table pages.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --green:#2e7d32; --green-dark:#1b5e20; --green-mid:#4a7c59;
  --green-soft:#f0f5ec; --green-line:#b8d4b4;
  --header-border:rgba(60,100,30,.14);
  --nav-pill:#3a5626;
  --text:#1c1a16; --text-sub:#5a5347; --text-muted:#8a7f72;
  --border:#e0d8c8; --border-mid:#ccc4b4;
  --surface:rgba(255,255,255,.82);
  --surface-solid:#ffffff;
  --surface-alt:rgba(255,255,255,.55);
  --red-soft:#fef2f2; --red-line:#fca5a5; --red:#dc2626;
  --card-radius:16px; --pill-radius:100px;
  --shadow-sm:0 2px 8px rgba(60,50,30,.07), 0 8px 24px rgba(60,50,30,.06);
  --shadow-md:0 10px 40px rgba(60,50,30,.12), 0 28px 72px rgba(60,50,30,.08);
}

/* ── Animated gradient page background ── */
@keyframes gradShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
html {
  min-height: 100%;
  background: linear-gradient(-45deg, #b8dda0, #faf8f4, #d0eebc, #fdf5e8, #a8d48c, #faf8f4);
  background-size: 400% 400%;
  animation: gradShift 14s ease infinite;
}
body { font-family:'Outfit',sans-serif; color:var(--text); font-size:15px; line-height:1.6; min-height:100vh; background:transparent; }

/* ── Mouse-parallax background overlay ── */
#bg-reveal-overlay {
  position: fixed; inset: -60px; z-index: 1;
  background-image: url('../images/Gemini_Generated_Image_6carid6carid6car.webp');
  background-size: cover; background-position: center;
  pointer-events: none; opacity: 0.08;
  will-change: transform; transform: translate(0,0);
}

/* keep all content above the overlay */
.site-header, .breadcrumb-wrap, .progress-bar, .page-hd, .hero,
.content, .main, .site-footer { position: relative; z-index: 10; }

/* ── Header ── */
.site-header { background:rgba(216,230,192,.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--header-border); position:sticky; top:0; z-index:200; }
.header-inner { max-width:1200px; margin:0 auto; padding:0 32px; height:68px; display:flex; align-items:center; gap:12px; }
.logo { display:flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; }
.logo-thumb { width:64px; height:44px; border-radius:8px; overflow:hidden; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.12); }
.logo-thumb img { width:100%; height:100%; object-fit:contain; object-position:center; display:block; }
.logo-name { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; color:var(--text); }
.header-nav { display:flex; align-items:center; gap:8px; margin-left:auto; }
.nav-pill { background:var(--nav-pill); color:#fff; font-size:13px; font-weight:500; padding:7px 20px; border-radius:var(--pill-radius); text-decoration:none; transition:background .15s,transform .12s; white-space:nowrap; }
.nav-pill:hover { background:var(--green-dark); transform:translateY(-1px); }
.lang-btn { display:flex; align-items:center; gap:6px; background:rgba(255,255,255,.85); border:1.5px solid var(--border-mid); border-radius:var(--pill-radius); padding:6px 14px; font-size:13px; font-weight:500; cursor:pointer; text-decoration:none; color:var(--text); white-space:nowrap; }
.lang-btn:hover { border-color:var(--green-line); }
.lang-switcher-slot { display:flex; align-items:center; }
.lang-switcher-slot .trp-language-switcher { margin:0 !important; }

/* ── Breadcrumb ── */
.breadcrumb-wrap { background:rgba(255,255,255,.45); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-bottom:1px solid var(--header-border); }
.breadcrumb { max-width:1200px; margin:0 auto; padding:10px 32px; display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--text-muted); flex-wrap:wrap; }
.breadcrumb a { color:var(--text-muted); text-decoration:none; }
.breadcrumb a:hover { color:var(--green); text-decoration:underline; }
.bc-sep { color:#bcb09a; }
.bc-now { color:var(--green); font-weight:600; }

/* ── Progress steps (drill-down pages) ── */
.progress-bar { background:rgba(255,255,255,.45); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-bottom:1px solid var(--header-border); padding:14px 32px; }
.progress-inner { max-width:1200px; margin:0 auto; }
.progress-label { font-family:'DM Mono',monospace; font-size:10.5px; font-weight:500; letter-spacing:1px; text-transform:uppercase; color:var(--text-muted); margin-bottom:11px; }
.progress-steps { display:flex; align-items:stretch; flex-wrap:wrap; }
.p-step { display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:500; padding:7px 16px; background:rgba(255,255,255,.7); border:1.5px solid var(--border); color:var(--text-muted); white-space:nowrap; }
.p-step:first-child { border-radius:8px 0 0 8px; }
.p-step + .p-step { border-left:none; }
.p-step:last-child { border-radius:0 8px 8px 0; }
.p-step.done { background:var(--green); color:#fff; border-color:var(--green); }
.p-step.active { background:#fff; color:var(--green); border-color:var(--green); font-weight:700; }
.p-step.pending { color:#c3b9a6; }
.p-dot { width:18px; height:18px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; }
.p-step.done .p-dot { background:rgba(255,255,255,.3); color:#fff; }
.p-step.active .p-dot { background:var(--green); color:#fff; }
.p-step.pending .p-dot { background:var(--border); color:#c3b9a6; }

/* ── Home hero (index) ── */
.hero { max-width:900px; margin:0 auto; padding:80px 32px 0; text-align:center; position:relative; z-index:10; animation:fadeUp .5s .08s ease both; }
.hero h1 { font-family:'Cormorant Garamond',serif; font-size:58px; font-weight:300; line-height:1.1; letter-spacing:-1px; margin-bottom:18px; }
.hero h1 em { font-style:italic; color:var(--green); }
.hero p { font-size:16px; color:var(--text-sub); line-height:1.75; max-width:560px; margin:0 auto 56px; }

/* ── Page header ── */
.page-hd { max-width:1000px; margin:0 auto; padding:44px 32px 0; }
.page-hd.center { text-align:center; }
.ctx-path { display:flex; align-items:center; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.ctx-chip { display:inline-flex; align-items:center; gap:5px; background:rgba(240,245,236,.9); color:var(--green-dark); border:1px solid var(--green-line); border-radius:var(--pill-radius); font-size:12px; font-weight:600; padding:4px 12px; }
.eyebrow { font-family:'DM Mono',monospace; font-size:11px; font-weight:500; letter-spacing:2px; text-transform:uppercase; color:var(--green-mid); background:rgba(240,245,236,.9); border:1px solid var(--green-line); display:inline-block; padding:4px 14px; border-radius:var(--pill-radius); margin-bottom:20px; }
.page-hd h1 { font-family:'Cormorant Garamond',serif; font-size:46px; font-weight:300; letter-spacing:-1px; line-height:1.12; margin-bottom:14px; }
.page-hd h1 em { font-style:italic; color:var(--green); }
.page-hd .sub { font-size:15px; color:var(--text-sub); line-height:1.7; max-width:600px; }
.page-hd.center .sub { margin-left:auto; margin-right:auto; }

/* ── Back link ── */
.back-nav { max-width:1000px; margin:0 auto; padding:18px 32px 0; }
.back-link { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--text-sub); text-decoration:none; background:rgba(255,255,255,.6); border:1.5px solid var(--border); border-radius:var(--pill-radius); padding:6px 16px; transition:color .15s,border-color .15s,background .15s; }
.back-link:hover { color:var(--green); border-color:var(--green-line); background:rgba(240,247,240,.8); }
.back-link svg { width:14px; height:14px; }

/* ── Content wrapper ── */
.content { max-width:1000px; margin:36px auto 90px; padding:0 32px; }
.main { max-width:1100px; margin:0 auto; padding:30px 32px 90px; }

/* ── Card grids ── */
.grid { display:grid; gap:26px; }
.grid-2 { grid-template-columns:repeat(2,1fr); }
.grid-3 { grid-template-columns:repeat(3,1fr); }

/* ── Glow / glass card ── */
.card {
  --gcx:-600px; --gcy:-600px;
  background:var(--surface);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1.5px solid rgba(255,255,255,.95);
  border-radius:var(--card-radius);
  padding:38px 32px 30px; text-decoration:none; color:inherit;
  display:flex; flex-direction:column;
  box-shadow:var(--shadow-sm); position:relative; overflow:visible;
  transition:transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease, border-color .2s;
  background-image:radial-gradient(220px 220px at var(--gcx) var(--gcy), rgba(46,125,50,.07) 0%, transparent 75%);
}
.card:hover { transform:translateY(-7px); box-shadow:var(--shadow-md); border-color:rgba(184,212,160,.7); }
.card > *:not(.card-tooltip):not(.gc-border) { position:relative; }

.gc-border {
  pointer-events:none; position:absolute; inset:-1.5px; border-radius:calc(var(--card-radius) + 1px); padding:2px;
  background:radial-gradient(200px 200px at var(--gcx) var(--gcy), rgba(46,125,50,.9) 0%, rgba(122,184,64,.55) 30%, transparent 70%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:destination-out; mask-composite:exclude;
  opacity:0; transition:opacity .35s ease; z-index:2;
}
.card:hover .gc-border { opacity:1; }

/* ── Hover image tooltip (the "hannover" reveal) ── */
.card-tooltip {
  position:absolute; bottom:calc(100% + 14px); left:50%;
  transform:translateX(-50%) translateY(10px) scale(.96);
  width:300px; opacity:0; pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
  z-index:300; filter:drop-shadow(0 18px 40px rgba(40,70,30,.22));
}
.card:hover .card-tooltip { opacity:1; transform:translateX(-50%) translateY(0) scale(1); }
.card-tooltip-inner { background:#fff; border:1.5px solid rgba(210,230,205,.85); border-radius:16px; overflow:hidden; }
.card-tooltip-img { width:100%; height:auto; display:block; }
.card-tooltip-arrow { position:absolute; bottom:-6px; left:50%; transform:translateX(-50%) rotate(45deg); width:11px; height:11px; background:#fff; border-right:1.5px solid rgba(210,230,205,.85); border-bottom:1.5px solid rgba(210,230,205,.85); }

/* ── Card interior ── */
.card-icon { width:60px; height:60px; border-radius:14px; background:var(--green-soft); border:1.5px solid var(--green-line); display:flex; align-items:center; justify-content:center; margin-bottom:22px; transition:background .2s,border-color .2s,box-shadow .2s; }
.card-icon svg { width:28px; height:28px; fill:var(--green); transition:fill .2s; }
.card:hover .card-icon { background:var(--green); border-color:var(--green); box-shadow:0 4px 16px rgba(46,125,50,.28); }
.card:hover .card-icon svg { fill:#fff; }
.card-title { font-family:'Cormorant Garamond',serif; font-size:25px; font-weight:600; letter-spacing:-.2px; margin-bottom:8px; line-height:1.2; }
.card-desc { font-size:13.5px; color:var(--text-sub); line-height:1.7; flex:1; margin-bottom:22px; }
.card-cta { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; color:var(--green); }
.cta-arrow { display:inline-block; transition:transform .25s cubic-bezier(.22,1,.36,1); }
.card:hover .cta-arrow { transform:translateX(6px); }

/* region accent bar + compass */
.region-bar { height:5px; border-radius:5px 5px 0 0; margin:-38px -32px 22px; }
.bar-north { background:linear-gradient(90deg,#1565c0,#42a5f5); }
.bar-south { background:linear-gradient(90deg,#e65100,#ffa726); }
.bar-east  { background:linear-gradient(90deg,#6a1b9a,#ab47bc); }
.region-abbr { font-family:'DM Mono',monospace; font-size:10.5px; color:var(--text-muted); margin:-4px 0 10px; letter-spacing:.5px; }
.region-states { font-size:12.5px; color:var(--text-sub); line-height:1.7; margin-bottom:16px; flex:1; }

/* ── Comparison chooser (Rural/Urban, Growing/Stagnant) ── */
.compare-grid { display:grid; grid-template-columns:1fr 1fr; gap:44px; max-width:960px; margin:0 auto; }
.compare-card { text-decoration:none; color:inherit; display:flex; flex-direction:column; align-items:center; text-align:center; }
.compare-label { font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:500; color:var(--green); margin-bottom:20px; text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1.5px; transition:color .18s; }
.compare-card:hover .compare-label { color:var(--green-dark); }
.compare-imgwrap { position:relative; width:100%; border-radius:18px; overflow:hidden; border:1.5px solid rgba(255,255,255,.95); box-shadow:var(--shadow-sm); transition:transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease; }
.compare-card:hover .compare-imgwrap { transform:translateY(-7px); box-shadow:var(--shadow-md); }
.compare-img { width:100%; height:auto; display:block; aspect-ratio:1/1; object-fit:cover; }
.compare-imgwrap::after { content:''; position:absolute; inset:0; border-radius:18px; box-shadow:inset 0 0 0 0 rgba(46,125,50,0); transition:box-shadow .25s; pointer-events:none; }
.compare-card:hover .compare-imgwrap::after { box-shadow:inset 0 0 0 3px rgba(46,125,50,.55); }
.compare-caption { font-size:14px; color:var(--text-sub); margin-top:20px; max-width:340px; line-height:1.65; }
.compare-caption strong { color:var(--green-dark); font-weight:700; }
@media(max-width:680px){ .compare-grid{grid-template-columns:1fr; gap:36px;} }

/* ── Stats row ── */
.stats-row { max-width:1000px; margin:0 auto; padding:0 32px; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.stat-cell { background:var(--surface); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1.5px solid rgba(255,255,255,.9); border-radius:12px; padding:20px; text-align:center; box-shadow:var(--shadow-sm); }
.stat-val { font-family:'Cormorant Garamond',serif; font-size:34px; font-weight:600; color:var(--green); line-height:1; margin-bottom:5px; }
.stat-lbl { font-size:12px; font-weight:500; color:var(--text-muted); letter-spacing:.1px; }

/* ── Download banner ── */
.dl-banner { max-width:1000px; margin:30px auto 0; padding:0 32px; }
.dl-inner { background:var(--green-soft); border:1.5px solid var(--green-line); border-radius:var(--card-radius); padding:20px 28px; display:flex; align-items:center; gap:18px; }
.dl-icon { font-size:22px; flex-shrink:0; }
.dl-text h4 { font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:600; margin-bottom:2px; }
.dl-text p { font-size:13px; color:var(--text-sub); }
.dl-cta { margin-left:auto; flex-shrink:0; display:inline-flex; align-items:center; gap:7px; background:var(--green); color:#fff; text-decoration:none; font-size:13.5px; font-weight:600; padding:10px 22px; border-radius:var(--pill-radius); transition:background .15s,transform .12s; }
.dl-cta:hover { background:var(--green-dark); transform:translateY(-1px); }

/* ── Back-to-level grid ── */
.back-section { margin-top:46px; padding-top:28px; border-top:1.5px solid var(--header-border); }
.back-lbl { font-family:'DM Mono',monospace; font-size:11px; font-weight:500; letter-spacing:1.1px; text-transform:uppercase; color:var(--text-muted); margin-bottom:16px; }
.back-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.back-card { display:flex; align-items:center; gap:12px; background:rgba(255,255,255,.55); border:1.5px solid var(--border); border-radius:10px; padding:14px 18px; text-decoration:none; color:inherit; transition:border-color .18s,background .18s; }
.back-card:hover { border-color:var(--green-line); background:rgba(240,247,240,.8); }
.back-icon { font-size:18px; flex-shrink:0; }
.back-text h4 { font-size:13px; font-weight:700; color:var(--text); margin-bottom:2px; }
.back-text p { font-size:11.5px; color:var(--text-muted); }

/* ── Filter card + scorecard table ── */
.filter-card { background:var(--surface); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1.5px solid rgba(255,255,255,.9); border-radius:var(--card-radius); padding:22px 26px; margin-bottom:22px; box-shadow:var(--shadow-sm); }
.filter-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.filter-head-label { font-size:13px; font-weight:700; letter-spacing:.4px; color:var(--text); display:flex; align-items:center; gap:8px; }
.reset-btn { background:none; border:1.5px solid var(--border-mid); border-radius:var(--pill-radius); padding:5px 15px; font-family:'Outfit',sans-serif; font-size:12.5px; font-weight:500; color:var(--text-muted); cursor:pointer; transition:all .15s; }
.reset-btn:hover { border-color:var(--green); color:var(--green); }
.filter-fields { display:flex; gap:16px; flex-wrap:wrap; }
.fgroup { display:flex; flex-direction:column; gap:6px; flex:1; min-width:160px; }
.flabel { font-family:'DM Mono',monospace; font-size:10.5px; font-weight:500; letter-spacing:.7px; text-transform:uppercase; color:var(--text-muted); }
.fselect { height:40px; width:100%; padding:0 34px 0 13px; border:1.5px solid var(--border-mid); border-radius:10px; background:#fff; color:var(--text); font-family:'Outfit',sans-serif; font-size:14px; font-weight:500; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; cursor:pointer; transition:border-color .15s; }
.fselect:focus { outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(46,125,50,.12); }
.fselect:hover { border-color:var(--green-line); }

.result-bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; flex-wrap:wrap; gap:10px; }
.result-text { font-size:14px; color:var(--text-muted); }
.result-text strong { color:var(--text); font-weight:700; }
.dl-all { display:inline-flex; align-items:center; gap:7px; background:var(--green); color:#fff; text-decoration:none; font-size:13.5px; font-weight:600; padding:9px 22px; border-radius:var(--pill-radius); transition:background .15s,transform .12s; }
.dl-all:hover { background:var(--green-dark); transform:translateY(-1px); }

.table-wrap { background:var(--surface-solid); border:1.5px solid rgba(255,255,255,.9); border-radius:var(--card-radius); overflow:hidden; box-shadow:var(--shadow-sm); }
table { width:100%; border-collapse:collapse; }
thead th { background:#f7f9f3; border-bottom:1.5px solid var(--border); padding:12px 18px; text-align:left; font-family:'DM Mono',monospace; font-size:10.5px; font-weight:500; letter-spacing:.9px; text-transform:uppercase; color:var(--text-muted); white-space:nowrap; cursor:pointer; user-select:none; }
thead th:hover { color:var(--green); }
thead th.sorted { color:var(--green); }
.sort-ic { margin-left:4px; opacity:.4; font-style:normal; }
thead th.sorted .sort-ic { opacity:1; }
tbody tr { border-bottom:1px solid var(--border); transition:background .1s; }
tbody tr:last-child { border-bottom:none; }
tbody tr:hover { background:#f6fbf6; }
td { padding:13px 18px; font-size:14px; vertical-align:middle; }
.age-pill { display:inline-block; background:var(--green-soft); color:var(--green-dark); border:1px solid var(--green-line); border-radius:6px; padding:3px 11px; font-family:'DM Mono',monospace; font-size:12.5px; font-weight:500; white-space:nowrap; }
.tag { display:inline-flex; align-items:center; font-size:12.5px; font-weight:500; padding:4px 11px; border-radius:6px; background:#f7f9f3; border:1.5px solid var(--border); color:var(--text-sub); white-space:nowrap; }
.cell-sub { font-size:14px; color:var(--text-sub); }
.dl-btn { display:inline-flex; align-items:center; gap:5px; font-family:'Outfit',sans-serif; font-size:12.5px; font-weight:600; padding:6px 15px; border-radius:var(--pill-radius); text-decoration:none; cursor:pointer; transition:all .15s; border:1.5px solid transparent; }
.dl-pdf { background:var(--red-soft); color:var(--red); border-color:var(--red-line); }
.dl-pdf:hover { background:#fee2e2; }
.dl-xlsx { background:var(--green-soft); color:var(--green-dark); border-color:var(--green-line); }
.dl-xlsx:hover { background:#c8e6c9; }
.td-dl { display:flex; gap:8px; align-items:center; }
.empty-state { padding:60px 24px; text-align:center; color:var(--text-muted); }
.empty-state .ei { font-size:40px; margin-bottom:14px; }
.empty-state h3 { font-size:17px; font-weight:700; color:var(--text); margin-bottom:6px; }
.empty-state p { font-size:13.5px; }

/* ── Footer ── */
.site-footer { background:rgba(216,230,192,.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-top:1px solid var(--header-border); padding:28px 32px 24px; }
.footer-inner { max-width:1200px; margin:0 auto; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.footer-left h4 { font-family:'Cormorant Garamond',serif; font-size:16px; font-weight:600; margin-bottom:5px; }
.footer-left p { font-size:13px; color:var(--text-sub); line-height:1.75; }
.footer-right { display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.footer-contact { font-size:13px; color:var(--text-sub); }
.footer-contact a { color:var(--green); text-decoration:none; font-weight:500; }
.footer-logos { display:flex; gap:10px; align-items:center; }
.inst-badge { background:rgba(255,255,255,.85); border:1.5px solid var(--border-mid); border-radius:7px; padding:5px 12px; font-size:12px; font-weight:700; letter-spacing:.4px; }
.badge-rwth { color:#003366; } .badge-e3d { color:var(--green-dark); }
.footer-logo-img { height:38px !important; max-height:38px !important; width:auto !important; max-width:100%; object-fit:contain; display:block; }
/* UAE previews may contain the older Elementor Image widget instead of the
   supplied .footer-logo-img class. Keep that same RWTH/E3D asset compact. */
body.ehf-footer img[src*="rwth_e3d_blau_rgb"] { height:38px !important; max-height:38px !important; width:auto !important; max-width:100% !important; object-fit:contain; display:block; }
.footer-license { font-size:12px; color:var(--text-muted); line-height:1.6; text-align:right; max-width:320px; }
.footer-license a { color:var(--green); text-decoration:none; }
.footer-bottom { max-width:1200px; margin:20px auto 0; padding-top:16px; border-top:1px solid rgba(100,130,60,.12); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:12px; color:var(--text-muted); }
.footer-bottom a { color:var(--green); text-decoration:none; }
.footer-bottom-solo { justify-content:flex-end; }

/* ── Entrance animation ── */
@keyframes fadeUp { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:none} }
.page-hd { animation:fadeUp .5s .05s ease both; }
.card { animation:fadeUp .45s ease both; }
.card:nth-child(1){animation-delay:.12s} .card:nth-child(2){animation-delay:.22s}
.card:nth-child(3){animation-delay:.32s} .card:nth-child(4){animation-delay:.42s}
.card:nth-child(5){animation-delay:.52s} .card:nth-child(6){animation-delay:.62s}
.card:nth-child(7){animation-delay:.72s}

/* ── Responsive ── */
@media(max-width:900px){ .header-nav .nav-pill{display:none} .filter-fields{flex-direction:column} .fgroup{min-width:100%} .table-wrap{overflow-x:auto} }
@media(max-width:820px){ .grid-3{grid-template-columns:1fr} .stats-row{grid-template-columns:repeat(2,1fr)} }
@media(max-width:680px){
  .grid-2{grid-template-columns:1fr} .page-hd h1{font-size:34px} .hero h1{font-size:42px}
  .back-grid{grid-template-columns:1fr} .dl-inner{flex-direction:column} .dl-cta{margin-left:0}
  .footer-inner{flex-direction:column} .footer-right{align-items:flex-start}
  .footer-license{text-align:left; max-width:none}
  .card-tooltip{left:0;transform:translateX(0) translateY(10px) scale(.96)}
  .card:hover .card-tooltip{transform:translateX(0) translateY(0) scale(1)}
}
