/* =============================================================
   Start Freelance Page
   ============================================================= */

/* ─── Tokens ──────────────────────────────────────────────── */
.fl-page {
	--fl-green:      #7ed957;
	--fl-green-dark: #5cbe33;
	--fl-black:      #111827;
	--fl-text:       #374151;
	--fl-muted:      #6b7280;
	--fl-bg:         #E9F2F4;
	--fl-white:      #ffffff;
	--fl-border:     #e5e7eb;
	--fl-radius:     16px;
	--fl-max:        1200px;
	--fl-pad:        clamp(1.25rem, 4vw, 2.5rem);
	--fl-font:       'Comic Relief', system-ui, sans-serif;
	font-family: var(--fl-font);
	background: var(--fl-bg);
	color: var(--fl-text);
}

/* ─── Step navigation bar ─────────────────────────────────── */
.fl-step-nav {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--fl-white);
	border-bottom: 1.5px solid var(--fl-border);
	box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.fl-step-nav__inner {
	max-width: var(--fl-max);
	margin-inline: auto;
	padding-inline: var(--fl-pad);
	display: flex;
	gap: 0;
	overflow-x: auto;
	scrollbar-width: none;
}
.fl-step-nav__inner::-webkit-scrollbar { display: none; }

.fl-step-nav__item {
	display: flex;
	align-items: center;
	gap: .6rem;
	padding: 1rem 1.5rem;
	text-decoration: none;
	color: var(--fl-muted);
	font-size: .875rem;
	font-weight: 600;
	white-space: nowrap;
	border-bottom: 3px solid transparent;
	transition: color .18s, border-color .18s;
}
.fl-step-nav__item:hover { color: var(--fl-black); }
.fl-step-nav__item.is-active {
	color: var(--fl-black);
	border-bottom-color: var(--fl-green);
}

.fl-step-nav__num {
	width: 26px; height: 26px;
	border-radius: 50%;
	background: var(--fl-border);
	color: var(--fl-muted);
	font-size: .72rem;
	font-weight: 700;
	display: flex; align-items: center; justify-content: center;
	transition: background .18s, color .18s;
	flex-shrink: 0;
}
.fl-step-nav__item.is-active .fl-step-nav__num,
.fl-step-nav__item:hover .fl-step-nav__num {
	background: var(--fl-green);
	color: #000;
}

/* ─── Main content ────────────────────────────────────────── */
.fl-main { background: var(--fl-bg); }

/* ─── Section ─────────────────────────────────────────────── */
.fl-section {
	border-bottom: 1.5px solid var(--fl-border);
	padding: 4.5rem 0;
}
.fl-section:last-child { border-bottom: none; }

.fl-section__inner {
	max-width: var(--fl-max);
	margin-inline: auto;
	padding-inline: var(--fl-pad);
}

/* Section header */
.fl-section__head {
	display: flex;
	align-items: flex-start;
	gap: 1.25rem;
	margin-bottom: 2.5rem;
}

.fl-step-badge {
	flex-shrink: 0;
	width: 52px; height: 52px;
	border-radius: 50%;
	background: var(--fl-green);
	color: #000;
	font-family: var(--fl-font);
	font-size: 1.1rem;
	font-weight: 700;
	display: flex; align-items: center; justify-content: center;
	margin-top: .25rem;
}

.fl-section__title {
	font-family: var(--fl-font);
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	font-weight: 900;
	color: var(--fl-black);
	margin: 0 0 .4rem;
	line-height: 1.15;
}

.fl-section__desc {
	font-size: 1rem;
	color: var(--fl-muted);
	margin: 0;
	line-height: 1.7;
	max-width: 680px;
}

/* ─── Always-open panels ──────────────────────────────────── */
.fl-panel { display: none; }
.fl-panel.is-active { display: block; }
.fl-panel--always { display: block; }

.fl-panel__heading {
	display: flex;
	align-items: center;
	gap: .6rem;
	font-family: var(--fl-font);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--fl-black);
	margin: 0 0 1.5rem;
	padding: 1.25rem 0 1.25rem;
	border-top: 1.5px solid var(--fl-border);
}
.fl-panel--always:first-of-type .fl-panel__heading {
	border-top: none;
	padding-top: 0;
}
.fl-panel--always + .fl-panel--always {
	margin-top: 1rem;
}
.fl-panel__tag {
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	background: #e9fbd4;
	color: #2d7a0f;
	padding: .2rem .55rem;
	border-radius: 50px;
	margin-left: auto;
}
.fl-panel__tag--paid {
	background: #fef3c7;
	color: #92400e;
}

/* ─── Cards grid ──────────────────────────────────────────── */
.fl-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
	gap: 1.5rem;
}

/* ─── Article & Video card ────────────────────────────────── */
.fl-card {
	background: var(--fl-white);
	border-radius: var(--fl-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow .22s, transform .22s;
	border: 1.5px solid var(--fl-border);
}
.fl-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,.1); transform: translateY(-4px); }

.fl-card__thumb {
	width: 100%;
	height: 180px;
	overflow: hidden;
	background: #e5e0d8;
	flex-shrink: 0;
	position: relative;
}
.fl-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s;
}
.fl-card:hover .fl-card__thumb img { transform: scale(1.04); }

.fl-card__cat {
	position: absolute;
	bottom: .6rem; left: .6rem;
	font-size: .67rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	background: rgba(0,0,0,.6);
	color: #fff;
	padding: .2rem .5rem;
	border-radius: 5px;
}

/* Play button for video cards */
.fl-play-btn {
	position: absolute;
	bottom: .65rem; right: .65rem;
	width: 36px; height: 36px;
	border-radius: 50%;
	background: rgba(255,255,255,.9);
	display: flex; align-items: center; justify-content: center;
	font-size: .875rem;
	color: var(--fl-black);
	text-decoration: none;
	transition: background .18s, transform .18s;
}
.fl-play-btn:hover { background: #fff; transform: scale(1.1); }

.fl-card__body {
	padding: 1.25rem 1.25rem 1.5rem;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.fl-card__date {
	font-size: .74rem;
	color: var(--fl-muted);
	display: block;
	margin-bottom: .45rem;
}
.fl-card__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--fl-black);
	line-height: 1.35;
	margin: 0 0 .6rem;
}
.fl-card__excerpt {
	font-size: .845rem;
	color: var(--fl-muted);
	line-height: 1.6;
	margin: 0 0 auto;
	padding-bottom: 1rem;
}
.fl-card__link {
	font-size: .84rem;
	font-weight: 600;
	color: var(--fl-black);
	text-decoration: none;
}
.fl-card__link:hover { text-decoration: none; }

/* ─── Product type filter pills ───────────────────────────── */
.fl-type-filter {
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
	margin-bottom: 1.75rem;
}

.fl-type-btn {
	padding: .45rem 1rem;
	font-family: var(--fl-font);
	font-size: .82rem;
	font-weight: 700;
	color: var(--fl-muted);
	background: var(--fl-white);
	border: 1.5px solid var(--fl-border);
	border-radius: 50px;
	cursor: pointer;
	transition: all .18s;
}
.fl-type-btn:hover { border-color: var(--fl-green); color: var(--fl-black); }
.fl-type-btn.is-active {
	background: var(--fl-green);
	border-color: var(--fl-green);
	color: #000;
}

/* ─── Product card ────────────────────────────────────────── */
.fl-grid--products {
	grid-template-columns: 1fr 1fr 1fr;
}

.fl-pcard {
	background: var(--fl-white);
	border: 1.5px solid var(--fl-border);
	border-radius: var(--fl-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow .22s, transform .22s;
}
.fl-pcard:hover { box-shadow: 0 8px 32px rgba(0,0,0,.1); transform: translateY(-4px); }
.fl-pcard[style*="display:none"] { display: none !important; }

.fl-pcard__cover {
	width: 100%;
	height: 160px;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
	flex-shrink: 0;
}
.fl-pcard__cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fl-pcard__type {
	position: absolute;
	bottom: .6rem; left: .6rem;
	font-size: .67rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	background: rgba(0,0,0,.65);
	color: #fff;
	padding: .22rem .55rem;
	border-radius: 5px;
}
.fl-pcard__badge {
	position: absolute;
	top: .6rem; right: .6rem;
	font-size: .68rem;
	font-weight: 700;
	background: var(--fl-black);
	color: #fff;
	padding: .2rem .55rem;
	border-radius: 50px;
}

.fl-pcard__body {
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.fl-pcard__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--fl-black);
	line-height: 1.3;
	margin: 0 0 .5rem;
}
.fl-pcard__desc {
	font-size: .84rem;
	color: var(--fl-muted);
	line-height: 1.6;
	margin: 0 0 auto;
	padding-bottom: 1rem;
}
.fl-pcard__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding-top: .75rem;
	border-top: 1px solid var(--fl-border);
}
.fl-pcard__price {
	font-size: .95rem;
	font-weight: 700;
	color: var(--fl-black);
}
.fl-pcard__cta {
	display: inline-flex;
	align-items: center;
	padding: .4rem 1rem;
	background: var(--fl-green);
	color: #000;
	border-radius: 50px;
	font-size: .82rem;
	font-weight: 700;
	text-decoration: none;
	transition: background .18s;
	white-space: nowrap;
	flex-shrink: 0;
}
.fl-pcard__cta:hover { background: var(--fl-green-dark); color: #000; }

/* ─── Slider ──────────────────────────────────────────────── */
.fl-slider {
	position: relative;
}

.fl-slider__track {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding-bottom: .5rem;
}
.fl-slider__track::-webkit-scrollbar { display: none; }

.fl-slider__item {
	flex: 0 0 300px;
	scroll-snap-align: start;
}

.fl-slider--products .fl-slider__item {
	flex: 0 0 280px;
}

/* Controls live in the panel heading, pushed to the right */
.fl-slider__controls {
	display: flex;
	gap: .4rem;
	margin-left: auto;
	flex-shrink: 0;
}

.fl-slider__arrow {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1.5px solid var(--fl-border);
	background: var(--fl-white);
	color: var(--fl-black);
	font-size: .95rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .18s, border-color .18s, transform .18s;
}
.fl-slider__arrow:hover {
	background: var(--fl-green);
	border-color: var(--fl-green);
	transform: scale(1.07);
}

@media (max-width: 600px) {
	.fl-slider__item { flex-basis: 80vw; }
	.fl-slider--products .fl-slider__item { flex-basis: 78vw; }
	.fl-slider__arrow { width: 32px; height: 32px; font-size: .85rem; }
}

/* ─── Empty state ─────────────────────────────────────────── */
.fl-empty {
	padding: 2.5rem;
	text-align: center;
	color: var(--fl-muted);
	font-size: .9rem;
	background: var(--fl-white);
	border: 1.5px dashed var(--fl-border);
	border-radius: var(--fl-radius);
}

/* ─── Responsive ──────────────────────────────────────────── */
@media (max-width: 768px) {
	.fl-section { padding: 3rem 0; }
	.fl-section__head { gap: .9rem; }
	.fl-step-badge { width: 42px; height: 42px; font-size: .95rem; }
	.fl-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
	.fl-grid--products { grid-template-columns: 1fr 1fr; }
	.fl-step-nav__item { padding: .85rem 1rem; font-size: .8rem; }
}

@media (max-width: 540px) {
	.fl-grid { grid-template-columns: 1fr; }
	.fl-grid--products { grid-template-columns: 1fr; }
	.fl-step-nav__label { display: none; }
	.fl-step-nav__item { padding: .85rem .75rem; }
}
