/*
Theme Name: TikTokShop Landing
Theme URI: https://tiktokshoponline.com
Author: Imaping
Description: Landing page oficial da Indira Couto Shop com galeria de vídeos do TikTok, botões "COMPRAR NO TIKTOK SHOP", cabeçalho com foto e link do perfil, e alternância entre tema claro e escuro (padrão: claro).
Version: 1.0.0
Text Domain: tiktokshop-landing
Tags: landing-page, tiktok, custom-colors
*/

/* ============================ Design tokens ============================ */
:root {
	--bg:            #ffffff;
	--bg-soft:       #f5f6f8;
	--surface:       #ffffff;
	--surface-2:     #f0f1f4;
	--text:          #16181d;
	--text-soft:     #545a66;
	--border:        #e4e6eb;
	--brand:         #fe2c55;   /* TikTok red */
	--brand-2:       #25f4ee;   /* TikTok cyan */
	--accent:        #ffd166;
	--success:       #12b76a;
	--shadow:        0 10px 30px rgba(20, 22, 30, 0.08);
	--shadow-lg:     0 18px 50px rgba(20, 22, 30, 0.16);
	--radius:        16px;
	--radius-sm:     10px;
	--maxw:          1180px;
	--font:          -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
}

html[data-theme="dark"] {
	--bg:            #0b0c10;
	--bg-soft:       #12141a;
	--surface:       #161822;
	--surface-2:     #1e2130;
	--text:          #f2f3f7;
	--text-soft:     #a2a8b8;
	--border:        #262a3a;
	--shadow:        0 10px 30px rgba(0, 0, 0, 0.55);
	--shadow-lg:     0 18px 50px rgba(0, 0, 0, 0.65);
}

/* ============================== Base ================================== */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--font);
	background: var(--bg);
	color: var(--text);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	transition: background-color .25s ease, color .25s ease;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3 { line-height: 1.2; margin: 0 0 .5em; }

.container {
	width: 100%;
	max-width: var(--maxw);
	margin: 0 auto;
	padding: 0 20px;
}

/* ============================== Header ================================ */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--bg) 85%, transparent);
	backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--border);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 68px;
}

.brand {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.brand__avatar {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--brand);
	background: var(--surface-2);
	flex: 0 0 auto;
}

.brand__name {
	font-weight: 800;
	font-size: 1.05rem;
	letter-spacing: .2px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
}

.header-tiktok {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border-radius: 999px;
	background: var(--text);
	color: var(--bg);
	font-weight: 700;
	font-size: .9rem;
	transition: transform .15s ease, opacity .15s ease;
}
.header-tiktok:hover { transform: translateY(-1px); opacity: .92; }

.theme-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 999px;
	border: 1px solid var(--border);
	background: var(--surface);
	color: var(--text);
	cursor: pointer;
	font-size: 1.15rem;
	transition: background-color .2s ease, transform .15s ease;
}
.theme-toggle:hover { transform: rotate(-8deg); }
html[data-theme="light"] .theme-toggle .icon-sun,
html[data-theme="dark"]  .theme-toggle .icon-moon { display: none; }

/* =============================== Hero ================================= */
.hero {
	position: relative;
	padding: 72px 0 56px;
	overflow: hidden;
	background:
		radial-gradient(900px 420px at 15% 0%, color-mix(in srgb, var(--brand) 12%, transparent), transparent 60%),
		radial-gradient(760px 420px at 90% 10%, color-mix(in srgb, var(--brand-2) 12%, transparent), transparent 60%),
		var(--bg-soft);
	border-bottom: 1px solid var(--border);
}

.hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	gap: 48px;
	align-items: center;
}

.hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--surface);
	border: 1px solid var(--border);
	font-weight: 700;
	font-size: .8rem;
	letter-spacing: .6px;
	text-transform: uppercase;
	color: var(--text-soft);
	margin-bottom: 18px;
}
.hero__eyebrow .dot {
	width: 9px; height: 9px; border-radius: 50%;
	background: var(--success);
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--success) 60%, transparent);
	animation: pulse 1.8s infinite;
}
@keyframes pulse {
	0%   { box-shadow: 0 0 0 0 color-mix(in srgb, var(--success) 55%, transparent); }
	70%  { box-shadow: 0 0 0 10px transparent; }
	100% { box-shadow: 0 0 0 0 transparent; }
}

.hero__title {
	font-size: clamp(2rem, 4.4vw, 3.2rem);
	font-weight: 900;
	letter-spacing: -.02em;
	margin-bottom: 18px;
}
.hero__title em {
	font-style: normal;
	background: linear-gradient(90deg, var(--brand), var(--brand-2));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.hero__subtitle {
	font-size: 1.1rem;
	color: var(--text-soft);
	max-width: 560px;
	margin-bottom: 28px;
}

.hero__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
}

.btn-primary {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 15px 28px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--brand), #ff4d6d);
	color: #fff;
	font-weight: 800;
	font-size: 1rem;
	box-shadow: var(--shadow);
	transition: transform .15s ease, box-shadow .15s ease;
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }

.btn-ghost {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 22px;
	border-radius: 999px;
	border: 1px solid var(--border);
	background: var(--surface);
	font-weight: 700;
	color: var(--text);
	transition: border-color .15s ease;
}
.btn-ghost:hover { border-color: var(--brand); }

.hero__trust {
	display: flex;
	gap: 26px;
	margin-top: 30px;
	flex-wrap: wrap;
}
.trust-item { display: flex; flex-direction: column; }
.trust-item strong { font-size: 1.35rem; font-weight: 900; color: var(--text); }
.trust-item span { font-size: .82rem; color: var(--text-soft); }

/* Owner card (photo + name) */
.owner-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 24px;
	padding: 26px;
	text-align: center;
	box-shadow: var(--shadow);
}

.owner-card__photo-wrap {
	width: 168px;
	height: 168px;
	margin: 0 auto 18px;
	border-radius: 50%;
	padding: 5px;
	background: conic-gradient(from 120deg, var(--brand), var(--brand-2), var(--brand));
}

.owner-card__photo {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	background: var(--surface-2);
	border: 4px solid var(--surface);
}
.owner-card__photo--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3rem;
	color: var(--text-soft);
}

.owner-card__name {
	font-size: 1.5rem;
	font-weight: 900;
	letter-spacing: .3px;
	margin-bottom: 6px;
}

.owner-card__handle {
	color: var(--text-soft);
	font-weight: 600;
	margin-bottom: 18px;
}

.owner-card__link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 12px 24px;
	border-radius: 999px;
	background: var(--text);
	color: var(--bg);
	font-weight: 800;
	transition: transform .15s ease, opacity .15s ease;
}
.owner-card__link:hover { transform: translateY(-2px); opacity: .92; }

.verified {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-left: 6px;
	color: var(--brand-2);
	font-size: .85rem;
	vertical-align: middle;
}

/* ============================== Sections ============================== */
.section { padding: 64px 0; }
.section--soft { background: var(--bg-soft); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }

.section__head { text-align: center; max-width: 720px; margin: 0 auto 42px; }
.section__title { font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 900; letter-spacing: -.01em; }
.section__lead { color: var(--text-soft); font-size: 1.05rem; }

/* ============================== Benefits ============================== */
.benefits-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.benefit {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 26px;
	box-shadow: var(--shadow);
}
.benefit__icon {
	width: 52px; height: 52px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 14px;
	font-size: 1.5rem;
	background: linear-gradient(135deg, color-mix(in srgb, var(--brand) 16%, transparent), color-mix(in srgb, var(--brand-2) 16%, transparent));
	margin-bottom: 16px;
}
.benefit h3 { font-size: 1.15rem; font-weight: 800; }
.benefit p { color: var(--text-soft); margin: 0; }

/* ============================== Gallery =============================== */
.tiktok-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.tiktok-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: var(--shadow);
	display: flex;
	flex-direction: column;
	transition: transform .18s ease, box-shadow .18s ease;
}
.tiktok-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.tiktok-card__media {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	background: var(--surface-2);
	overflow: hidden;
}
.tiktok-card__media img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform .3s ease;
}
.tiktok-card:hover .tiktok-card__media img { transform: scale(1.05); }

.tiktok-card__placeholder {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-size: 3rem;
}

.tiktok-card__play {
	position: absolute;
	left: 50%; top: 50%;
	transform: translate(-50%, -50%);
	width: 58px; height: 58px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: rgba(0,0,0,.55);
	color: #fff;
	font-size: 1.3rem;
	padding-left: 4px;
	backdrop-filter: blur(4px);
	transition: transform .18s ease, background-color .18s ease;
}
.tiktok-card:hover .tiktok-card__play { transform: translate(-50%, -50%) scale(1.12); background: var(--brand); }

.tiktok-card__badge {
	position: absolute;
	top: 12px; left: 12px;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--accent);
	color: #241a00;
	font-size: .74rem;
	font-weight: 900;
	letter-spacing: .4px;
	text-transform: uppercase;
}

.tiktok-card__body {
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.tiktok-card__title { font-size: 1.02rem; font-weight: 800; margin: 0; }
.tiktok-card__product { color: var(--text-soft); font-size: .92rem; margin: 0; }
.tiktok-card__author { color: var(--text-soft); font-size: .82rem; margin: 0; font-weight: 600; }

.tiktok-card__buy {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 18px;
	border-radius: var(--radius-sm);
	background: linear-gradient(90deg, var(--brand), #ff4d6d);
	color: #fff;
	font-weight: 900;
	font-size: .92rem;
	letter-spacing: .3px;
	transition: transform .15s ease, filter .15s ease;
}
.tiktok-card__buy:hover { transform: translateY(-2px); filter: brightness(1.05); }

.tiktok-empty {
	text-align: center;
	color: var(--text-soft);
	padding: 40px;
	border: 2px dashed var(--border);
	border-radius: var(--radius);
}

/* ============================== Steps ================================= */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; counter-reset: step; }
.step { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px; box-shadow: var(--shadow); }
.step::before {
	counter-increment: step;
	content: counter(step);
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	background: var(--text); color: var(--bg);
	font-weight: 900; margin-bottom: 14px;
}
.step h3 { font-size: 1.1rem; font-weight: 800; }
.step p { color: var(--text-soft); margin: 0; }

/* ================================ FAQ ================================= */
.faq { max-width: 820px; margin: 0 auto; }
.faq details {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: 4px 20px;
	margin-bottom: 12px;
	box-shadow: var(--shadow);
}
.faq summary {
	cursor: pointer;
	font-weight: 800;
	padding: 16px 0;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.4rem; color: var(--brand); font-weight: 900; }
.faq details[open] summary::after { content: "–"; }
.faq p { color: var(--text-soft); margin: 0 0 16px; }

/* ============================== Final CTA ============================= */
.final-cta {
	text-align: center;
	padding: 72px 0;
	background:
		radial-gradient(700px 360px at 50% 0%, color-mix(in srgb, var(--brand) 14%, transparent), transparent 65%),
		var(--bg-soft);
	border-top: 1px solid var(--border);
}
.final-cta h2 { font-size: clamp(1.7rem, 3.2vw, 2.5rem); font-weight: 900; }
.final-cta p { color: var(--text-soft); max-width: 620px; margin: 0 auto 28px; font-size: 1.08rem; }

/* ============================== Footer ================================ */
.site-footer {
	background: var(--bg);
	border-top: 1px solid var(--border);
	padding: 46px 0 30px;
	color: var(--text-soft);
	font-size: .9rem;
}
.footer-grid { display: flex; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.footer-brand { max-width: 420px; }
.footer-brand strong { color: var(--text); font-size: 1.1rem; display: block; margin-bottom: 8px; }
.footer-links { display: flex; flex-direction: column; gap: 8px; }
.footer-links a:hover { color: var(--brand); }
.footer-bottom {
	margin-top: 30px;
	padding-top: 20px;
	border-top: 1px solid var(--border);
	display: flex;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	font-size: .82rem;
}
.disclosure {
	margin-top: 18px;
	padding: 14px 16px;
	background: var(--surface-2);
	border-radius: var(--radius-sm);
	font-size: .8rem;
	line-height: 1.5;
}

/* ============================== Responsive ============================ */
@media (max-width: 960px) {
	.hero__grid { grid-template-columns: 1fr; gap: 34px; }
	.owner-card { max-width: 340px; margin: 0 auto; }
	.benefits-grid, .tiktok-gallery, .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
	.hero { padding: 48px 0 40px; }
	.benefits-grid, .tiktok-gallery, .steps { grid-template-columns: 1fr; }
	.brand__name { font-size: .95rem; }
	.header-tiktok span { display: none; }
	.section { padding: 48px 0; }
	.hero__trust { gap: 18px; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
/* ========================= Artigo individual ========================= */
.single-article {
	max-width: 760px;
	margin: 0 auto;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 40px 44px;
}
.single-article__title { font-size: clamp(1.7rem, 3.4vw, 2.4rem); margin-bottom: .35em; }
.single-article__meta { color: var(--text-soft); font-size: .95rem; margin: 0 0 24px; }
.single-article__thumb { margin: 0 0 28px; }
.single-article__thumb img { border-radius: var(--radius-sm); width: 100%; height: auto; }
.single-article__content { font-size: 1.05rem; color: var(--text); overflow-wrap: break-word; }
.single-article__content h2 { font-size: 1.45rem; margin-top: 1.6em; }
.single-article__content h3 { font-size: 1.2rem; margin-top: 1.4em; }
.single-article__content p { margin: 0 0 1.1em; }
.single-article__content a { color: var(--brand); text-decoration: underline; }
.single-article__content ul, .single-article__content ol { margin: 0 0 1.1em; padding-left: 1.4em; }
.single-article__content img { border-radius: var(--radius-sm); }
.single-article__content blockquote { margin: 0 0 1.1em; padding: 12px 18px; border-left: 4px solid var(--brand); background: var(--bg-soft); border-radius: var(--radius-sm); }
.single-article__back { margin-top: 36px; text-align: center; }
@media (max-width: 640px) { .single-article { padding: 26px 20px; } }/* ============ CTA de afiliado ao final dos artigos (botão + seta) ============ */
.tts-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin: 42px 0 0;
}
.single-article__content a.tts-cta { color: inherit; text-decoration: none; }
.tts-cta__btn {
	display: inline-block;
	padding: 15px 30px;
	border-radius: 999px;
	background: linear-gradient(135deg, #fe2c55 0%, #e0133f 100%);
	color: #ffffff;
	font-weight: 700;
	font-size: 1.05rem;
	line-height: 1.3;
	letter-spacing: .01em;
	text-align: center;
	box-shadow: 0 10px 24px rgba(254, 44, 85, .32);
	transition: transform .18s ease, box-shadow .18s ease;
}
.single-article__content a.tts-cta:hover .tts-cta__btn {
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(254, 44, 85, .42);
}
.tts-cta__arrow {
	color: #fe2c55;
	display: inline-flex;
	animation: tts-cta-nudge 1.6s ease-in-out infinite;
}
.tts-cta__arrow svg { width: 30px; height: 30px; display: block; }
@keyframes tts-cta-nudge {
	0%, 100% { transform: translateX(0); }
	50%      { transform: translateX(-6px); }
}
@media (prefers-reduced-motion: reduce) {
	.tts-cta__arrow { animation: none; }
}