/* ============================================================
   Silver Moon BD Properties Ltd. — Design System
   Palette: deep navy ground, silver, signal cyan, restrained gold
   Type:    Fraunces (display) / Inter (body) / IBM Plex Mono (record data)
            Noto Serif Bengali (display BN) / Hind Siliguri (body BN)
   ============================================================ */

:root{
  /* light (default) */
  --ground:      #FFFFFF;
  --ground-alt:  #EFF4F9;
  --surface:     #FFFFFF;
  --surface-2:   #F7FAFC;
  --line:        #DCE5EF;
  --line-strong: #BFCEDF;
  --ink:         #07203F;
  --ink-soft:    #4C6584;
  --ink-faint:   #7E93AC;
  --accent:      #0B7FBF;
  --accent-soft: #E3F2FB;
  --gold:        #9C731F;
  --gold-soft:   #F6EEDC;
  --night:       #04162C;
  --night-2:     #0A2749;
  --on-night:    #E6EEF7;
  --on-night-soft:#9DB3CC;
  --shadow:      0 1px 2px rgba(7,32,63,.05), 0 12px 32px -18px rgba(7,32,63,.28);
  --radius:      4px;
  --maxw:        1240px;
  --gutter:      clamp(16px, 4vw, 56px);

  --f-display: "Fraunces", "Noto Serif Bengali", Georgia, "Times New Roman", serif;
  --f-body:    "Inter", "Hind Siliguri", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-mono:    "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  color-scheme: light;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:      #04162C;
    --ground-alt:  #071F3A;
    --surface:     #07203F;
    --surface-2:   #0A2749;
    --line:        #16375C;
    --line-strong: #24507D;
    --ink:         #E6EEF7;
    --ink-soft:    #A9BED6;
    --ink-faint:   #7B94B1;
    --accent:      #4FC0F0;
    --accent-soft: #0B2C48;
    --gold:        #E0B354;
    --gold-soft:   #2A2213;
    --night:       #020E1D;
    --night-2:     #06203C;
    --shadow:      0 1px 2px rgba(0,0,0,.4), 0 18px 40px -22px rgba(0,0,0,.8);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --ground:#04162C; --ground-alt:#071F3A; --surface:#07203F; --surface-2:#0A2749;
  --line:#16375C; --line-strong:#24507D; --ink:#E6EEF7; --ink-soft:#A9BED6; --ink-faint:#7B94B1;
  --accent:#4FC0F0; --accent-soft:#0B2C48; --gold:#E0B354; --gold-soft:#2A2213;
  --night:#020E1D; --night-2:#06203C;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 18px 40px -22px rgba(0,0,0,.8);
  color-scheme: dark;
}

*,*::before,*::after{ box-sizing:border-box; }

body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* ---------- bilingual switch ---------- */
.bn{ font-family:"Hind Siliguri", var(--f-body); }
h1 .bn, h2 .bn, h3 .bn, .display .bn{ font-family:"Noto Serif Bengali", var(--f-display); font-weight:600; }
:root[data-lang="en"] .bn{ display:none !important; }
:root[data-lang="bn"] .en{ display:none !important; }

/* ---------- type scale ---------- */
h1,h2,h3,h4{ margin:0; font-family:var(--f-display); font-weight:500; letter-spacing:-.015em; text-wrap:balance; }
h1{ font-size:clamp(2.6rem, 6.4vw, 5rem); line-height:1.02; }
h2{ font-size:clamp(2rem, 4.2vw, 3.4rem); line-height:1.08; }
h3{ font-size:clamp(1.12rem, 1.6vw, 1.36rem); line-height:1.25; font-weight:600; }
p{ margin:0; }

.eyebrow{
  font-family:var(--f-body); font-size:.72rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:var(--accent);
}
.eyebrow.gold{ color:var(--gold); }
.eyebrow .bn{ letter-spacing:.06em; }

.lede{ font-size:clamp(1rem,1.2vw,1.12rem); color:var(--ink-soft); max-width:62ch; }
.mono{ font-family:var(--f-mono); font-size:.78rem; letter-spacing:.02em; }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
section{ padding-block:clamp(64px,8vw,120px); }
.sec-head{ display:flex; flex-direction:column; gap:14px; align-items:center; text-align:center; margin-bottom:clamp(36px,5vw,64px); }
.sec-head .lede{ text-align:center; }
.sec-head--left{ align-items:flex-start; text-align:left; }
.sec-head--left .lede{ text-align:left; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6em;
  padding:.86em 1.6em; border-radius:999px; border:1px solid transparent;
  font-size:.92rem; font-weight:600; text-decoration:none; cursor:pointer;
  transition:transform .25s cubic-bezier(.22,1,.36,1), background .25s, color .25s, border-color .25s;
}
.btn svg{ transition:transform .25s cubic-bezier(.22,1,.36,1); }
.btn:hover svg{ transform:translateX(4px); }
.btn--primary{ background:var(--accent); color:#fff; }
:root[data-theme="dark"] .btn--primary, :root:not([data-theme="light"]) .btn--primary{ color:#04162C; }
@media (prefers-color-scheme: light){ :root:not([data-theme="dark"]) .btn--primary{ color:#fff; } }
.btn--primary:hover{ transform:translateY(-2px); }
.btn--ghost{ border-color:var(--line-strong); color:var(--ink); background:transparent; }
.btn--ghost:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.btn--onnight{ border-color:rgba(230,238,247,.32); color:var(--on-night); background:rgba(255,255,255,.04); }
.btn--onnight:hover{ background:rgba(255,255,255,.12); border-color:rgba(230,238,247,.6); transform:translateY(-2px); }
.btn--dark{ background:var(--night); color:#E6EEF7; }
.btn--dark:hover{ transform:translateY(-2px); }

/* ============================================================
   NAV
   ============================================================ */
.progress{ position:fixed; inset:0 auto auto 0; height:2px; width:0; background:var(--accent); z-index:90; }

.nav{
  position:sticky; top:0; z-index:80;
  background:color-mix(in srgb, var(--ground) 88%, transparent);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid transparent;
  transition:border-color .3s, background .3s;
}
.nav.is-stuck{ border-bottom-color:var(--line); }
.nav__in{ display:flex; align-items:center; gap:clamp(12px,2vw,28px); height:74px; }
.brand{ display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--ink); flex:none; }
.brand__mark{ width:34px; height:34px; flex:none; }
.brand__txt{ display:flex; flex-direction:column; line-height:1; }
.brand__name{ font-family:var(--f-display); font-size:1.04rem; font-weight:600; letter-spacing:.01em; }
.brand__name em{ font-style:normal; color:var(--accent); }
.brand__sub{ font-family:var(--f-mono); font-size:.54rem; letter-spacing:.18em; color:var(--ink-faint); margin-top:4px; }

.nav__links{ display:flex; align-items:center; gap:clamp(8px,1.4vw,22px); margin-left:auto; }
.nav__links a{
  position:relative; text-decoration:none; color:var(--ink-soft);
  font-size:.88rem; font-weight:500; padding:6px 0; white-space:nowrap; transition:color .2s;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--accent); transition:width .28s cubic-bezier(.22,1,.36,1);
}
.nav__links a:hover{ color:var(--ink); }
.nav__links a:hover::after{ width:100%; }

.nav__tools{ display:flex; align-items:center; gap:10px; flex:none; }
.langsw{ display:flex; border:1px solid var(--line); border-radius:999px; overflow:hidden; }
.langsw button{
  font-family:inherit; font-size:.74rem; font-weight:700; letter-spacing:.06em;
  padding:6px 11px; border:0; background:transparent; color:var(--ink-faint); cursor:pointer; transition:.2s;
}
.langsw button[aria-pressed="true"]{ background:var(--ink); color:var(--ground); }
.langsw button:last-child{ font-family:"Hind Siliguri",sans-serif; letter-spacing:0; }
.nav__cta{ padding:.62em 1.25em; font-size:.84rem; }
.burger{ display:none; width:40px; height:40px; border:1px solid var(--line); border-radius:999px; background:transparent; cursor:pointer; align-items:center; justify-content:center; }
.burger span{ display:block; width:16px; height:1.5px; background:var(--ink); position:relative; transition:.25s; }
.burger span::before,.burger span::after{ content:""; position:absolute; left:0; width:16px; height:1.5px; background:var(--ink); transition:.25s; }
.burger span::before{ top:-5px; } .burger span::after{ top:5px; }
.nav.is-open .burger span{ background:transparent; }
.nav.is-open .burger span::before{ transform:rotate(45deg); top:0; }
.nav.is-open .burger span::after{ transform:rotate(-45deg); top:0; }

.drawer{ display:none; }
@media (max-width:1080px){
  .nav__links{ display:none; }
  .burger{ display:inline-flex; }
  .drawer{
    display:block; position:fixed; inset:74px 0 auto 0; background:var(--ground);
    border-bottom:1px solid var(--line); z-index:79;
    transform:translateY(-14px); opacity:0; pointer-events:none; transition:.3s cubic-bezier(.22,1,.36,1);
    max-height:calc(100dvh - 74px); overflow-y:auto;
  }
  .nav.is-open ~ .drawer{ transform:none; opacity:1; pointer-events:auto; }
  .drawer ul{ list-style:none; margin:0; padding:14px var(--gutter) 28px; display:flex; flex-direction:column; }
  .drawer a{ display:block; padding:14px 0; border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none; font-size:1.02rem; }
}
@media (max-width:560px){ .nav__cta{ display:none; } }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; background:var(--night); color:var(--on-night);
  padding-block:clamp(72px,10vw,128px) clamp(56px,7vw,96px); overflow:hidden; isolation:isolate;
}
.hero__bg{ position:absolute; inset:0; z-index:-2; }
.hero__bg svg{ width:100%; height:100%; }
.hero__glow{
  position:absolute; z-index:-1; width:min(760px,90vw); aspect-ratio:1; right:-14%; top:-24%;
  background:radial-gradient(circle, rgba(79,192,240,.22), rgba(79,192,240,0) 62%); pointer-events:none;
}
.hero__in{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr); gap:clamp(32px,5vw,72px); align-items:end; }
.hero__eyebrow{ display:flex; align-items:center; gap:14px; color:var(--on-night-soft); }
.hero__eyebrow .rule{ width:44px; height:1px; background:var(--accent); flex:none; }
.hero h1{ margin-top:22px; color:#fff; font-weight:400; }
.hero h1 .ln{ display:block; }
.hero h1 .ln:nth-child(2){ color:#B9D9EE; }
.hero h1 .ln:nth-child(3){ color:var(--on-night-soft); }
.hero__lede{ margin-top:26px; max-width:56ch; color:#BDD0E4; font-size:clamp(1rem,1.15vw,1.1rem); }
.hero__cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }

/* land-record rail — the cadastral motif */
.record{
  border:1px solid rgba(157,179,204,.26); border-radius:var(--radius);
  background:linear-gradient(180deg, rgba(10,39,73,.7), rgba(4,22,44,.5));
  padding:20px 20px 8px;
}
.record__hd{
  display:flex; justify-content:space-between; align-items:baseline; gap:10px;
  padding-bottom:12px; border-bottom:1px dashed rgba(157,179,204,.3);
}
.record__hd .mono{ color:var(--accent); }
.record__hd .tag{ font-family:var(--f-mono); font-size:.62rem; letter-spacing:.14em; color:var(--on-night-soft); }
.record__row{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:11px 0; border-bottom:1px solid rgba(157,179,204,.14); font-size:.84rem;
}
.record__row:last-child{ border-bottom:0; }
.record__row .k{ color:#CFDDEB; }
.record__row .v{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:7px; }
.record__row .v::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 3px rgba(79,192,240,.16); }
.scrollcue{ display:flex; align-items:center; gap:10px; margin-top:40px; color:var(--on-night-soft); font-family:var(--f-mono); font-size:.64rem; letter-spacing:.16em; }
.scrollcue i{ display:block; width:1px; height:30px; background:linear-gradient(var(--accent), transparent); animation:cue 2.2s ease-in-out infinite; }
@keyframes cue{ 0%,100%{ transform:scaleY(.4); opacity:.4 } 50%{ transform:scaleY(1); opacity:1 } }

@media (max-width:900px){
  .hero__in{ grid-template-columns:1fr; align-items:start; }
}

/* ============================================================
   MARQUEE — compliance strip
   ============================================================ */
.strip{
  background:var(--ink); color:var(--ground); padding-block:13px; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
:root[data-theme="dark"] .strip, :root:not([data-theme="light"]) .strip{ background:var(--night-2); color:var(--on-night); }
@media (prefers-color-scheme: light){ :root:not([data-theme="dark"]) .strip{ background:var(--ink); color:#fff; } }
.strip__track{ display:flex; width:max-content; gap:0; animation:slide 26s linear infinite; }
.strip:hover .strip__track{ animation-play-state:paused; }
.strip__track ul{ display:flex; gap:0; list-style:none; margin:0; padding:0; }
.strip__track li{ display:flex; align-items:center; gap:18px; padding-inline:18px; font-family:var(--f-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; opacity:.86; }
.strip__track li .bn{ font-family:"Hind Siliguri",sans-serif; letter-spacing:.02em; text-transform:none; font-size:.8rem; }
.strip__track li::after{ content:"◆"; font-size:.5rem; color:var(--accent); }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ============================================================
   SERVICES
   ============================================================ */
.grid-4{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.svc{ background:var(--ground); padding:30px 26px 34px; display:flex; flex-direction:column; gap:12px; transition:background .3s, transform .3s; }
.svc:hover{ background:var(--surface-2); }
.svc__n{ font-family:var(--f-mono); font-size:.66rem; letter-spacing:.16em; color:var(--accent); }
.svc h3{ font-weight:600; }
.svc p{ font-size:.9rem; color:var(--ink-soft); }
@media (max-width:960px){ .grid-4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .grid-4{ grid-template-columns:1fr; } }

/* ============================================================
   MARKETS
   ============================================================ */
.markets{ background:var(--ground-alt); }
.mk-grid{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.mk{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px 16px; text-align:center; transition:transform .3s cubic-bezier(.22,1,.36,1), border-color .3s, box-shadow .3s;
}
.mk:hover{ transform:translateY(-5px); border-color:var(--accent); box-shadow:var(--shadow); }
.mk strong{ display:block; font-family:var(--f-display); font-size:1.08rem; font-weight:600; }
.mk span{ display:block; font-size:.78rem; color:var(--ink-faint); margin-top:5px; }
@media (max-width:1000px){ .mk-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:520px){ .mk-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* ============================================================
   PROJECTS
   ============================================================ */
.filters{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:34px; }
.filters button{
  font-family:inherit; font-size:.84rem; font-weight:600; padding:.56em 1.2em; border-radius:999px;
  border:1px solid var(--line); background:transparent; color:var(--ink-soft); cursor:pointer; transition:.24s;
}
.filters button:hover{ border-color:var(--accent); color:var(--accent); }
.filters button[aria-pressed="true"]{ background:var(--ink); border-color:var(--ink); color:var(--ground); }

.pj-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.pj{
  position:relative; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  background:var(--surface); display:flex; flex-direction:column;
  transition:transform .45s cubic-bezier(.22,1,.36,1), opacity .35s, border-color .3s, box-shadow .4s;
}
.pj:hover{ border-color:var(--line-strong); box-shadow:var(--shadow); transform:translateY(-4px); }
.pj[hidden]{ display:none; }
.pj__art{ position:relative; aspect-ratio:16/8; max-width:100%; overflow:hidden; background:var(--night); }
.pj__art svg{ position:absolute; inset:0; width:100%; height:100%; }
.pj__badge{
  position:absolute; left:16px; top:16px; z-index:2; font-family:var(--f-mono); font-size:.6rem;
  letter-spacing:.14em; padding:5px 10px; border-radius:2px; background:rgba(4,22,44,.72);
  border:1px solid rgba(255,255,255,.2); color:#CFE6F5; backdrop-filter:blur(4px);
}
.pj__badge.is-vip{ color:#EBC978; border-color:rgba(235,201,120,.4); }
.pj__body{ padding:24px 24px 26px; display:flex; flex-direction:column; gap:10px; flex:1; }
.pj__loc{ font-family:var(--f-mono); font-size:.64rem; letter-spacing:.14em; color:var(--ink-faint); text-transform:uppercase; }
.pj__body p{ font-size:.9rem; color:var(--ink-soft); }
.pj__link{ margin-top:auto; padding-top:14px; font-size:.85rem; font-weight:600; color:var(--accent); text-decoration:none; display:inline-flex; align-items:center; gap:7px; }
.pj__link:hover svg{ transform:translateX(4px); }
.pj__link svg{ transition:transform .25s; }
@media (max-width:760px){ .pj-grid{ grid-template-columns:1fr; } }

/* ============================================================
   INVESTMENT — document treatment
   ============================================================ */
.invest{ background:var(--ground-alt); }
.notice{
  border:1px solid var(--line-strong); border-left:3px solid var(--gold); border-radius:var(--radius);
  background:var(--gold-soft); padding:22px 24px; display:flex; flex-direction:column; gap:10px; margin-bottom:clamp(40px,5vw,64px);
}
.notice h4{ font-family:var(--f-body); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.notice p{ font-size:.88rem; color:var(--ink-soft); max-width:92ch; }
:root[data-theme="dark"] .notice p, :root:not([data-theme="light"]) .notice p{ color:#D9C9A4; }
@media (prefers-color-scheme: light){ :root:not([data-theme="dark"]) .notice p{ color:var(--ink-soft); } }

.inv-split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,4vw,56px); align-items:start; }
.inv-split p + p{ margin-top:14px; }
.inv-split .lede{ max-width:none; }
@media (max-width:860px){ .inv-split{ grid-template-columns:1fr; } }

.routes{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:clamp(40px,5vw,64px); }
.route{
  background:var(--surface); border:1px solid var(--line); border-top:2px solid var(--accent);
  border-radius:var(--radius); padding:26px 24px 28px; display:flex; flex-direction:column; gap:12px;
  transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s;
}
.route:nth-child(3){ border-top-color:var(--gold); }
.route:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.route p{ font-size:.9rem; color:var(--ink-soft); }
.route a{ margin-top:auto; padding-top:10px; font-size:.85rem; font-weight:600; color:var(--accent); text-decoration:none; }
.route a:hover{ text-decoration:underline; }
.route:nth-child(3) a{ color:var(--gold); }
@media (max-width:860px){ .routes{ grid-template-columns:1fr; } }

/* six steps — a real ordered sequence, so numbered */
.steps{ counter-reset:s; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:clamp(40px,5vw,64px); }
.step{ background:var(--ground); padding:28px 24px 30px; display:flex; flex-direction:column; gap:10px; }
.step__n{ font-family:var(--f-mono); font-size:.68rem; letter-spacing:.16em; color:var(--accent); }
.step h3{ font-size:1.08rem; }
.step p{ font-size:.88rem; color:var(--ink-soft); }
@media (max-width:860px){ .steps{ grid-template-columns:1fr; } }

/* ============================================================
   WHY — dark bento
   ============================================================ */
.why{ background:var(--night); color:var(--on-night); position:relative; overflow:hidden; }
.why::after{
  content:""; position:absolute; inset:auto -10% -40% auto; width:min(620px,80vw); aspect-ratio:1;
  background:radial-gradient(circle, rgba(79,192,240,.14), transparent 65%); pointer-events:none;
}
.why .eyebrow{ color:var(--accent); }
.why h2{ color:#fff; }
.why .lede{ color:#B4C8DC; }
.bento{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; position:relative; z-index:1; }
.tile{
  border:1px solid rgba(157,179,204,.2); border-radius:var(--radius);
  background:linear-gradient(155deg, rgba(10,39,73,.85), rgba(4,22,44,.55));
  padding:26px 24px 28px; display:flex; flex-direction:column; gap:9px; transition:border-color .35s, transform .35s;
}
.tile:hover{ border-color:rgba(79,192,240,.5); transform:translateY(-4px); }
.tile--wide{ grid-column:span 2; }
.tile__num{ font-family:var(--f-display); font-size:clamp(2.4rem,4vw,3.4rem); font-weight:400; color:#fff; line-height:1; font-variant-numeric:tabular-nums; }
.tile__num .suf{ color:var(--accent); }
.tile h3{ color:#fff; font-size:1.04rem; }
.tile p{ font-size:.86rem; color:#9DB3CC; }
.tile__ico{ width:34px; height:34px; color:var(--accent); }
@media (max-width:960px){ .bento{ grid-template-columns:repeat(2,minmax(0,1fr)); } .tile--wide{ grid-column:span 2; } }
@media (max-width:540px){ .bento{ grid-template-columns:1fr; } .tile--wide{ grid-column:span 1; } }

/* ============================================================
   PROTECT
   ============================================================ */
.guard{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.guard__c{
  border:1px solid var(--line); border-radius:var(--radius); padding:26px 24px 28px;
  background:var(--surface); display:flex; flex-direction:column; gap:11px;
}
.guard__c h3{ display:flex; align-items:center; gap:10px; }
.guard__c h3 svg{ width:20px; height:20px; color:var(--gold); flex:none; }
.guard__c p{ font-size:.9rem; color:var(--ink-soft); }
@media (max-width:860px){ .guard{ grid-template-columns:1fr; } }

/* ============================================================
   CLIENTS
   ============================================================ */
.clients{ background:var(--ground-alt); }
.cl-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.cl{
  position:relative; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--surface);
  display:flex; flex-direction:column; transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s;
}
.cl:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.cl__art{ aspect-ratio:16/7; max-width:100%; background:var(--night); position:relative; overflow:hidden; }
.cl__art svg{ position:absolute; inset:0; width:100%; height:100%; }
.cl__b{ padding:20px 22px 24px; display:flex; flex-direction:column; gap:8px; }
.cl__b p{ font-size:.88rem; color:var(--ink-soft); }
@media (max-width:860px){ .cl-grid{ grid-template-columns:1fr; } }

/* ============================================================
   FAQ
   ============================================================ */
.faq{ max-width:860px; margin-inline:auto; border-top:1px solid var(--line); }
.qa{ border-bottom:1px solid var(--line); }
.qa__q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; text-align:left;
  background:transparent; border:0; cursor:pointer; font-family:var(--f-display); font-size:clamp(1rem,1.5vw,1.16rem);
  font-weight:600; color:var(--ink); padding:22px 2px; transition:color .2s;
}
.qa__q:hover{ color:var(--accent); }
.qa__q i{ flex:none; width:20px; height:20px; position:relative; }
.qa__q i::before,.qa__q i::after{ content:""; position:absolute; background:var(--accent); transition:transform .3s cubic-bezier(.22,1,.36,1); }
.qa__q i::before{ inset:9px 0 auto 0; height:1.5px; }
.qa__q i::after{ inset:0 9px 0 auto; width:1.5px; }
.qa.is-open .qa__q i::after{ transform:scaleY(0); }
.qa__a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .38s cubic-bezier(.22,1,.36,1); }
.qa.is-open .qa__a{ grid-template-rows:1fr; }
.qa__a > div{ overflow:hidden; }
.qa__a p{ font-size:.94rem; color:var(--ink-soft); padding-bottom:24px; max-width:72ch; }

/* ============================================================
   CTA + FOOTER
   ============================================================ */
.cta{ background:var(--ink); color:#fff; text-align:center; position:relative; overflow:hidden; }
:root[data-theme="dark"] .cta, :root:not([data-theme="light"]) .cta{ background:var(--night-2); }
@media (prefers-color-scheme: light){ :root:not([data-theme="dark"]) .cta{ background:var(--ink); } }
.cta h2{ color:#fff; }
.cta p{ color:#B4C8DC; margin-top:16px; max-width:58ch; margin-inline:auto; }
.cta .row{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:32px; }

.foot{ background:var(--night); color:var(--on-night-soft); padding-block:clamp(56px,6vw,80px) 0; }
.foot__top{ display:grid; grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)); gap:clamp(28px,4vw,48px); }
.foot__brand .brand{ color:#fff; }
.foot__brand .brand__sub{ color:var(--on-night-soft); }
.foot__tag{ font-family:var(--f-mono); font-size:.64rem; letter-spacing:.18em; color:var(--accent); margin-top:22px; }
.foot__brand p{ font-size:.88rem; margin-top:14px; max-width:42ch; line-height:1.7; }
.foot h5{ font-family:var(--f-body); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#fff; margin:0 0 16px; }
.foot ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.foot a{ color:var(--on-night-soft); text-decoration:none; font-size:.88rem; transition:color .2s; }
.foot a:hover{ color:var(--accent); }
.news{ margin-top:clamp(40px,5vw,56px); padding-top:34px; border-top:1px solid rgba(157,179,204,.18); display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; }
.news form{ display:flex; gap:8px; flex-wrap:wrap; }
.news input{
  font-family:inherit; font-size:.88rem; padding:.8em 1.1em; min-width:min(280px,72vw);
  background:rgba(255,255,255,.05); border:1px solid rgba(157,179,204,.26); border-radius:999px; color:#fff;
}
.news input::placeholder{ color:#7B94B1; }
.news input:focus{ outline:2px solid var(--accent); outline-offset:2px; }
.foot__bot{
  margin-top:34px; padding-block:22px; border-top:1px solid rgba(157,179,204,.18);
  display:flex; flex-wrap:wrap; gap:14px 26px; align-items:center; justify-content:space-between; font-size:.8rem;
}
.foot__bot ul{ flex-direction:row; flex-wrap:wrap; gap:20px; }
@media (max-width:900px){ .foot__top{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .foot__top{ grid-template-columns:1fr; } }

/* ============================================================
   MOTION
   ============================================================ */
:root.js .rv{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
:root.js .rv.in{ opacity:1; transform:none; }
.no-js .rv{ opacity:1; transform:none; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:2px; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .rv{ opacity:1 !important; transform:none !important; }
}

/* ============================================================
   BRAND LOCKUP (official logo) + permanently-navy nav
   The wordmark is silver-on-navy, so its bar stays dark in both themes.
   ============================================================ */
.nav{ background:rgba(4,22,44,.86); border-bottom:1px solid rgba(157,179,204,.14); }
.nav.is-stuck{ background:rgba(4,22,44,.96); border-bottom-color:rgba(157,179,204,.26); }
.nav__in{ height:84px; }
.brand{ color:#E6EEF7; }
.brand__lockup{ height:50px; width:auto; display:block; }
.nav__links a{ color:#A9BED6; }
.nav__links a:hover{ color:#fff; }
.langsw{ border-color:rgba(157,179,204,.34); }
.langsw button{ color:#9DB3CC; }
.langsw button[aria-pressed="true"]{ background:#E6EEF7; color:#04162C; }
.nav .btn--dark{ background:var(--accent); color:#04162C; }
.nav .btn--dark:hover{ background:#7FD3F5; }
.burger{ border-color:rgba(157,179,204,.34); }
.burger span, .burger span::before, .burger span::after{ background:#E6EEF7; }
@media (max-width:1080px){
  .drawer{ inset:84px 0 auto 0; background:#04162C; border-bottom-color:rgba(157,179,204,.2); max-height:calc(100dvh - 84px); }
  .drawer a{ color:#E6EEF7; border-bottom-color:rgba(157,179,204,.16); }
}
@media (max-width:560px){
  .brand__lockup{ height:38px; }
  .nav__in{ height:70px; }
  .drawer{ inset:70px 0 auto 0; max-height:calc(100dvh - 70px); }
}

.foot__brand .brand__lockup{ height:76px; }
.cta__mark{ height:56px; width:auto; margin:0 auto 22px; display:block; }

/* ============================================================
   LEGAL & CREDENTIALS
   ============================================================ */
.legal{ background:var(--ground-alt); }
.legal-split{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(24px,3.4vw,44px); align-items:start; }
@media (max-width:900px){ .legal-split{ grid-template-columns:1fr; } }

.register{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.register__hd{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  padding:18px 22px; border-bottom:1px solid var(--line); background:var(--surface-2);
}
.register__hd h3{ font-size:1.06rem; }
.reg-row{
  display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:14px;
  padding:13px 22px; border-bottom:1px solid var(--line); align-items:baseline;
}
.reg-row:last-child{ border-bottom:0; }
.reg-row dt{ font-size:.82rem; color:var(--ink-faint); }
.reg-row dd{ margin:0; font-size:.9rem; font-weight:500; color:var(--ink); }
.reg-row dd .mono{ display:block; font-size:.82rem; letter-spacing:.06em; color:var(--accent); }
.reg-row dd small{ display:block; font-size:.78rem; font-weight:400; color:var(--ink-faint); margin-top:2px; }
@media (max-width:480px){ .reg-row{ grid-template-columns:1fr; gap:2px; padding-inline:18px; } }

.pill{
  display:inline-flex; align-items:center; gap:7px; font-family:var(--f-mono); font-size:.64rem;
  letter-spacing:.12em; text-transform:uppercase; padding:6px 11px; border-radius:999px; border:1px solid;
}
.pill::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.pill--ok{ color:#1C7C4A; border-color:#1C7C4A55; background:#1C7C4A14; }
.pill--due{ color:var(--gold); border-color:color-mix(in srgb, var(--gold) 40%, transparent); background:color-mix(in srgb, var(--gold) 9%, transparent); }

.docs{ display:flex; flex-direction:column; gap:16px; }
.doc{
  border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); overflow:hidden;
  display:flex; flex-direction:column; transition:border-color .3s, box-shadow .35s, transform .35s cubic-bezier(.22,1,.36,1);
}
.doc:hover{ border-color:var(--line-strong); box-shadow:var(--shadow); transform:translateY(-3px); }
.doc__view{
  position:relative; display:block; border:0; padding:0; background:var(--surface-2); cursor:zoom-in; width:100%;
  aspect-ratio:414/300; max-width:100%; overflow:hidden;
}
.doc__view img{ width:100%; display:block; transform:translateY(-4%); }
.doc__view::after{
  content:attr(data-cta); position:absolute; inset:auto 0 0 0; padding:12px 18px;
  background:linear-gradient(transparent, rgba(4,22,44,.9)); color:#E6EEF7;
  font-family:var(--f-mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;
  display:flex; align-items:center; gap:8px; transition:padding-bottom .3s;
}
.doc__view:hover::after{ padding-bottom:18px; }
.doc__b{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px; }
.doc__b h3{ font-size:1rem; }
.doc__b p{ font-size:.84rem; color:var(--ink-soft); }
.doc__meta{ font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em; color:var(--ink-faint); }
.doc__note{
  font-size:.78rem; color:var(--ink-faint); border-left:2px solid var(--line-strong);
  padding-left:12px; margin-top:2px;
}

/* lightbox */
.lb{
  position:fixed; inset:0; z-index:120; background:rgba(2,10,22,.92); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:clamp(12px,3vw,40px);
  opacity:0; pointer-events:none; transition:opacity .3s;
}
.lb.is-open{ opacity:1; pointer-events:auto; }
.lb__inner{ max-width:min(900px,100%); max-height:100%; overflow:auto; border-radius:var(--radius); }
.lb__inner img{ display:block; width:100%; height:auto; background:#fff; }
.lb__bar{
  position:absolute; inset:0 0 auto 0; display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:14px clamp(12px,3vw,28px); color:#E6EEF7;
  font-family:var(--f-mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase;
  background:linear-gradient(rgba(2,10,22,.9), transparent);
}
.lb__close{
  background:transparent; border:1px solid rgba(230,238,247,.4); color:#E6EEF7; cursor:pointer;
  border-radius:999px; padding:7px 14px; font-family:inherit; font-size:.66rem; letter-spacing:.12em;
}
.lb__close:hover{ background:rgba(255,255,255,.12); }

/* ---- named direct lines in the closing CTA ---- */
.direct{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
  max-width:720px; margin:34px auto 0; text-align:left;
}
.direct a{
  display:flex; flex-direction:column; gap:3px; text-decoration:none;
  border:1px solid rgba(157,179,204,.28); border-radius:var(--radius);
  background:rgba(255,255,255,.04); padding:18px 20px;
  transition:border-color .3s, background .3s, transform .3s cubic-bezier(.22,1,.36,1);
}
.direct a:hover{ border-color:var(--accent); background:rgba(255,255,255,.09); transform:translateY(-3px); }
.direct .role{ font-family:var(--f-mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.direct .who{ font-family:var(--f-display); font-size:1.06rem; font-weight:600; color:#fff; }
.direct .tel{ font-family:var(--f-mono); font-size:.88rem; letter-spacing:.04em; color:#BDD0E4; font-variant-numeric:tabular-nums; }
@media (max-width:620px){ .direct{ grid-template-columns:1fr; } }

.foot .contact-line{ display:flex; flex-direction:column; gap:2px; }
.foot .contact-line .role{ font-family:var(--f-mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }

/* head office reads as the primary market card */
.mk--hq{ border-color:var(--line-strong); border-top:2px solid var(--accent); background:var(--surface); }
.mk__tag{
  display:block; font-family:var(--f-mono); font-size:.56rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--accent); margin-top:10px;
}
.mk__tag .bn{ letter-spacing:.04em; text-transform:none; font-size:.66rem; }

/* ---- build credit ---- */
.foot__credit{
  margin-top:0; padding-block:18px 26px; border-top:1px solid rgba(157,179,204,.14);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 12px; text-align:center;
}
.foot__credit .lbl{
  font-family:var(--f-mono); font-size:.6rem; letter-spacing:.16em;
  text-transform:uppercase; color:#6E87A3;
}
.foot__credit .lbl .bn{ font-family:"Hind Siliguri",sans-serif; letter-spacing:.03em; text-transform:none; font-size:.76rem; }
.foot__credit a{
  font-family:var(--f-display); font-size:.98rem; font-weight:600; color:#CFDDEB;
  text-decoration:none; border-bottom:1px solid rgba(79,192,240,.4); padding-bottom:1px;
  transition:color .25s, border-color .25s;
}
.foot__credit a:hover{ color:var(--accent); border-bottom-color:var(--accent); }

/* ============================================================
   3D — hero depth stage, pointer tilt, flip card
   ============================================================ */
.hero{ perspective:1200px; perspective-origin:50% 40%; }
.hero__stage{ position:absolute; inset:0; z-index:-1; transform-style:preserve-3d; pointer-events:none; }
.hero__layer{ position:absolute; inset:-8% -6%; will-change:transform; }
.hero__layer--photo{
  background:#04162C center/cover no-repeat;
  transform:translate3d(calc(var(--px,0) * 16px), calc(var(--py,0) * 10px + var(--sy,0px)), 0) scale(1.08);
}
.hero__layer--photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, #04162C 4%, rgba(4,22,44,.92) 38%, rgba(4,22,44,.62) 72%, rgba(4,22,44,.86));
}
.hero__layer--grid{ transform:translate3d(calc(var(--px,0) * 30px), calc(var(--py,0) * 18px + var(--sy2,0px)), 0); }
.hero__layer--grid svg{ width:100%; height:100%; }
.hero__in{ position:relative; z-index:1; }
.hero__in > div:first-child{ transform:translate3d(calc(var(--px,0) * -7px), calc(var(--py,0) * -4px), 0); transition:transform .5s cubic-bezier(.22,1,.36,1); }
.record{ transform:translate3d(calc(var(--px,0) * 14px), calc(var(--py,0) * 9px), 0); transition:transform .5s cubic-bezier(.22,1,.36,1); }

.tilt{ transform-style:preserve-3d; will-change:transform; transition:transform .55s cubic-bezier(.22,1,.36,1), box-shadow .4s, border-color .3s; }
.tilt.is-tilting{ transition:transform .09s linear, box-shadow .4s, border-color .3s; }
.tilt__lift{ transform:translateZ(26px); }
@media (hover:none){ .tilt{ transform:none !important; } }

/* ============================================================
   ON THE GROUND — site-visit gallery
   ============================================================ */
.ground{ background:var(--ground-alt); }
.shots{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.shot{
  margin:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  background:var(--surface); display:flex; flex-direction:column;
}
.shot:hover{ border-color:var(--line-strong); box-shadow:var(--shadow); }
.shot__btn{
  position:relative; display:block; width:100%; padding:0; border:0; background:var(--night);
  cursor:zoom-in; aspect-ratio:3/2; max-width:100%; overflow:hidden;
}
.shot__btn img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.22,1,.36,1); }
.shot:hover .shot__btn img{ transform:scale(1.04); }
.shot__btn::after{
  content:"⤢"; position:absolute; right:14px; bottom:12px; width:32px; height:32px;
  display:grid; place-items:center; border-radius:50%; background:rgba(4,22,44,.72);
  border:1px solid rgba(255,255,255,.28); color:#E6EEF7; font-size:.8rem;
  opacity:0; transform:translateY(6px); transition:.3s;
}
.shot:hover .shot__btn::after{ opacity:1; transform:none; }
.shot figcaption{ padding:16px 20px 20px; display:flex; flex-direction:column; gap:5px; }
.shot .cap{ font-family:var(--f-display); font-size:1rem; font-weight:600; }
.shot .sub{ font-family:var(--f-mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
.shot .sub .bn{ font-family:"Hind Siliguri",sans-serif; letter-spacing:.02em; text-transform:none; font-size:.78rem; }
@media (max-width:760px){ .shots{ grid-template-columns:1fr; } }

/* ============================================================
   MILESTONE — pre-launch meeting, 3D flip card
   ============================================================ */
.event-split{ display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,.55fr); gap:clamp(20px,3vw,36px); align-items:start; }
@media (max-width:860px){ .event-split{ grid-template-columns:1fr; } }

.flip{ perspective:1400px; }
.flip__in{
  position:relative; transform-style:preserve-3d; transition:transform .8s cubic-bezier(.62,.02,.28,1);
  aspect-ratio:1400/737; max-width:100%;
}
.flip.is-flipped .flip__in{ transform:rotateY(180deg); }
.flip__face{
  position:absolute; inset:0; backface-visibility:hidden; border-radius:var(--radius);
  border:1px solid rgba(157,179,204,.26); overflow:hidden; background:var(--night);
}
.flip__front img{ width:100%; height:100%; object-fit:cover; display:block; }
.flip__cap{
  position:absolute; inset:auto 0 0 0; padding:26px 26px 22px;
  background:linear-gradient(transparent, rgba(4,22,44,.94)); color:#E6EEF7;
  display:flex; flex-direction:column; gap:5px;
}
.flip__cap .k{ font-family:var(--f-mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.flip__cap .t{ font-family:var(--f-display); font-size:clamp(1.1rem,2vw,1.5rem); font-weight:600; }
.flip__back{
  transform:rotateY(180deg);
  background:linear-gradient(150deg, #0A2749, #04162C);
  padding:clamp(20px,3vw,34px); color:#E6EEF7; display:flex; flex-direction:column; gap:10px; overflow:auto;
}
.flip__back h3{ color:#fff; font-size:clamp(1rem,1.8vw,1.25rem); }
.agenda{ list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; }
.agenda li{
  display:flex; justify-content:space-between; gap:16px; align-items:baseline;
  padding:9px 0; border-bottom:1px dashed rgba(157,179,204,.22); font-size:.9rem;
}
.agenda li:last-child{ border-bottom:0; }
.agenda .t{ font-family:var(--f-mono); font-size:.78rem; color:var(--accent); white-space:nowrap; font-variant-numeric:tabular-nums; }
.flip__meta{ font-size:.82rem; color:#9DB3CC; }
.flip__btn{
  margin-top:14px; align-self:flex-start; border:1px solid var(--line-strong); background:transparent;
  color:var(--ink); border-radius:999px; padding:.6em 1.3em; font-family:inherit; font-size:.84rem;
  font-weight:600; cursor:pointer; transition:.25s;
}
.flip__btn:hover{ border-color:var(--accent); color:var(--accent); }

.poster{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--surface); }
.poster button{
  display:block; width:100%; padding:0; border:0; background:var(--surface-2); cursor:zoom-in;
  aspect-ratio:2/3; max-width:100%; overflow:hidden;
}
.poster img{ width:100%; height:100%; object-fit:cover; object-position:top; display:block; }
.poster figcaption{ padding:14px 16px 18px; font-size:.8rem; color:var(--ink-soft); }

/* ============================================================
   LEADERSHIP
   ============================================================ */
.leaders{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; max-width:920px; margin-inline:auto; }
.leader{
  border:1px solid var(--line); border-top:2px solid var(--accent); border-radius:var(--radius);
  background:var(--surface); padding:34px 28px 30px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:6px;
}
.leader:hover{ box-shadow:var(--shadow); border-color:var(--line-strong); border-top-color:var(--accent); }
.leader img{ width:156px; height:156px; border-radius:50%; display:block; margin-bottom:14px; }
.leader .role{ font-family:var(--f-mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.leader .role .bn{ font-family:"Hind Siliguri",sans-serif; letter-spacing:.03em; text-transform:none; font-size:.76rem; }
.leader h3{ font-size:1.24rem; }
.leader .tel{
  font-family:var(--f-mono); font-size:.88rem; color:var(--ink-soft); text-decoration:none;
  font-variant-numeric:tabular-nums; border-bottom:1px solid var(--line-strong); padding-bottom:1px; margin-top:4px;
}
.leader .tel:hover{ color:var(--accent); border-bottom-color:var(--accent); }
.leader .note{ font-size:.82rem; color:var(--ink-faint); margin-top:8px; max-width:34ch; }
@media (max-width:700px){ .leaders{ grid-template-columns:1fr; } }

/* ============================================================
   LEADERSHIP MESSAGES
   ============================================================ */
.msgs{ display:flex; flex-direction:column; gap:clamp(48px,7vw,96px); }
.msg{ display:grid; grid-template-columns:minmax(0,.44fr) minmax(0,.56fr); gap:clamp(28px,4vw,60px); align-items:start; }
.msg--flip .msg__fig{ order:2; }
.msg__fig{ margin:0; position:relative; }
.msg__fig img{
  width:100%; max-width:100%; height:auto; display:block; border-radius:var(--radius);
  border:1px solid var(--line); box-shadow:var(--shadow);
}
.msg__plate{
  position:absolute; left:18px; right:18px; bottom:-1px; padding:20px 22px 18px;
  background:linear-gradient(transparent, rgba(4,22,44,.96) 38%);
  display:flex; flex-direction:column; gap:3px; border-radius:0 0 var(--radius) var(--radius);
}
.msg__plate .role{ font-family:var(--f-mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.msg__plate .role .bn{ font-family:"Hind Siliguri",sans-serif; letter-spacing:.03em; text-transform:none; font-size:.76rem; }
.msg__plate .nm{ font-family:var(--f-display); font-size:clamp(1.1rem,1.7vw,1.34rem); font-weight:600; color:#fff; }
.msg__plate .tel{ font-family:var(--f-mono); font-size:.76rem; color:#BDD0E4; text-decoration:none; font-variant-numeric:tabular-nums; }
.msg__plate .tel:hover{ color:var(--accent); }

.msg__body{ position:relative; padding-top:6px; }
.msg__mark{
  font-family:var(--f-display); font-size:clamp(3.4rem,7vw,5.4rem); line-height:.7; color:var(--accent);
  opacity:.24; display:block; margin-bottom:8px;
}
.msg__lead{
  font-family:var(--f-display); font-size:clamp(1.24rem,2.2vw,1.72rem); line-height:1.34; font-weight:400;
  color:var(--ink); text-wrap:balance;
}
.msg__body p + p{ margin-top:16px; }
.msg__body .p{ font-size:clamp(.94rem,1.05vw,1rem); color:var(--ink-soft); max-width:60ch; }
.msg__sign{
  margin-top:26px; padding-top:18px; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px;
}
.msg__sign .nm{ font-family:var(--f-display); font-size:1.06rem; font-weight:600; }
.msg__sign .role{ font-family:var(--f-mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); }
.msg__sign .role .bn{ font-family:"Hind Siliguri",sans-serif; letter-spacing:.03em; text-transform:none; font-size:.78rem; }
@media (max-width:860px){
  .msg{ grid-template-columns:1fr; }
  .msg--flip .msg__fig{ order:0; }
  .msg__fig img{ max-width:420px; }
}

/* ---- event: photo + compact programme (replaces the flip card) ---- */
.event-media{ position:relative; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--night); }
.event-media img{ width:100%; height:auto; display:block; }
.prog{
  margin-top:14px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--surface); overflow:hidden;
}
.prog__hd{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px;
  padding:14px 18px; border-bottom:1px solid var(--line); background:var(--surface-2);
}
.prog__hd .k{ font-family:var(--f-mono); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.prog__hd .k .bn{ font-family:"Hind Siliguri",sans-serif; letter-spacing:.03em; text-transform:none; font-size:.74rem; }
.prog__hd .v{ font-size:.86rem; color:var(--ink-soft); }
.prog__hd .v strong{ color:var(--ink); font-weight:600; }
.prog__row{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); }
.prog__row > div{
  padding:14px 14px 16px; border-right:1px solid var(--line);
  display:flex; flex-direction:column; gap:4px;
}
.prog__row > div:last-child{ border-right:0; }
.prog__row .t{ font-family:var(--f-mono); font-size:.86rem; color:var(--accent); font-variant-numeric:tabular-nums; }
.prog__row .l{ font-size:.8rem; color:var(--ink-soft); line-height:1.35; }
@media (max-width:860px){ .prog__row{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .prog__row > div{ border-bottom:1px solid var(--line); }
  .prog__row > div:nth-child(2n){ border-right:0; }
}
@media (max-width:420px){ .prog__row{ grid-template-columns:1fr; } .prog__row > div{ border-right:0; } }

/* generated project / client artwork */
.pj__art img, .cl__art img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.22,1,.36,1); }
.pj:hover .pj__art img, .cl:hover .cl__art img{ transform:scale(1.05); }

/* ============================================================
   SECTION BANNER — photograph + heading, used where the section
   is about documents rather than places
   ============================================================ */
.band{
  position:relative; border-radius:var(--radius); overflow:hidden; isolation:isolate;
  margin-bottom:clamp(36px,5vw,60px); background:var(--night);
  display:grid; align-items:end; min-height:clamp(300px,32vw,420px);
}
.band > img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
}
.band::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(103deg, rgba(4,22,44,.95) 0%, rgba(4,22,44,.88) 42%, rgba(4,22,44,.42) 78%, rgba(4,22,44,.30) 100%),
    linear-gradient(transparent 40%, rgba(4,22,44,.75));
}
.band__in{
  padding:clamp(28px,4vw,52px); max-width:66ch; display:flex; flex-direction:column; gap:14px;
}
.band__in .eyebrow{ color:var(--accent); }
.band__in h2{ color:#fff; }
.band__in .lede{ color:#C3D5E6; max-width:58ch; }
@media (max-width:620px){
  .band::after{
    background:linear-gradient(rgba(4,22,44,.55), rgba(4,22,44,.93) 46%);
  }
}

/* ============================================================
   v2 additions — enquiry form, project alias, social link
   ============================================================ */
.pj__aka{ font-size:.8rem; color:var(--ink-faint); margin-top:-4px; margin-bottom:8px; font-family:var(--f-mono); letter-spacing:.02em; }
.foot a.social{ display:inline-flex; align-items:center; gap:8px; }

.enq{ max-width:760px; margin:48px auto 0; text-align:left; background:rgba(255,255,255,.04);
  border:1px solid rgba(230,238,247,.16); border-radius:var(--radius); padding:clamp(20px,4vw,36px); }
.enq__title{ color:#fff; font-size:1.35rem; }
.enq__sub{ color:#B4C8DC; font-size:.92rem; margin:8px 0 20px !important; max-width:none !important; }
.enq__grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; }
.enq__f{ display:flex; flex-direction:column; gap:6px; }
.enq__f--wide{ grid-column:1 / -1; }
.enq__l{ font-size:.8rem; color:#C9D7E6; letter-spacing:.01em; }
.enq input[type=text], .enq input[type=tel], .enq input[type=email], .enq select, .enq textarea{
  width:100%; font:inherit; font-size:.95rem; color:#fff; background:rgba(4,22,44,.55);
  border:1px solid rgba(230,238,247,.22); border-radius:var(--radius); padding:11px 12px; }
.enq select option{ color:#07203F; background:#fff; }
.enq textarea{ resize:vertical; min-height:84px; }
.enq input:focus-visible, .enq select:focus-visible, .enq textarea:focus-visible{ outline:2px solid #4FC0F0; outline-offset:1px; border-color:transparent; }
.enq__consent{ display:flex; gap:10px; align-items:flex-start; margin:18px 0 20px; font-size:.84rem; color:#B4C8DC; cursor:pointer; }
.enq__consent input{ margin-top:3px; width:16px; height:16px; accent-color:#0B7FBF; flex:none; }
.enq button[disabled]{ opacity:.6; cursor:progress; }
.enq__note{ margin-top:12px !important; font-size:.86rem; color:#9DB3CC; min-height:1.2em; }
.enq__note.is-ok{ color:#4FC0F0; }
.enq__note.is-err{ color:#E0B354; }
@media (max-width:640px){ .enq__grid{ grid-template-columns:1fr; } }
