:root{
  --bg:#faf8f4; --ink:#1d1c1a; --muted:#6b6660; --line:#e4dfd6; --tint:#f1ede5;
  --accent:#c9a227; --dark:#181715;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:300 16px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:20px 5vw;color:#fff;transition:background .3s,color .3s,padding .3s}
.nav.solid{background:rgba(250,248,244,.94);backdrop-filter:blur(8px);color:var(--ink);padding:12px 5vw;box-shadow:0 1px 0 var(--line)}
.logo{font:600 22px var(--serif);letter-spacing:.22em}
.logo span{font:400 10px var(--sans);letter-spacing:.35em;margin-left:.6em;color:var(--accent)}
nav{display:flex;gap:32px;align-items:center;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
nav a{opacity:.85;transition:opacity .2s}nav a:hover{opacity:1}
nav .cta{border:1px solid currentColor;padding:8px 20px;opacity:1}
.menu-btn{display:none;background:none;border:0;width:36px;height:30px;position:relative;cursor:pointer;color:inherit}
.menu-btn i{position:absolute;left:4px;right:4px;height:2px;background:currentColor;transition:.3s}
.menu-btn i:first-child{top:10px}.menu-btn i:last-child{top:19px}
.menu-btn[aria-expanded=true] i:first-child{top:14px;transform:rotate(45deg)}
.menu-btn[aria-expanded=true] i:last-child{top:14px;transform:rotate(-45deg)}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.05) 40%,rgba(0,0,0,.7))}
.hero-copy{position:relative;padding:0 5vw 9vh;max-width:900px}
.hero h1{font:500 clamp(40px,7vw,86px)/1.05 var(--serif);margin:14px 0 32px}
.eyebrow{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);font-weight:500}
.btn{display:inline-block;background:var(--accent);color:#161616;padding:14px 32px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-2px);background:#dbb534}

/* sections */
.section{padding:clamp(70px,10vw,130px) 0}
.section.tint{background:var(--tint)}
.section.dark{background:var(--dark);color:#eee}
.wrap{width:min(1280px,90vw);margin:0 auto}
.narrow{width:min(900px,90vw)}.center{text-align:center}
h2{font:500 clamp(34px,4.5vw,58px)/1.1 var(--serif);margin:8px 0 36px}
.lead{color:var(--muted);font-size:18px;margin-bottom:24px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:start}
.prose p{color:var(--muted);margin-bottom:1.2em;font-size:17px}

/* filters + grid */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
.filters button{background:none;border:1px solid var(--line);padding:9px 22px;font:400 13px var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--muted);transition:.2s}
.filters button:hover{border-color:var(--ink);color:var(--ink)}
.filters button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.grid{columns:3 320px;column-gap:20px}
.card{break-inside:avoid;margin-bottom:20px;position:relative;cursor:pointer;overflow:hidden;background:var(--tint);border:0;display:block;width:100%;text-align:left;padding:0;font:inherit;color:#fff}
.card img{width:100%;height:auto;transition:transform .7s}
.card:hover img{transform:scale(1.05)}
.card .cap{position:absolute;inset:auto 0 0 0;padding:44px 18px 16px;background:linear-gradient(transparent,rgba(0,0,0,.72));opacity:0;transform:translateY(8px);transition:.35s}
.card:hover .cap,.card:focus-visible .cap{opacity:1;transform:none}
.card .cap h3{font:500 24px var(--serif)}
.card .cap p{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.card .count{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.6);font-size:12px;padding:2px 10px;border-radius:99px}

/* video */
video{width:100%;background:#000;margin-top:8px}

/* services */
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.services article{background:var(--tint);padding:34px 28px}
.services b{font:500 15px var(--serif);color:var(--accent);letter-spacing:.1em}
.services h3{font:500 25px var(--serif);margin:10px 0 8px}
.services p{color:var(--muted);font-size:15px}

/* contact / footer */
.contact-lines{font:500 clamp(22px,3vw,34px)/1.5 var(--serif)}
.contact-lines a:hover{color:var(--accent)}
footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:30px 5vw;background:var(--dark);color:#aaa}
footer .logo{color:#fff;font-size:18px}footer small{font-size:12px}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(12,12,11,.95);display:flex;align-items:center;justify-content:center;padding:4vw}
.lightbox figure{max-width:100%;max-height:100%;text-align:center;color:#ddd}
.lightbox img{max-height:80vh;max-width:88vw;margin:0 auto;object-fit:contain}
.lightbox figcaption{margin-top:14px;font-size:14px;letter-spacing:.1em}
.lb-close,.lb-nav{position:absolute;background:none;border:0;color:#fff;cursor:pointer;line-height:1}
.lb-close{top:14px;right:22px;font-size:44px}
.lb-nav{top:50%;transform:translateY(-50%);font-size:64px;padding:10px 18px;opacity:.7}
.lb-nav:hover{opacity:1}.prev{left:6px}.next{right:6px}
.lb-nav[hidden]{display:none}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

@media(max-width:800px){
  .nav.solid{backdrop-filter:none}
  .menu-btn{display:block}
  nav{position:fixed;inset:0 0 0 30%;background:var(--dark);color:#fff;flex-direction:column;justify-content:center;gap:28px;font-size:15px;transform:translateX(100%);transition:transform .35s}
  nav.open{transform:none}
  .menu-btn[aria-expanded=true]{position:relative;z-index:60;color:#fff}
  .two-col{grid-template-columns:1fr;gap:10px}
  .card .cap{opacity:1;transform:none}
}

/* language toggle */
.lang{background:none;border:1px solid currentColor;color:inherit;padding:6px 14px;font:400 12px var(--sans);letter-spacing:.08em;cursor:pointer;border-radius:99px}
.lang span{opacity:.55}
.lang[data-now=en] [data-l=en],.lang[data-now=ml] [data-l=ml]{opacity:1;font-weight:500}
.lang span+span:before{content:" | ";opacity:.5}
.hero-alt{font-size:clamp(16px,1.8vw,22px);opacity:.85;margin:-14px 0 30px;max-width:640px}

/* Malayalam typography: taller line-heights, no letter-spacing/uppercase on the script */
html[lang=ml]{--serif:'Noto Serif Malayalam',Georgia,serif;--sans:'Noto Sans Malayalam','Inter',system-ui,sans-serif}
html[lang=ml] body{line-height:1.9}
html[lang=ml] h1,html[lang=ml] h2{line-height:1.4;letter-spacing:0}
html[lang=ml] .hero h1{font-size:clamp(34px,5.6vw,68px)}
html[lang=ml] h2{font-size:clamp(28px,3.8vw,48px)}
html[lang=ml] h3,html[lang=ml] .card .cap h3{line-height:1.5}
html[lang=ml] .eyebrow,html[lang=ml] .filters button,html[lang=ml] .card .cap p{letter-spacing:0;text-transform:none}
html[lang=ml] .eyebrow{font-size:14px}
html[lang=ml] .contact-lines{font-family:'Cormorant Garamond',Georgia,serif}
.hero-alt[lang=ml]{font-family:'Noto Sans Malayalam',sans-serif;line-height:1.7}
@media(max-width:800px){.lang{align-self:center}}
/* nav, footer and primary links always stay English */
html[lang=ml] .nav,html[lang=ml] footer,html[lang=ml] .btn{font-family:'Inter',system-ui,sans-serif}
html[lang=ml] .logo{font-family:'Cormorant Garamond',Georgia,serif}
