/* Nepal Life Insurance brand palette */
:root {
  --navy: #002B5C;
  --navy-deep: #001A38;
  --royal: #0056A4;
  --royal-light: #2E7BC6;
  --accent: #C8102E;
  --accent-hover: #A50D26;
  --emerald: #C8102E; /* brand CTA accent (NLIC red) */
  --emerald-light: #FFB4BE;
  --bg: #F7F9FC;
  --bg-soft: #EEF3F9;
  --slate: #334155;
  --slate-soft: #5B6B80;
  --gold: #C79A4B;
  --white: #FFFFFF;
  --font-scale: 1.06;
}

* {
  scroll-behavior: smooth;
}

html {
  font-size: 17px;
}

body {
  background: var(--bg);
  color: var(--slate);
  font-family: "Poppins", "Noto Sans Devanagari", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
}

.font-display {
  font-family: "Poppins", "Noto Sans Devanagari", sans-serif;
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Nepali: prefer Devanagari font; avoid letter-spacing that breaks conjuncts */
.lang-ne,
.lang-ne .font-display,
html[lang="ne"] body,
html[lang="ne"] .font-display {
  font-family: "Noto Sans Devanagari", "Poppins", sans-serif;
  letter-spacing: normal;
}

.lang-ne,
html[lang="ne"] body {
  word-break: keep-all;
  line-break: strict;
}

/* Neutralize English-only tracking utilities while Nepali is active */
.lang-ne .tracking-wide,
.lang-ne .tracking-wider,
.lang-ne .tracking-widest,
html[lang="ne"] .tracking-wide,
html[lang="ne"] .tracking-wider,
html[lang="ne"] .tracking-widest {
  letter-spacing: normal;
}

.lang-ne .uppercase,
html[lang="ne"] .uppercase {
  text-transform: none;
}

/* Keep matras (vowel signs) visible — balanced leading for Devanagari */
.lang-ne h1,
.lang-ne h2,
.lang-ne h3,
html[lang="ne"] h1,
html[lang="ne"] h2,
html[lang="ne"] h3 {
  line-height: 1.35;
}

.lang-ne p,
html[lang="ne"] p {
  line-height: 1.7;
}

.lang-ne .font-display,
html[lang="ne"] .font-display {
  line-height: 1.32;
}

h1 { font-size: calc(2.15rem * var(--font-scale)); }
h2 { font-size: calc(1.75rem * var(--font-scale)); }
h3 { font-size: calc(1.3rem * var(--font-scale)); }

.text-navy { color: var(--navy); }
.text-royal { color: var(--royal); }
.text-emerald { color: var(--accent); }
.text-slate-soft { color: var(--slate-soft); }
.text-gold { color: var(--gold); }
.bg-navy { background-color: var(--navy); }
.bg-navy-deep { background-color: var(--navy-deep); }
.bg-royal { background-color: var(--royal); }
.bg-emerald { background-color: var(--accent); }
.bg-bg-soft { background-color: var(--bg-soft); }
.ring-royal { --tw-ring-color: var(--royal); }
.border-emerald { border-color: var(--accent); }

.card-lift {
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.card-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px -18px rgba(0, 43, 92, 0.3);
}

.float-slow { animation: floaty 7s ease-in-out infinite; }
.float-slow-delay { animation: floaty 7s ease-in-out infinite; animation-delay: 1.4s; }

@keyframes floaty {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}

[x-cloak] { display: none !important; }

.fade-up {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.prose-agency h2,
.prose-agency h3 {
  color: var(--navy);
  font-family: "Poppins", "Noto Sans Devanagari", sans-serif;
  font-weight: 700;
  margin-top: 1.25rem;
  margin-bottom: 0.5rem;
}
.prose-agency p {
  margin-bottom: 0.85rem;
  line-height: 1.75;
  color: var(--slate-soft);
  font-size: 1.05rem;
}
.prose-agency ul {
  list-style: disc;
  padding-left: 1.25rem;
  margin-bottom: 0.85rem;
  color: var(--slate-soft);
}

a, button { -webkit-tap-highlight-color: transparent; }
:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
  border-radius: 4px;
}

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-thumb { background: var(--navy); border-radius: 10px; }

/* Passport photo preview */
.pp-preview {
  width: 120px;
  height: 150px;
  object-fit: cover;
  border-radius: 0.75rem;
  border: 2px solid #e2e8f0;
}

/* Toaster */
#toast-root {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  max-width: min(92vw, 380px);
  pointer-events: none;
}
.toast-item {
  pointer-events: auto;
  padding: 0.9rem 1.1rem;
  border-radius: 0.85rem;
  box-shadow: 0 12px 30px -12px rgba(0, 26, 56, 0.45);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 500;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  animation: toast-in 0.28s ease;
}
.toast-item.success { background: #0f766e; }
.toast-item.error { background: #C8102E; }
.toast-item.warning { background: #b45309; }
.toast-item.info { background: #0056A4; }
.toast-item .toast-close {
  margin-left: auto;
  opacity: 0.85;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  font-size: 1rem;
}

@keyframes toast-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

.ql-toolbar.ql-snow {
  border-radius: 0.75rem 0.75rem 0 0;
  border-color: #e2e8f0;
}
.ql-container.ql-snow {
  border-radius: 0 0 0.75rem 0.75rem;
  border-color: #e2e8f0;
  min-height: 160px;
  font-family: inherit;
  font-size: 1rem;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .fade-up {
    opacity: 1 !important;
    transform: none !important;
  }
}
