/**
 * Free TikTok Likes landing page.
 *
 * Only what service.css does not already carry.
 */

.fl-hero {
	padding-top: clamp(1.25rem, 3vw, 2rem);
	background:
		radial-gradient(56rem 26rem at 82% 0%, #E056FD14, transparent 60%),
		linear-gradient(180deg, var(--paper-2, #FBF7FD), var(--paper, #F5ECFA));
}

.fl-hero-copy {
	max-width: 44rem;
	margin-inline: auto;
	margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
	text-align: center;
}

.fl-hero-copy .breadcrumbs,
.fl-hero-copy .eyebrow {
	justify-content: center;
}

.fl-h1 {
	margin: .35rem 0 0;
	font-size: clamp(2rem, 4.6vw, 3.1rem);
	font-weight: 800;
	line-height: 1.06;
	letter-spacing: -.02em;
	color: var(--ink, #1E1233);
}

.fl-lede {
	margin: .85rem auto 0;
	max-width: 36rem;
	font-size: clamp(1.02rem, 1.8vw, 1.16rem);
	font-weight: 550;
	line-height: 1.55;
	color: var(--ink-2, #4C3D66);
}

.fl-chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.fl-chips li {
	padding: .38rem .78rem;
	border-radius: 999px;
	background: var(--surface, #fff);
	border: 1px solid var(--hairline, #E7D8F2);
	font-size: .84rem;
	font-weight: 600;
	color: var(--ink-2, #4C3D66);
}


/* Delivered counter: a baseline plus everything actually recorded since, so
 * the number is allowed to grow on its own. */
/* Left-aligned to sit under the section heading rather than centred in the
   shell, which read as a floating number beside the H2. */
.fl-counter {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .1rem;
	margin: -.5rem 0 1.75rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--hairline, #E7D8F2);
	text-align: left;
}

.fl-counter-n {
	font-size: clamp(1.9rem, 4vw, 2.6rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.02em;
	background: var(--grad, linear-gradient(120deg, #E056FD 0%, #E530B5 100%));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-variant-numeric: tabular-nums;
}

.fl-counter-l {
	font-size: .86rem;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--muted, #7C6B94);
}

/* The claim widget is the page; keep it central and finite. */
.fl-tool-wrap {
	max-width: 46rem;
	margin-inline: auto;
}

/* ---------------- long-form ---------------- */

.fl-detail {
	display: grid;
	grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

.fl-detail-aside {
	position: sticky;
	top: 5.5rem;
}

.fl-detail-pull {
	margin: .5rem 0 0;
	font-size: clamp(1.15rem, 2vw, 1.38rem);
	font-weight: 700;
	line-height: 1.35;
	color: var(--ink, #1E1233);
}

.fl-detail-body > h2:first-child {
	margin-top: 0;
}

/* ---------------- video ---------------- */

.fl-video {
	max-width: 46rem;
	margin: 1.75rem auto 0;
}

.fl-video-frame {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--r, 16px);
	background: #1E1233;
	box-shadow: var(--sh-md, 0 14px 34px -10px #1E123340);
}

.fl-video-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ---------------- reviews ---------------- */

.fl-quote {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1rem 1.25rem;
	max-width: 44rem;
	margin: 1.75rem auto 0;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: var(--surface, #fff);
	border: 1px solid var(--hairline, #E7D8F2);
	border-radius: var(--r, 16px);
	box-shadow: var(--sh-sm, 0 1px 2px #1E123310, 0 2px 6px #1E12330A);
}

.fl-quote-portrait {
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 999px;
	object-fit: cover;
}

.fl-quote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
}

.svc-page .fl-quote-title {
	margin: 0 0 .5rem;
	font-size: 1.1rem;
	font-weight: 750;
	color: var(--ink, #1E1233);
}

.fl-quote blockquote p {
	margin: 0;
	font-size: .98rem;
	line-height: 1.6;
	color: var(--ink-2, #4C3D66);
}

.fl-quote figcaption {
	grid-column: 2;
	font-size: .87rem;
	font-weight: 600;
	color: var(--muted, #7C6B94);
}

.fl-reviews {
	margin-top: 1.25rem;
}

.fl-reviews .glsr-review {
	background: var(--surface, #fff);
	border: 1px solid var(--hairline, #E7D8F2);
	border-radius: var(--r, 16px);
	padding: 1.15rem 1.25rem;
}

.fl-reviews .glsr-reviews {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: 1rem;
}

.fl-cta p {
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--ink-2, #4C3D66);
}

@media (max-width: 900px) {
	.fl-detail {
		grid-template-columns: minmax(0, 1fr);
	}

	.fl-detail-aside {
		position: static;
	}
}

@media (max-width: 560px) {
	.fl-quote {
		grid-template-columns: minmax(0, 1fr);
		text-align: center;
		justify-items: center;
	}

	.fl-quote figcaption {
		grid-column: 1;
	}
}

/* ================= confirmation page ================= */

.flc-hero {
	padding-top: clamp(2rem, 5vw, 3.5rem);
	padding-bottom: clamp(2rem, 5vw, 3.5rem);
	text-align: center;
	background:
		radial-gradient(50rem 24rem at 50% 0%, #22C55E14, transparent 62%),
		linear-gradient(180deg, var(--paper-2, #FBF7FD), var(--paper, #F5ECFA));
}

/* Green, not brand magenta: this mark means "done", and the brand colour is
 * doing a different job everywhere else on the page. */
.flc-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.6rem;
	height: 3.6rem;
	margin-bottom: 1.1rem;
	border-radius: 999px;
	background: #22C55E1F;
	color: #15803D;
}

.flc-badge svg {
	width: 1.7rem;
	height: 1.7rem;
}

.flc-h1 {
	margin: 0 auto;
	max-width: 22ch;
	font-size: clamp(1.9rem, 4.2vw, 2.9rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.02em;
	color: var(--ink, #1E1233);
}

.flc-lede {
	margin: .9rem auto 0;
	max-width: 34rem;
	font-size: clamp(1rem, 1.8vw, 1.14rem);
	line-height: 1.6;
	color: var(--ink-2, #4C3D66);
}

.flc-facts {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .75rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
}

.flc-facts li {
	min-width: 8.5rem;
	padding: .85rem 1.15rem;
	border-radius: var(--r, 16px);
	background: var(--surface, #fff);
	border: 1px solid var(--hairline, #E7D8F2);
}

.flc-fact-n {
	display: block;
	font-size: 1.5rem;
	font-weight: 800;
	line-height: 1.1;
	color: var(--ink, #1E1233);
}

.flc-fact-l {
	display: block;
	margin-top: .15rem;
	font-size: .82rem;
	line-height: 1.35;
	color: var(--muted, #7C6B94);
}

/* ---------------- the offer ---------------- */

.flc-offer {
	max-width: 34rem;
	margin-inline: auto;
	padding: clamp(1.5rem, 4vw, 2.25rem);
	border-radius: var(--r, 16px);
	background: var(--surface, #fff);
	border: 1px solid var(--hairline, #E7D8F2);
	box-shadow: var(--sh-md, 0 2px 6px #1E123312, 0 14px 34px -10px #1E123326);
	text-align: center;
}

.flc-offer-eyebrow {
	margin: 0 0 .35rem;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--violet, #9B23D4);
}

.svc-page .flc-offer-title {
	margin: 0 0 .6rem;
	font-size: clamp(1.35rem, 3vw, 1.8rem);
	font-weight: 800;
	line-height: 1.15;
	color: var(--ink, #1E1233);
}

.flc-offer-lede {
	margin: 0 0 1.35rem;
	font-size: .96rem;
	line-height: 1.6;
	color: var(--ink-2, #4C3D66);
}

/* A ticket stub: dashed edge, monospace code, one obvious action. */
.flc-code {
	display: flex;
	align-items: stretch;
	gap: 0;
	max-width: 22rem;
	margin: 0 auto 1.35rem;
	border: 2px dashed var(--violet, #9B23D4);
	border-radius: var(--r-sm, 10px);
	background: var(--violet-soft, #9B23D414);
	overflow: hidden;
}

.flc-code-value {
	flex: 1 1 auto;
	padding: .85rem .5rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 1.18rem;
	font-weight: 700;
	letter-spacing: .12em;
	color: var(--ink, #1E1233);
	background: none;
	user-select: all;
}

.flc-code-copy {
	flex: 0 0 auto;
	padding: 0 1rem;
	border: 0;
	border-left: 2px dashed var(--violet, #9B23D4);
	background: none;
	color: var(--violet, #9B23D4);
	font: inherit;
	font-size: .88rem;
	font-weight: 700;
	cursor: pointer;
	transition: background .16s;
}

.flc-code-copy:hover {
	background: #9B23D41F;
}

.flc-code.is-copied .flc-code-copy {
	color: #15803D;
}

.flc-offer-cta {
	margin: 0;
}

/* ---------------- what next ---------------- */

.flc-next {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: 1rem;
	margin-top: 1.75rem;
}

.flc-next-card {
	padding: clamp(1.15rem, 2.5vw, 1.5rem);
	border-radius: var(--r, 16px);
	background: var(--surface, #fff);
	border: 1px solid var(--hairline, #E7D8F2);
}

.svc-page .flc-next-card h3 {
	margin: 0 0 .45rem;
	font-size: 1.02rem;
	font-weight: 750;
	color: var(--ink, #1E1233);
}

.flc-next-card p {
	margin: 0;
	font-size: .93rem;
	line-height: 1.6;
	color: var(--ink-2, #4C3D66);
}
