/* Modern glassmorphism theme with smooth transitions */
:root {
  /* Calmer, modern palette */
  --gov-primary: #0f172a;   /* slate-900 */
  --gov-primary-2: #1e293b; /* slate-800 */
  --accent-1: #2563eb;      /* blue-600 */
  --accent-2: #06b6d4;      /* cyan-500 */
  --gov-accent: var(--accent-1);
  --glass-bg: rgba(255, 255, 255, 0.14);
  --glass-brd: rgba(255, 255, 255, 0.28);
  --glass-dark: rgba(7, 13, 26, 0.35);
  --radius-xl: 18px;
  --ease-out: cubic-bezier(.22,1,.36,1);
  --glass-blur: 20px;
  --glass-saturation: 180%;
  --glass-border: linear-gradient(140deg, rgba(255,255,255,.6), rgba(255,255,255,.15));
}

html { scroll-behavior: smooth; }

/* Page fade transitions */
body.page-enter { opacity: 0; }
body.page-enter.page-enter-active { opacity: 1; transition: opacity .5s ease; }
body.page-leave { opacity: 1; }
body.page-leave.page-leave-active { opacity: 0; transition: opacity .35s ease; }

@media (prefers-reduced-motion: reduce) {
  body.page-enter.page-enter-active,
  body.page-leave.page-leave-active { transition: none; }
}

.gov-topbar {
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.58));
  backdrop-filter: blur(10px);
}
.gov-navbar {
  background: linear-gradient(90deg, rgba(15,23,42,.78), rgba(30,41,59,.78));
  backdrop-filter: blur(12px);
}
.gov-hero {
  background: radial-gradient(1200px 600px at 10% 10%, rgba(34,211,238,.16), transparent),
              radial-gradient(900px 500px at 90% 20%, rgba(14,165,233,.18), transparent),
              linear-gradient(120deg, #0f172a, #1e293b);
  background-size: cover;
  animation: gradientShift 16s var(--ease-out) infinite alternate;
  position: relative;
  overflow: hidden;
}
.gov-hero::after {
  content: "";
  position: absolute; inset: -15% -10% auto auto;
  width: 46vmax; height: 46vmax; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255,255,255,.12), rgba(255,255,255,0));
  filter: blur(60px);
  transform: translate(6%, -12%);
}
.gov-footer { background: #0b1222; }

@keyframes gradientShift { 0% { filter: none; } 100% { filter: hue-rotate(-8deg) saturate(1.05); } }

.glass { background: var(--glass-bg); border-radius: var(--radius-xl);
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-brd);
}
.glass-dark {
  background: var(--glass-dark);
  backdrop-filter: blur(calc(var(--glass-blur) - 6px)) saturate(calc(var(--glass-saturation) - 20%));
  -webkit-backdrop-filter: blur(calc(var(--glass-blur) - 6px)) saturate(calc(var(--glass-saturation) - 20%));
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius-xl);
}
.glass-border { position: relative; }
.glass-border::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  padding: 1px; background: var(--glass-border);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  pointer-events: none;
}
.glass-reflect { position: relative; }
.glass-reflect::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient( to bottom right, rgba(255,255,255,.16), rgba(255,255,255,0) 40% );
  mix-blend-mode: screen; opacity: .6;
}
.glass-shimmer { position: relative; overflow: hidden; }
.glass-shimmer::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.25) 12%, rgba(255,255,255,0) 24%);
  transform: translateX(-120%);
}
.glass-shimmer.active::after { animation: sheen 2.6s var(--ease-out) infinite; }
@keyframes sheen { 0% { transform: translateX(-120%);} 100% { transform: translateX(120%);} }
.rounded-xl { border-radius: var(--radius-xl) !important; }
.soft-shadow { box-shadow: 0 6px 20px rgba(0,0,0,.10); }
.hover-lift { transition: transform .28s var(--ease-out), box-shadow .28s var(--ease-out); }
.hover-lift:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,.14); }

.gov-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(255,255,255,.6);
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 999px; padding: .35rem .8rem;
}

a.link-underline { text-decoration: underline; text-underline-offset: 3px; }

/* Reveal on scroll */
.reveal { opacity: 0; transform: translateY(8px); transition: all .5s var(--ease-out); }
.reveal.show { opacity: 1; transform: translateY(0); }

/* Card style */
.card.glass-card { border: 0; border-radius: var(--radius-xl); }
.card.glass-card .card-body { padding: 1.1rem 1.2rem; }

/* Buttons */
.btn-pill { border-radius: 999px; }
/* Brand buttons */
.btn-primary { background: linear-gradient(90deg, var(--accent-1), var(--accent-2)); border: none; }
.btn-primary:hover { filter: brightness(1.02) saturate(1.05); }
.btn-outline-primary { color: var(--accent-1); border-color: rgba(14,165,233,.55); }
.btn-outline-primary:hover { color: #fff; background: linear-gradient(90deg, var(--accent-1), var(--accent-2)); border-color: transparent; }

/* Reduce Tailwind influence to prefixed classes only */
[class*=" tw-"] { font: inherit; }

/* Back to top button */
.to-top {
  position: fixed; right: 16px; bottom: 16px; z-index: 1040;
  width: 44px; height: 44px; border-radius: 999px;
  display: grid; place-items: center; color: #fff; background: rgba(11,61,145,.85);
  border: 1px solid rgba(255,255,255,.25); box-shadow: 0 10px 30px rgba(0,0,0,.18);
  opacity: 0; transform: translateY(8px); pointer-events: none;
  transition: opacity .3s ease, transform .3s ease, background .3s ease;
}
.to-top.show { opacity: 1; transform: translateY(0); pointer-events: auto; }
.to-top:hover { background: rgba(23,78,166,.95); }

/* Gentle tilt visuals */
.tilt { transition: transform .15s var(--ease-out); will-change: transform; }

/* Link subtle underline animation */
a.text-decoration-none, a.link-underline, a { transition: color .15s var(--ease-out), text-decoration-color .15s var(--ease-out); }
a.link-underline:hover { text-decoration-color: currentColor; }

/* Liquid glass background blobs in hero */
.liquid { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.liquid .blob { position: absolute; border-radius: 50%; filter: blur(30px); opacity: .7; mix-blend-mode: screen; }
.liquid .b1 { width: 38vmax; height: 38vmax; left: -10vmax; top: -8vmax; background: radial-gradient(circle at 30% 30%, rgba(6,182,212,.45), rgba(37,99,235,.12) 60%, transparent 70%); animation: float 18s ease-in-out infinite; }
.liquid .b2 { width: 28vmax; height: 28vmax; right: -6vmax; top: -6vmax; background: radial-gradient(circle at 60% 40%, rgba(37,99,235,.38), rgba(6,182,212,.12) 60%, transparent 70%); animation: float2 22s ease-in-out infinite; }
.liquid .b3 { width: 24vmax; height: 24vmax; left: 10vmax; bottom: -10vmax; background: radial-gradient(circle at 40% 60%, rgba(2,132,199,.36), rgba(14,165,233,.10) 60%, transparent 70%); animation: float3 26s ease-in-out infinite; }
@keyframes float { 0% { transform: translateY(0) translateX(0);} 50% { transform: translateY(12px) translateX(8px);} 100% { transform: translateY(0) translateX(0);} }
@keyframes float2 { 0% { transform: translateY(0) translateX(0);} 50% { transform: translateY(-10px) translateX(-12px);} 100% { transform: translateY(0) translateX(0);} }
@keyframes float3 { 0% { transform: translateY(0) translateX(0);} 50% { transform: translateY(10px) translateX(-10px);} 100% { transform: translateY(0) translateX(0);} }
