+91 63908 66555 support@dgvs.org Registered under SRA 1860 · Since 13 Aug 1986
/* Google Font */ @import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,500&display=swap'); :root{ --forest: #1F4A3D; --forest-deep: #123128; --forest-soft: #E7F0EA; --terracotta: #D9673A; --terracotta-deep:#B94F27; --terracotta-soft:#FBE7DA; --gold: #C9982F; --gold-soft: #F6E9CC; --indigo: #2E6C8E; --indigo-soft: #DDEAF1; --rust: #A34632; --cream: #FAF6EC; --paper: #FFFFFF; --ink: #201C16; --ink-soft: #5B5548; --line: #E7DECB; --font: "Poppins", "Poppins Fallback", -apple-system, Segoe UI, sans-serif; --container: 1240px; --gap: clamp(1.5rem, 3vw, 3.25rem); --shadow-soft: 0 20px 45px -25px rgba(18,49,40,.35); --shadow-card: 0 14px 30px -18px rgba(32,28,22,.28); } *{ box-sizing: border-box; } .btn{ display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font); font-weight: 600; font-size: .95rem; padding: .85rem 1.6rem; border-radius: 999px; border: 1.5px solid transparent; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease; white-space: nowrap; text-decoration:none; } .btn-primary{ background: var(--terracotta); color: #fff; box-shadow: 0 10px 24px -12px rgba(217,103,58,.65); } .btn-primary:hover{ background: var(--terracotta-deep); transform: translateY(-2px); } .btn-ghost{ background: transparent; color: var(--forest); border-color: var(--line); } .btn-ghost:hover{ border-color: var(--forest); background: var(--forest-soft); } .btn-sm{ padding: .55rem 1.15rem; font-size: .85rem; } /* ---------------- Top utility bar ---------------- */ .topbar{ background: var(--forest-deep); color: rgba(255,255,255,.82); font-size: .82rem; } .topbar-inner{ display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .5rem 1.5rem; max-width: var(--container); margin: 0 auto; } .topbar-info{ display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; } .topbar-info a{ display: inline-flex; align-items: center; gap: .4rem; transition: color .15s ease; } .topbar-info a:hover{ color: var(--gold); } .topbar-social{ display: flex; align-items: center; gap: .85rem; } .topbar-social a{ display: grid; place-items: center; opacity: .85; transition: opacity .15s ease, transform .15s ease; } .topbar-social a:hover{ opacity: 1; transform: translateY(-1px); } /* ---------------- Header ---------------- */ .site-header{ position: sticky; top: 0; z-index: 60; background: rgba(250,246,236,.92); backdrop-filter: blur(10px); border-bottom: 1px solid transparent; transition: box-shadow .25s ease, border-color .25s ease, background-color .25s ease; } .site-header.is-scrolled{ box-shadow: 0 10px 30px -20px rgba(18,49,40,.55); border-color: var(--line); background: rgba(250,246,236,.98); } .header-inner{ display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: .85rem 1.5rem; max-width: var(--container); margin: 0 auto; } .brand{ display: flex; align-items: center; gap: .75rem; } .brand-mark{ width: 48px; height: 48px; border-radius: 10%; object-fit: cover; border: 2px solid var(--gold); } .brand-text{ display: flex; flex-direction: column; line-height: 1.25; } .brand-text strong{ font-size: 1.02rem; font-weight: 700; color: var(--forest-deep); } .brand-text em{ font-style: normal; font-size: .74rem; color: var(--ink-soft); } .nav-toggle{ display: none; flex-direction: column; justify-content: center; gap: 5px; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); cursor: pointer; } .nav-toggle span{ width: 20px; height: 2px; background: var(--forest-deep); margin: 0 auto; border-radius: 2px; transition: transform .2s ease, opacity .2s ease; } .main-nav{ display: flex; align-items: center; gap: 2rem; } .main-nav > ul{ display: flex; align-items: center; gap: 1.7rem; } .main-nav > ul > li{ position: relative; } .main-nav > ul > li > a{ font-size: .93rem; font-weight: 500; color: var(--ink); padding: .4rem 0; border-bottom: 2px solid transparent; transition: color .15s ease, border-color .15s ease; } .main-nav > ul > li > a:hover{ color: var(--terracotta); } .has-sub > a::after{ content:""; display: inline-block; width: 6px; height: 6px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg); margin-left: 6px; position: relative; top: -2px; } .sub-nav{ position: absolute; top: calc(100% + 14px); left: -1rem; min-width: 230px; background: var(--paper); border-radius: 14px; box-shadow: var(--shadow-soft); padding: .6rem; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .18s ease, transform .18s ease, visibility .18s ease; border: 1px solid var(--line); } .has-sub:hover .sub-nav, .has-sub:focus-within .sub-nav{ opacity: 1; visibility: visible; transform: translateY(0); } .sub-nav li a{ display: block; padding: .55rem .75rem; border-radius: 8px; font-size: .88rem; color: var(--ink-soft); transition: background .15s ease, color .15s ease; } .sub-nav li a:hover{ background: var(--forest-soft); color: var(--forest-deep); } .header-cta{ display: flex; align-items: center; gap: .9rem; } @media (max-width: 900px){ .topbar-info span.topbar-hide-m{ display: none; } .nav-toggle{ display: flex; } .header-cta .btn-ghost{ display: none; } .main-nav{ position: fixed; inset: 0 0 0 auto; width: min(340px, 86vw); height: 100vh; background: var(--paper); flex-direction: column; align-items: stretch; padding: 5.5rem 1.5rem 2rem; gap: 1.5rem; transform: translateX(100%); transition: transform .3s ease; box-shadow: -20px 0 50px -20px rgba(0,0,0,.35); overflow-y: auto; } .main-nav.open{ transform: translateX(0); } .main-nav > ul{ flex-direction: column; align-items: flex-start; gap: .3rem; width: 100%; } .main-nav > ul > li{ width: 100%; } .main-nav > ul > li > a{ display: block; padding: .75rem 0; border-bottom: 1px solid var(--line); width: 100%; } .sub-nav{ position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: none; display: none; padding-left: .5rem; } .has-sub.open .sub-nav{ display: block; } .header-cta .btn-primary{ width: 100%; justify-content: center; } } /* ---------------- Footer ---------------- */ .site-footer{ background: var(--forest-deep); color: rgba(255,255,255,.78); } .footer-inner{ max-width: var(--container); margin: 0 auto; padding: clamp(3rem, 6vw, 4.5rem) 1.5rem 2.5rem; display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.1fr; gap: 2.5rem; } .footer-mark{ width: 52px; height: 52px; border-radius: 10%; margin-bottom: 1rem; border: 2px solid var(--gold); } .footer-brand p{ color: rgba(255,255,255,.68); font-size: .88rem; max-width: 34ch; } .social-links{ display: flex; gap: .7rem; margin-top: 1rem; } .social-links a{ width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.08); display: grid; place-items: center; transition: background .18s ease, transform .18s ease; } .social-fb{ color: #1877F2; } .social-ig{ color: #E1306C; } .social-x{ color: #000000; } .social-yt{ color: #FF0000; } .social-li{ color: #0A66C2; } .social-links a:hover{ background: rgba(255,255,255,.14); transform: translateY(-2px); } .footer-col h4{ color: #db9921; font-size: 1rem; margin-bottom: 1.1rem; } .footer-col p{ font-size: .87rem; color: rgba(255,255,255,.68); } .footer-col a{ transition: color .15s ease; } .footer-col a:hover{ color: var(--gold); } .footer-links li{ margin-bottom: .6rem; font-size: .88rem; } .footer-bottom{ border-top: 1px solid rgba(255,255,255,.12); } .footer-bottom p{ max-width: var(--container); margin: 0 auto; padding: 1.2rem 1.5rem; font-size: .8rem; color: rgba(255,255,255,.55); text-align: center; } @media (max-width: 900px){ .footer-inner{ grid-template-columns: 1fr 1fr; } } @media (max-width: 560px){ .footer-inner{ grid-template-columns: 1fr; } } /* ---------------- Floating actions ---------------- */ .fab-stack{ position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 70; display: flex; flex-direction: column; gap: .8rem; align-items: flex-end; } .fab{ width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; box-shadow: 0 14px 28px -12px rgba(18,49,40,.55); border: none; cursor: pointer; opacity: 0; transform: translateY(14px) scale(.9); pointer-events: none; transition: opacity .25s ease, transform .25s ease, background .18s ease; } .fab.is-visible{ opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; } .fab-whatsapp{ background: #29A71A; color: #fff; opacity: 1; transform: none; pointer-events: auto; } .fab-whatsapp:hover{ background: #228c15; } .back-to-top{ background: var(--forest); color: #fff; } .back-to-top:hover{ background: var(--forest-deep); }

const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; // ---------- Mobile nav toggle ---------- const navToggle = document.getElementById('navToggle'); const mainNav = document.getElementById('mainNav'); navToggle.addEventListener('click', () => { const isOpen = mainNav.classList.toggle('open'); navToggle.setAttribute('aria-expanded', isOpen); }); document.querySelectorAll('.has-sub > a').forEach((link) => { link.addEventListener('click', (e) => { if (window.innerWidth > 900) return; const parent = link.parentElement; const alreadyOpen = parent.classList.contains('open'); if (!alreadyOpen) { e.preventDefault(); document.querySelectorAll('.has-sub.open').forEach((li) => li.classList.remove('open')); parent.classList.add('open'); } }); }); document.querySelectorAll('.main-nav a:not(.has-sub > a)').forEach((link) => { link.addEventListener('click', () => { mainNav.classList.remove('open'); navToggle.setAttribute('aria-expanded', false); }); }); // ---------- Footer year ---------- const yearEl = document.getElementById('year'); if (yearEl) yearEl.textContent = new Date().getFullYear(); // ---------- Sticky header shadow on scroll ---------- (function headerShadow() { const header = document.querySelector('.site-header'); if (!header) return; function update() { header.classList.toggle('is-scrolled', window.scrollY > 8); } update(); window.addEventListener('scroll', update, { passive: true }); })(); // ---------- Back-to-top button ---------- (function backToTop() { const stack = document.querySelector('.fab-stack'); if (!stack) return; const btn = document.createElement('button'); btn.type = 'button'; btn.className = 'fab back-to-top'; btn.setAttribute('aria-label', 'Back to top'); btn.innerHTML = ''; stack.appendChild(btn); function toggleVisibility() { btn.classList.toggle('is-visible', window.scrollY > 480); } toggleVisibility(); window.addEventListener('scroll', toggleVisibility, { passive: true }); btn.addEventListener('click', () => { window.scrollTo({ top: 0, behavior: reduceMotion ? 'auto' : 'smooth' }); }); })();