/* ============================================================
   PsicoTests · public.css
   Cara pública: lúdica, redonda, colorida. Fondo crema con
   topos, blobs, cintas inclinadas y tarjetas con rebote.
   ============================================================ */

body.pt-public {
	background-color: var(--pt-cream);
	background-image: radial-gradient(rgba(51, 48, 78, .055) 2.2px, transparent 2.3px);
	background-size: 26px 26px;
}

.pt-wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

/* ---------- Cabecera ---------- */
.pt-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 249, 242, .92);
	backdrop-filter: blur(10px);
	border-bottom: 2px solid rgba(51, 48, 78, .07);
}
.pt-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	height: 76px;
}
.pt-header a:hover { text-decoration: none; }
.pt-nav { display: flex; align-items: center; gap: 6px; }
.pt-nav a {
	padding: 9px 15px;
	border-radius: var(--pt-r-pill);
	font-weight: 800;
	font-size: .92rem;
	color: var(--pt-ink-soft);
	transition: background .15s ease, color .15s ease;
}
.pt-nav a:hover { background: var(--pt-violet-soft); color: var(--pt-violet-dark); }
@media (max-width: 920px) { .pt-nav { display: none; } }

/* ---------- Hero ---------- */
.pt-hero {
	position: relative;
	overflow: hidden;
	padding: 84px 0 72px;
}
.pt-hero__blob {
	position: absolute;
	border-radius: 46% 54% 58% 42% / 52% 44% 56% 48%;
	opacity: .5;
	pointer-events: none;
}
.pt-hero__blob--1 { width: 420px; height: 420px; background: var(--pt-coral-soft); top: -140px; right: -90px; }
.pt-hero__blob--2 { width: 320px; height: 320px; background: var(--pt-sky-soft); bottom: -120px; left: -80px; }
.pt-hero__blob--3 { width: 200px; height: 200px; background: var(--pt-sun-soft); top: 40px; left: 42%; }
.pt-hero__inner { position: relative; max-width: 780px; }
.pt-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: var(--pt-r-pill);
	background: var(--pt-paper);
	border: 2px solid rgba(51, 48, 78, .08);
	box-shadow: var(--pt-shadow);
	font-size: .82rem;
	font-weight: 800;
	color: var(--pt-ink-soft);
	margin-bottom: 22px;
}
.pt-hero__badge b { color: var(--pt-coral-dark); }
.pt-hero h1 {
	font-size: clamp(2.6rem, 5.6vw, 4.2rem);
	font-weight: 700;
	margin-bottom: 18px;
}
.pt-marker {
	background: linear-gradient(transparent 62%, var(--pt-sun) 62%, var(--pt-sun) 94%, transparent 94%);
	padding: 0 6px;
	border-radius: 6px;
	white-space: nowrap;
}
.pt-hero__sub {
	font-size: 1.15rem;
	color: var(--pt-ink-soft);
	max-width: 620px;
	margin-bottom: 30px;
}
.pt-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 44px; }
.pt-hero__stats {
	display: flex;
	gap: 34px;
	flex-wrap: wrap;
	padding: 22px 28px;
	background: var(--pt-paper);
	border: 2px solid rgba(51, 48, 78, .07);
	border-radius: var(--pt-r-lg);
	box-shadow: var(--pt-shadow);
	max-width: 640px;
}
.pt-hero__stat b {
	display: block;
	font-family: var(--pt-font-display);
	font-size: 1.7rem;
	font-weight: 700;
	color: var(--pt-coral);
	line-height: 1.1;
}
.pt-hero__stat:nth-child(2) b { color: var(--pt-sky-dark); }
.pt-hero__stat:nth-child(3) b { color: var(--pt-mint-dark); }
.pt-hero__stat:nth-child(4) b { color: var(--pt-violet-dark); }
.pt-hero__stat span { font-size: .82rem; font-weight: 700; color: var(--pt-ink-soft); }

/* ---------- Cinta de públicos ---------- */
.pt-ribbon {
	background: var(--pt-violet);
	color: #fff;
	transform: rotate(-1.2deg) scale(1.02);
	overflow: hidden;
	padding: 14px 0;
	box-shadow: var(--pt-shadow);
}
.pt-ribbon__track {
	display: flex;
	gap: 44px;
	width: max-content;
	animation: pt-ribbon 30s linear infinite;
}
.pt-ribbon__track span {
	display: inline-flex;
	align-items: center;
	gap: 44px;
	font-family: var(--pt-font-display);
	font-weight: 600;
	font-size: 1.02rem;
	white-space: nowrap;
}
.pt-ribbon__track i { font-style: normal; color: var(--pt-sun); }
@keyframes pt-ribbon {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.pt-ribbon__track { animation: none; }
}

/* ---------- Secciones ---------- */
.pt-section { padding: 84px 0; }
.pt-section--tint { background: rgba(255, 255, 255, .55); border-block: 2px solid rgba(51, 48, 78, .05); }
.pt-kicker {
	display: inline-block;
	padding: 6px 16px;
	border-radius: var(--pt-r-pill);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	margin-bottom: 14px;
}
.pt-kicker--coral { background: var(--pt-coral-soft); color: var(--pt-coral-dark); }
.pt-kicker--sky { background: var(--pt-sky-soft); color: var(--pt-sky-dark); }
.pt-kicker--mint { background: var(--pt-mint-soft); color: var(--pt-mint-dark); }
.pt-kicker--sun { background: var(--pt-sun-soft); color: var(--pt-sun-dark); }
.pt-kicker--violet { background: var(--pt-violet-soft); color: var(--pt-violet-dark); }
.pt-h2 { font-size: clamp(1.9rem, 3.6vw, 2.7rem); font-weight: 700; }
.pt-h2 .muted { color: var(--pt-ink-soft); }
.pt-lead { font-size: 1.08rem; color: var(--pt-ink-soft); max-width: 640px; }
.pt-center { text-align: center; }
.pt-center .pt-lead { margin-inline: auto; }
.pt-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 40px;
}
.pt-link-more {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-weight: 800;
	font-size: .92rem;
	color: var(--pt-coral-dark);
	white-space: nowrap;
}
@media (max-width: 720px) {
	.pt-section { padding: 60px 0; }
	.pt-section__head { flex-direction: column; align-items: flex-start; }
}

/* ---------- Mundos ---------- */
.pt-worlds {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
@media (max-width: 920px) { .pt-worlds { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .pt-worlds { grid-template-columns: 1fr; } }
.pt-world {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 26px;
	border-radius: var(--pt-r-lg);
	background: var(--pt-paper);
	border: 2px solid rgba(51, 48, 78, .07);
	box-shadow: var(--pt-shadow);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.pt-world:hover {
	transform: translateY(-6px) rotate(-.6deg);
	box-shadow: var(--pt-shadow-lg);
	text-decoration: none;
}
.pt-world--coral:hover { border-color: var(--pt-coral); }
.pt-world--sky:hover { border-color: var(--pt-sky); }
.pt-world--mint:hover { border-color: var(--pt-mint); }
.pt-world--sun:hover { border-color: var(--pt-sun); }
.pt-world--violet:hover { border-color: var(--pt-violet); }
.pt-world__badge {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border-radius: 19px;
	color: #fff;
	margin-bottom: 6px;
	box-shadow: 0 4px 0 rgba(51, 48, 78, .12);
}
.pt-world--coral .pt-world__badge { background: var(--pt-coral); }
.pt-world--sky .pt-world__badge { background: var(--pt-sky); }
.pt-world--mint .pt-world__badge { background: var(--pt-mint); }
.pt-world--sun .pt-world__badge { background: var(--pt-sun); }
.pt-world--violet .pt-world__badge { background: var(--pt-violet); }
.pt-world h3 { font-size: 1.25rem; margin: 0; }
.pt-world p { font-size: .92rem; color: var(--pt-ink-soft); margin: 0; }
.pt-world__meta { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.pt-world__go {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 10px;
	font-weight: 800;
	font-size: .88rem;
	color: var(--pt-coral-dark);
}
.pt-world:hover .pt-world__go { transform: translateX(3px); }
.pt-world__go { transition: transform .15s ease; }

/* ---------- Por qué engancha ---------- */
.pt-features {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
@media (max-width: 820px) { .pt-features { grid-template-columns: 1fr; } }
.pt-feature {
	display: flex;
	gap: 18px;
	padding: 24px;
	border-radius: var(--pt-r-lg);
	border: 2px solid transparent;
	transition: transform .18s ease, box-shadow .18s ease;
}
.pt-feature:hover { transform: translateY(-4px); box-shadow: var(--pt-shadow-lg); }
.pt-feature--coral { background: var(--pt-coral-soft); }
.pt-feature--sky { background: var(--pt-sky-soft); }
.pt-feature--mint { background: var(--pt-mint-soft); }
.pt-feature--sun { background: var(--pt-sun-soft); }
.pt-feature--violet { background: var(--pt-violet-soft); }
.pt-feature__icon {
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	border-radius: 16px;
	background: var(--pt-paper);
	box-shadow: 0 3px 0 rgba(51, 48, 78, .10);
	flex-shrink: 0;
}
.pt-feature--coral .pt-feature__icon { color: var(--pt-coral-dark); }
.pt-feature--sky .pt-feature__icon { color: var(--pt-sky-dark); }
.pt-feature--mint .pt-feature__icon { color: var(--pt-mint-dark); }
.pt-feature--sun .pt-feature__icon { color: var(--pt-sun-dark); }
.pt-feature--violet .pt-feature__icon { color: var(--pt-violet-dark); }
.pt-feature h3 { font-size: 1.15rem; margin-bottom: 6px; }
.pt-feature p { font-size: .92rem; color: var(--pt-ink-soft); margin: 0; }

/* ---------- Cómo funciona ---------- */
.pt-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	counter-reset: pt-step;
}
@media (max-width: 820px) { .pt-steps { grid-template-columns: 1fr; } }
.pt-step {
	text-align: center;
	padding: 34px 24px 28px;
	background: var(--pt-paper);
	border: 2px solid rgba(51, 48, 78, .07);
	border-radius: var(--pt-r-lg);
	box-shadow: var(--pt-shadow);
}
.pt-step__emoji {
	display: grid;
	place-items: center;
	width: 74px;
	height: 74px;
	margin: 0 auto 16px;
	border-radius: 26px;
	font-size: 2.1rem;
	background: var(--pt-cream);
	border: 2px dashed rgba(51, 48, 78, .18);
}
.pt-step__num {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: var(--pt-coral);
	color: #fff;
	font-family: var(--pt-font-display);
	font-weight: 700;
	box-shadow: 0 3px 0 var(--pt-coral-dark);
}
.pt-step h3 { font-size: 1.2rem; }
.pt-step p { font-size: .92rem; color: var(--pt-ink-soft); margin: 0; }

/* ---------- Precios ---------- */
.pt-pricing {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	align-items: start;
	margin-bottom: 22px;
}
@media (max-width: 920px) { .pt-pricing { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; } }
.pt-plan {
	position: relative;
	padding: 30px 26px;
	background: var(--pt-paper);
	border: 2px solid rgba(51, 48, 78, .08);
	border-radius: var(--pt-r-lg);
	box-shadow: var(--pt-shadow);
	text-align: left;
}
.pt-plan--star {
	border-color: var(--pt-violet);
	box-shadow: var(--pt-shadow-lg), 0 0 0 4px var(--pt-violet-soft);
}
.pt-plan__flag {
	position: absolute;
	top: -15px;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 16px;
	border-radius: var(--pt-r-pill);
	background: var(--pt-violet);
	color: #fff;
	font-size: .75rem;
	font-weight: 800;
	white-space: nowrap;
	box-shadow: 0 3px 0 var(--pt-violet-dark);
}
.pt-plan h3 { font-size: 1.3rem; }
.pt-plan__price { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px; }
.pt-plan__price b {
	font-family: var(--pt-font-display);
	font-size: 2.3rem;
	font-weight: 700;
	color: var(--pt-ink);
}
.pt-plan__price span { font-weight: 700; color: var(--pt-ink-soft); font-size: .9rem; }
.pt-plan__desc { font-size: .92rem; color: var(--pt-ink-soft); }
.pt-plan ul { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 10px; }
.pt-plan li { display: flex; gap: 9px; align-items: flex-start; font-size: .9rem; font-weight: 600; }
.pt-plan li svg { color: var(--pt-mint-dark); flex-shrink: 0; margin-top: 3px; }
.pt-plan .pt-btn { width: 100%; }
.pt-pricing__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: .88rem;
	font-weight: 700;
	color: var(--pt-ink-soft);
}
.pt-pricing__note svg { color: var(--pt-mint-dark); }

/* ---------- Testimonios ---------- */
.pt-quotes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
@media (max-width: 920px) { .pt-quotes { grid-template-columns: 1fr; } }
.pt-quote {
	margin: 0;
	padding: 26px;
	background: var(--pt-paper);
	border: 2px solid rgba(51, 48, 78, .07);
	border-radius: var(--pt-r-lg);
	box-shadow: var(--pt-shadow);
}
.pt-quote__stars { display: flex; gap: 3px; color: var(--pt-sun); margin-bottom: 14px; }
.pt-quote blockquote {
	margin: 0 0 16px;
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.55;
}
.pt-quote figcaption b { display: block; font-family: var(--pt-font-display); }
.pt-quote figcaption span { font-size: .82rem; color: var(--pt-ink-soft); font-weight: 700; }

/* ---------- FAQ ---------- */
.pt-faq { max-width: 760px; margin: 0 auto; display: grid; gap: 14px; text-align: left; }
.pt-faq__item {
	background: var(--pt-paper);
	border: 2px solid rgba(51, 48, 78, .07);
	border-radius: var(--pt-r);
	box-shadow: var(--pt-shadow);
	overflow: hidden;
}
.pt-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	width: 100%;
	padding: 18px 22px;
	border: 0;
	background: none;
	font-family: var(--pt-font-display);
	font-weight: 600;
	font-size: 1.02rem;
	text-align: left;
	color: var(--pt-ink);
}
.pt-faq__toggle {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 11px;
	background: var(--pt-violet-soft);
	color: var(--pt-violet-dark);
	flex-shrink: 0;
}
.pt-faq__toggle .icon-minus { display: none; }
.pt-faq__item.is-open .pt-faq__toggle .icon-minus { display: block; }
.pt-faq__item.is-open .pt-faq__toggle .icon-plus { display: none; }
.pt-faq__a {
	display: none;
	padding: 0 22px 20px;
	font-size: .92rem;
	color: var(--pt-ink-soft);
}
.pt-faq__item.is-open .pt-faq__a { display: block; }

/* ---------- CTA final ---------- */
.pt-final {
	position: relative;
	overflow: hidden;
	margin: 40px 0 0;
	padding: 90px 24px;
	background: linear-gradient(120deg, var(--pt-coral), var(--pt-violet));
	text-align: center;
}
.pt-final::before,
.pt-final::after {
	content: '';
	position: absolute;
	border-radius: 50%;
	background: rgba(255, 255, 255, .14);
}
.pt-final::before { width: 340px; height: 340px; top: -160px; left: -100px; }
.pt-final::after { width: 260px; height: 260px; bottom: -130px; right: -60px; }
.pt-final__inner { position: relative; max-width: 640px; margin: 0 auto; }
.pt-final__icon {
	display: inline-grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 22px;
	background: rgba(255, 255, 255, .18);
	color: #fff;
	margin-bottom: 20px;
}
.pt-final h2 { color: #fff; font-size: clamp(2rem, 4.2vw, 3rem); }
.pt-final .pt-lead { color: rgba(255, 255, 255, .88); margin-bottom: 30px; }
.pt-final .pt-btn--candy {
	background: #fff;
	color: var(--pt-coral-dark);
	box-shadow: 0 4px 0 rgba(51, 48, 78, .25);
}

/* ---------- Pie ---------- */
.pt-footer {
	background: var(--pt-ink);
	color: rgba(255, 255, 255, .75);
	padding: 56px 0 30px;
	margin-top: 0;
}
.pt-footer a { color: rgba(255, 255, 255, .75); }
.pt-footer a:hover { color: #fff; }
.pt-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 34px;
	margin-bottom: 40px;
}
@media (max-width: 820px) { .pt-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .pt-footer__grid { grid-template-columns: 1fr; } }
.pt-footer__about p { font-size: .88rem; max-width: 300px; margin-top: 14px; }
.pt-footer h4 { color: #fff; font-size: 1rem; margin-bottom: 14px; }
.pt-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; font-size: .9rem; }
.pt-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .12);
	padding-top: 22px;
	display: flex;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	font-size: .82rem;
}

/* ---------- Menú móvil ---------- */
.pt-header__actions { display: flex; align-items: center; gap: 10px; }
.pt-header__burger { display: none; }
@media (max-width: 920px) {
	.pt-header__actions { display: none; }
	.pt-header__burger { display: grid; }
}
.pt-header__mobile {
	display: none;
	flex-direction: column;
	gap: 6px;
	padding: 14px 24px 20px;
	border-top: 2px solid rgba(51, 48, 78, .07);
	background: var(--pt-cream);
}
.pt-header__mobile.is-open { display: flex; }
.pt-header__mobile a {
	padding: 12px 16px;
	border-radius: 14px;
	font-weight: 800;
	color: var(--pt-ink);
}
.pt-header__mobile a:hover { background: var(--pt-violet-soft); text-decoration: none; }
.pt-header__mobile .pt-btn { margin-top: 8px; justify-content: center; }

/* ---------- Páginas estándar (blog, página, 404) ---------- */
.pt-std { padding: 64px 24px 80px; }
.pt-std__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin-top: 30px;
}
@media (max-width: 760px) { .pt-std__grid { grid-template-columns: 1fr; } }
.pt-std__card h2 { font-size: 1.3rem; }
.pt-std__card h2 a { color: var(--pt-ink); }
.pt-std__card h2 a:hover { color: var(--pt-coral-dark); text-decoration: none; }
.pt-std__single { max-width: 780px; margin: 0 auto; padding: 40px; }
@media (max-width: 640px) { .pt-std__single { padding: 26px 20px; } }
.pt-std__content { font-size: 1rem; line-height: 1.75; }
.pt-std__content h2, .pt-std__content h3 { margin-top: 1.4em; }
.pt-std__content img { border-radius: var(--pt-r); height: auto; }
.pt-std__pagi { margin-top: 34px; text-align: center; font-weight: 800; }
.pt-std__pagi .page-numbers {
	display: inline-block;
	padding: 9px 16px;
	margin: 0 3px;
	border-radius: var(--pt-r-pill);
	background: var(--pt-paper);
	border: 2px solid rgba(51, 48, 78, .08);
}
.pt-std__pagi .page-numbers.current { background: var(--pt-coral); border-color: var(--pt-coral); color: #fff; }

/* ---------- Flotación suave de los blobs del hero ---------- */
@keyframes pt-float {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50% { transform: translateY(-18px) rotate(3deg); }
}
.pt-hero__blob { animation: pt-float 9s ease-in-out infinite; }
.pt-hero__blob--2 { animation-duration: 11s; animation-delay: -3s; }
.pt-hero__blob--3 { animation-duration: 7s; animation-delay: -1.5s; }
@media (prefers-reduced-motion: reduce) {
	.pt-hero__blob { animation: none; }
}

/* ---------- Sección Zona Arcade de la portada ---------- */
.pt-arcade-teaser {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 20px;
	align-items: stretch;
}
@media (max-width: 860px) { .pt-arcade-teaser { grid-template-columns: 1fr; } }
.pt-arcade-teaser__games {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
@media (max-width: 560px) { .pt-arcade-teaser__games { grid-template-columns: 1fr; } }
.pt-teasegame {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 22px;
	background: var(--pt-paper);
	border: 2px solid rgba(51, 48, 78, .07);
	border-radius: var(--pt-r-lg);
	box-shadow: var(--pt-shadow);
	transition: transform .18s ease, box-shadow .18s ease;
}
.pt-teasegame:hover { transform: translateY(-4px) rotate(-.5deg); box-shadow: var(--pt-shadow-lg); }
.pt-teasegame b { font-family: var(--pt-font-display); font-size: 1.05rem; }
.pt-teasegame span { font-size: .82rem; font-weight: 700; color: var(--pt-ink-soft); }
.pt-duelcard {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 26px;
	border-radius: var(--pt-r-lg);
	background: linear-gradient(135deg, var(--pt-violet), var(--pt-coral));
	color: #fff;
	box-shadow: var(--pt-shadow-lg);
}
.pt-duelcard::after {
	content: '';
	position: absolute;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	right: -70px;
	bottom: -80px;
}
.pt-duelcard__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 19px;
	background: rgba(255, 255, 255, .18);
}
.pt-duelcard h3 { color: #fff; font-size: 1.35rem; margin: 0; }
.pt-duelcard p { font-size: .9rem; color: rgba(255, 255, 255, .88); margin: 0; }
.pt-duelcard .pt-chip { position: relative; z-index: 1; }
