/* ══════════════════════════════════════════════════════════════
   MSR Associates — Advocates & Legal Consultants, Bangalore
   ══════════════════════════════════════════════════════════════ */

:root{
  --ink:      #0B0E14;
  --ink-2:    #0F1421;
  --ink-3:    #141B2B;
  --line:     rgba(201,162,39,.16);
  --line-2:   rgba(246,242,232,.09);

  --gold:     #C9A227;
  --gold-lt:  #F0D488;
  --gold-dk:  #8C6A16;
  --grad-gold: linear-gradient(135deg,#8C6A16 0%,#C9A227 26%,#F5E3AC 52%,#C9A227 76%,#8C6A16 100%);

  --ivory:    #F6F2E8;
  --muted:    rgba(246,242,232,.60);
  --muted-2:  rgba(246,242,232,.42);

  --display: "Cormorant Garamond", "Times New Roman", serif;
  --sans:    "Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --wrap: 1200px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

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

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--ink);
  color:var(--ivory);
  font-family:var(--sans);
  font-weight:300;
  font-size:16.5px;
  line-height:1.72;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img,svg{ max-width:100%; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--display); font-weight:600; line-height:1.08; margin:0; letter-spacing:.005em; }
p{ margin:0 0 1.1em; }
ul{ margin:0; padding:0; list-style:none; }
address{ font-style:normal; }
iframe{ border:0; }

.wrap{ width:min(100% - 2.4rem, var(--wrap)); margin-inline:auto; }
.sprite{ position:absolute; width:0; height:0; overflow:hidden; }

/* stroke defaults for every sprite icon */
symbol{ fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.ic{ width:1.05em; height:1.05em; fill:none; stroke:currentColor; stroke-width:1.6;
     stroke-linecap:round; stroke-linejoin:round; flex:none; }

/* ── film grain + progress ─────────────────────────────────── */
.grain{
  position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.22; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
.scroll-progress{ position:fixed; top:0; left:0; right:0; height:2px; z-index:9999; background:rgba(246,242,232,.06); }
.scroll-progress span{ display:block; height:100%; width:0; background:var(--grad-gold);
  box-shadow:0 0 12px rgba(201,162,39,.7); }

/* ── shared type ───────────────────────────────────────────── */
.eyebrow{
  font-size:.72rem; letter-spacing:.42em; text-transform:uppercase; font-weight:400;
  color:var(--gold); margin:0 0 1.1rem;
}
.sec-title{ font-size:clamp(2.4rem,6vw,4.4rem); }
.sec-title span{
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text;
  color:transparent; font-style:italic;
}
.sec-lead{ color:var(--muted); max-width:60ch; }

.rule{ display:flex; align-items:center; gap:.8rem; margin:1.5rem 0 1.6rem; }
.hero .rule{ margin:1.1rem 0 1.2rem; }
.rule i{ height:1px; width:min(120px,18vw); background:linear-gradient(90deg,transparent,var(--gold)); }
.rule i:last-of-type{ background:linear-gradient(90deg,var(--gold),transparent); }
.rule b{ color:var(--gold); font-size:.6rem; }
.sec-head{ text-align:center; display:flex; flex-direction:column; align-items:center; margin-bottom:4rem; }
.sec-head .rule i{ width:min(160px,22vw); }

/* ── buttons ───────────────────────────────────────────────── */
.btn{
  --pad:.85rem 1.6rem;
  display:inline-flex; align-items:center; gap:.6rem; padding:var(--pad);
  font-family:var(--sans); font-size:.82rem; font-weight:400; letter-spacing:.16em;
  text-transform:uppercase; text-decoration:none; border-radius:2px; position:relative;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), color .3s, background .4s;
  white-space:nowrap;
}
.btn-lg{ --pad:1.05rem 2.1rem; font-size:.88rem; }
.btn-gold{
  color:#120E04; background:var(--grad-gold); background-size:200% 100%;
  box-shadow:0 8px 30px -12px rgba(201,162,39,.85);
}
.btn-gold:hover{ transform:translateY(-3px); background-position:100% 0;
  box-shadow:0 16px 44px -14px rgba(201,162,39,.95); }
.btn-ghost{ color:var(--ivory); border:1px solid var(--line); background:rgba(246,242,232,.02); }
.btn-ghost:hover{ transform:translateY(-3px); border-color:var(--gold); color:var(--gold-lt);
  background:rgba(201,162,39,.07); }

.link-gold{
  display:inline-flex; align-items:center; gap:.45rem; color:var(--gold-lt); text-decoration:none;
  font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; margin-top:1rem;
  border-bottom:1px solid rgba(201,162,39,.35); padding-bottom:.25rem; transition:gap .3s var(--ease), border-color .3s;
}
.link-gold:hover{ gap:.85rem; border-color:var(--gold); }

/* ── header ────────────────────────────────────────────────── */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:900; padding:1.1rem 0;
  transition:background .45s var(--ease), padding .45s var(--ease), box-shadow .45s, border-color .45s;
  border-bottom:1px solid transparent;
}
.site-header.stuck{
  background:rgba(11,14,20,.86); backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  padding:.55rem 0; border-bottom-color:var(--line); box-shadow:0 16px 40px -28px #000;
}
.header-inner{ display:flex; align-items:center; gap:1.4rem; }
.brand{ display:flex; align-items:center; gap:.7rem; text-decoration:none; margin-right:auto; }
.brand img{ width:46px; height:46px; object-fit:contain;
  filter:drop-shadow(0 2px 10px rgba(201,162,39,.45)); transition:width .45s var(--ease), height .45s var(--ease); }
.site-header.stuck .brand img{ width:38px; height:38px; }
.brand-text{ display:flex; flex-direction:column; line-height:1; }
.brand-text strong{ font-family:var(--display); font-size:1.32rem; font-weight:700; letter-spacing:.16em;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
.brand-text em{ font-style:normal; font-size:.6rem; letter-spacing:.34em; text-transform:uppercase;
  color:var(--muted); margin-top:.28rem; }

.nav{ display:flex; gap:2rem; }
.nav a{
  position:relative; text-decoration:none; font-size:.74rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted); padding:.4rem 0; transition:color .3s;
}
.nav a::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--grad-gold); transition:width .4s var(--ease); }
.nav a:hover, .nav a.active{ color:var(--ivory); }
.nav a:hover::after, .nav a.active::after{ width:100%; }

.header-cta{ --pad:.6rem 1.15rem; font-size:.74rem; }
.burger{ display:none; width:44px; height:44px; background:none; border:1px solid var(--line);
  border-radius:2px; cursor:pointer; padding:0; flex-direction:column; gap:5px; align-items:center;
  justify-content:center; }
.burger i{ display:block; width:19px; height:1px; background:var(--gold-lt); transition:.35s var(--ease); }
.burger[aria-expanded="true"] i:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] i:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] i:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ── hero ──────────────────────────────────────────────────── */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:7rem 0 5.5rem; overflow:hidden;
  background:radial-gradient(120% 90% at 50% 0%,#18202F 0%,#0D1119 42%,var(--ink) 78%);
}
.hero-glow{
  position:absolute; left:50%; top:34%; translate:-50% -50%;
  width:min(1100px,140vw); aspect-ratio:1; pointer-events:none;
  background:radial-gradient(circle,rgba(201,162,39,.20) 0%,rgba(201,162,39,.07) 34%,transparent 66%);
  animation:breathe 9s ease-in-out infinite;
}
@keyframes breathe{ 0%,100%{ opacity:.75; scale:1; } 50%{ opacity:1; scale:1.07; } }
.hero-rays{
  position:absolute; inset:-30% -10% auto; height:150%; pointer-events:none; opacity:.20;
  background:
    conic-gradient(from 200deg at 50% 0%,
      transparent 0deg, rgba(201,162,39,.5) 8deg, transparent 16deg,
      transparent 24deg, rgba(201,162,39,.35) 32deg, transparent 42deg,
      transparent 56deg, rgba(201,162,39,.45) 64deg, transparent 74deg);
  mask-image:linear-gradient(#000,transparent 72%);
  -webkit-mask-image:linear-gradient(#000,transparent 72%);
  animation:sweep 26s linear infinite;
}
@keyframes sweep{ to{ transform:rotate(360deg); } }
.hero::after{ /* vignette */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 80% at 50% 50%,transparent 45%,rgba(6,8,12,.75) 100%);
}
.hero-inner{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }

.hero-emblem{ position:relative; display:grid; place-items:center; margin-bottom:1.1rem; }
.hero-emblem img{ width:clamp(122px,15vw,176px); height:auto; position:relative; z-index:2;
  filter:drop-shadow(0 12px 44px rgba(201,162,39,.42));
  animation:emblem-in 1.5s var(--ease) both; }
@keyframes emblem-in{ from{ opacity:0; transform:translateY(26px) scale(.9); } to{ opacity:1; transform:none; } }
.emblem-ring{
  position:absolute; width:clamp(230px,34vw,360px); aspect-ratio:1; border-radius:50%;
  border:1px solid rgba(201,162,39,.22);
  border-top-color:rgba(240,212,136,.75); border-bottom-color:rgba(240,212,136,.4);
  animation:spin 22s linear infinite;
}
.emblem-ring--2{ width:clamp(240px,33vw,368px); border-color:rgba(201,162,39,.10);
  border-left-color:rgba(240,212,136,.4); animation-duration:34s; animation-direction:reverse; }
@keyframes spin{ to{ transform:rotate(360deg); } }

.hero-title{ font-size:clamp(2.7rem,8vw,5.9rem); letter-spacing:.02em; margin:.2rem 0 0; }
.hero-title span{ display:block; font-style:italic; font-weight:500;
  background:var(--grad-gold); background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:shimmer 7s linear infinite; }
@keyframes shimmer{ to{ background-position:200% center; } }
.hero-lead{ color:var(--muted); max-width:56ch; font-size:1rem; margin-bottom:.8rem; }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; margin-top:.8rem; }

.scroll-cue{
  position:absolute; bottom:2rem; left:50%; translate:-50% 0; z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:.7rem;
  text-decoration:none; color:var(--muted-2);
}
.scroll-cue span{ width:1px; height:52px; background:linear-gradient(var(--gold),transparent); position:relative; }
.scroll-cue span::after{ content:""; position:absolute; top:0; left:-2px; width:5px; height:5px;
  border-radius:50%; background:var(--gold-lt); box-shadow:0 0 10px var(--gold);
  animation:drop 2.4s var(--ease) infinite; }
@keyframes drop{ 0%{ transform:translateY(0); opacity:0; } 20%{ opacity:1; } 100%{ transform:translateY(48px); opacity:0; } }
.scroll-cue em{ font-style:normal; font-size:.6rem; letter-spacing:.34em; text-transform:uppercase; }

/* ── marquee ───────────────────────────────────────────────── */
.marquee{ overflow:hidden; border-block:1px solid var(--line);
  background:linear-gradient(90deg,var(--ink-2),var(--ink-3),var(--ink-2)); padding:.95rem 0; }
.marquee-track{ display:flex; align-items:center; gap:2.2rem; width:max-content;
  animation:slide 44s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
@keyframes slide{ to{ transform:translateX(-50%); } }
.marquee span{ font-family:var(--display); font-size:1.25rem; font-style:italic; color:rgba(246,242,232,.5);
  white-space:nowrap; }
.marquee b{ color:var(--gold); font-size:.5rem; }

/* ── scroll scene ──────────────────────────────────────────── */
.scene{ height:400vh; position:relative;
  background:linear-gradient(180deg,var(--ink) 0%,#0A0D13 50%,var(--ink) 100%); }
.scene-sticky{ position:sticky; top:0; height:100svh; display:flex; align-items:center; overflow:hidden; }
.scene-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,6vw,5rem);
  align-items:center; width:min(100% - 2.4rem, var(--wrap)); }

.scene-art{ position:relative; display:grid; place-items:center; }
.scene-art::before{ content:""; position:absolute; width:78%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle,rgba(201,162,39,.16),transparent 68%); filter:blur(12px); }
#justice{ width:min(100%,540px); height:auto; overflow:visible; position:relative; }
#justice .draw{ fill:none; stroke:var(--gold-lt); stroke-width:1.4; stroke-linecap:round;
  stroke-linejoin:round; stroke-dasharray:1; stroke-dashoffset:1; }
#ring, #ring2{ stroke:var(--gold); opacity:.55; }
#ring2{ stroke-width:.7; opacity:.3; }
#justice .knob{ fill:var(--gold-lt); stroke:none; opacity:0; filter:drop-shadow(0 0 8px rgba(240,212,136,.9)); }
#justice .dish{ stroke-width:1.6; }
#justice .chain{ opacity:.75; }
#blindfold .band{ stroke:var(--gold); stroke-width:1.8; }
#blindfold .tie{ stroke:var(--gold); stroke-width:1.5; }
#blindfold .cap{ stroke:var(--gold); stroke-width:1.5; }
#laurel ellipse{ fill:var(--gold); stroke:none; opacity:0;
  transform-box:fill-box; transform-origin:0% 50%; }
#laurel .stem{ stroke:var(--gold); stroke-width:1.1; opacity:.7; }
#beam{ transform-box:view-box; transform-origin:210px 132px; }
.pan-l{ transform-box:view-box; transform-origin:110px 132px; }
.pan-r{ transform-box:view-box; transform-origin:310px 132px; }

.scene-copy{ position:relative; }
.acts{ position:relative; min-height:19rem; }
.act{
  position:absolute; inset:0; opacity:0; transform:translateY(28px);
  transition:opacity .6s var(--ease), transform .7s var(--ease); pointer-events:none;
}
.act.on{ opacity:1; transform:none; pointer-events:auto; }
.act h2{ font-size:clamp(2.1rem,4.6vw,3.5rem); margin-bottom:1.4rem; }
.act p{ color:var(--muted); max-width:44ch; }
.act-dots{ display:flex; gap:.55rem; margin-top:1rem; }
.act-dots i{ width:26px; height:2px; background:rgba(246,242,232,.16); transition:background .4s; }
.act-dots i.on{ background:var(--grad-gold); }

/* ── services ──────────────────────────────────────────────── */
.services{ padding:clamp(5rem,11vw,9rem) 0; position:relative;
  background:linear-gradient(180deg,var(--ink) 0%,#0D1119 100%); }
.svc-grid{ display:grid; gap:0;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  border-top:1px solid var(--line-2); border-left:1px solid var(--line-2); }
.svc{
  position:relative; background:var(--ink); padding:2.3rem 1.8rem 2rem; overflow:hidden;
  border-right:1px solid var(--line-2); border-bottom:1px solid var(--line-2);
  transition:background .45s var(--ease), transform .45s var(--ease);
}
.svc::before{ content:""; position:absolute; inset:0; opacity:0; transition:opacity .5s;
  background:radial-gradient(90% 70% at 50% 0%,rgba(201,162,39,.14),transparent 70%); }
.svc::after{ content:""; position:absolute; left:0; top:0; height:2px; width:0;
  background:var(--grad-gold); transition:width .55s var(--ease); }
.svc:hover{ background:var(--ink-2); }
.svc:hover::before{ opacity:1; }
.svc:hover::after{ width:100%; }
.svc-no{
  position:absolute; right:1.3rem; top:1.1rem; font-family:var(--display); font-size:2.6rem;
  font-weight:700; line-height:1; color:transparent; -webkit-text-stroke:1px rgba(201,162,39,.26);
  transition:-webkit-text-stroke-color .5s, transform .5s var(--ease);
}
.svc:hover .svc-no{ -webkit-text-stroke-color:rgba(240,212,136,.65); transform:translateY(-3px); }
.svc-ic{ width:34px; height:34px; color:var(--gold-lt); fill:none; stroke:currentColor;
  stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; display:block; margin-bottom:1.3rem;
  transition:transform .55s var(--ease), color .4s; position:relative; }
.svc:hover .svc-ic{ transform:translateY(-4px) scale(1.06); color:#FBEFC8; }
.svc h3{ font-size:1.42rem; margin-bottom:.55rem; position:relative; }
.svc p{ color:var(--muted); font-size:.9rem; line-height:1.68; margin:0; position:relative; }
.svc-foot{ text-align:center; margin:3rem 0 0; color:var(--muted); font-size:.95rem; }
.svc-foot a{ color:var(--gold-lt); text-decoration:none; border-bottom:1px solid rgba(201,162,39,.4); }
.svc-foot a:hover{ border-color:var(--gold); }

/* ── why us ────────────────────────────────────────────────── */
.why{ padding:clamp(5rem,11vw,9rem) 0; background:#0D1119; position:relative; }
.why::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(70% 50% at 85% 20%,rgba(201,162,39,.09),transparent 70%); pointer-events:none; }
.why-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2.5rem,6vw,5rem);
  align-items:start; position:relative; }
.why-copy > p{ color:var(--muted); max-width:52ch; }
.why-list{ display:grid; gap:1rem; margin-top:2.2rem; }
.why-list li{ position:relative; padding:1.15rem 1.3rem 1.15rem 3.1rem; color:var(--muted);
  font-size:.95rem; border:1px solid var(--line-2); background:rgba(246,242,232,.015);
  transition:border-color .4s, background .4s, transform .4s var(--ease); }
.why-list li::before{ content:"\2666"; position:absolute; left:1.25rem; top:1.15rem;
  color:var(--gold); font-size:.6rem; }
.why-list li:hover{ border-color:var(--line); background:rgba(201,162,39,.045); transform:translateX(5px); }
.why-list b{ color:var(--ivory); font-weight:400; font-family:var(--display); font-size:1.12rem; }

.stats{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line-2);
  border:1px solid var(--line-2); position:sticky; top:7rem; }
.stat{ background:#0B0F17; padding:2rem 1.4rem; text-align:center; }
.stat b{ display:block; font-family:var(--display); font-size:clamp(2.4rem,5vw,3.4rem); font-weight:700;
  line-height:1; background:var(--grad-gold); -webkit-background-clip:text; background-clip:text;
  color:transparent; }
.stat span{ display:block; margin-top:.7rem; font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted-2); line-height:1.6; }

/* ── visit ─────────────────────────────────────────────────── */
.visit{ padding:clamp(5rem,11vw,9rem) 0; background:var(--ink); }
.visit-grid{ display:grid; grid-template-columns:.95fr 1.05fr; gap:2rem; align-items:stretch; }
.visit-cards{ display:grid; gap:1rem; align-content:start; }
.card{ position:relative; padding:1.9rem 1.8rem; border:1px solid var(--line-2);
  background:linear-gradient(160deg,var(--ink-2),#0A0E15);
  transition:border-color .45s, transform .45s var(--ease), box-shadow .45s; }
.card:hover{ border-color:var(--line); transform:translateY(-4px);
  box-shadow:0 26px 60px -40px rgba(201,162,39,.8); }
.card-ic{ width:26px; height:26px; color:var(--gold); fill:none; stroke:currentColor;
  stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; margin-bottom:1rem; display:block; }
.card h3{ font-size:1.5rem; margin-bottom:.7rem; }
.card address{ color:var(--muted); line-height:1.85; }
.phones{ display:grid; gap:.35rem; }
.phones a{ font-family:var(--display); font-size:1.6rem; font-weight:600; text-decoration:none;
  letter-spacing:.02em; color:var(--ivory); transition:color .3s, letter-spacing .4s var(--ease); }
.phones a:hover{ color:var(--gold-lt); letter-spacing:.05em; }
.hours li{ display:flex; justify-content:space-between; gap:1rem; padding:.55rem 0;
  border-bottom:1px dashed var(--line-2); color:var(--muted); font-size:.9rem; }
.hours li:last-child{ border-bottom:0; }
.hours b{ color:var(--gold-lt); font-weight:400; }

.map{ position:relative; min-height:420px; border:1px solid var(--line-2); overflow:hidden; }
.map iframe{ position:absolute; inset:0; width:100%; height:100%;
  filter:grayscale(1) invert(.92) contrast(.86) sepia(.3) hue-rotate(2deg) brightness(.92); }
.map::after{ content:""; position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 0 90px 20px rgba(11,14,20,.85); }

/* ── cta ───────────────────────────────────────────────────── */
.cta{ position:relative; padding:clamp(5rem,11vw,8.5rem) 0; text-align:center; overflow:hidden;
  background:linear-gradient(180deg,#0D1119,#12182A 55%,#0A0D13); }
.cta-glow{ position:absolute; left:50%; top:50%; translate:-50% -50%; width:min(900px,120vw);
  aspect-ratio:1; pointer-events:none;
  background:radial-gradient(circle,rgba(201,162,39,.15),transparent 62%); animation:breathe 10s ease-in-out infinite; }
.cta-inner{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }
.cta-mark{ width:88px; height:auto; margin-bottom:1.4rem; filter:drop-shadow(0 8px 30px rgba(201,162,39,.5)); }
.cta h2{ font-size:clamp(2.2rem,5.4vw,3.9rem); max-width:18ch; }
.cta > .wrap > p{ color:var(--muted); max-width:52ch; margin-top:1.2rem; }
.cta-actions{ display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; margin-top:1.4rem; }
.cta-alt{ color:var(--muted-2); font-size:.85rem; letter-spacing:.1em; margin-top:1.6rem; }
.cta-alt a{ color:var(--gold-lt); text-decoration:none; }

/* ── footer ────────────────────────────────────────────────── */
.site-footer{ background:#080A0F; border-top:1px solid var(--line); padding:3.6rem 0 1.6rem; }
.footer-grid{ display:grid; grid-template-columns:1fr auto 1fr; gap:2.4rem; align-items:center; }
.f-brand{ display:flex; align-items:center; gap:.9rem; }
.f-brand img{ width:58px; height:58px; object-fit:contain; }
.f-brand strong{ display:block; font-family:var(--display); font-size:1.35rem; font-weight:600;
  letter-spacing:.06em; color:var(--ivory); }
.f-brand span{ font-size:.66rem; letter-spacing:.26em; text-transform:uppercase; color:var(--muted-2); }
.f-nav{ display:flex; gap:1.6rem; flex-wrap:wrap; justify-content:center; }
.f-nav a{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted);
  text-decoration:none; transition:color .3s; }
.f-nav a:hover{ color:var(--gold-lt); }
.f-addr{ color:var(--muted-2); font-size:.84rem; line-height:1.85; text-align:right; }
.f-addr a{ color:var(--muted); text-decoration:none; }
.f-addr a:hover{ color:var(--gold-lt); }
.footer-bar{ display:flex; justify-content:space-between; align-items:center; gap:1rem .5rem; flex-wrap:wrap;
  margin-top:2.6rem; padding-top:1.4rem; border-top:1px solid var(--line-2);
  font-size:.72rem; letter-spacing:.06em; color:var(--muted-2); }
.f-note{ flex:1 1 auto; text-align:center; }
.f-credit a{ color:var(--gold-lt); text-decoration:none;
  border-bottom:1px solid rgba(201,162,39,.3); transition:border-color .3s, color .3s; }
.f-credit a:hover{ border-color:var(--gold); color:#FBEFC8; }

/* ── floating actions ──────────────────────────────────────── */
.fab{
  position:fixed; right:1.2rem; bottom:1.2rem; z-index:950; display:flex; align-items:center; gap:.55rem;
  padding:.85rem 1.35rem; border-radius:100px; text-decoration:none; color:#120E04;
  background:var(--grad-gold); font-size:.76rem; letter-spacing:.16em; text-transform:uppercase;
  box-shadow:0 14px 36px -12px rgba(201,162,39,.85);
  transform:translateY(160%); opacity:0; visibility:hidden;
  transition:transform .55s var(--ease), opacity .4s, visibility .4s, box-shadow .4s;
}
.fab.on{ transform:none; opacity:1; visibility:visible; }
.fab:hover{ box-shadow:0 20px 46px -12px rgba(201,162,39,1); }
.to-top{
  position:fixed; right:1.2rem; bottom:5.4rem; z-index:950; width:42px; height:42px; cursor:pointer;
  display:grid; place-items:center; border:1px solid var(--line); border-radius:50%;
  background:rgba(11,14,20,.8); backdrop-filter:blur(8px); color:var(--gold-lt);
  transform:translateY(160%) rotate(-90deg); opacity:0; visibility:hidden;
  transition:transform .55s var(--ease), opacity .4s, visibility .4s, border-color .3s, color .3s;
}
.to-top.on{ transform:rotate(-90deg); opacity:1; visibility:visible; }
.to-top:hover{ border-color:var(--gold); color:#FBEFC8; }
.to-top .ic{ width:18px; height:18px; }

/* ── reveal ────────────────────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(30px); transition:opacity .85s var(--ease), transform .85s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* ── responsive ────────────────────────────────────────────── */
@media (max-width:1000px){
  .scene{ height:340vh; }
  .scene-grid{ grid-template-columns:1fr; gap:1.6rem; text-align:center; justify-items:center; }
  .scene-art{ order:-1; }
  #justice{ width:min(72vw,320px); }
  .acts{ min-height:16rem; }
  .act p{ margin-inline:auto; }
  .act-dots{ justify-content:center; }
  .scene-copy{ display:flex; flex-direction:column; align-items:center; }
  .why-grid, .visit-grid{ grid-template-columns:1fr; }
  .stats{ position:static; }
  .footer-grid{ grid-template-columns:1fr; justify-items:center; text-align:center; gap:1.8rem; }
  .f-addr{ text-align:center; }
}
@media (max-width:860px){
  .nav{
    position:fixed; inset:0 0 auto; top:0; padding:6.5rem 2rem 3rem; flex-direction:column;
    gap:.4rem; background:rgba(9,12,18,.97); backdrop-filter:blur(18px);
    clip-path:inset(0 0 100% 0); transition:clip-path .6s var(--ease); text-align:center;
  }
  .nav.open{ clip-path:inset(0 0 0 0); }
  .nav a{ font-size:1.05rem; letter-spacing:.24em; padding:.9rem 0;
    border-bottom:1px solid var(--line-2); }
  .nav a::after{ display:none; }
  .burger{ display:flex; }
  .header-cta span{ display:none; }
  .header-cta{ --pad:.7rem .85rem; }
  .header-cta .ic{ width:1.15rem; height:1.15rem; }
  body.nav-open{ overflow:hidden; }
}
@media (max-width:560px){
  body{ font-size:16px; }
  .svc{ padding:2rem 1.4rem 1.7rem; }
  .stats{ grid-template-columns:1fr 1fr; }
  .footer-bar{ justify-content:center; text-align:center; }
  .fab span{ display:none; }
  .fab{ padding:1rem; border-radius:50%; }
  .fab .ic{ width:1.3rem; height:1.3rem; }
  .phones a{ font-size:1.4rem; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }
  .act{ position:relative; opacity:1; transform:none; }
  .acts{ min-height:0; display:grid; gap:2.5rem; }
}
