
:root{
  --ink:#14171a;
  --graphite:#23262b;
  --graphite-2:#2c3036;
  --paper:#f5f3ee;
  --paper-dim:#e8e5dc;
  --steel:#8790a0;
  --steel-dim:#5b6270;
  --rail:#1d3557;
  --rail-light:#3a5c88;
  --brass:#4C7A22;
  --brass-light:#9BD94A;
  --line:rgba(255,255,255,0.09);
  --line-dark:rgba(20,23,26,0.12);
  --radius:2px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  scroll-snap-type:y mandatory;
}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
}

/* PAGE-BY-PAGE SECTIONS */
.hero,
.section,
.contact-section{
  min-height:100vh;
  min-height:100svh;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}
footer{scroll-snap-align:start;}

/* PER-SECTION ENTRANCE MOTION */
.hero > *, .section > *, .contact-section > *{
  position:relative;
  z-index:2;
}
.section::before, .contact-section::before{
  content:'';
  position:absolute;
  top:0;left:8vw;right:8vw;height:1px;
  background:linear-gradient(90deg,transparent,var(--brass-light) 50%,transparent);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform 1.1s cubic-bezier(.16,1,.3,1);
  z-index:3;
}
.section.sec-in::before, .contact-section.sec-in::before{
  transform:scaleX(1);
}
.section-dark.sec-in::before{
  background:linear-gradient(90deg,transparent,var(--brass-light) 50%,transparent);
}
.section, .contact-section{
  opacity:0;
  transform:translateY(70px) scale(0.97);
  transition:opacity 1.05s cubic-bezier(.16,1,.3,1), transform 1.05s cubic-bezier(.16,1,.3,1);
}
.section.sec-in, .contact-section.sec-in{
  opacity:1;
  transform:translateY(0) scale(1);
}
@media(prefers-reduced-motion:reduce){
  .section, .contact-section{opacity:1;transform:none;transition:none;}
}

/* SIDE TRAIN-TRACK SCROLL PROGRESS */
.train-track{
  position:fixed;
  right:26px;top:8vh;bottom:8vh;
  width:2px;
  z-index:150;
  background:repeating-linear-gradient(
    to bottom,
    rgba(20,23,26,0.28) 0px,
    rgba(20,23,26,0.28) 6px,
    transparent 6px,
    transparent 13px
  );
}
.train-track .track-origin,
.train-track .track-dest{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  width:7px;height:7px;
  border-radius:50%;
  background:var(--steel);
}
.train-track .track-origin{top:-4px;}
.train-track .track-dest{bottom:-4px;background:var(--brass-light);}
.train-track .track-fill{
  position:absolute;
  top:0;left:0;width:100%;
  height:0%;
  background:linear-gradient(to bottom, var(--brass-light), var(--rail-light));
  transition:height 0.12s linear;
}
.train-icon{
  position:fixed;
  right:12px;top:8vh;
  width:38px;height:38px;
  z-index:151;
  transform:translate(0,-50%);
  transition:top 0.12s linear;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,0.4));
}
.train-icon svg{width:100%;height:100%;display:block;}
@media(max-width:900px){
  .train-track, .train-icon{display:none;}
}

/* CORNER AVATAR */
.corner-avatar{
  position:fixed;
  top:16px;left:16px;
  width:46px;height:46px;
  border-radius:50%;
  overflow:hidden;
  z-index:200;
  box-shadow:0 6px 18px rgba(0,0,0,0.4);
  background:var(--graphite);
  transition:transform 0.3s ease, width 0.3s ease, height 0.3s ease;
}
.corner-avatar:hover{transform:scale(1.08);}
.corner-avatar img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:50% 18%;
  display:block;
}
@media(max-width:600px){
  .corner-avatar{width:36px;height:36px;top:12px;left:12px;}
}
h1,h2,h3,h4{font-family:'Manrope',sans-serif;font-weight:700;letter-spacing:-0.02em;color:var(--ink);}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:0.06em;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--rail);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{content:'';width:24px;height:1px;background:var(--brass);display:inline-block;}
.section{padding:120px 8vw;position:relative;}
.section-dark{background:var(--ink);color:var(--paper);}
.section-dark h2{color:var(--paper);}
.section-dark .eyebrow{color:var(--brass-light);}
.section-dark .eyebrow::before{background:var(--brass-light);}
.wrap{max-width:1240px;margin:0 auto;}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 0.9s cubic-bezier(.16,1,.3,1),transform 0.9s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:0.08s;}
.reveal-delay-2{transition-delay:0.16s;}
.reveal-delay-3{transition-delay:0.24s;}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 8vw;
  transition:all 0.4s ease;
  background:transparent;
}
nav.scrolled{
  padding:16px 8vw;
  background:rgba(20,23,26,0.86);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-name{font-family:'Manrope',sans-serif;font-weight:700;font-size:16px;color:var(--paper);letter-spacing:-0.01em;}
.nav-links{display:flex;gap:34px;list-style:none;}
.nav-links a{
  color:rgba(245,243,238,0.72);text-decoration:none;font-size:13px;
  font-family:'IBM Plex Mono',monospace;letter-spacing:0.04em;
  position:relative;padding-bottom:4px;transition:color 0.3s ease;
}
.nav-links a::after{
  content:'';position:absolute;bottom:0;left:0;width:0;height:1px;
  background:var(--brass-light);transition:width 0.35s cubic-bezier(.16,1,.3,1);
}
.nav-links a:hover, .nav-links a.active{color:var(--paper);}
.nav-links a.active::after, .nav-links a:hover::after{width:100%;}
.nav-toggle{display:none;color:var(--paper);font-size:22px;background:none;border:none;cursor:pointer;}


/* LIGHT PAGE NAVIGATION */
body.spa-light nav{background:rgba(245,243,238,0.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-dark);}
body.spa-light nav.scrolled{background:rgba(245,243,238,0.94);border-bottom:1px solid var(--line-dark);}
body.spa-light .nav-name{color:var(--ink);}
body.spa-light .nav-links a{color:rgba(20,23,26,0.72);}
body.spa-light .nav-links a:hover,
body.spa-light .nav-links a.active{color:var(--ink);}
body.spa-light .nav-toggle{color:var(--ink);}

/* HERO */
.hero{
  min-height:100vh;min-height:100svh;background:var(--ink);color:var(--paper);
  display:flex;align-items:center;position:relative;overflow:hidden;
  padding:110px 8vw 60px;
}
.hero-grid{
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:60px;align-items:center;
  max-width:1280px;margin:0 auto;width:100%;position:relative;z-index:2;padding-top:60px;
}
.hero-label{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.2em;
  color:var(--brass-light);text-transform:uppercase;margin-bottom:26px;
  opacity:0;animation:fadeUp 0.9s 0.2s cubic-bezier(.16,1,.3,1) forwards;
}
.hero h1{
  font-size:clamp(38px,5vw,64px);line-height:1.06;color:var(--paper);
  margin-bottom:26px;opacity:0;animation:fadeUp 0.9s 0.4s cubic-bezier(.16,1,.3,1) forwards;
}
.hero h1 em{font-style:normal;color:var(--brass-light);}
.hero-role{
  font-size:17px;color:rgba(245,243,238,0.85);margin-bottom:16px;font-weight:500;
  opacity:0;animation:fadeUp 0.9s 0.55s cubic-bezier(.16,1,.3,1) forwards;
}
.hero-desc{
  font-size:15px;color:rgba(245,243,238,0.6);max-width:480px;margin-bottom:38px;
  opacity:0;animation:fadeUp 0.9s 0.7s cubic-bezier(.16,1,.3,1) forwards;
}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:fadeUp 0.9s 0.85s cubic-bezier(.16,1,.3,1) forwards;}
.btn{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
  padding:15px 26px;text-decoration:none;display:inline-flex;align-items:center;gap:10px;
  border:1px solid rgba(245,243,238,0.28);color:var(--paper);transition:all 0.35s ease;
}
.btn:hover{border-color:var(--brass-light);background:rgba(155,217,74,0.14);}
.btn-solid{background:var(--brass-light);color:var(--ink);border-color:var(--brass-light);}
.btn-solid:hover{background:transparent;color:var(--paper);}
.btn-arrow{transition:transform 0.35s ease;}
.btn:hover .btn-arrow{transform:translateX(4px);}

@keyframes fadeUp{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:translateY(0);}}

.hero-visual{
  position:relative;opacity:0;animation:fadeIn 1.2s 1s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes fadeIn{from{opacity:0;transform:scale(0.96);}to{opacity:1;transform:scale(1);}}
.manifest-card{
  background:var(--graphite);border:1px solid var(--line);padding:38px 34px;
  position:relative;box-shadow:0 40px 80px rgba(0,0,0,0.4);
}
.manifest-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:34px;padding-bottom:22px;border-bottom:1px dashed rgba(245,243,238,0.2);}
.monogram{
  width:64px;height:64px;border:1px solid var(--brass-light);display:flex;align-items:center;justify-content:center;
  font-family:'Manrope',sans-serif;font-weight:700;font-size:22px;color:var(--brass-light);letter-spacing:0.02em;
}
.manifest-stamp{
  font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:0.14em;color:var(--steel);
  text-align:right;line-height:1.8;text-transform:uppercase;
}
.manifest-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:12px;}
.manifest-row:last-child{border-bottom:none;}
.manifest-row span:first-child{color:var(--steel);letter-spacing:0.05em;}
.manifest-row span:last-child{color:var(--paper);}
.manifest-routes{margin-top:26px;padding-top:22px;border-top:1px dashed rgba(245,243,238,0.2);}
.route-line{display:flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--brass-light);margin-bottom:10px;}
.route-dot{width:5px;height:5px;border-radius:50%;background:var(--brass-light);flex-shrink:0;}
.route-track{flex:1;height:1px;background:linear-gradient(90deg,var(--brass-light) 0%,rgba(201,168,120,0.15) 100%);position:relative;overflow:hidden;}
.route-track::after{content:'';position:absolute;top:0;left:-30%;width:30%;height:100%;background:var(--paper);animation:travel 3.2s linear infinite;}
.route-track:nth-child(1)::after{animation-delay:0s;}
@keyframes travel{0%{left:-30%;}100%{left:100%;}}
.bg-lines{position:absolute;inset:0;z-index:1;opacity:0.35;pointer-events:none;}
.portrait-frame{
  position:relative;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 40px 80px rgba(0,0,0,0.45);
}
.portrait-frame img{width:100%;display:block;filter:grayscale(0.08) contrast(1.04);}
.portrait-frame::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,23,26,0) 55%,rgba(20,23,26,0.55) 100%);
  pointer-events:none;
}
.float-card{
  position:absolute;left:-36px;bottom:-34px;background:var(--graphite);border:1px solid var(--line);
  padding:20px 22px;width:250px;box-shadow:0 24px 54px rgba(0,0,0,0.4);z-index:3;
}
.float-card-top{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px dashed rgba(245,243,238,0.2);}
.float-card .monogram{width:38px;height:38px;font-size:13px;flex-shrink:0;}
.float-card-role{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:0.06em;color:var(--paper);line-height:1.5;}
.float-card-role span{display:block;color:var(--steel);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:2px;}
.float-route{display:flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--brass-light);}
.float-route .route-track{height:1px;}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:80px;align-items:start;}
.about-frame{
  aspect-ratio:4/5;background:var(--graphite);position:relative;overflow:hidden;
  border:1px solid var(--line-dark);
}
.about-frame-inner{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:var(--paper);
}
.about-frame-inner .monogram{width:96px;height:96px;font-size:32px;margin-bottom:20px;}
.about-frame-caption{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:0.14em;color:var(--steel);text-transform:uppercase;}
.about-copy h2{font-size:clamp(28px,3vw,40px);margin-bottom:26px;max-width:520px;}
.about-copy p{color:var(--steel-dim);font-size:16px;margin-bottom:18px;max-width:560px;}
.about-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-dark);margin-top:40px;border:1px solid var(--line-dark);}
.about-card{background:var(--paper);padding:24px;}
.about-card .num{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--brass);margin-bottom:10px;}
.about-card .label{font-family:'Manrope',sans-serif;font-weight:700;font-size:15px;}

/* EXPERTISE */
.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:60px;border:1px solid var(--line);}
.exp-card{background:var(--ink);padding:38px 30px;transition:background 0.4s ease;position:relative;cursor:default;}
.exp-card:hover{background:var(--graphite);}
.exp-num{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--brass-light);margin-bottom:22px;display:block;}
.exp-card h3{font-size:19px;color:var(--paper);margin-bottom:12px;transition:transform 0.35s ease;}
.exp-card:hover h3{transform:translateX(4px);}
.exp-card p{color:rgba(245,243,238,0.55);font-size:14px;}
.exp-arrow{position:absolute;top:36px;right:28px;color:var(--brass-light);opacity:0;transform:translateX(-6px);transition:all 0.35s ease;font-size:18px;}
.exp-card:hover .exp-arrow{opacity:1;transform:translateX(0);}

/* GLOBAL REACH */
.reach-wrap{margin-top:60px;}
.map-panel{background:var(--graphite);border:1px solid var(--line);padding:50px 40px;position:relative;overflow:hidden;}
.reach-legend{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:30px;}
.legend-item{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--steel);display:flex;align-items:center;gap:8px;}
.legend-dot{width:6px;height:6px;background:var(--brass-light);}
.legend-dot.hub{background:var(--paper);border:1px solid var(--brass-light);width:8px;height:8px;}
.map-embed{position:relative;width:100%;padding-top:52%;border:1px solid var(--line);filter:grayscale(0.25) contrast(1.05);}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.dest-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.dest-tags > span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.05em;color:var(--paper);border:1px solid var(--brass-light);padding:7px 13px;}
.reach-note{margin-top:30px;padding-top:26px;border-top:1px dashed rgba(245,243,238,0.18);color:rgba(245,243,238,0.55);font-size:14px;max-width:520px;}

/* RAIL SECTION */
.rail-section{background:var(--rail);color:var(--paper);position:relative;overflow:hidden;}
.rail-section .eyebrow{color:var(--brass-light);}
.rail-section h2{color:var(--paper);font-size:clamp(28px,3.4vw,44px);max-width:760px;margin-bottom:20px;}
.rail-section .lead{color:rgba(245,243,238,0.7);max-width:560px;margin-bottom:50px;font-size:16px;}
.rail-tags{display:flex;gap:1px;flex-wrap:wrap;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.15);margin-bottom:50px;}
.rail-tag{background:var(--rail);padding:16px 22px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.05em;flex:1;min-width:180px;}
.crossings{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.15);}
.crossing{background:var(--rail);padding:30px 26px;position:relative;}
.crossing-stamp{
  width:40px;height:40px;border:1px solid var(--brass-light);border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
  font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--brass-light);
}
.crossing h4{color:var(--paper);font-size:17px;margin-bottom:6px;}
.crossing span{font-family:'IBM Plex Mono',monospace;font-size:11px;color:rgba(245,243,238,0.55);}

/* VISUAL STORYTELLING */
.visuals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);margin-top:56px;}
.visual-item{background:var(--paper);padding:44px 30px 34px;text-align:center;}
.visual-item svg{width:100%;max-width:180px;height:auto;margin-bottom:22px;}
.visual-item .v-label{font-family:'Manrope',sans-serif;font-weight:700;font-size:15px;margin-bottom:6px;}
.visual-item .v-sub{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--steel-dim);letter-spacing:0.04em;}

/* SERVICES */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:56px;}
.service-item{
  border:1px solid var(--line-dark);padding:22px 22px;display:flex;align-items:center;gap:14px;
  transition:all 0.3s ease;background:var(--paper);
}
.service-item:hover{border-color:var(--rail);background:var(--paper-dim);}
.service-index{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--brass);flex-shrink:0;}
.service-item p{font-size:14px;font-weight:500;color:var(--ink);}

/* TIMELINE */
.timeline{position:relative;margin-top:60px;padding-left:40px;}
.timeline::before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--line);}
.tl-item{position:relative;padding-bottom:56px;}
.tl-item:last-child{padding-bottom:0;}
.tl-dot{position:absolute;left:-40px;top:4px;width:11px;height:11px;border-radius:50%;border:1px solid var(--brass-light);background:var(--ink);}
.tl-item.in .tl-dot{background:var(--brass-light);}
.tl-date{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--brass-light);letter-spacing:0.06em;margin-bottom:8px;display:block;}
.tl-item h3{color:var(--paper);font-size:19px;margin-bottom:6px;}
.tl-item p{color:rgba(245,243,238,0.55);font-size:14px;}

/* CREDENTIALS */
.cred-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:70px;margin-top:56px;align-items:start;}
.cred-list{list-style:none;}
.cred-list li{
  display:flex;justify-content:space-between;align-items:center;padding:18px 0;
  border-bottom:1px solid var(--line-dark);font-size:15px;
}
.cred-list li span.tag{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--brass);letter-spacing:0.08em;}
.cred-highlight{background:var(--ink);color:var(--paper);padding:34px 30px;}
.cred-highlight .eyebrow{color:var(--brass-light);}
.cred-highlight h4{color:var(--paper);font-size:19px;margin-bottom:10px;}
.cred-highlight p{color:rgba(245,243,238,0.6);font-size:14px;}

/* COMPANY */
.company-panel{background:var(--graphite);color:var(--paper);padding:60px 50px;position:relative;overflow:hidden;}
.company-watermark{position:absolute;right:-40px;bottom:-30px;width:420px;max-width:55%;height:auto;opacity:0.07;pointer-events:none;z-index:0;}
.company-panel>*{position:relative;z-index:1;}
.company-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:30px;margin-bottom:34px;}
.company-name{font-size:24px;color:var(--paper);}
.memberships{display:flex;gap:14px;flex-wrap:wrap;}
.mem-badge{border:1px solid rgba(245,243,238,0.3);padding:6px 14px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.08em;color:var(--brass-light);}
.company-panel p{color:rgba(245,243,238,0.6);max-width:640px;margin-bottom:22px;}
.company-tags{display:flex;gap:10px;flex-wrap:wrap;}
.company-tags span{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--steel);border:1px solid var(--line);padding:6px 12px;}

/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);margin-top:56px;}
.stat-item{background:var(--paper);padding:36px 26px;}
.stat-num{font-family:'Manrope',sans-serif;font-weight:800;font-size:36px;color:var(--rail);margin-bottom:8px;}
.stat-label{font-size:13px;color:var(--steel-dim);}

/* CONTACT */
.contact-section{background:var(--ink);color:var(--paper);text-align:center;padding:140px 8vw;}
.contact-section h2{color:var(--paper);font-size:clamp(32px,5vw,58px);margin-bottom:22px;}
.contact-section .lead{color:rgba(245,243,238,0.6);max-width:520px;margin:0 auto 46px;font-size:16px;}
.contact-ctas{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-bottom:50px;}
.contact-meta{display:flex;justify-content:center;gap:44px;flex-wrap:wrap;font-family:'IBM Plex Mono',monospace;font-size:13px;color:rgba(245,243,238,0.5);}
.contact-meta a{color:rgba(245,243,238,0.75);text-decoration:none;border-bottom:1px solid rgba(245,243,238,0.2);}
.contact-meta a:hover{color:var(--brass-light);border-color:var(--brass-light);}

footer{background:var(--ink);color:rgba(245,243,238,0.5);padding:34px 8vw;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:13px;}
footer .foot-name{font-family:'Manrope',sans-serif;font-weight:700;color:var(--paper);}
footer .foot-links{display:flex;gap:26px;list-style:none;font-family:'IBM Plex Mono',monospace;font-size:12px;}
footer .foot-links a{color:rgba(245,243,238,0.5);text-decoration:none;}
footer .foot-links a:hover{color:var(--brass-light);}

@media(max-width:900px){
  .nav-links{position:fixed;top:0;right:0;height:100vh;height:100svh;width:72vw;max-width:320px;background:var(--ink);
    flex-direction:column;justify-content:center;align-items:flex-start;padding:0 40px;gap:26px;
    transform:translateX(100%);transition:transform 0.4s ease;z-index:99;}
  .nav-links.open{transform:translateX(0);}
  .nav-toggle{display:block;}
  .hero-grid{grid-template-columns:1fr;}
  .about-grid,.cred-grid{grid-template-columns:1fr;gap:40px;}
  .expertise-grid,.services-grid,.stats-grid,.crossings{grid-template-columns:repeat(2,1fr);}
  .section{padding:80px 6vw;}
  .contact-section{padding:100px 6vw;}
  .company-panel{padding:40px 26px;}
}
@media(max-width:560px){
  .expertise-grid,.services-grid,.stats-grid,.crossings,.about-cards{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:0.01ms !important;transition-duration:0.01ms !important;}
}

.lang-group{display:inline-flex;align-items:center;gap:6px;margin-left:8px;}
.lang-toggle{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.08em;
  color:rgba(245,243,238,0.72);background:transparent;border:1px solid rgba(245,243,238,0.28);
  cursor:pointer;transition:all 0.3s ease;
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;padding:0;
}
.lang-toggle .flag-icon{font-size:17px;line-height:1;}
.lang-toggle:hover{color:var(--paper);border-color:var(--brass-light);background:rgba(155,217,74,0.14);transform:scale(1.06);}
.lang-toggle.active{border-color:var(--brass-light);background:rgba(155,217,74,0.22);box-shadow:0 0 0 2px rgba(155,217,74,0.35);}
body.spa-light .lang-toggle{color:rgba(20,23,26,0.72);border-color:rgba(20,23,26,0.28);}
body.spa-light .lang-toggle:hover{color:var(--ink);border-color:var(--brass-light);background:rgba(155,217,74,0.14);}
body.spa-light .lang-toggle.active{color:var(--ink);border-color:var(--brass-light);background:rgba(155,217,74,0.22);}
[lang="fa"]{direction:rtl;unicode-bidi:isolate;font-family:'Vazirmatn',sans-serif;}
#langGroupDesktop{display:inline-flex;}
#langGroupMobile{display:none;}
@media(max-width:900px){
  .lang-group{margin-left:0;margin-top:22px;}
  #langGroupDesktop{display:none;}
  #langGroupMobile{display:inline-flex;}
}

/* CUSTOM ROUTE MAP */
.map-embed.route-map-image{
  padding-top:0;
  aspect-ratio:3 / 2;
  overflow:hidden;
  filter:none;
  background:#080d12;
}
.map-embed.route-map-image img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

.section,.contact-section{opacity:1 !important;transform:none !important;}.train-track,.train-icon{display:none !important;}

/* Single-file SPA navigation */
body.spa-ready > main#app > section.page-view { display:none !important; }
body.spa-ready > main#app > section.page-view.active { display:block !important; }
.spa-fade { animation: spaFade .38s ease both; }
@keyframes spaFade { from {opacity:0; transform:translateY(8px)} to {opacity:1; transform:none} }

/* WordPress admin bar fix */
body.admin-bar nav{top:32px;}
@media(max-width:782px){body.admin-bar nav{top:46px;}}
