@import url('fonts.css');

/* ===== Reset & Base ===== */
*, *::before, *::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

:root {
	--black: #000;
	--white: #fff;
	--green: #7cbb5a;
	--green-dark: #12210c;
	--green-light: #7aa57a;
	--green-extra-light: #a8c5a8;
	--green-tint: #d8e4d8;
	--green-hero: #1f3e1f;
	--green-border: #314931;
	--green-button-bg: #1d2a1d;
	--red: #fb4b4b;

	--error: var(--red);
	--desc: var(--green-extra-light);
	--text: var(--green-tint);
	--heroGradient: var(--green-hero);
	--border: var(--green-border);
	--secondary-bg: var(--green-button-bg);
	--secondary-hover-text: #83a47e;
	--secondary-hover-bg: #364833;
	--secondary-hover-border: #597755;
	--primary-hover-text: #15210e;
	--primary-hover-bg: #acd596;
	--primary: var(--green);
	--primary-dark: var(--green-dark);
	--primary-light: var(--green-light);
	--shadow-light: var(--white);
	--dark: #081208;

	--dark-rgb: 8, 18, 8;
	--text-rgb: 216, 228, 216;

	--font-heading: 'Montserrat', sans-serif;
	--font-body: 'Roboto', sans-serif;
}

/* Animations — only when JS is active and motion is allowed */
@media (prefers-reduced-motion: no-preference) {
	@keyframes fadeIn {
		from { opacity: 0; }
		to { opacity: 1; }
	}

	@keyframes slideUp {
		from { opacity: 0; transform: translateY(10px); }
		to { opacity: 1; transform: translateY(0); }
	}

	body.js .header {
		animation: fadeIn 1.5s ease;
	}

	body.js .hero,
	body.js .four04 {
		animation: slideUp 1.5s ease;
	}

	body.js .reveal {
		opacity: 0;
		transform: translateY(20px);
		transition: opacity 0.8s ease, transform 0.8s ease;
	}

	body.js .reveal.visible {
		opacity: 1;
		transform: translateY(0);
	}
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-h, 0px);
}

body {
	font-family: var(--font-body);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.4;
	background-color: var(--dark);
	color: var(--text);
	-webkit-font-smoothing: antialiased;
	min-height: 100dvh;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

h1, h2, h3, h4 {
	font-family: var(--font-heading);
}

.container {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 24px;
}

a {
	text-decoration: none;
	color: inherit;
}

img {
	max-width: 100%;
	display: block;
}

.section-title {
	text-align: center;
	font-size: 64px;
	line-height: 68px;
	letter-spacing: -1.28px;
	font-weight: 700;
	max-width: 90%;
	margin-right: auto;
	margin-left: auto;
}

/* ===== Header ===== */
.header {
	position: sticky;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding: 24px 8px;
}

.header-inner {
	transition: all 0.23s ease-in-out;
	display: flex;
	align-items: center;
	padding: 16px 40px;
	border-radius: 8px;
	backdrop-filter: blur(12px);
	background: rgba(var(--dark-rgb), 0.60);
}

.header-logo {
	display: block;
}

.header-logo img {
	max-width: 280px;
	width: 100%;
	padding: 10px;
}

.header-nav {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 20px;
	overflow-x: auto;
	flex-wrap: nowrap;
	scrollbar-width: none;
	touch-action: pan-x;
}

.header-nav::-webkit-scrollbar {
	display: none;
}

.header-nav a {
	font-weight: 700;
	transition: text-shadow 0.3s ease;
	white-space: nowrap;
	padding: 10px;
	flex-shrink: 0;
}

.header-nav a.active {
	text-shadow: 0 0 15px var(--shadow-light);
}

@media(hover: hover) {
	.header-nav a:hover {
		text-shadow: 0 0 15px var(--shadow-light);
	}
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
	padding-left: 20px;
	white-space: nowrap;
}

.header-login,
.button-secondary {
	padding: 9px 17px;
	color: var(--primary-light);
	background-color: var(--secondary-bg);
	border: 1px solid var(--border);
	font-weight: 700;
	border-radius: 5px;
	transition: all 0.3s ease;
	font-family: var(--font-body);
	font-size: inherit;
	display: inline-flex;
	cursor: pointer;
}

@media(hover: hover) {
	.header-login:hover,
	.button-secondary:hover {
		color: var(--secondary-hover-text);
		background-color: var(--secondary-hover-bg);
		border-color: var(--secondary-hover-border);
	}
}

.header-cta,
.button-primary {
	padding: 10px 17px;
	background: var(--primary);
	color: var(--dark);
	font-weight: 700;
	border-radius: 5px;
	transition: all 0.3s ease;
	font-family: var(--font-body);
	font-size: inherit;
	border: none;
	display: inline-flex;
	cursor: pointer;
}

.header-cta:disabled,
.button-primary:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

@media(hover: hover) {
	.header-cta:hover:not(:disabled),
	.button-primary:hover:not(:disabled) {
		color: var(--primary-hover-text);
		background-color: var(--primary-hover-bg);
	}
}


/* ===== Hero Section ===== */
.hero {
	position: relative;
	height: calc(100vh - var(--header-h, 0px));
	display: flex;
	align-items: center;
	background: linear-gradient(to bottom, var(--dark) 20%, var(--heroGradient) 100%);
	min-height: 40vw;
}

.hero-image {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	z-index: 1;
	display: flex;
	align-items: flex-end;
}

.hero-image picture {
	width: 100%;
	height: 100%;
}

.hero-image img {
	width: 100%;
	height: 100%;
	object-position: bottom right;
	max-width: 820px;
	object-fit: contain;
}

.hero-content {
	position: relative;
	z-index: 3;
	padding: 80px 120px;
	max-width: 1440px;
	margin: 0 auto;
	width: 100%;
}

.hero-content h1 {
	font-size: clamp(56px, 7vw, 120px);
	letter-spacing: -2.4px;
	font-weight: 700;
	line-height: 108%;
	text-shadow: 0 4px 60px rgba(var(--dark-rgb), .99);
}

/* ===== Stats Section ===== */
.stats {
	background-color: var(--dark);
	padding: 64px 48px;
}

.stats-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: 16px;
}

.stat-card {
	width: 100%;
	max-width: 390px;
	text-align: center;
	padding: 24px;
}

.stat-title {
	display: flex;
	justify-content: center;
	align-items: baseline;
	margin-bottom: 6px;
}

.stat-symbol {
	color: var(--primary);
	font-family: var(--font-heading);
	font-size: 72px;
	font-style: normal;
	font-weight: 700;
	line-height: .75;
	letter-spacing: -1.44px;
	position: relative;
	bottom: 12px;
}

.stat-number {
	color: var(--primary);
	font-family: var(--font-heading);
	font-size: 120px;
	font-style: normal;
	font-weight: 700;
	line-height: .75;
	letter-spacing: -2.4px;
}

.stat-label {
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 14px;
	letter-spacing: 0.24px;
}

.stat-highlight {
	color: var(--primary);
}

.stat-desc {
	color: var(--desc);
	font-size: 20px;
	text-align: left;
}

.stat-desc-note {
	text-align: center;
	color: var(--desc);
	font-size: 13px;
	margin: 24px 0;
}

.payout-note {
	text-align: center;
	line-height: 1;
	font-weight: 700;
}

/* ===== Premium Section ===== */
.premium {
	background: var(--primary-dark);
	padding: 64px 48px;
	text-align: center;
}

.premium h2 {
	margin-bottom: 12px;
}

.premium-desc {
	max-width: 80%;
	margin: 0 auto;
	color: var(--desc);
	font-size: 20px;
	line-height: 140%;
}

/* ===== Portfolio Section ===== */
.portfolio {
	background: var(--primary-dark);
	padding: 12px 48px 64px;
}

.portfolio h2 {
	margin-bottom: 24px;
}

.portfolio-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin-bottom: 16px;
}

.site-card {
	width: 100%;
	max-width: 390px;
	background: var(--dark);
	border-radius: 16px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.site-image {
	position: relative;
	overflow: hidden;
	background: var(--dark);
	flex-shrink: 0;
}

.site-image a {
	display: block;
}

.site-image a img {
	width: 100%;
	height: auto;
	aspect-ratio: 16/9;
	object-fit: cover;
	transition: transform .23s ease-in-out;
}

@media(hover: hover) {
	.site-image a:hover img {
		transform: scale(1.025);
	}
}

.site-info {
	padding: 24px;
	display: flex;
	flex-direction: column;
	flex: 1;
	align-items: flex-start;
}

.site-info h3 {
	font-size: 17px;
	font-weight: 600;
	margin-bottom: 12px;
	line-height: 1.4;
}

.site-info p {
	font-size: 14px;
	color: var(--desc);
}

.site-btn {
	padding: 24px;
}

.site-btn a {
	display: inline-flex;
}

/* ===== Tools Section ===== */
.tools {
	background: var(--dark);
	padding: 64px 48px;
}

.tools h2 {
	margin-bottom: 12px;
}

.tools-subtitle {
	text-align: center;
	margin-bottom: 40px;
	font-size: 20px;
	color: var(--desc);
}

.tools-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px;
}

.tools-card {
	width: 100%;
	max-width: 390px;
	padding: 24px;
	display: flex;
	flex-direction: column;
}

.tools-card .tools-text {
	flex: 1;
}

.tools-card h3 {
	font-size: 17px;
	font-weight: 600;
	margin-bottom: 12px;
	line-height: 1.4;
}

.tools-card p {
	font-size: 14px;
	color: var(--desc);
}

.tools-icons {
	position: relative;
	max-width: 375px;
	width: 100%;
	height: 160px;
	margin: 20px auto;
}

.tool-icon-card {
	position: absolute;
	text-align: center;
	top: 50%;
	transition: all 1s ease;
	width: 100%;
	max-width: 125px;
	padding: 3px;
}

.tool-icon-card.pos-left {
	left: 0;
	transform: translate(0, -50%) scale(0.85);
	transform-origin: left center;
	opacity: 0.95;
	z-index: 1;
}

.tool-icon-card.pos-center {
	left: 50%;
	transform: translate(-50%, -50%) scale(1.2);
	opacity: 1;
	z-index: 3;
}

.tool-icon-card.pos-right {
	left: 100%;
	transform: translate(-100%, -50%) scale(0.85);
	transform-origin: right center;
	opacity: 0.95;
	z-index: 2;
}

.tool-icon {
	width: 100%;
	height: 100%;
	margin: 0 auto;
}

.tool-icon-card span {
	font-family: var(--font-heading);
	font-size: 13px;
	font-weight: 600;
	line-height: 13px;
	display: block;
}


/* ===== Buddy Section ===== */
.buddy {
	background: var(--primary-dark);
	padding: 64px 48px;
	text-align: center;
}

.buddy h2 {
	margin-bottom: 12px;
}

.buddy-desc {
	max-width: 80%;
	margin: 0 auto 40px;
	color: var(--desc);
	font-size: 20px;
	line-height: 140%;
}

/* ===== Contact Section ===== */
.contact {
	background: var(--dark);
	padding: 64px 48px;
}

.contact h2 {
	margin-bottom: 12px;
}

.contact-subtitle {
	text-align: center;
	max-width: 80%;
	margin: 0 auto 30px;
	color: var(--desc);
	font-size: 20px;
	line-height: 140%;
}

.contact-form {
	max-width: 540px;
	margin: 0 auto;
}

.form-row input,
.form-row textarea {
	width: 100%;
	padding: 24px 0;
	background: none;
	border: none;
	border-bottom: 1px solid var(--desc);
	color: var(--desc);
	font-family: var(--font-body);
	font-size: 14px;
	outline: none;
	transition: border-color 0.3s ease;
}

.custom-select {
	position: relative;
	cursor: pointer;
	border-bottom: 1px solid var(--desc);
	outline: none;
}

.custom-select:focus-visible {
	border-color: var(--primary);
}

.custom-select-trigger {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 24px 0;
	color: var(--desc);
	font-family: var(--font-body);
	font-size: 14px;
	transition: border-color 0.3s ease;
}

.custom-select-arrow {
	color: var(--desc);
	transition: transform 0.3s ease;
}

.custom-select.open .custom-select-arrow {
	transform: rotate(180deg);
}

.custom-select-options {
	list-style: none;
	padding: 0;
	margin: -16px 0 12px;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease;
}

.custom-select.open .custom-select-options {
	max-height: 400px;
}

.custom-select-options li {
	padding: 8px 16px;
	color: var(--desc);
	font-family: var(--font-body);
	font-size: 14px;
	cursor: pointer;
	border-radius: 6px;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.custom-select-options li:hover,
.custom-select-options li.focused {
	background-color: var(--secondary-hover-bg);
	color: var(--text);
}

.custom-select-options li.selected {
	color: var(--primary);
}

.form-row input::placeholder,
.form-row textarea::placeholder {
	color: var(--desc);
}

.form-row input:focus,
.form-row textarea:focus {
	border-color: var(--primary);
}

.form-row textarea {
	min-height: 160px;
	resize: none;
}

.honeypot {
	position: absolute;
	left: -9999px;
	opacity: 0;
	height: 0;
	width: 0;
}

.form-feedback {
	text-align: center;
	margin: 40px 0 30px;
	font-size: 16px;
}

.form-success {
	color: var(--primary);
}

.form-error {
	color: var(--error);
}

.has-error {
	border-color: var(--error) !important;
}

.field-error {
	display: block;
	color: var(--text);
	font-size: 14px;
	margin-top: 9px;
	text-align: right;
}

.form-submit {
	text-align: center;
	margin: 24px auto 0;
}

/* ===== Footer ===== */
.footer {
	background: var(--primary-dark);
	padding: 50px 0;
	text-align: center;
	font-size: 13px;
}

.footer-logo {
	margin-bottom: 18px;
}

.footer-logo .logo {
	margin: 0 auto;
	width: 197px;
}

.footer-links {
	display: flex;
	justify-content: center;
	gap: 20px;
	margin-bottom: 14px;
	flex-wrap: wrap;
}

.footer-links a {
	transition: border-color 0.3s ease;
	border-bottom: 1px solid rgba(var(--text-rgb), .5);
}

@media(hover: hover) {
	.footer-links a:hover {
		border-bottom-color: transparent;
	}
}

.footer-copy {
	margin-bottom: 12px;
}

/* ===== Four04 Section ===== */
.four04 {
	position: relative;
	min-height: 642px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-grow: 1;
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
}

.four04-image {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	z-index: 1;
	display: flex;
	align-items: flex-end;
}

.four04-image img {
	width: 100%;
	height: 100%;
	object-position: center right;
	max-width: 860px;
	object-fit: contain;
	padding: 12px;
}

.four04-content {
	position: relative;
	z-index: 3;
	padding: 48px;
	max-width: 1440px;
	margin: 0 auto;
	width: 100%;
}

.four04-content-center {
	text-align: center;
	display: inline-flex;
    flex-direction: column;
}

.four04-content h1 {
	font-size: clamp(33px, 6vw, 64px);
	letter-spacing: -1.28px;
	font-weight: 700;
	line-height: 108%;
	text-shadow: 0 4px 60px rgba(var(--dark-rgb), .99);
	margin-bottom: 24px;
}

.four04-content h1 b {
	display: block;
	font-size: clamp(148px, 23vw, 249px);
	line-height: 100%;
}

.four04-content h1 span {
	display: block;
	font-size: clamp(33px, 6vw, 64px);
	transform: translateY(-12px);
}

@media (max-width: 1064px) {

	body.js .reveal {
		transition: opacity 0.8s ease, transform 0.8s ease;
	}

	.section-title {
		font-size: 32px;
		line-height: 120%;
		max-width: none;
	}

	.header {
		padding: 8px;
	}

	.header-inner {
		flex-wrap: wrap;
		padding: 16px 16px 0;
	}

	.header-logo {
		order: 1;
		flex: 1;
		min-width: 0;
	}

	.header-logo img {
		max-width: 113px;
		padding: 0;
	}

	.header-actions {
		flex-shrink: 0;
		margin-left: auto;
		order: 2;
	}

	.header-nav {
		width: calc(100% + 10px);
		margin: 6px -10px;
		order: 3;
		gap: 0;
	}

	.header-nav a {
		font-size: 15px;
	}

	.hero {
		flex-direction: column;
		height: auto;
		min-height: auto;
		max-width: 100%;
	}

	.hero-image {
		position: static;
		order: 2;
		width: 100%;
	}

	.hero-image img {
		object-fit: cover;
		margin: auto 0 auto auto;
	}

	.hero-content {
		padding: 0 24px;
	}

	.hero h1 {
		font-size: 12vw;
	}

	.stats {
		padding: 64px 0 40px;
	}

	.stats-grid {
		gap: 24px;
	}

	.stat-card {
		padding: 0 0 10px;
	}

	.stat-symbol {
		font-size: 60px;
		line-height: .75;
		bottom: 8px;
	}

	.stat-number {
		font-size: 100px;
		line-height: .75;
	}

	.stat-label {
		font-size: 22px;
	}

	.stat-desc {
		font-size: 16px;
	}

	.payout-note {
		font-size: 22px;
		line-height: 20px;
	}

	.premium {
		padding: 40px 3px;
	}

	.premium-desc {
		max-width: none;
		font-size: 16px;
	}

	.portfolio {
		padding: 40px 0 24px;
	}

	.site-info h3 {
		font-size: 16px;
	}

	.site-info p {
		font-size: 13px;
	}

	.tools {
		padding: 40px 0;
	}

	.tools-subtitle {
		font-size: 20px;
	}

	.tools-card {
		padding: 0;
	}

	.tools-icons {
		margin: 0 auto;
	}

	.buddy {
		padding: 40px 0;
	}

	.buddy-desc {
		max-width: none;
		font-size: 16px;
		margin-bottom: 24px;
	}

	.contact {
		padding: 40px 0;
	}

	.contact-subtitle {
		max-width: none;
		margin: 0 auto 30px;
		font-size: 16px;
	}

	.footer-links {
		gap: 10px;
	}

	.four04 {
		flex-direction: column;
		height: auto;
		min-height: auto;
		max-width: 100%;
		text-align: center;
		flex: 1;
	}

	.four04-image {
		position: static;
		width: 100%;
		margin-bottom: -15vw;
	}

	.four04-image img {
		object-fit: cover;
		margin: auto;
	}

	.four04-content {
		padding: 24px;
		order: 3;
	}
}

@media (max-width: 400px) {
	.tool-icon-card.pos-left {
		transform: translate(0, -50%) scale(0.75);
	}

	.tool-icon-card.pos-center {
		transform: translate(-50%, -50%) scale(1.15);
	}

	.tool-icon-card.pos-right {
		transform: translate(-100%, -50%) scale(0.75);
	}
}

@media (max-width: 350px) {
	.tool-icon-card.pos-left {
		transform: translate(0, -50%) scale(0.6);
	}

	.tool-icon-card.pos-center {
		transform: translate(-50%, -50%) scale(1);
	}

	.tool-icon-card.pos-right {
		transform: translate(-100%, -50%) scale(0.6);
	}
}
