:root{
  --ink:#10231f;
  --teal:#0e4b43;
  --teal-2:#12615a;
  --amber:#e0a458;
  --amber-2:#c98a3c;
  --muted:#5a6b67;
  --line:#e2e9e6;
  --bg:#f6f9f8;
  --tint:#eef6f4;
  --white:#ffffff;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}

.topbar{
  background:var(--ink); color:rgba(255,255,255,.7); font-size:12.5px;
  text-align:center; padding:8px 0;
}
.topbar b{color:var(--amber);}

header{
  position:sticky; top:0; z-index:50;
  background:var(--white);
  border-bottom:1px solid var(--line);
}
header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.logo{
  display:flex; align-items:center; gap:10px;
  font-size:20px; font-weight:800; color:var(--teal); letter-spacing:.2px;
}
.logo .mark{
  width:34px; height:34px; border-radius:50%;
  background:linear-gradient(135deg, var(--teal), var(--teal-2));
  display:flex; align-items:center; justify-content:center;
  color:var(--white); font-weight:800; font-size:15px;
}
nav{display:flex; gap:32px;}
nav a{color:var(--ink); font-size:14px; font-weight:600; opacity:.7; position:relative; padding:4px 0;}
nav a::after{content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--amber); transition:right .2s ease;}
nav a:hover{opacity:1;}
nav a:hover::after{right:0;}
.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--teal); color:var(--white); padding:10px 16px; border-radius:0 0 8px 0; z-index:100;
  font-size:14px; font-weight:600;
}
.skip-link:focus{left:0; top:0;}
.nav-toggle{
  display:none; width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
  background:var(--white); align-items:center; justify-content:center; cursor:pointer;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:18px; height:2px; background:var(--ink); position:relative; transition:transform .2s, opacity .2s;
}
.nav-toggle span::before{position:absolute; top:-6px;}
.nav-toggle span::after{position:absolute; top:6px;}
.nav-toggle[aria-expanded="true"] span{opacity:0;}
.nav-toggle[aria-expanded="true"] span::before{top:0; transform:rotate(45deg);}
.nav-toggle[aria-expanded="true"] span::after{top:0; transform:rotate(-45deg);}

.btn{
  display:inline-block; padding:12px 26px; border-radius:100px;
  font-size:14px; font-weight:700; border:1px solid transparent; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn-primary{background:var(--amber); color:var(--ink); box-shadow:0 14px 28px -14px rgba(224,164,88,.7);}
.btn-primary:hover{background:var(--amber-2); transform:translateY(-2px); box-shadow:0 18px 32px -14px rgba(224,164,88,.8);}
.btn-ghost{border-color:var(--teal); color:var(--teal);}
.btn-ghost:hover{background:var(--teal); color:var(--white);}

.hero{padding:100px 0 96px; background:radial-gradient(900px 420px at 15% -10%, var(--tint), var(--bg));}
.hero .grid{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;}
.eyebrow{
  display:inline-block; color:var(--teal); font-size:12.5px; font-weight:800;
  letter-spacing:1px; text-transform:uppercase; background:var(--white);
  padding:7px 14px; border-radius:100px; margin-bottom:22px;
  border:1px solid rgba(14,75,67,.15);
}
.hero h1{font-size:46px; font-weight:800; line-height:1.12; margin-bottom:20px; letter-spacing:-.5px;}
.hero p{font-size:17.5px; color:var(--muted); max-width:520px; margin-bottom:32px;}
.cta{display:flex; gap:14px; margin-bottom:28px;}
.trust{font-size:13px; color:var(--muted); display:flex; align-items:center; gap:8px;}
.trust::before{content:"●"; color:var(--amber); font-size:10px;}

/* Stat tiles — Bylion's signature "at a glance" component: a bright tile grid, */
/* deliberately unlike Finblok's ruled ledger table, for visual differentiation. */
.stat-tiles{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.tile{
  background:var(--white); border-radius:18px; padding:20px 18px;
  box-shadow:0 20px 40px -30px rgba(14,75,67,.35);
  border-top:3px solid var(--teal);
}
.tile.tile-amber{border-top-color:var(--amber);}
.tile-v{font-size:19px; font-weight:800; color:var(--teal); margin-bottom:4px; line-height:1.25;}
.tile.tile-amber .tile-v{color:var(--amber-2);}
.tile-l{font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; font-weight:700;}
.tiles-card{
  background:transparent; padding:0;
}
.tiles-card > .tiles-head{
  display:flex; align-items:center; gap:10px; margin-bottom:16px;
}
.tiles-card .tiles-head .dot{width:10px; height:10px; border-radius:50%; background:var(--amber);}
.tiles-card .tiles-head b{font-size:13px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted);}

section{padding:88px 0;}
.section-head{max-width:600px; margin:0 auto 52px; text-align:center;}
.eyebrow-c{
  display:inline-block; color:var(--teal); font-size:12.5px; font-weight:800;
  letter-spacing:1px; text-transform:uppercase; margin-bottom:14px;
  background:rgba(14,75,67,.08); padding:6px 12px; border-radius:100px;
}
h2{font-size:32px; font-weight:800; margin-bottom:14px; letter-spacing:-.3px;}
.lead{color:var(--muted); font-size:16px;}

.services{background:var(--tint);}
.s-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.s-card{background:var(--white); border:1px solid var(--line); border-radius:22px; padding:30px; position:relative; overflow:hidden; transition:box-shadow .2s, transform .2s;}
.s-card::before{content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg, var(--teal), var(--amber)); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;}
.s-card:hover{box-shadow:0 26px 50px -30px rgba(14,75,67,.35); transform:translateY(-4px);}
.s-card:hover::before{transform:scaleX(1);}
.s-ic{
  width:44px; height:44px; border-radius:50%; background:rgba(14,75,67,.08);
  color:var(--teal); display:flex; align-items:center; justify-content:center;
  font-weight:800; margin-bottom:18px; font-size:16px;
}
.s-card h3{font-size:18px; margin-bottom:8px; color:var(--teal);}
.s-card p{font-size:14.5px; color:var(--muted);}
.s-card .ex{margin-top:16px; padding-top:14px; border-top:1px dashed var(--line); font-size:12.5px; color:var(--muted); line-height:1.7;}
.s-card .ex b{color:var(--teal); display:block; margin-bottom:4px; font-size:11px; text-transform:uppercase; letter-spacing:.5px;}

.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.about-grid h2{text-align:left;}
.about-list{list-style:none; margin-top:26px;}
.about-list li{
  display:flex; gap:12px; padding:10px 0; font-size:15px; color:var(--ink);
}
.about-list li::before{content:"✓"; color:var(--teal); font-weight:800;}
.panel{
  background:var(--white); border-radius:22px; padding:36px;
  box-shadow:0 24px 46px -30px rgba(14,75,67,.3);
  border:1px solid var(--line);
}
.panel .tag{
  display:inline-block; font-size:11px; font-weight:700; letter-spacing:.6px;
  text-transform:uppercase; color:var(--amber-2); background:rgba(224,164,88,.15);
  padding:5px 10px; border-radius:100px; margin-bottom:16px;
}
.panel p{color:var(--muted); font-size:15px;}

.contact-grid{display:grid; grid-template-columns:.85fr 1fr; gap:40px; align-items:start;}
.field{margin-bottom:16px;}
.field label{display:block; font-size:13px; font-weight:700; color:var(--ink); margin-bottom:6px;}
.field input, .field textarea{
  width:100%; border:1px solid var(--line); border-radius:12px; padding:11px 14px;
  font-size:14px; font-family:inherit; color:var(--ink); background:var(--white);
}
.field input:focus, .field textarea:focus{outline:2px solid var(--teal-2); outline-offset:1px;}
.field textarea{resize:vertical; min-height:110px;}
.visually-hidden{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.form-note{font-size:12.5px; color:var(--muted); margin-top:10px; display:flex; align-items:center; gap:6px;}
.form-note::before{content:"✓"; color:var(--teal); font-weight:800;}

.cta-band{background:var(--teal); color:var(--white); text-align:center; padding:80px 0; position:relative; overflow:hidden;}
.cta-band::before{content:""; position:absolute; inset:0; background:radial-gradient(500px 260px at 85% 0%, rgba(224,164,88,.25), transparent);}
.cta-band .wrap{position:relative;}
.cta-band h2{color:var(--white);}
.cta-band p{color:rgba(255,255,255,.78); max-width:520px; margin:0 auto 30px;}
.cta-band .btn-primary{background:var(--amber); color:var(--ink);}
.cta-band .btn-primary:hover{background:#eab674;}

footer{background:var(--ink); color:rgba(255,255,255,.6); padding:48px 0 32px; font-size:13.5px;}
.foot-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-bottom:28px;}
.foot-col b{color:var(--white); display:block; margin-bottom:10px; font-size:14px;}
.foot-col div{margin-bottom:6px;}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

.legal{padding:64px 0 96px;}
.legal .wrap{max-width:760px;}
.legal h1{font-size:34px; margin-bottom:6px;}
.legal .updated{color:var(--muted); font-size:13.5px; margin-bottom:40px; display:block;}
.legal h2{font-size:20px; margin-top:36px; margin-bottom:10px;}
.legal p, .legal li{color:var(--muted); font-size:15px; margin-bottom:12px;}
.legal ul, .legal ol{padding-left:22px; margin-bottom:16px;}
.legal strong{color:var(--ink);}
.legal a{color:var(--teal); text-decoration:underline;}

.thanks{padding:140px 0; text-align:center;}
.thanks .mark-ok{
  width:64px; height:64px; border-radius:50%; background:rgba(14,75,67,.08); color:var(--teal);
  display:flex; align-items:center; justify-content:center; font-size:28px; font-weight:800;
  margin:0 auto 24px;
}
.thanks p{color:var(--muted); font-size:16px; max-width:440px; margin:0 auto 28px;}

@media (max-width:820px){
  nav{
    display:none; position:absolute; top:76px; left:0; right:0; background:var(--white);
    border-bottom:1px solid var(--line); flex-direction:column; gap:0; padding:8px 0;
    box-shadow:0 20px 30px -25px rgba(14,75,67,.3);
  }
  nav.open{display:flex;}
  nav a{padding:14px 32px; width:100%;}
  nav a:hover{background:var(--bg);}
  .nav-toggle{display:flex;}
  .hero .grid, .about-grid, .s-grid, .contact-grid{grid-template-columns:1fr;}
  .hero h1{font-size:32px;}
  .stat-tiles{grid-template-columns:1fr 1fr;}
}

.reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
}
