
/* ── FONTS ── */
@font-face { font-family:'HouschkaPro'; src:url('../fonts/HouschkaPro-Light.otf') format('opentype'); font-weight:300; }
@font-face { font-family:'HouschkaPro'; src:url('../fonts/HouschkaPro-Bold.otf') format('opentype'); font-weight:700; }
@font-face { font-family:'HouschkaPro'; src:url('../fonts/HouschkaPro-ExtraBold.otf') format('opentype'); font-weight:800; }
@font-face { font-family:'TradeCGothic'; src:url('../fonts/TradeCGothic-Bold.ttf') format('truetype'); font-weight:700; }
@font-face { font-family:'TradeCGothic'; src:url('../fonts/TradeCGothic-Medium.ttf') format('truetype'); font-weight:500; }

/* ── TOKENS ── */
:root {
  --magenta:#C0326A; --magenta-l:#D4507E; --purple:#7B4CAE;
  --navy:#1D3461; --navy-dark:#142447;
  --bg-dark:#0D1B2A; --bg-darker:#070E18; --bg-section:#111F33;
  --surface:#13243A; --surface2:#1A2F47;
  --text-inv:#F0F2FA; --text-muted:#8899B8; --text-faint:#4A5F7A;
  --border-dark:rgba(255,255,255,0.08);
  --gradient:linear-gradient(135deg,#7B4CAE 0%,#C0326A 100%);
  --gradient-h:linear-gradient(90deg,#7B4CAE 0%,#C0326A 100%);
  --font-display:'TradeCGothic','Arial Narrow',Arial,sans-serif;
  --font-body:'HouschkaPro','Gill Sans',Calibri,sans-serif;
  --r-sm:4px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-2xl:24px; --r-pill:9999px;
  --sh-glow:0 0 40px rgba(123,76,174,0.25);
}

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--font-body); font-size:1rem; line-height:1.6; background:var(--bg-dark); color:var(--text-inv); -webkit-font-smoothing:antialiased; overflow-x:hidden; }

/* ── NAV ── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:0 40px;
  display:flex; align-items:center; justify-content:space-between;
  height:72px;
  background:rgba(7,14,24,0.85);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border-dark);
  transition:background 0.3s;
}
.nav-logo { display:flex; align-items:center; cursor:pointer; }
.nav-logo img { height:64px; }
.nav-links { display:flex; align-items:center; gap:8px; }
.nav-links a {
  font-family:var(--font-body); font-size:15px; font-weight:700; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--text-muted); text-decoration:none;
  padding:8px 16px; border-radius:var(--r-pill);
  transition:color 0.15s, background 0.15s;
}
.nav-links a:hover, .nav-links a.active { color:var(--text-inv); }
.nav-links a.active { background:rgba(255,255,255,0.08); }
.nav-cta {
  background:var(--gradient); color:#fff; font-family:var(--font-body);
  font-weight:700; font-size:13px; letter-spacing:0.08em; text-transform:uppercase;
  border:none; padding:10px 22px; border-radius:var(--r-pill); cursor:pointer;
  transition:opacity 0.2s, transform 0.15s;
}
.nav-cta:hover { opacity:0.9; transform:scale(1.02); }
.lang-switch-mobile { display:none; }
.nav-toggle {
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:42px; height:42px; padding:0; background:none; border:none; cursor:pointer;
}
.nav-toggle span {
  display:block; width:24px; height:2px; border-radius:2px;
  background:var(--text-inv); transition:transform .25s ease, opacity .2s ease;
}
body.light .nav-toggle span { background:#131A2E; }
.nav.open .nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav.open .nav-toggle span:nth-child(2) { opacity:0; }
.nav.open .nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ── PAGES ── */
.page { display:none; padding-top:72px; }
.page.active { display:block; }

/* ── HERO ── */
.hero {
  min-height:calc(100vh - 72px);
  display:grid; grid-template-columns:1fr 1fr;
  align-items:center;
  padding:80px 80px 60px;
  position:relative; overflow:hidden;
  background:radial-gradient(ellipse at 70% 50%, rgba(29,52,97,0.5) 0%, transparent 65%),
             radial-gradient(ellipse at 20% 80%, rgba(123,76,174,0.12) 0%, transparent 50%),
             var(--bg-darker);
}
.hero-left { max-width:560px; }
.hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(192,50,106,0.12); border:1px solid rgba(192,50,106,0.3);
  color:#D4507E; font-size:12px; font-weight:700; letter-spacing:0.1em;
  text-transform:uppercase; padding:6px 14px; border-radius:var(--r-pill);
  margin-bottom:28px;
}
.badge-dot { width:6px; height:6px; border-radius:50%; background:#C0326A; animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.4} }

.hero h1 {
  font-family:var(--font-display); font-weight:700; font-size:clamp(36px,4.5vw,62px);
  line-height:1.08; letter-spacing:0.04em; text-transform:uppercase;
  color:#fff; margin-bottom:24px;
}
.hero h1 em { font-style:normal; background:var(--gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hero-sub { font-size:17px; font-weight:300; line-height:1.7; color:var(--text-muted); margin-bottom:40px; max-width:480px; }
.hero-actions { display:flex; gap:16px; align-items:center; margin-bottom:64px; }
.btn-primary {
  background:var(--gradient); color:#fff; font-family:var(--font-body); font-weight:700;
  font-size:13px; letter-spacing:0.08em; text-transform:uppercase; white-space:nowrap;
  border:none; padding:14px 28px; border-radius:var(--r-pill); cursor:pointer;
  transition:opacity 0.2s, transform 0.15s, box-shadow 0.2s;
}
.btn-primary:hover { opacity:0.9; transform:translateY(-1px); box-shadow:0 8px 24px rgba(192,50,106,0.4); }
.btn-ghost {
  color:var(--text-muted); font-family:var(--font-body); font-weight:700;
  font-size:13px; letter-spacing:0.08em; text-transform:uppercase; white-space:nowrap;
  background:none; border:1px solid var(--border-dark); padding:13px 24px;
  border-radius:var(--r-pill); cursor:pointer;
  transition:color 0.15s, border-color 0.15s;
}
.btn-ghost:hover { color:#fff; border-color:rgba(255,255,255,0.3); }

.hero-stats { display:flex; gap:40px; }
.stat { }
.stat-val { font-family:var(--font-display); font-size:32px; font-weight:700; color:#fff; letter-spacing:-0.01em; }
.stat-val span { background:var(--gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.stat-label { font-size:13px; color:var(--text-muted); margin-top:2px; line-height:1.4; }

/* ── NETWORK ANIMATION ── */
.hero-right { display:flex; align-items:center; justify-content:center; position:relative; align-self:stretch; min-height:480px; }
#heroCanvas { width:100%; height:100%; display:block; }

/* ── SECTION COMMONS ── */
.section { padding:96px 80px; }
.section-dark { background:var(--bg-darker); }
.section-mid { background:var(--bg-section); }
.section-label {
  display:inline-block;
  font-size:11px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--text-muted); background:rgba(255,255,255,0.06);
  border:1px solid var(--border-dark); padding:5px 14px; border-radius:var(--r-pill);
  margin-bottom:20px;
}
.section-header { text-align:center; margin-bottom:64px; }
.section-header h2 {
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(26px,3vw,42px); letter-spacing:0.05em; text-transform:uppercase;
  color:#fff; line-height:1.15; margin-bottom:16px;
}
.section-header h2 em { font-style:normal; background:var(--gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.section-header p { font-size:16px; font-weight:300; color:var(--text-muted); max-width:540px; margin:0 auto; line-height:1.7; }

/* ── CLIENTS STRIP ── */
.clients-strip { padding:40px 0; background:var(--bg-darker); border-top:1px solid var(--border-dark); border-bottom:1px solid var(--border-dark); overflow:hidden; }
.clients-label { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-faint); text-align:center; margin-bottom:28px; }
.marquee-track { display:flex; width:max-content; animation:marqueeScroll 32s linear infinite; }
.marquee-track:hover { animation-play-state:paused; }
.marquee-set { display:flex; align-items:center; gap:0; }
@keyframes marqueeScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.client-logo-item {
  display:flex; align-items:center; justify-content:center;
  padding:0 40px; height:56px; border-right:1px solid var(--border-dark);
  transition:opacity 0.2s;
}
.client-logo-item:hover { opacity:1 !important; }
.client-logo-img {
  height: 36px; width: 140px; max-width: 140px; display: block;
  object-fit: contain; object-position: center;
  filter: brightness(0) invert(1); opacity: 0.45;
  transition: opacity 0.2s, filter 0.3s;
}
.client-logo-item:hover .client-logo-img { opacity: 0.75; }
.client-logo-text {
  font-family: var(--font-display); font-weight: 700; font-size: 13px;
  letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.4);
}

/* ── LIGHT MODE ── */
body.light {
  --bg-dark:#F0F2F8; --bg-darker:#E8EAF4; --bg-section:#EEF0F8;
  --surface:#FFFFFF; --surface2:#F4F5FC;
  --text-inv:#131A2E; --text-muted:#4A5370; --text-faint:#7E899E;
  --border-dark:rgba(29,52,97,0.10);
}
body.light .nav { background:rgba(240,242,248,0.92); }
body.light .hero { background: radial-gradient(ellipse at 70% 50%, rgba(123,76,174,0.08) 0%, transparent 65%), radial-gradient(ellipse at 20% 80%, rgba(192,50,106,0.05) 0%, transparent 50%), #EEF0FA; }
body.light .hero h1 { color: #131A2E; }
body.light .section-header h2 { color: #131A2E; }
body.light .service-card h3, body.light .bento-card h3, body.light .pillar h3 { color: #131A2E; }
body.light .page-hero h1 { color: #131A2E; }
body.light .stat-val, body.light .stat-big-val { color: #131A2E; }
body.light footer { background: #1A2540; }
body.light .tci-name { color: #131A2E; }
body.light .team-contact-item { background: #fff; border-color: #E4E6F0; }
body.light .footer-col h4 { color: #fff; }
body.light .client-logo-img { filter: none; opacity: 0.65; }
body:not(.light) .client-logo-jpeg { filter: grayscale(1) brightness(1.2); opacity: 0.5; }
body:not(.light) .client-logo-color-png { filter: grayscale(1) brightness(1.4); opacity: 0.5; }
body.light .client-logo-item:hover .client-logo-img { opacity: 1; }
body.light .client-logo-text { color: rgba(29,52,97,0.5); }
body.light .team-card, body.light .value-card, body.light .bento-card, body.light .service-detail, body.light .faq-q, body.light .faq-a { background: #fff; }
body.light .value-card h3 { color: #131A2E; }
body.light .process-step h4 { color: #131A2E; }
body.light .sd-left h3 { color: #131A2E; }
body.light .team-card h3 { color: #131A2E; }
body.light .about-intro-vis { background: #fff; }
body.light .tl-year { color: var(--magenta); }
body.light .about-intro-text h2 { color: #131A2E; }
body.light #heroCanvas { filter: hue-rotate(0deg) brightness(0.9); }

/* ── THEME TOGGLE ── */
.theme-toggle {
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,0.08); border: 1px solid var(--border-dark);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background 0.15s;
  color: var(--text-muted);
}
.theme-toggle:hover { background: rgba(255,255,255,0.14); color: var(--text-inv); }
body.light .theme-toggle { background: rgba(0,0,0,0.06); }
body.light .theme-toggle:hover { background: rgba(0,0,0,0.1); }

/* ── SERVICES GRID ── */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.service-card {
  background:var(--surface); padding:40px 36px;
  border:1px solid var(--border-dark);
  transition:background 0.2s, transform 0.2s;
  position:relative; overflow:hidden; cursor:pointer;
}
.service-card:hover { background:var(--surface2); transform:translateY(-2px); }
.service-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--gradient); opacity:0; transition:opacity 0.2s;
}
.service-card:hover::before { opacity:1; }
.service-icon-wrap {
  width:48px; height:48px; border-radius:var(--r-lg);
  background:rgba(123,76,174,0.12); border:1px solid rgba(123,76,174,0.2);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:24px;
}
.service-icon-wrap svg { stroke:#9768C3; }
.service-card h3 {
  font-family:var(--font-display); font-weight:700; font-size:15px;
  letter-spacing:0.07em; text-transform:uppercase; color:#fff; margin-bottom:12px;
}
.service-card p { font-size:15px; line-height:1.7; color:var(--text-muted); }
.service-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:20px; }
.tag {
  font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--text-faint); background:rgba(255,255,255,0.04);
  border:1px solid var(--border-dark); padding:3px 10px; border-radius:var(--r-pill);
}

/* ── STATS BOWL ── */
.stats-section {
  padding:100px 80px 60px; background:var(--bg-darker);
  position:relative; overflow:hidden; text-align:center;
  display:flex; flex-direction:column; align-items:center;
}
.stats-heading { font-family:var(--font-display); font-size:clamp(22px,2.5vw,36px); font-weight:700; letter-spacing:0.04em; color:var(--text-inv); margin-bottom:0; }
.stats-heading em { font-style:normal; background:linear-gradient(135deg,#7B4CAE,#C0326A); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.bowl-wrap { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; padding-top:0; }
.bowl-wrap .stats-heading { position:relative; z-index:2; margin-bottom:60px; }
.bowl-svg { position:absolute; top:60px; left:50%; transform:translateX(-50%); width:min(900px,95vw); pointer-events:none; z-index:1; }
.stats-row { display:flex; justify-content:center; gap:80px; position:relative; z-index:2; }
.stat-big { text-align:center; }
.stat-big-val { font-family:var(--font-display); font-size:clamp(44px,5vw,72px); font-weight:700; color:#fff; letter-spacing:-0.02em; line-height:1; margin-bottom:12px; }
.stat-big-val span { background:var(--gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.stat-big-label { font-size:14px; color:var(--text-muted); letter-spacing:0.04em; }

/* ── BENTO / WHY ── */
.bento-grid { display:grid; grid-template-columns:1fr 1fr 1fr; grid-template-rows:auto auto; gap:16px; }
.bento-card {
  background:var(--surface); border:1px solid var(--border-dark);
  border-radius:var(--r-xl); padding:32px;
  transition:border-color 0.2s, box-shadow 0.2s;
}
.bento-card:hover { border-color:rgba(123,76,174,0.3); box-shadow:0 0 32px rgba(123,76,174,0.1); }
.bento-card.wide { grid-column:span 2; }
.bento-card.tall { grid-row:span 2; }
.bento-card-vis {
  height:140px; border-radius:var(--r-lg); margin-bottom:24px;
  background:var(--surface2); display:flex; align-items:center; justify-content:center;
  overflow:hidden; position:relative;
}
.bento-card h3 { font-family:var(--font-display); font-size:16px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#fff; margin-bottom:8px; }
.bento-card p { font-size:14px; line-height:1.65; color:var(--text-muted); }

/* ── PROCESS ── */
.process-steps { display:grid; grid-template-columns:repeat(5,1fr); gap:0; position:relative; }
.process-steps::before {
  content:''; position:absolute; top:28px; left:10%; right:10%;
  height:1px; background:linear-gradient(90deg,transparent,rgba(123,76,174,0.4),rgba(192,50,106,0.4),transparent);
}
.process-step { text-align:center; padding:0 16px; }
.step-num {
  width:56px; height:56px; border-radius:50%; margin:0 auto 20px;
  background:var(--surface); border:1px solid rgba(123,76,174,0.4);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:14px; font-weight:700; color:var(--purple);
  position:relative; z-index:1;
}
.process-step h4 { font-family:var(--font-display); font-size:13px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#fff; margin-bottom:8px; }
.process-step p { font-size:13px; line-height:1.6; color:var(--text-muted); }

/* ── TEAM ── */
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.team-grid-founders { grid-template-columns:repeat(3,1fr); }
.team-card {
  background:var(--surface); border:1px solid var(--border-dark);
  border-radius:var(--r-xl); padding:28px 24px;
  transition:border-color 0.2s, transform 0.2s;
}
.team-card:hover { border-color:rgba(192,50,106,0.3); transform:translateY(-3px); }
.team-avatar { overflow:hidden; }
.team-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.team-avatar {
  width:64px; height:64px; border-radius:50%; margin-bottom:16px;
  background:var(--gradient); display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:20px; font-weight:700; color:#fff;
}
.team-card h3 { font-family:var(--font-display); font-size:14px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#fff; margin-bottom:4px; }
.team-role { font-size:13px; color:var(--magenta); font-weight:700; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:12px; }
.team-card p { font-size:13px; line-height:1.65; color:var(--text-muted); }
.team-exp { display:inline-block; margin-top:12px; font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-faint); background:rgba(255,255,255,0.04); border:1px solid var(--border-dark); padding:3px 10px; border-radius:var(--r-pill); }

/* ── FAQ ── */
.faq-list { max-width:760px; margin:0 auto; }
.faq-item {
  border:1px solid var(--border-dark); border-radius:var(--r-xl); margin-bottom:8px;
  overflow:hidden; transition:border-color 0.2s;
}
.faq-item.open { border-color:rgba(123,76,174,0.3); }
.faq-q {
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 24px; cursor:pointer; user-select:none;
  font-size:15px; font-weight:700; color:var(--text-inv);
  background:var(--surface);
  transition:background 0.15s;
}
.faq-q:hover { background:var(--surface2); }
.faq-chevron { transition:transform 0.25s; color:var(--text-muted); flex-shrink:0; margin-left:16px; }
.faq-item.open .faq-chevron { transform:rotate(180deg); }
.faq-a { display:none; padding:0 24px 20px; font-size:15px; line-height:1.75; color:var(--text-muted); background:var(--surface); }
.faq-item.open .faq-a { display:block; }

/* ── CTA BANNER ── */
.cta-section {
  padding:96px 80px; text-align:center;
  background:radial-gradient(ellipse at center, rgba(123,76,174,0.2) 0%, transparent 70%), var(--bg-darker);
  position:relative; overflow:hidden;
}
.cta-section::before {
  content:''; position:absolute; inset:0;
  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.015'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.cta-section h2 { font-family:var(--font-display); font-size:clamp(28px,3.5vw,50px); font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:#fff; margin-bottom:16px; position:relative; }
.cta-section h2 em { font-style:normal; background:var(--gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.cta-section p { font-size:17px; font-weight:300; color:var(--text-muted); margin-bottom:40px; position:relative; }
.cta-actions { display:flex; gap:16px; align-items:center; justify-content:center; position:relative; }

/* ── CONTACT ── */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; max-width:1100px; margin:0 auto; }
.contact-form { }
.form-group { margin-bottom:20px; }
.form-group label { display:block; font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-faint); margin-bottom:8px; }
.form-group input, .form-group textarea, .form-group select {
  width:100%; background:var(--surface); border:1px solid var(--border-dark);
  border-radius:var(--r-lg); padding:13px 16px; font-family:var(--font-body); font-size:15px;
  color:var(--text-inv); outline:none; transition:border-color 0.15s, box-shadow 0.15s;
}
.form-group textarea { height:130px; resize:vertical; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus {
  border-color:rgba(123,76,174,0.5); box-shadow:0 0 0 3px rgba(123,76,174,0.1);
}
.form-group select option { background:var(--bg-darker); }
.contact-info { }
.contact-info-item { display:flex; gap:16px; align-items:flex-start; margin-bottom:32px; }
.ci-icon {
  width:44px; height:44px; border-radius:var(--r-lg); flex-shrink:0;
  background:rgba(192,50,106,0.12); border:1px solid rgba(192,50,106,0.2);
  display:flex; align-items:center; justify-content:center;
}
.ci-icon svg { stroke:#C0326A; }
.ci-label { font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-faint); margin-bottom:4px; }
.ci-val { font-size:15px; color:var(--text-inv); font-weight:300; }
.ci-val a { color:var(--text-inv); text-decoration:none; }
.ci-val a:hover { color:var(--magenta); }
.team-contacts { margin-top:40px; }
.team-contact-item { display:flex; gap:12px; align-items:center; margin-bottom:16px; padding:16px; background:var(--surface); border:1px solid var(--border-dark); border-radius:var(--r-lg); }
.tci-avatar { width:40px; height:40px; border-radius:50%; background:var(--gradient); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:13px; font-weight:700; color:#fff; flex-shrink:0; }
.tci-name { font-size:14px; font-weight:700; color:#fff; }
.tci-phone { font-size:13px; color:var(--text-muted); }

/* ── FOOTER ── */
footer {
  background:#050B14; padding:64px 80px 32px;
  border-top:1px solid var(--border-dark);
}
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px; }
.footer-logo img { height:28px; margin-bottom:16px; filter:brightness(2); }
.footer-tagline { font-size:15px; color:var(--text-faint); line-height:1.7; max-width:260px; margin-bottom:24px; }
.footer-col h4 { font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--text-inv); margin-bottom:16px; }
.footer-col a { display:block; font-size:14px; color:var(--text-faint); text-decoration:none; margin-bottom:10px; transition:color 0.15s; }
.footer-col a:hover { color:var(--text-inv); }
.footer-bottom { padding-top:24px; border-top:1px solid var(--border-dark); display:flex; justify-content:space-between; align-items:center; }
.footer-bottom p { font-size:12px; color:var(--text-faint); }
.footer-bottom-links { display:flex; gap:20px; }
.footer-bottom-links a { font-size:12px; color:var(--text-faint); text-decoration:none; transition:color 0.15s; }
.footer-bottom-links a:hover { color:var(--text-inv); }

/* ── SERVICES PAGE ── */
.page-hero { padding:80px 80px 60px; background:radial-gradient(ellipse at 60% 40%, rgba(29,52,97,0.4) 0%, transparent 70%), var(--bg-darker); }
.page-hero h1 { font-family:var(--font-display); font-weight:700; font-size:clamp(32px,4vw,58px); letter-spacing:0.05em; text-transform:uppercase; color:#fff; line-height:1.1; margin-bottom:16px; max-width:700px; }
.page-hero h1 em { font-style:normal; background:var(--gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.page-hero p { font-size:17px; font-weight:300; color:var(--text-muted); line-height:1.7; max-width:540px; }

.services-full { padding:80px 80px; }
.service-detail {
  display:grid; grid-template-columns:1fr 2fr; gap:48px;
  padding:48px; background:var(--surface); border:1px solid var(--border-dark);
  border-radius:var(--r-2xl); margin-bottom:24px;
  transition:border-color 0.2s, transform 0.2s;
}
.service-detail:hover { border-color:rgba(123,76,174,0.3); transform:translateY(-2px); }
.sd-left { }
.sd-icon {
  width:64px; height:64px; border-radius:var(--r-xl); margin-bottom:20px;
  background:linear-gradient(135deg,rgba(123,76,174,0.15),rgba(192,50,106,0.15));
  border:1px solid rgba(123,76,174,0.2);
  display:flex; align-items:center; justify-content:center;
}
.sd-icon svg { stroke:url(#grad1); }
.sd-num { font-family:var(--font-display); font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-faint); margin-bottom:8px; }
.sd-left h3 { font-family:var(--font-display); font-size:18px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:#fff; margin-bottom:8px; }
.sd-left .sd-sub { font-size:13px; color:var(--magenta); font-weight:700; letter-spacing:0.06em; text-transform:uppercase; }
.sd-right h4 { font-family:var(--font-display); font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-faint); margin-bottom:12px; }
.sd-right p { font-size:15px; line-height:1.75; color:var(--text-muted); margin-bottom:20px; }
.sd-bullets { list-style:none; }
.sd-bullets li { font-size:15px; color:var(--text-muted); padding:6px 0; display:flex; gap:10px; align-items:flex-start; border-bottom:1px solid var(--border-dark); }
.sd-bullets li:last-child { border:none; }
.sd-bullets li::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--gradient); flex-shrink:0; margin-top:7px; }

/* ── ABOUT PAGE ── */
.about-intro { display:grid; grid-template-columns:1fr 1fr; gap:80px; padding:80px 80px; align-items:center; }
.about-intro-text h2 { font-family:var(--font-display); font-weight:700; font-size:clamp(26px,3vw,42px); letter-spacing:0.05em; text-transform:uppercase; color:#fff; margin-bottom:20px; line-height:1.15; }
.about-intro-text h2 em { font-style:normal; background:var(--gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.about-intro-text p { font-size:15px; line-height:1.8; color:var(--text-muted); margin-bottom:16px; }
.about-intro-vis {
  background:var(--surface); border:1px solid var(--border-dark); border-radius:var(--r-2xl); padding:40px;
}
.timeline { }
.tl-item { display:flex; gap:20px; margin-bottom:32px; }
.tl-dot { width:12px; height:12px; border-radius:50%; background:var(--gradient); flex-shrink:0; margin-top:5px; }
.tl-line { position:relative; }
.tl-year { font-family:var(--font-display); font-size:12px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--magenta); margin-bottom:4px; }
.tl-text { font-size:15px; color:var(--text-muted); line-height:1.6; }

.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding:0 80px 80px; }
.value-card { background:var(--surface); border:1px solid var(--border-dark); border-radius:var(--r-xl); padding:32px; }
.value-icon { width:44px; height:44px; border-radius:var(--r-lg); background:rgba(123,76,174,0.12); border:1px solid rgba(123,76,174,0.2); display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.value-card h3 { font-family:var(--font-display); font-size:14px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#fff; margin-bottom:8px; }
.value-card p { font-size:14px; line-height:1.7; color:var(--text-muted); }

.clients-section { padding:80px; background:var(--bg-darker); }
.clients-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:48px; }
.client-card { background:var(--surface); border:1px solid var(--border-dark); border-radius:var(--r-xl); padding:24px; text-align:center; transition:border-color 0.2s; }
.client-card:hover { border-color:rgba(192,50,106,0.3); }
.client-card-name { font-family:var(--font-display); font-size:13px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:#fff; margin-bottom:6px; }
.client-card-desc { font-size:12px; color:var(--text-muted); }

/* ── ANIMATIONS ── */
@keyframes fadeInUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
.anim { opacity:0; animation:fadeInUp 0.6s ease-out forwards; }
.anim-d1 { animation-delay:0.1s; }
.anim-d2 { animation-delay:0.2s; }
.anim-d3 { animation-delay:0.3s; }
.anim-d4 { animation-delay:0.4s; }
.anim-d5 { animation-delay:0.5s; }

/* ── RESPONSIVE ── */
@media(max-width:1100px) {
  .hero { grid-template-columns:1fr; padding:60px 40px; }
  .hero-right { display:none; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .process-steps { grid-template-columns:repeat(3,1fr); gap:32px; }
  .process-steps::before { display:none; }
  .contact-grid { grid-template-columns:1fr; }
  .about-intro { grid-template-columns:1fr; }
  .service-detail { grid-template-columns:1fr; }
}
@media(max-width:720px) {
  .nav { padding:0 20px; }
  /* Mobile slide-down menu */
  .nav-toggle { display:flex; }
  /* Globe language switch lifted onto the bar, beside the hamburger */
  .nav-links .lang-switch { display:none !important; }
  .lang-switch-mobile {
    display:flex; align-items:center; margin-left:auto; margin-right:10px;
  }
  .nav.open .lang-switch-mobile { display:none; }
  .nav-links {
    position:fixed; top:72px; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:4px;
    background:rgba(7,14,24,0.97); backdrop-filter:blur(16px);
    border-bottom:1px solid var(--border-dark);
    padding:16px 20px 22px;
    transform:translateY(-14px); opacity:0; pointer-events:none;
    transition:opacity .25s ease, transform .25s ease;
    box-shadow:0 18px 44px rgba(0,0,0,0.45);
  }
  body.light .nav-links { background:rgba(240,242,248,0.97); }
  .nav.open .nav-links { transform:translateY(0); opacity:1; pointer-events:auto; }
  .nav-links a { display:block; font-size:16px; padding:14px 16px; border-radius:var(--r-md); }
  .nav-links a.active { background:rgba(255,255,255,0.08); color:var(--text-inv); }
  body.light .nav-links a.active { background:rgba(13,16,51,0.07); }
  .nav-links .theme-toggle { align-self:flex-start; margin-top:6px; }
  .nav-links .nav-cta { margin-top:10px; text-align:center; padding:15px 22px; font-size:14px; }
  /* Hero animation on mobile */
  .hero-right { display:flex; min-height:300px; height:300px; margin-top:8px; }
  /* Compact client logos */
  .client-logo-item { padding:0 18px; height:44px; }
  .client-logo-img { height:24px; width:84px; max-width:84px; }
  .marquee-track { animation-duration:24s; }
  .clients-label { margin-bottom:18px; }
  .services-grid { grid-template-columns:1fr; }
  /* Stack action buttons on mobile — all equal width (matching widest) */
  .hero-actions, .cta-actions { flex-direction:column; align-items:stretch; gap:12px; width:fit-content; }
  .cta-actions { margin-left:auto; margin-right:auto; }
  .hero-actions .btn-primary, .hero-actions .btn-ghost,
  .cta-actions .btn-primary, .cta-actions .btn-ghost { width:auto; text-align:center; }
  /* Process → vertical timeline on mobile */
  .process-steps { grid-template-columns:1fr; gap:0; position:relative; }
  .process-steps::before {
    display:block; content:'';
    position:absolute; top:28px; bottom:28px; left:27px; right:auto;
    width:2px; height:auto;
    background:linear-gradient(180deg,rgba(123,76,174,0.5),rgba(192,50,106,0.5));
  }
  .process-step { display:grid; grid-template-columns:56px 1fr; grid-template-rows:56px auto; column-gap:20px; text-align:left; padding:0 0 32px; align-items:start; }
  .process-step:last-child { padding-bottom:0; }
  .step-num { margin:0; grid-column:1; grid-row:1 / span 2; }
  .process-step h4 { grid-column:2; grid-row:1; align-self:center; margin:0; }
  .process-step p { grid-column:2; grid-row:2; font-size:14px; margin-top:10px; }
  .bento-grid { grid-template-columns:1fr; }
  .bento-card.wide { grid-column:span 1; }
  .stats-row { gap:40px; flex-wrap:wrap; }
  .clients-logos { gap:24px; }
  .values-grid { grid-template-columns:1fr; padding:0 20px 60px; }
  .clients-grid { grid-template-columns:repeat(2,1fr); }
  .team-grid { grid-template-columns:1fr; }
  .page-hero, .section, .hero, .services-full, .about-intro, .clients-section { padding-left:20px; padding-right:20px; }
  /* Compact service bullets so most fit one row */
  .sd-bullets li { font-size:12.5px; line-height:1.35; padding:5px 0; gap:8px; }
  .sd-bullets li::before { width:5px; height:5px; margin-top:5px; }
  footer { padding:48px 20px 24px; }
  .footer-grid { grid-template-columns:1fr; }
  .clients-strip { padding:32px 20px; }
  .cta-section { padding:64px 20px; }
  .stats-section { padding:64px 20px; }
}

/* direct-edit override */
#page-home .process-step span { font-size: 13px; }
