:root {
  --ink: #0a1016;
  --ink-2: #111a22;
  --ink-3: #202a32;
  --cream: #f2f0e9;
  --cream-2: #e8e5dc;
  --gold: #c6a36a;
  --gold-light: #e0c58e;
  --text: #1a1c1e;
  --muted: #73746f;
  --white: #f8f7f2;
  --line: rgba(198,163,106,.35);
  --serif: "Libre Baskerville", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --container: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: var(--cream); font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(var(--container), calc(100% - 100px)); margin-inline: auto; }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 50;
  height: 84px; color: var(--white);
  background: linear-gradient(180deg, rgba(4,8,12,.88), rgba(4,8,12,0));
  transition: .35s ease;
}
.site-header.scrolled { height: 74px; background: rgba(8,13,18,.96); backdrop-filter: blur(12px); }
.nav-wrap { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand img { width: 176px; height: auto; }
.main-nav { display: flex; align-items: center; gap: 34px; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.main-nav a { opacity: .9; transition: color .2s, opacity .2s; }
.main-nav a:hover { color: var(--gold-light); opacity: 1; }
.nav-cta, .button-gold { background: var(--gold); color: #0d1114 !important; padding: 14px 22px; }
.nav-cta:hover, .button-gold:hover { background: var(--gold-light); }

.menu-toggle { display: none; background: none; border: 0; padding: 8px; }
.menu-toggle span { display: block; width: 27px; height: 1px; background: white; margin: 6px; }

.hero {
  min-height: 780px; height: 100vh; max-height: 1000px; position: relative;
  display: flex; align-items: center; overflow: hidden; color: var(--white);
  background: #071018;
}
.hero-bg {
  position: absolute; inset: -7%; background:
    linear-gradient(90deg, rgba(3,8,13,.95) 0%, rgba(3,8,13,.75) 37%, rgba(3,8,13,.18) 78%, rgba(3,8,13,.45)),
    linear-gradient(0deg, rgba(3,8,13,.62), transparent 45%),
    url("../img/bg.png") center/cover;
  transform: translate3d(0,0,0) scale(1.04); will-change: transform;
}
.hero-lines {
  position: absolute; inset: 0; opacity: .14;
  background: repeating-radial-gradient(ellipse at -8% 45%, transparent 0 34px, rgba(198,163,106,.45) 35px 36px, transparent 37px 70px);
  mask-image: linear-gradient(90deg, black, transparent 65%);
}
.hero-content { position: relative; z-index: 2; padding-top: 70px; }
.eyebrow { color: var(--gold-light); text-transform: uppercase; letter-spacing: .16em; font-size: 10px; font-weight: 700; margin: 0 0 20px; }
.eyebrow.dark { color: #9d7c45; }
h1, h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; }
h1 { font-size: clamp(48px, 5.1vw, 78px); line-height: 1.06; margin: 0; max-width: 760px; }
h1 em { color: var(--gold-light); font-style: normal; }
.hero-copy { max-width: 430px; line-height: 1.65; font-size: 15px; color: rgba(248,247,242,.86); margin: 24px 0 30px; }
.hero-actions { display: flex; align-items: center; gap: 32px; }
.button { display: inline-block; text-transform: uppercase; font-size: 10px; letter-spacing: .12em; font-weight: 700; }
.text-link { display: inline-flex; gap: 12px; align-items: center; text-transform: uppercase; letter-spacing: .13em; font-size: 10px; font-weight: 700; border-bottom: 1px solid var(--gold); padding-bottom: 9px; }
.text-link span { color: var(--gold-light); font-size: 16px; }
.scroll-cue { position: absolute; bottom: 32px; left: 50%; width: 18px; height: 30px; transform: translateX(-50%); border: 1px solid rgba(255,255,255,.45); border-radius: 12px; }
.scroll-cue span { display: block; width: 2px; height: 6px; background: var(--gold); margin: 7px auto; animation: scroll 1.8s infinite; }
@keyframes scroll { 0%,100%{transform:translateY(0);opacity:.5} 50%{transform:translateY(8px);opacity:1} }

.strengths { background: #222a30; color: white; position: relative; }
.strength-grid { display: grid; grid-template-columns: repeat(4,1fr); padding: 35px 0; }
.strength { display: grid; grid-template-columns: 42px 1fr; gap: 12px; padding: 4px 28px; border-right: 1px solid rgba(255,255,255,.18); }
.strength:last-child { border-right: 0; }
.icon { color: var(--gold); font-size: 28px; line-height: 1; }
.strength span { color: var(--gold-light); text-transform: uppercase; letter-spacing: .12em; font-size: 10px; font-weight: 700; }
.strength p { margin: 7px 0 0; font-size: 11px; line-height: 1.5; color: rgba(255,255,255,.72); }

.light-section { background: var(--cream); }
.about { padding: 120px 0 115px; }
.split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 70px; }
h2 { font-size: clamp(36px,4vw,55px); line-height: 1.12; margin: 0 0 25px; }
.about p { max-width: 560px; color: #50514e; font-size: 14px; line-height: 1.75; }
.dark-link { color: var(--text); margin-top: 16px; }
.logo-feature { display: flex; justify-content: center; align-items: center; min-height: 320px; }
.logo-feature img { width: min(360px, 65%); filter: contrast(1.05); }

.dark-section { position: relative; overflow: hidden; background: var(--ink); color: var(--white); }
.dark-section::before {
  content:""; position:absolute; inset:0; opacity:.08; pointer-events:none;
  background: repeating-radial-gradient(ellipse at 8% 40%, transparent 0 35px, var(--gold) 36px 37px, transparent 38px 75px);
  mask-image: linear-gradient(90deg, black, transparent 80%);
}
.business { padding: 105px 0 110px; }
.section-intro { position: relative; z-index: 1; }
.section-intro h2 { margin-bottom: 55px; }
.cards { position: relative; z-index: 1; display: grid; }
.cards.four { grid-template-columns: repeat(4,1fr); }
.business-card { padding: 0 34px; border-right: 1px solid rgba(255,255,255,.16); }
.business-card:first-child { padding-left: 0; }
.business-card:last-child { border-right: 0; }
.line-icon { color: var(--gold); font-size: 29px; height: 48px; }
.business-card h3 { color: var(--gold-light); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; line-height: 1.35; margin: 0 0 15px; }
.business-card p { margin: 0; color: rgba(255,255,255,.7); font-size: 12px; line-height: 1.65; max-width: 220px; }

.markets { position: relative; min-height: 530px; overflow: hidden; }
.markets-image { position: absolute; inset: 0 0 0 48%; background: linear-gradient(90deg,var(--cream) 0%,rgba(242,240,233,.82) 20%,rgba(242,240,233,.15) 55%), url("https://images.unsplash.com/photo-1535320903710-d993d3d77d29?auto=format&fit=crop&w=1800&q=80") center/cover; }
.markets .container { position: relative; min-height: 530px; display: flex; align-items: center; }
.market-copy { max-width: 720px; }
.market-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 18px; margin-top: 40px; }
.market { text-align: center; min-width: 70px; }
.market span { display: block; font-size: 29px; color: #7f827d; margin-bottom: 15px; }
.market strong { display: block; text-transform: uppercase; font-size: 8px; line-height: 1.45; letter-spacing: .08em; }

.approach { padding: 105px 0 120px; }
.process { display: grid; grid-template-columns: repeat(7,1fr); position: relative; }
.process::before { content:""; position:absolute; top:20px; left:5%; right:5%; height:1px; background:#b8b4a9; }
.process article { position: relative; padding: 0 10px; text-align: center; }
.process b { display:grid; place-items:center; margin:0 auto 25px; width:40px; height:40px; border-radius:50%; background:var(--ink); color:var(--gold-light); font-size:10px; }
.process h3 { text-transform:uppercase; font-size:9px; letter-spacing:.08em; margin:0 0 12px; }
.process p { font-size:10px; line-height:1.55; color:#747570; margin:0; }

.compliance { padding: 100px 0 110px; }
.center-intro { position: relative; z-index:1; text-align:center; max-width:650px; margin:0 auto 60px; }
.center-intro h2 { margin-bottom: 14px; }
.center-intro > p:last-child { color:rgba(255,255,255,.68); font-size:13px; line-height:1.6; }

.contact { padding: 90px 0; }
.contact-grid { display:grid; grid-template-columns: 1fr 2fr; gap:70px; align-items:center; }
.contact-intro h2 { margin-bottom: 30px; }
.offices { display:grid; grid-template-columns:repeat(4,1fr); }
.offices article { padding:0 25px; border-left:1px solid #c7c4ba; }
.offices h3 { text-transform:uppercase; font-size:10px; letter-spacing:.1em; margin:0 0 20px; }
.offices p, .offices a { display:block; color:#686963; font-size:11px; line-height:1.7; }
.offices a:hover { color:#9d7c45; }

.site-footer { background:#080e14; color:rgba(255,255,255,.7); padding:70px 0 55px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:60px; }
.footer-brand img { width:180px; margin-bottom:20px; }
.footer-brand p { color:rgba(255,255,255,.45); font-size:11px; line-height:1.7; }
.site-footer h3 { color:var(--gold-light); font-size:9px; text-transform:uppercase; letter-spacing:.13em; margin:0 0 20px; }
.site-footer a, .site-footer p { display:block; font-size:10px; line-height:2; color:rgba(255,255,255,.62); }
.site-footer a:hover { color:white; }
.site-footer small { display:block; margin-top:18px; color:rgba(255,255,255,.35); font-size:9px; line-height:1.5; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 1050px) {
  .container { width:min(var(--container), calc(100% - 50px)); }
  .main-nav { gap:18px; }
  .cards.four { grid-template-columns:repeat(2,1fr); gap:45px 0; }
  .business-card:nth-child(2) { border-right:0; }
  .business-card:nth-child(3) { padding-left:0; }
  .market-grid { grid-template-columns:repeat(4,1fr); }
  .process { grid-template-columns:repeat(4,1fr); gap:35px 0; }
  .process::before { display:none; }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 780px) {
  .container { width:calc(100% - 36px); }
  .site-header { height:70px; }
  .brand img { width:145px; }
  .menu-toggle { display:block; }
  .main-nav {
    position:absolute; top:70px; left:0; right:0; display:none; flex-direction:column; align-items:stretch;
    padding:20px 18px 25px; gap:0; background:rgba(8,13,18,.98); backdrop-filter:blur(15px);
  }
  .main-nav.open { display:flex; }
  .main-nav a { padding:13px 5px; }
  .nav-cta { text-align:center; margin-top:8px; }
  .hero { min-height:720px; }
  .hero-content { padding-top:30px; }
  h1 { font-size:clamp(42px,12vw,62px); }
  .strength-grid { grid-template-columns:1fr 1fr; padding:15px 0; }
  .strength { padding:20px 10px; }
  .strength:nth-child(2) { border-right:0; }
  .strength:nth-child(3), .strength:nth-child(4) { border-top:1px solid rgba(255,255,255,.18); }
  .split, .contact-grid { grid-template-columns:1fr; gap:45px; }
  .about { padding:80px 0; }
  .logo-feature { min-height:180px; }
  .logo-feature img { width:190px; }
  .business, .approach, .compliance { padding:80px 0; }
  .cards.four { grid-template-columns:1fr; gap:35px; }
  .business-card, .business-card:nth-child(2) { border-right:0; padding:0 0 35px; border-bottom:1px solid rgba(255,255,255,.16); }
  .business-card:last-child { border-bottom:0; padding-bottom:0; }
  .markets { min-height:700px; }
  .markets-image { inset:48% 0 0; background:linear-gradient(0deg,rgba(242,240,233,.1),rgba(242,240,233,.1)),url("https://images.unsplash.com/photo-1535320903710-d993d3d77d29?auto=format&fit=crop&w=1800&q=80") center/cover; }
  .markets .container { min-height:700px; align-items:flex-start; padding-top:80px; }
  .market-grid { grid-template-columns:repeat(2,1fr); gap:30px 15px; }
  .process { grid-template-columns:1fr 1fr; }
  .offices { grid-template-columns:1fr 1fr; gap:35px 0; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:40px 25px; }
}

@media (max-width: 480px) {
  .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }
  .strength-grid { grid-template-columns:1fr; }
  .strength { border-right:0 !important; border-top:1px solid rgba(255,255,255,.18); }
  .strength:first-child { border-top:0; }
  .process, .offices, .footer-grid { grid-template-columns:1fr; }
  .footer-grid { gap:32px; }
}