/* soupstore.dev landing page. Colors and fonts come from /brand/tokens.css. */
* { box-sizing: border-box; }
body {
	margin: 0;
	background: var(--ss-bg);
	color: var(--ss-ink);
	font: 17px/1.6 var(--ss-font-body);
}
a { color: var(--ss-link); }
:focus-visible { outline: 3px solid var(--ss-green-light); outline-offset: 2px; }
h1, h2, h3 { font-family: var(--ss-font); line-height: 1.15; }
.muted { color: var(--ss-muted); }

/* Hero */
.hero {
	/* dark → main green keeps white text at 4.2–6.2:1 contrast; light green is the accent */
	background: linear-gradient(135deg, var(--ss-green-dark) 0%, var(--ss-green) 100%);
	border-bottom: 6px solid var(--ss-green-light);
	color: var(--ss-white);
}
.hero__inner {
	max-width: 1000px; margin: 0 auto; padding: 48px 16px;
	display: flex; align-items: center; gap: 32px; flex-wrap: wrap; justify-content: center;
}
.hero__logo { width: min(220px, 55vw); height: auto; filter: drop-shadow(0 6px 16px rgb(0 0 0 / 0.25)); }
.hero__text { flex: 1 1 360px; max-width: 560px; }
.hero h1 { font-weight: 800; font-size: clamp(2.6rem, 1.8rem + 4vw, 4.2rem); margin: 0; text-shadow: 0 2px 8px rgb(0 0 0 / 0.2); }
.hero__tagline { font-size: 1.2rem; margin: 12px 0 24px; text-shadow: 0 1px 4px rgb(0 0 0 / 0.25); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.button {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px; padding: 10px 22px; border-radius: 999px;
	font-family: var(--ss-font); font-weight: 800; text-decoration: none;
}
.button--primary { background: var(--ss-white); color: var(--ss-green-dark); }
.button--primary:hover { background: #eef5f2; }
.button--secondary { color: var(--ss-white); border: 2px solid var(--ss-white); }
.button--secondary:hover { background: rgb(255 255 255 / 0.15); }

/* Sections */
main { max-width: 820px; margin: 0 auto; padding: 16px 16px 48px; }
.section { margin-top: 40px; }
.section h2 { font-weight: 800; font-size: 1.7rem; margin: 0 0 16px; color: var(--ss-ink); }
.section h2::after {
	content: ""; display: block; width: 56px; height: 4px; margin-top: 8px;
	border-radius: 2px; background: var(--ss-green-light);
}
.steps { padding-left: 1.3em; }
.steps li { margin-bottom: 10px; }
.facts { padding-left: 1.2em; }
.facts li { margin-bottom: 6px; }

/* News */
.news { display: grid; gap: 12px; }
.news-post {
	background: var(--ss-surface); border: 1px solid var(--ss-border); border-radius: var(--ss-radius);
	padding: 16px 20px;
}
.news-post h3 { font-weight: 800; font-size: 1.15rem; margin: 0 0 6px; }
.news-post__meta { margin: 8px 0 0; font-size: 0.9rem; color: var(--ss-muted); }
.news-post > :nth-child(2) { margin-top: 0; }

/* Banlist */
.banlist {
	margin-top: 20px; background: var(--ss-surface); border: 1px solid var(--ss-border);
	border-radius: var(--ss-radius); padding: 4px 20px;
}
.banlist summary { cursor: pointer; font-family: var(--ss-font); font-weight: 600; padding: 12px 0; }
.banlist h3 { font-size: 1rem; font-weight: 800; margin: 16px 0 4px; }

.footer {
	border-top: 1px solid var(--ss-border); color: var(--ss-muted);
	text-align: center; font-size: 0.9rem; padding: 20px 16px;
}
.footer p { margin: 0; }
