/* somivian — base + custom styles */
html { scroll-behavior: smooth; }
html, body { overflow-x: hidden; }

body {
  font-family: "Nunito", system-ui, sans-serif;
  background: #F1F8E9;
  color: #1B5E20;
}

h1, h2, h3, h4, .font-head {
  font-family: "Quicksand", "Nunito", sans-serif;
  letter-spacing: -0.01em;
}

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.reveal.revealed { opacity: 1; transform: translateY(0); }

/* Soft float animation for hero blobs */
@keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
.floaty { animation: floaty 6s ease-in-out infinite; }

/* Card hover */
.lift { transition: transform .3s ease, box-shadow .3s ease; }
.lift:hover { transform: translateY(-6px); box-shadow: 0 18px 40px -18px rgba(85,139,47,.45); }

/* Accordion icon */
.acc-icon { transition: transform .3s ease; }

/* Toggle switch */
.switch { position: relative; display: inline-block; width: 50px; height: 28px; }
.switch input { opacity: 0; width: 0; height: 0; }
.slider { position: absolute; inset: 0; background: #c8d6b6; border-radius: 999px; transition: .3s; cursor: pointer; }
.slider:before { content: ""; position: absolute; height: 20px; width: 20px; left: 4px; bottom: 4px; background: #fff; border-radius: 50%; transition: .3s; }
.switch input:checked + .slider { background: #558B2F; }
.switch input:checked + .slider:before { transform: translateX(22px); }
.switch input:disabled + .slider { background: #558B2F; opacity: .55; cursor: not-allowed; }

/* CTA pulse */
.cta-pulse { box-shadow: 0 0 0 0 rgba(255,112,67,.6); animation: ctaPulse 2.4s infinite; }
@keyframes ctaPulse {
  0% { box-shadow: 0 0 0 0 rgba(255,112,67,.55); }
  70% { box-shadow: 0 0 0 16px rgba(255,112,67,0); }
  100% { box-shadow: 0 0 0 0 rgba(255,112,67,0); }
}

/* Links underline animation */
.nav-link { position: relative; }
.nav-link::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 0; height: 2px; background: #FF7043; transition: width .25s ease; }
.nav-link:hover::after, .nav-link:focus::after { width: 100%; }
