
:root{
  --bg:#f6f8f4;
  --surface:#fffefb;
  --surface-soft:#edf5ef;
  --ink:#1c2922;
  --muted:#65736a;
  --brand:#2f6b4f;
  --brand-dark:#1e4936;
  --brand-hover:#285c44;
  --gold:#a78b52;
  --line:#d8e3da;
  --shadow:0 18px 50px rgba(31,73,53,.12);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);line-height:1.72;
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
  overflow-x:hidden;
}
html[lang="ml"] body{font-family:"Noto Sans Malayalam","Manjari",system-ui,sans-serif}
html[lang="ta"] body{font-family:"Noto Sans Tamil","Mukta Malar",system-ui,sans-serif}
html[lang="en"] body{font-family:"Manrope","Inter",system-ui,sans-serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(1240px,92%);margin:auto}
.site-header{
  position:sticky;top:0;z-index:999;background:var(--brand);color:#fff;
  border-bottom:1px solid rgba(255,255,255,.14);
  box-shadow:0 7px 22px rgba(22,59,42,.16)
}
.nav{display:flex;align-items:center;min-height:78px;gap:18px}
.brand{display:flex;align-items:center;gap:12px;min-width:220px;flex:0 0 auto}
.logo{
  width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:#fff;color:var(--brand);font-weight:900;box-shadow:0 7px 18px rgba(0,0,0,.08)
}
.brand-copy strong{display:block;white-space:nowrap;line-height:1.15;font-weight:850}
.brand-copy small{display:block;color:rgba(255,255,255,.78);font-size:.70rem;font-weight:650;line-height:1.35;margin-top:3px}
.menu{display:flex;align-items:center;gap:17px;margin-left:auto;font-weight:760;font-size:.92rem}
.menu a{color:rgba(255,255,255,.95);padding:12px 4px;border-bottom:2px solid transparent;white-space:nowrap}
.menu a:hover,.menu a.active{color:#fff;border-bottom-color:#fff}
.lang-switch{position:relative;flex:0 0 auto;margin-left:6px}
.lang-switch summary{
  list-style:none;display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 14px;
  border:1px solid rgba(255,255,255,.5);border-radius:999px;
  background:rgba(255,255,255,.10);color:#fff;font-size:.78rem;font-weight:800;
  cursor:pointer;white-space:nowrap;user-select:none
}
.lang-switch summary::-webkit-details-marker{display:none}
.lang-switch summary::after{content:"▾";font-size:.72rem}
.lang-switch[open] summary,.lang-switch summary:hover{background:#fff;color:var(--brand)}
.lang-dropdown{
  position:absolute;right:0;top:calc(100% + 9px);min-width:160px;padding:8px;
  background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:15px;
  box-shadow:0 16px 40px rgba(31,73,53,.20);z-index:1200
}
.lang-dropdown a{display:block;padding:10px 12px;border-radius:10px;font-size:.82rem;font-weight:750}
.lang-dropdown a:hover,.lang-dropdown a.current-lang{background:var(--surface-soft);color:var(--brand)}
.nav-toggle{
  display:none;border:1px solid rgba(255,255,255,.45);background:transparent;color:#fff;
  border-radius:12px;padding:9px 11px;font-size:1.15rem;cursor:pointer
}

.hero{padding:76px 0 58px}
.hero-grid,.split{display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center}
.kicker{
  display:inline-block;margin-bottom:12px;color:var(--brand);font-size:.80rem;
  font-weight:900;letter-spacing:.075em
}
h1,h2,h3{line-height:1.2;margin:0 0 16px}
h1{font-size:clamp(2.5rem,4.5vw,4.6rem);letter-spacing:-.035em;font-weight:760}
html[lang="ml"] h1,html[lang="ta"] h1{font-size:clamp(2.35rem,4.1vw,4.15rem);letter-spacing:-.02em;line-height:1.25}
h2{font-size:clamp(1.75rem,3vw,2.75rem);letter-spacing:-.025em}
h3{font-size:1.16rem}
p{margin:0 0 16px;color:var(--muted)}
.lead{font-size:1.08rem;max-width:760px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:999px;
  font-weight:820;border:1px solid transparent;cursor:pointer;transition:.24s ease
}
.btn-primary{background:var(--brand);color:#fff;box-shadow:0 10px 25px rgba(47,107,79,.22)}
.btn-primary:hover{background:var(--brand-hover);transform:translateY(-2px)}
.btn-secondary{background:#fff;border-color:var(--brand);color:var(--brand)}
.btn-secondary:hover{background:var(--surface-soft);transform:translateY(-2px)}

.hero-card,.card,.panel,.feature{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)
}
.hero-card{padding:18px}
.media-slot{
  min-height:390px;border-radius:18px;
  background:linear-gradient(135deg,rgba(47,107,79,.92),rgba(105,126,88,.80)),
  radial-gradient(circle at top right,#dfe9df,#a8b8a5);
  display:grid;place-items:center;text-align:center;color:#fff;padding:30px;font-weight:850
}
.media-slot small{display:block;margin-top:10px;color:rgba(255,255,255,.80);font-size:.72rem}
.media-slot.small{min-height:270px}
.media-slot.video{min-height:320px;background:linear-gradient(135deg,#203d31,#2f6b4f)}
section{padding:68px 0}
.alt{background:#eef3ec}
.section-head{max-width:820px;margin-bottom:30px}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{padding:25px;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.card:hover,.feature:hover{transform:translateY(-6px);box-shadow:0 24px 55px rgba(31,73,53,.17);border-color:#bfd3c4}
.icon{
  width:45px;height:45px;border-radius:14px;display:grid;place-items:center;
  background:#e7f0e9;color:var(--brand);font-weight:900;margin-bottom:16px
}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.panel{padding:27px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}
.feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:22px}
.feature{padding:20px;transition:.25s ease}
.mini-list{display:grid;gap:12px;margin:20px 0}
.mini-item{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line)}
.mini-item:last-child{border-bottom:0}
.mini-dot{width:10px;height:10px;margin-top:9px;border-radius:50%;background:var(--gold);flex:0 0 auto}
.page-hero{padding:58px 0 28px}
.page-hero .panel{padding:36px}
.notice{
  padding:18px;border-radius:16px;background:#fff8e9;border:1px solid #ead9a8;color:#6f572b;margin-top:18px
}
.quote-card{padding:24px;border-left:4px solid var(--brand)}
.cta{
  background:linear-gradient(135deg,var(--brand-dark),var(--brand));color:#fff;border-radius:28px;padding:40px
}
.cta p{color:rgba(255,255,255,.80)}
.cta .btn-secondary{background:#fff;color:var(--brand);border-color:#fff}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gallery-grid .media-slot{min-height:240px}
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}

form{display:grid;gap:16px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{font-weight:800;font-size:.93rem}
input,select,textarea{
  width:100%;margin-top:7px;border:1px solid var(--line);border-radius:14px;padding:13px;
  background:#fff;color:var(--ink);font:inherit;outline:none
}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(47,107,79,.10)}
textarea{min-height:130px;resize:vertical}
.success{display:none;margin-top:15px;padding:14px;border-radius:14px;background:#e7f5ec;border:1px solid #a9d1b8;color:#245a3f}

footer{background:#1f352a;color:#fff;margin-top:62px}
.footer-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1.15fr;gap:30px;padding:50px 0}
footer p,footer a{color:rgba(255,255,255,.74)}
footer h3{font-size:1rem}
.footer-links{display:grid;gap:8px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:18px 0;color:rgba(255,255,255,.64);font-size:.9rem}

/* entrance animation */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-visible{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.08s}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}

@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
  .card,.feature,.btn{transition:none!important}
}
@media (max-width:1280px){
  .nav-toggle{display:block}
  .menu{
    display:none;position:absolute;left:3%;right:3%;top:calc(100% + 8px);
    background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;
    box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:4px
  }
  .menu.open{display:flex}
  .menu a{color:var(--ink);border-bottom:0;border-radius:12px;padding:11px 14px}
  .menu a:hover,.menu a.active{color:var(--brand);background:var(--surface-soft)}
  .lang-switch{margin-left:auto}
}
@media (max-width:900px){
  .hero-grid,.split,.two-col{grid-template-columns:1fr}
  .cards{grid-template-columns:repeat(2,1fr)}
  .steps,.contact-cards{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .hero{padding-top:52px}
}
@media (max-width:620px){
  .brand{min-width:0}
  .brand-copy small{display:none}
  .brand-copy strong{font-size:.9rem}
  .logo{width:40px;height:40px}
  .nav{min-height:68px;gap:8px}
  .lang-switch summary{padding:7px 10px;font-size:.72rem}
  .lang-dropdown{min-width:145px}
  .cards,.feature-list,.gallery-grid,.form-grid,.footer-grid{grid-template-columns:1fr}
  .media-slot{min-height:285px}
  section{padding:52px 0}
  .page-hero{padding-top:40px}
}


/* ===== V6 RESPONSIVE + HEADER + URL UX FIX ===== */

/* 25% taller header on desktop */
.site-header .nav{
  min-height:98px !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
}

/* Keep all hero content inside viewport/frame */
.hero,
.page-hero,
.hero-grid,
.hero-grid > *,
.container,
.section-head,
.panel,
.card{
  min-width:0 !important;
}

.hero h1,
.page-hero h1{
  max-width:100% !important;
  overflow-wrap:anywhere !important;
  word-break:normal !important;
  hyphens:auto;
}

/* Center hero heading block on all breakpoints */
.hero .hero-grid > div:first-child{
  text-align:center !important;
}
.hero .hero-grid > div:first-child .lead{
  margin-left:auto !important;
  margin-right:auto !important;
}
.hero .actions{
  justify-content:center !important;
}

/* Make all major heading blocks centered */
.section-head{
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}
.page-hero .panel{
  text-align:center !important;
}
.page-hero .lead{
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Language selector now lives inside hamburger/menu */
.menu .menu-language{
  display:none;
  padding:8px 14px 12px;
  border-top:1px solid var(--line);
  margin-top:6px;
}
.menu .menu-language label{
  display:block;
  font-size:.76rem;
  font-weight:800;
  color:var(--muted);
  margin-bottom:7px;
}
.menu .menu-language select{
  margin:0;
  width:100%;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-weight:700;
}
.site-header > .container > .lang-switch{
  display:none !important;
}

/* At hamburger breakpoint, show language field inside menu */
@media (max-width:1280px){
  .menu .menu-language{
    display:block;
  }
}

/* Mobile: 25% taller than previous ~68px => ~85px */
@media (max-width:620px){
  .site-header .nav{
    min-height:85px !important;
    padding-top:9px !important;
    padding-bottom:9px !important;
  }

  .hero{
    padding-top:42px !important;
  }

  .hero .container,
  .page-hero .container{
    width:min(92%, 100%) !important;
    overflow:hidden !important;
  }

  html[lang="ml"] .hero h1,
  html[lang="ta"] .hero h1{
    font-size:clamp(2rem, 10vw, 2.85rem) !important;
    line-height:1.3 !important;
    letter-spacing:-0.01em !important;
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  html[lang="en"] .hero h1{
    font-size:clamp(2.05rem, 9vw, 2.8rem) !important;
    line-height:1.2 !important;
    width:100% !important;
    max-width:100% !important;
  }

  .hero .kicker,
  .hero .lead{
    text-align:center !important;
    width:100% !important;
    max-width:100% !important;
  }

  .hero .lead{
    font-size:1rem !important;
    line-height:1.75 !important;
  }

  .hero .actions{
    flex-direction:column !important;
    align-items:stretch !important;
    width:100% !important;
  }

  .hero .actions .btn{
    width:100% !important;
    max-width:100% !important;
    white-space:normal !important;
    text-align:center !important;
  }

  .hero-card{
    max-width:100% !important;
    overflow:hidden !important;
  }

  .media-slot{
    max-width:100% !important;
    overflow:hidden !important;
  }
}

/* Very narrow screens */
@media (max-width:390px){
  html[lang="ml"] .hero h1,
  html[lang="ta"] .hero h1{
    font-size:1.95rem !important;
  }
  .brand-copy strong{
    font-size:.84rem !important;
  }
  .logo{
    width:38px !important;
    height:38px !important;
  }
}


/* ===== V7 DESKTOP LANGUAGE + MOBILE HAMBURGER ALIGNMENT ===== */

/* Desktop header language dropdown */
.desktop-language{
  position:relative;
  flex:0 0 auto;
  margin-left:8px;
}
.desktop-language summary{
  list-style:none;
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:9px 15px;
  border:1px solid rgba(255,255,255,.52);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:.78rem;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.desktop-language summary::-webkit-details-marker{display:none}
.desktop-language summary::after{content:"▾";font-size:.72rem}
.desktop-language[open] summary,
.desktop-language summary:hover{
  background:#fff;
  color:var(--brand);
}
.desktop-language .lang-dropdown{
  position:absolute;
  right:0;
  top:calc(100% + 9px);
  min-width:160px;
  padding:8px;
  background:#fff;
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:15px;
  box-shadow:0 16px 40px rgba(31,73,53,.20);
  z-index:1400;
}
.desktop-language .lang-dropdown a{
  display:block;
  padding:10px 12px;
  border-radius:10px;
  font-size:.82rem;
  font-weight:750;
  color:var(--ink);
}
.desktop-language .lang-dropdown a:hover,
.desktop-language .lang-dropdown a.current-lang{
  background:var(--surface-soft);
  color:var(--brand);
}

/* Desktop: normal horizontal nav + visible language dropdown */
@media (min-width:1281px){
  .desktop-language{display:block !important}
  .menu .menu-language{display:none !important}
  .nav-toggle{display:none !important}

  .site-header .nav{
    display:flex !important;
    align-items:center !important;
    width:100% !important;
  }

  .site-header .menu{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:17px !important;
    margin-left:auto !important;
    position:static !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    padding:0 !important;
  }

  /* Desktop CTA buttons remain inline */
  .hero .actions,
  .actions{
    flex-direction:row !important;
    justify-content:center !important;
    align-items:center !important;
    flex-wrap:wrap !important;
  }
  .hero .actions .btn,
  .actions .btn{
    width:auto !important;
    max-width:none !important;
  }
}

/* Mobile/tablet: no desktop language control; language lives in hamburger menu */
@media (max-width:1280px){
  .desktop-language{display:none !important}

  .site-header .nav{
    display:flex !important;
    width:100% !important;
    align-items:center !important;
  }

  .site-header .brand{
    flex:0 1 auto !important;
    min-width:0 !important;
  }

  /* Push hamburger to the far right */
  .site-header .nav-toggle{
    display:block !important;
    margin-left:auto !important;
    flex:0 0 auto !important;
  }

  .menu .menu-language{
    display:block !important;
  }
}

/* Mobile: keep logo/name left and hamburger flush right */
@media (max-width:620px){
  .site-header .container.nav{
    width:100% !important;
    max-width:none !important;
    padding-left:24px !important;
    padding-right:24px !important;
  }

  .site-header .brand{
    margin-right:10px !important;
  }

  .site-header .nav-toggle{
    margin-left:auto !important;
    margin-right:0 !important;
  }
}

@media (max-width:390px){
  .site-header .container.nav{
    padding-left:18px !important;
    padding-right:18px !important;
  }
}


/* ===== V8 ROBUST ROUTING + DESKTOP LANGUAGE FIX ===== */

/* Desktop language select is always visible and cannot be pushed off-screen */
.desktop-language-select-wrap{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  margin-left:10px;
  min-width:118px;
}
.desktop-language-select{
  width:100%;
  min-height:42px;
  padding:8px 34px 8px 13px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font:inherit;
  font-size:.78rem;
  font-weight:800;
  cursor:pointer;
  outline:none;
}
.desktop-language-select option{
  background:#fff;
  color:var(--ink);
}

/* Keep desktop nav compact enough to leave room for language selector */
@media (min-width:1281px){
  .site-header .container.nav{
    width:min(1360px,96%) !important;
  }
  .site-header .brand{
    min-width:205px !important;
  }
  .site-header .menu{
    gap:14px !important;
    font-size:.86rem !important;
    flex:1 1 auto !important;
    justify-content:center !important;
  }
  .site-header .menu a{
    padding-left:3px !important;
    padding-right:3px !important;
  }
  .desktop-language-select-wrap{
    display:flex !important;
  }
  .desktop-language{
    display:none !important;
  }
  .menu .menu-language{
    display:none !important;
  }
  .nav-toggle{
    display:none !important;
  }
}

/* Tablet/mobile: desktop selector hidden; language remains inside hamburger */
@media (max-width:1280px){
  .desktop-language-select-wrap{
    display:none !important;
  }
  .menu .menu-language{
    display:block !important;
  }
  .site-header .nav-toggle{
    margin-left:auto !important;
  }
}

/* Prevent accidental horizontal clipping */
body,html{max-width:100%;overflow-x:hidden}


/* ===== V9 MOBILE HERO HEADING SIZE FIX ===== */
@media (max-width:620px){
  html[lang="ml"] .hero h1,
  html[lang="ta"] .hero h1{
    font-size:clamp(1.65rem, 7.4vw, 2.15rem) !important;
    line-height:1.38 !important;
    letter-spacing:0 !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
  }

  html[lang="en"] .hero h1{
    font-size:clamp(1.8rem, 7.2vw, 2.25rem) !important;
    line-height:1.28 !important;
    text-align:center !important;
  }

  .hero .kicker{
    font-size:.78rem !important;
  }

  .hero .lead{
    font-size:.96rem !important;
    line-height:1.72 !important;
  }
}

@media (max-width:390px){
  html[lang="ml"] .hero h1,
  html[lang="ta"] .hero h1{
    font-size:1.62rem !important;
    line-height:1.4 !important;
  }
}


/* ===== V10 MOBILE CENTER ALIGNMENT ===== */
@media (max-width:620px){

  /* Headings and text blocks */
  .hero .kicker,
  .hero h1,
  .hero h2,
  .hero h3,
  .hero .lead,
  .page-hero .kicker,
  .page-hero h1,
  .page-hero h2,
  .page-hero h3,
  .page-hero .lead,
  .section-head,
  .section-head h2,
  .section-head h3,
  .card h2,
  .card h3,
  .panel h2,
  .panel h3,
  .feature h2,
  .feature h3,
  .cta h2,
  .cta h3,
  .cta p{
    text-align:center !important;
  }

  /* Center ordinary card/panel body copy too */
  .card p,
  .panel p,
  .feature p{
    text-align:center !important;
  }

  /* Buttons / CTA groups */
  .actions,
  .hero .actions,
  .cta .actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
  }

  .actions .btn,
  .hero .actions .btn,
  .cta .btn{
    width:min(100%, 520px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
    justify-content:center !important;
  }

  /* Standalone buttons inside cards/panels */
  .card .btn,
  .panel .btn,
  .feature .btn{
    display:flex !important;
    width:min(100%, 520px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    justify-content:center !important;
    text-align:center !important;
  }

  /* Footer: center all widgets and links */
  footer,
  .footer-grid,
  .footer-grid > div,
  .footer-links,
  .footer-bottom{
    text-align:center !important;
  }

  .footer-grid{
    align-items:center !important;
  }

  .footer-links{
    justify-items:center !important;
  }

  .footer-links a{
    display:block !important;
    width:100% !important;
    text-align:center !important;
  }

  footer h3,
  footer p,
  footer a{
    text-align:center !important;
  }

  /* Contact cards on mobile */
  .contact-cards .panel{
    text-align:center !important;
  }

  /* Lists remain readable but centered */
  .mini-list{
    width:100% !important;
  }
  .mini-item{
    justify-content:center !important;
    text-align:center !important;
  }

  /* Form submit button centered */
  form .btn{
    width:min(100%, 520px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}
