:root {
  --bg: #fffaf3;
  --ink: #1f2430;
  --muted: #6a6f7b;
  --accent: #e8590c;
  --accent-2: #0b7285;
  --card: #ffffff;
  --line: #eadfce;
  --radius: 16px;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#14161c; --ink:#f2efe9; --muted:#a2a7b3; --card:#1d2029; --line:#2c303b; --accent:#ff8a4c; --accent-2:#3bc9db; }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: "Segoe UI", system-ui, -apple-system, sans-serif; background:var(--bg); color:var(--ink); line-height:1.6; }
a { color: var(--accent-2); }
img { max-width:100%; display:block; }
.wrap { max-width: 1080px; margin: 0 auto; padding: 0 20px; }

header.site { position:sticky; top:0; z-index:10; background:color-mix(in srgb, var(--bg) 90%, transparent); backdrop-filter: blur(8px); border-bottom:1px solid var(--line); }
header.site .wrap { display:flex; align-items:center; justify-content:space-between; height:64px; }
.logo { font-weight:800; font-size:1.2rem; text-decoration:none; color:var(--ink); letter-spacing:-.02em; }
.logo span { color:var(--accent); }
nav { display:flex; gap:20px; align-items:center; }
nav a { text-decoration:none; color:var(--muted); font-weight:600; font-size:.95rem; }
nav a:hover, nav a.active { color:var(--ink); }
nav a.cta { background:var(--accent); color:#fff; padding:8px 16px; border-radius:999px; }

.hero { padding: 90px 0 70px; text-align:center; background: radial-gradient(1200px 400px at 50% -10%, color-mix(in srgb, var(--accent) 22%, transparent), transparent); }
.hero h1 { font-size: clamp(2.2rem, 6vw, 4rem); line-height:1.1; letter-spacing:-.03em; margin:0 0 18px; }
.hero h1 em { font-style:normal; color:var(--accent); }
.hero p { max-width:600px; margin:0 auto 28px; font-size:1.15rem; color:var(--muted); }
.btn { display:inline-block; background:var(--accent); color:#fff; padding:13px 26px; border-radius:999px; font-weight:700; text-decoration:none; border:0; cursor:pointer; font-size:1rem; }
.btn.ghost { background:transparent; color:var(--ink); border:2px solid var(--line); margin-left:8px; }
.btn:hover { filter:brightness(1.08); }

section { padding: 56px 0; }
h2 { font-size:1.9rem; letter-spacing:-.02em; margin:0 0 8px; }
.sub { color:var(--muted); margin:0 0 28px; }

.grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap:22px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition: transform .15s, box-shadow .15s; }
.card:hover { transform: translateY(-3px); box-shadow:0 10px 30px rgba(0,0,0,.08); }
.card .cover { height:150px; display:flex; align-items:flex-end; padding:14px; color:#fff; font-size:2.4rem; }
.card .body { padding:18px 20px 22px; display:flex; flex-direction:column; gap:8px; flex:1; }
.card h3 { margin:0; font-size:1.2rem; }
.meta { font-size:.85rem; color:var(--muted); }
.tag { display:inline-block; font-size:.75rem; font-weight:700; padding:3px 10px; border-radius:999px; background:color-mix(in srgb, var(--accent-2) 15%, transparent); color:var(--accent-2); margin-right:6px; }
.card button.more { margin-top:auto; align-self:flex-start; background:none; border:0; color:var(--accent); font-weight:700; cursor:pointer; padding:0; font-size:.95rem; }

.filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; }
.filters button { border:1px solid var(--line); background:var(--card); color:var(--ink); padding:7px 16px; border-radius:999px; cursor:pointer; font-weight:600; }
.filters button.on { background:var(--ink); color:var(--bg); border-color:var(--ink); }

.steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:22px; }
.step { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.step .n { font-size:2rem; }
.band { background: var(--ink); color: var(--bg); text-align:center; border-radius:24px; padding:50px 24px; }
.band p { opacity:.8; max-width:520px; margin:0 auto 22px; }

form { display:grid; gap:16px; max-width:640px; }
label { font-weight:600; display:grid; gap:6px; font-size:.95rem; }
input, select, textarea { font:inherit; padding:12px 14px; border-radius:12px; border:1px solid var(--line); background:var(--card); color:var(--ink); }
input:focus, select:focus, textarea:focus { outline:2px solid var(--accent); border-color:transparent; }
textarea { min-height:200px; resize:vertical; }
.row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.note { font-size:.85rem; color:var(--muted); }
.ok { background:color-mix(in srgb, var(--accent-2) 15%, transparent); padding:14px 18px; border-radius:12px; display:none; }

dialog { border:0; border-radius:20px; max-width:640px; width:calc(100% - 32px); padding:0; background:var(--card); color:var(--ink); }
dialog::backdrop { background:rgba(0,0,0,.55); }
dialog .cover { padding:26px; font-size:3rem; color:#fff; }
dialog .inner { padding:6px 28px 28px; }
dialog .close { float:right; margin:14px; background:rgba(0,0,0,.35); color:#fff; border:0; width:34px; height:34px; border-radius:50%; cursor:pointer; font-size:1.1rem; }

footer { border-top:1px solid var(--line); padding:34px 0; color:var(--muted); font-size:.9rem; text-align:center; margin-top:40px; }

@media (max-width:640px) {
  nav { gap:12px; } nav a { font-size:.85rem; }
  .row { grid-template-columns:1fr; }
  .btn.ghost { margin:10px 0 0; }
}
