@font-face {
	font-family: "DM Sans";
	src: url("/assets/fonts/sans.woff2") format("woff2");
	font-weight: 100 1000;
	font-display: swap;
}
@font-face {
	font-family: "Cormorant";
	src: url("/assets/fonts/serif.woff2") format("woff2");
	font-weight: 300 700;
	font-display: swap;
}

/* Tokens copiados de asociacion-felina-argentina.com */
:root {
	--ink: #173e64;
	--ink-dark: #102c4c;
	--paper: #f7fbff;
	--white: #fff;
	--muted: #546b82;
	--line: #d5e2ef;
	--sky: #e4f0fa;
	--accent: #b9def6;
	--sand: #eaf2f8;
	--radius: 5px;
	--sans: "DM Sans", sans-serif;
	--serif: "Cormorant", Georgia, serif;
	--space-1: 8px;
	--space-2: 16px;
	--space-3: 24px;
	--space-4: 32px;
	--space-5: 48px;
	--space-6: 64px;
	--space-7: 96px;
	--fast: 180ms;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { border: 0; cursor: pointer; }
img { max-width: 100%; height: auto; display: block; }

h1, h2, h3 { margin: 0 0 0.5em; line-height: 1.08; text-wrap: balance; }
h1, h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -0.035em; }
h1 { font-size: clamp(38px, 6.4vw, 68px); }
h2 { font-size: clamp(30px, 4.4vw, 48px); }
h3 { font-size: 18px; font-weight: 600; }
p { margin: 0 0 1em; }

.wrap { width: min(1080px, 100% - 32px); margin-inline: auto; }
.narrow { width: min(760px, 100% - 32px); margin-inline: auto; }
.center { text-align: center; }
.muted { color: var(--muted); }

.eyebrow {
	display: block;
	font-size: 11px;
	letter-spacing: 0.17em;
	font-weight: 600;
	line-height: 1.6;
	text-transform: uppercase;
	margin-bottom: 18px;
}

/* Barra fija con fecha y cuenta regresiva */
.topbar {
	position: sticky;
	top: 0;
	z-index: 40;
	background: var(--ink-dark);
	color: var(--white);
	font-size: 14px;
}
.topbar .wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	align-items: center;
	justify-content: center;
	padding-block: 10px;
	text-align: center;
}
.topbar strong { font-weight: 600; }
.countdown { display: flex; gap: 10px; font-variant-numeric: tabular-nums; }
.countdown span b { font-weight: 600; }
.countdown span small { opacity: 0.7; margin-left: 2px; }

.site-header { background: rgba(247, 251, 255, 0.98); border-bottom: 1px solid var(--line); }
.site-header .wrap { display: flex; align-items: center; justify-content: center; padding-block: 16px; }
.brand img { width: 168px; }

/* Botón */
.button {
	min-height: 52px;
	background: var(--ink);
	color: var(--white);
	padding: 14px 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	font-weight: 500;
	border: 1px solid var(--ink);
	border-radius: var(--radius);
	transition: background var(--fast), color var(--fast);
	text-align: center;
	line-height: 1.5;
}
.button:hover { background: var(--ink-dark); }
.button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.button[disabled] { opacity: 0.6; cursor: wait; }

section { padding-block: var(--space-6); }
.hero { padding-top: var(--space-5); }
.hero .lead { font-size: clamp(17px, 2vw, 20px); color: var(--muted); max-width: 640px; margin-inline: auto; }

.tag {
	display: inline-block;
	background: var(--sky);
	border: 1px solid var(--accent);
	border-radius: 999px;
	padding: 4px 14px;
	font-size: 11px;
	letter-spacing: 0.17em;
	font-weight: 600;
	text-transform: uppercase;
	margin-bottom: 20px;
}

.aunque {
	list-style: none;
	padding: 0;
	margin: var(--space-3) auto var(--space-4);
	display: grid;
	gap: 10px;
	max-width: 560px;
	text-align: left;
}
.aunque li {
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 12px 16px 12px 44px;
	position: relative;
}
.aunque li::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 18px;
	width: 14px;
	height: 8px;
	border-left: 2px solid var(--ink);
	border-bottom: 2px solid var(--ink);
	transform: rotate(-45deg);
}

/* Video */
.video-block { padding-top: 0; }
.video-frame {
	position: relative;
	aspect-ratio: 16 / 9;
	background: var(--ink-dark);
	border-radius: var(--radius);
	overflow: hidden;
	border: 1px solid var(--line);
}
.video-frame video, .video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	color: var(--white);
	text-align: center;
	padding: 24px;
}
.video-placeholder svg { width: 64px; height: 64px; opacity: 0.9; }
.video-caption { margin-top: 14px; font-size: 14px; color: var(--muted); }

/* Qué vas a descubrir */
.alt { background: var(--sand); border-block: 1px solid var(--line); }
.discover { display: grid; gap: var(--space-3); margin-top: var(--space-4); grid-template-columns: repeat(3, 1fr); }
.discover article { border-top: 1px solid var(--ink); padding-top: var(--space-2); }
.discover .num { font-family: var(--serif); font-size: 40px; line-height: 1; display: block; margin-bottom: 10px; }
.discover h3 { font-size: 19px; }
.discover p { color: var(--muted); font-size: 15px; margin: 0; }

/* Qué / Cuándo / Por qué */
.qcp { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, 1fr); margin-top: var(--space-4); }
.qcp > div { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--space-3); }
.qcp h3 { font-size: 12px; letter-spacing: 0.17em; text-transform: uppercase; }
.qcp p { margin: 0; font-size: 15px; color: var(--muted); }
.qcp strong { color: var(--ink); }

/* Autoridad */
.authority p { font-size: 17px; }

/* Aviso WhatsApp */
.notice {
	background: var(--ink);
	color: var(--white);
	border-radius: var(--radius);
	padding: var(--space-4);
	text-align: center;
}
.notice h2 { color: var(--white); font-size: clamp(26px, 3.6vw, 38px); }
.notice p { max-width: 560px; margin-inline: auto; opacity: 0.92; }
.notice .button { background: var(--white); color: var(--ink); border-color: var(--white); margin-top: 8px; }
.notice .button:hover { background: var(--accent); }

/* FAQ */
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { padding: var(--space-2) 0; font-weight: 500; min-height: 48px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 22px; line-height: 1.2; }
.faq details[open] summary::after { content: "–"; }
.faq details p { color: var(--muted); padding-bottom: var(--space-2); margin: 0; }

.site-footer { border-top: 1px solid var(--line); padding-block: var(--space-4); font-size: 13px; color: var(--muted); text-align: center; }
.site-footer img { width: 140px; margin: 0 auto 12px; }

/* Pop-up del formulario */
dialog.signup {
	border: 0;
	border-radius: var(--radius);
	padding: 0;
	width: min(460px, 100% - 24px);
	max-height: 94dvh;
	background: var(--paper);
	color: var(--ink);
	box-shadow: 0 24px 60px rgb(16 44 76 / 0.35);
}
dialog.signup::backdrop { background: rgb(16 44 76 / 0.6); backdrop-filter: blur(4px); }
.signup-inner { padding: var(--space-4) var(--space-3) var(--space-3); position: relative; }
.signup h2 { font-size: 32px; margin-bottom: 8px; }
.signup .close {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 44px;
	height: 44px;
	background: transparent;
	color: var(--ink);
	font-size: 28px;
	line-height: 1;
}
.form-field { margin-bottom: 14px; }
.form-field label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 4px; }
.form-field input, .form-field select {
	display: block;
	width: 100%;
	min-height: 48px;
	border: 1px solid #6e8ba6;
	border-radius: 4px;
	padding: 12px;
	background: var(--white);
	color: var(--ink);
	font-size: 16px;
}
.phone-row { display: grid; grid-template-columns: 128px 1fr; gap: 8px; }
.signup .button { width: 100%; margin-top: 6px; }
.form-note { font-size: 13px; color: var(--muted); margin: 12px 0 0; text-align: center; }
.form-error { color: #9b2525; font-size: 14px; margin: 8px 0 0; min-height: 1em; }

/* Página de gracias */
.thanks .steps { list-style: none; padding: 0; counter-reset: s; margin: var(--space-4) auto; max-width: 560px; text-align: left; }
.thanks .steps li { counter-increment: s; position: relative; padding: 14px 0 14px 48px; border-top: 1px solid var(--line); }
.thanks .steps li::before { content: "0" counter(s); position: absolute; left: 0; top: 14px; font-family: var(--serif); font-size: 26px; line-height: 1.2; }
.alert { background: var(--sky); border: 1px solid var(--accent); border-radius: var(--radius); padding: 14px 18px; max-width: 560px; margin: 0 auto var(--space-3); font-weight: 500; }

@media (max-width: 760px) {
	section { padding-block: var(--space-5); }
	.discover, .qcp { grid-template-columns: 1fr; }
	.brand img { width: 148px; }
	.notice { padding: var(--space-3); }
	.button { width: 100%; }
	.topbar { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.button { transition: none; }
}

/* ===== Más fuerza visual y movimiento ===== */
h1, h2 { font-weight: 700; letter-spacing: -0.03em; }
strong, b { font-weight: 700; }
.eyebrow, .tag { font-weight: 700; }
.lead { font-weight: 500; }

body {
	background:
		radial-gradient(900px 500px at 85% -5%, rgb(185 222 246 / 0.55), transparent 60%),
		radial-gradient(700px 420px at -10% 30%, rgb(228 240 250 / 0.9), transparent 60%),
		var(--paper);
	background-attachment: fixed;
}

/* Subrayados y resaltados */
.under {
	background: linear-gradient(var(--accent), var(--accent)) no-repeat 0 92% / 0% 0.2em;
	transition: background-size 0.9s cubic-bezier(0.2, 0.7, 0.3, 1) 0.5s;
	padding-bottom: 0.04em;
}
.is-in .under, .under.is-in, .no-reveal .under { background-size: 100% 0.2em; }
.mark {
	background: linear-gradient(transparent 58%, var(--accent) 58% 92%, transparent 92%) no-repeat 0 0 / 0% 100%;
	transition: background-size 0.8s cubic-bezier(0.2, 0.7, 0.3, 1) 0.4s;
	padding-inline: 0.08em;
	border-radius: 2px;
}
.is-in .mark, .mark.is-in { background-size: 100% 100%; }
.grad {
	background: linear-gradient(100deg, var(--ink) 0%, #2f78b5 45%, var(--ink) 90%);
	background-size: 220% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: grad-move 6s ease-in-out infinite alternate;
}
.notice .under { background-image: linear-gradient(var(--accent), var(--accent)); }
@keyframes grad-move { to { background-position: 100% 0; } }

/* Botones con glow */
.button { font-weight: 700; position: relative; overflow: hidden; isolation: isolate; }
.button.glow {
	background: linear-gradient(135deg, #1f5a92, var(--ink) 55%, var(--ink-dark));
	box-shadow: 0 0 0 0 rgb(185 222 246 / 0.7), 0 10px 28px -6px rgb(23 62 100 / 0.55), 0 0 26px rgb(120 185 235 / 0.45);
	animation: glow-pulse 2.6s ease-in-out infinite;
	transition: transform var(--fast), box-shadow var(--fast);
}
.button.glow::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(160px circle at var(--mx, 50%) var(--my, 50%), rgb(255 255 255 / 0.28), transparent 60%);
	opacity: 0;
	transition: opacity var(--fast);
}
.button.glow::after {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	z-index: -1;
	background: linear-gradient(100deg, transparent, rgb(255 255 255 / 0.35), transparent);
	transform: skewX(-20deg);
	animation: shine 4.5s ease-in-out infinite;
}
.button.glow:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 0 0 6px rgb(185 222 246 / 0.4), 0 14px 34px -6px rgb(23 62 100 / 0.6), 0 0 40px rgb(120 185 235 / 0.7); }
.button.glow:hover::before { opacity: 1; }
.button.glow:active { transform: translateY(0) scale(0.99); }
.notice .button.glow { background: var(--white); color: var(--ink); box-shadow: 0 0 0 0 rgb(255 255 255 / 0.6), 0 0 30px rgb(185 222 246 / 0.7); animation-name: glow-pulse-light; }
@keyframes glow-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgb(120 185 235 / 0.55), 0 10px 28px -6px rgb(23 62 100 / 0.55), 0 0 22px rgb(120 185 235 / 0.4); }
	50% { box-shadow: 0 0 0 12px rgb(120 185 235 / 0), 0 10px 28px -6px rgb(23 62 100 / 0.55), 0 0 38px rgb(120 185 235 / 0.7); }
}
@keyframes glow-pulse-light {
	0%, 100% { box-shadow: 0 0 0 0 rgb(255 255 255 / 0.55), 0 0 22px rgb(185 222 246 / 0.5); }
	50% { box-shadow: 0 0 0 12px rgb(255 255 255 / 0), 0 0 40px rgb(185 222 246 / 0.9); }
}
@keyframes shine { 0%, 55% { left: -60%; } 100% { left: 130%; } }

/* Hero con luces flotantes */
.hero { position: relative; overflow: hidden; }
.hero::before, .hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	filter: blur(60px);
	opacity: 0.7;
	pointer-events: none;
}
.hero::before { width: 360px; height: 360px; background: var(--accent); top: -80px; left: -80px; animation: float-a 14s ease-in-out infinite alternate; }
.hero::after { width: 300px; height: 300px; background: #cfe6f7; bottom: 10%; right: -60px; animation: float-b 11s ease-in-out infinite alternate; }
@keyframes float-a { to { transform: translate(120px, 60px) scale(1.15); } }
@keyframes float-b { to { transform: translate(-90px, -50px) scale(1.2); } }

.tag { display: inline-flex; align-items: center; gap: 8px; }
.tag .dot { width: 8px; height: 8px; border-radius: 50%; background: #e0453a; box-shadow: 0 0 0 0 rgb(224 69 58 / 0.6); animation: live 1.6s infinite; }
@keyframes live { 70% { box-shadow: 0 0 0 9px rgb(224 69 58 / 0); } 100% { box-shadow: 0 0 0 0 rgb(224 69 58 / 0); } }

.topbar .countdown span { background: rgb(255 255 255 / 0.1); border-radius: 4px; padding: 1px 8px; }
.topbar .countdown b { font-weight: 700; }

/* Video */
.video-frame { box-shadow: 0 30px 60px -24px rgb(16 44 76 / 0.55), 0 0 0 1px rgb(185 222 246 / 0.6); }
.video-frame:not(.has-video)::before {
	content: "";
	position: absolute;
	inset: -40%;
	background: conic-gradient(from 0deg, transparent, rgb(185 222 246 / 0.25), transparent 40%);
	animation: spin 9s linear infinite;
}
.video-placeholder { z-index: 1; }
.video-placeholder svg { animation: breathe 2.4s ease-in-out infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes breathe { 50% { transform: scale(1.12); opacity: 1; } }

/* Tarjetas */
.aunque li { transition: transform var(--fast), box-shadow var(--fast), border-color var(--fast); }
.aunque li:hover { transform: translateX(4px); border-color: var(--accent); box-shadow: 0 8px 22px -12px rgb(23 62 100 / 0.4); }
.discover article { transition: transform 0.3s, border-color 0.3s; }
.discover article:hover { transform: translateY(-6px); }
.discover .num { background: linear-gradient(135deg, var(--ink), #4a95d1); -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 700; font-size: 52px; }
.qcp > div { transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
.qcp > div:hover { transform: translateY(-5px); border-color: var(--accent); box-shadow: 0 18px 34px -18px rgb(23 62 100 / 0.5); }

.notice { background: linear-gradient(120deg, var(--ink-dark), var(--ink), #24609a, var(--ink)); background-size: 300% 100%; animation: grad-move 10s ease-in-out infinite alternate; box-shadow: 0 30px 60px -30px rgb(16 44 76 / 0.7); }

/* Aparición al hacer scroll */
.js [data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity 0.8s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.8s cubic-bezier(0.2, 0.7, 0.3, 1); }
.js [data-reveal].is-in { opacity: 1; transform: none; }
.js .button[data-reveal].is-in { transition: opacity 0.8s, transform var(--fast), box-shadow var(--fast); }

/* Pop-up */
dialog.signup[open] { animation: pop 0.35s cubic-bezier(0.2, 0.9, 0.3, 1.2); }
@keyframes pop { from { opacity: 0; transform: translateY(18px) scale(0.96); } }
#roas-form:empty::before { content: "El formulario de ROASFUNNEL se mostrará acá."; display: block; padding: 20px; border: 1px dashed var(--line); border-radius: var(--radius); color: var(--muted); font-size: 14px; text-align: center; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.js [data-reveal] { opacity: 1; transform: none; }
	.under { background-size: 100% 0.2em; }
	.mark { background-size: 100% 100%; }
}

/* Alerta de la página de gracias */
.alert {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	max-width: 620px;
	padding: 18px 24px;
	border: 1px solid #ff6a5f;
	border-radius: var(--radius);
	background: linear-gradient(135deg, #e0261c, #b3150e);
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.35;
	text-align: left;
	box-shadow: 0 0 0 0 rgb(224 38 28 / 0.55), 0 12px 30px -8px rgb(179 21 14 / 0.6), 0 0 34px rgb(255 80 66 / 0.55);
	animation: alert-pulse 1.8s ease-in-out infinite;
}
.alert strong { font-weight: 800; text-transform: uppercase; letter-spacing: 0.02em; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.alert-icon {
	flex: none;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #fff;
	color: #d3211a;
	font-weight: 800;
	font-size: 22px;
	line-height: 1;
	animation: alert-blink 1.2s ease-in-out infinite;
}
.alert::after {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(100deg, transparent, rgb(255 255 255 / 0.35), transparent);
	transform: skewX(-20deg);
	animation: shine 3.5s ease-in-out infinite;
}
@keyframes alert-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgb(224 38 28 / 0.55), 0 12px 30px -8px rgb(179 21 14 / 0.6), 0 0 26px rgb(255 80 66 / 0.45); }
	50% { box-shadow: 0 0 0 12px rgb(224 38 28 / 0), 0 12px 30px -8px rgb(179 21 14 / 0.6), 0 0 48px rgb(255 80 66 / 0.8); }
}
@keyframes alert-blink { 50% { transform: scale(1.12); } }
@media (max-width: 760px) { .alert { font-size: 15px; padding: 14px 16px; } }
