:root{
  --ink:#101418;
  --ink-2:#3a4250;
  --line:#e6e8ec;
  --bg:#fff;
  --bg-2:#f6f7f9;
  --accent:#0f4c81;
  --accent-2:#b86b00;
  --ok:#1d7a3a;
  --warn:#a64b00;
  --err:#a01a1a;
  --radius:10px;
  --shadow:0 2px 14px rgba(15,28,55,.07);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* Header */
.hdr{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:700;font-size:1.05rem}
.brand:hover{text-decoration:none}
.brand__mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:8px;background:var(--ink);color:#fff;
  font-weight:800;letter-spacing:.5px;font-size:.85rem;
}
.brand__txt em{color:var(--accent);font-style:normal;font-weight:600}
.nav a{color:var(--ink-2);margin-left:22px;font-size:.95rem}
.nav a:hover{color:var(--ink)}

/* Hero */
.hero{
  padding:64px 0 48px;
  background:linear-gradient(180deg,#fbfcfd 0%,#fff 100%);
  border-bottom:1px solid var(--line);
}
.hero h1{font-size:2.6rem;line-height:1.15;margin:0 0 14px;letter-spacing:-.01em}
.hero .lede{font-size:1.15rem;color:var(--ink-2);max-width:780px;margin:0 0 24px}
.btn{
  display:inline-block;padding:12px 22px;border-radius:8px;
  font-weight:600;font-size:.98rem;border:1px solid transparent;
  cursor:pointer;
}
.btn--primary{background:var(--accent);color:#fff}
.btn--primary:hover{background:#0d3e69;text-decoration:none}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--ink-2)}

/* Catalog */
.catalog{padding:56px 0}
.catalog h2,.how h2,.about h2{font-size:1.6rem;margin:0 0 24px;letter-spacing:-.01em}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;transition:transform .12s, box-shadow .12s;
  color:var(--ink);text-decoration:none;
}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);text-decoration:none}
.card--link{cursor:pointer}
.card--link:hover .card__cta{text-decoration:underline}
.card--link:hover .card__title{color:var(--accent)}
.card--soon{cursor:default;opacity:.85}
.card__hero{
  height:120px;color:#fff;padding:18px;display:flex;align-items:flex-end;
  font-weight:700;letter-spacing:.02em;font-size:.85rem;text-transform:uppercase;
}
.card__body{padding:18px;display:flex;flex-direction:column;flex:1}
.card__title{margin:0 0 6px;font-size:1.15rem;line-height:1.3}
.card__title a{color:var(--ink)}
.card__title a:hover{color:var(--accent);text-decoration:none}
.card__meta{font-size:.85rem;color:var(--ink-2);margin-bottom:10px}
.card__summary{font-size:.95rem;color:var(--ink-2);margin:0 0 14px;flex:1}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.tag{
  font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  padding:3px 8px;border-radius:999px;background:var(--bg-2);color:var(--ink-2);
}
.card__cta{
  font-size:.92rem;font-weight:600;color:var(--accent);
}
.card--soon .card__cta{color:var(--ink-2)}
.badge--soon{
  position:absolute;top:12px;right:12px;font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;
  background:rgba(255,255,255,.92);color:var(--ink);padding:3px 8px;border-radius:999px;
}
.card{position:relative}

/* How */
.how{background:var(--bg-2);padding:56px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps{margin:0;padding:0 0 0 1.2em;display:grid;grid-template-columns:1fr 1fr;gap:14px 36px}
.steps li{margin:0;color:var(--ink-2)}
.steps strong{color:var(--ink)}

/* Codes */
.codes{padding:56px 0;border-top:1px solid var(--line)}
.codes__intro{color:var(--ink-2);max-width:880px;margin:0 0 28px;font-size:1rem}
.codes__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px;
}
.codes__col{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 22px 16px;
}
.codes__col h3{
  margin:0 0 14px;font-size:1.05rem;color:var(--ink);
  padding-bottom:10px;border-bottom:2px solid var(--accent);
  display:inline-block;
}
.codes__list{list-style:none;padding:0;margin:0}
.codes__list li{
  padding:14px 0;border-bottom:1px solid var(--line);
}
.codes__list li:last-child{border-bottom:none}
.codes__list strong{display:block;color:var(--ink);font-size:.98rem;margin-bottom:2px}
.codes__list em{
  display:block;color:var(--accent);font-style:normal;font-weight:600;
  font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;
}
.codes__list span{display:block;color:var(--ink-2);font-size:.9rem;line-height:1.5}
.codes__note{
  margin:24px 0 0;padding:14px 18px;background:var(--bg-2);border-radius:8px;
  color:var(--ink-2);font-size:.88rem;border-left:3px solid var(--accent-2);
}

/* About */
.about{padding:48px 0}
.about p{font-size:1.05rem;color:var(--ink-2);max-width:780px;margin:0}

/* Footer */
.ftr{border-top:1px solid var(--line);padding:24px 0;background:#fff}
.ftr p{margin:0;color:var(--ink-2);font-size:.85rem}

@media (max-width:680px){
  .hero h1{font-size:2rem}
  .nav a{margin-left:14px;font-size:.9rem}
  .steps{grid-template-columns:1fr}
}
