/**
 * Tema: WordPress Site Factory - Starter Theme
 * Arquivo: assets/css/template-landing-generica.css
 *
 * Desenvolvido por: Roger Alves
 * Data da Modificacao: 2026-07-02
 * Hora da Modificacao: 16:30
 *
 * Todos os direitos reservados.
 */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@700;900&display=swap');

.tmpl-landing {
	background: #ffffff;
}

html[data-gpm-theme="dark"] .tmpl-landing {
	background: var(--color-bg-dark);
}

/* Las secciones configurables reciben el fondo claro como estilo inline.
   En modo oscuro, usa la variable específica elegida en la administración.
   Esta regla vive en el stylesheet compartido para funcionar tanto con el
   template de landing como con el shortcode [gnosis_landing]. */
html[data-gpm-theme="dark"] .gnosis-themed-bg {
	background: var(--gnosis-bg-d, var(--gnosis-bg-l, transparent)) !important;
	color: var(--gnosis-text-d, var(--gnosis-text-l, inherit)) !important;
}

.tmpl-landing .site-header {
	position: relative;
	z-index: 20;
}

.landing-kicker {
	margin-bottom: 0.85rem;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-secondary);
}

/* Kicker posicionado abaixo do h1 no hero */
.hero-kicker-below {
	margin-top: 0.55rem;
	margin-bottom: 1.1rem;
}

.meditation-hero {
	position: relative;
	display: flex;
	align-items: flex-start;
	height: clamp(440px, 62vh, 580px);
	min-height: 440px;
	max-height: 580px;
	background: var(--color-primary-dark);
	overflow: hidden;
}

.meditation-hero-media {
	position: absolute;
	inset: 0;
	overflow: hidden;
	background: var(--color-primary);
}

.meditation-hero-media picture {
	display: block;
	width: 100%;
	height: 100%;
}

.meditation-hero-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: sepia(0.16) saturate(0.9) contrast(0.96);
	transform: scale(1.03);
}

.meditation-hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(7, 21, 36, 0.82) 0%, rgba(7, 21, 36, 0.55) 42%, rgba(7, 21, 36, 0.22) 100%),
		linear-gradient(0deg, rgba(7, 21, 36, 0.35), transparent 55%);
}

.meditation-hero-layout {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 400px);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
	align-self: stretch; /* estica ao alto total do hero p/ o card poder ancorar embaixo */
	width: 100%;
	padding-top: clamp(3rem, 6vw, 4.5rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

.hero-floating-card {
	position: relative;
	padding: clamp(1rem, 2.5vw, 1.5rem);
	overflow: hidden;
	border: 1px solid rgba(244, 185, 66, 0.22);
	border-radius: var(--radius-md);
	background:
		linear-gradient(135deg, rgba(13, 35, 58, 0.12), rgba(7, 21, 36, 0.06)),
		rgba(7, 21, 36, 0.06);
	backdrop-filter: blur(22px) saturate(1.6) brightness(1.05);
	-webkit-backdrop-filter: blur(22px) saturate(1.6) brightness(1.05);
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255,255,255,0.06);
}

.hero-floating-card::before {
	content: "";
	display: block;
	width: 44px;
	height: 4px;
	margin-bottom: 1rem;
	border-radius: var(--radius-full);
	background: var(--color-secondary);
}

.hero-floating-card span,
.hero-floating-card small {
	display: block;
	color: rgba(255, 255, 255, 0.76);
}

.hero-floating-card span {
	color: var(--color-secondary);
	font-size: 0.78rem;
	font-weight: 900;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.hero-floating-card strong {
	display: block;
	margin: 0.35rem 0 0.45rem;
	font-size: clamp(1.25rem, 2vw, 1.8rem);
	font-weight: 900;
	line-height: 1.1;
	color: var(--color-secondary);
}

/* Card vazio: sem evento cadastrado — não ocupa espaço */
.hero-card-empty {
	display: none;
}

/* ── Botão amarelo para o CTA da hero das LPs ── */
.btn-lp-yellow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem 2rem;
	border-radius: var(--radius-sm, 4px);
	background: var(--color-secondary);
	color: #0d1a0a;
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background 0.18s, transform 0.15s;
}

.btn-lp-yellow:hover,
.btn-lp-yellow:focus {
	background: #f5c842;
	color: #0d1a0a;
	transform: translateY(-1px);
}

/* ── Countdown ──
   Usa !important em propriedades críticas para vencer a regra legada
   ".hero-floating-card span { font-size: 0.78rem; }" (especif. 0,1,1)
   sem precisar de resets que criariam novos conflitos.
*/

/* Suprime barrinha decorativa ::before do card genérico */
.hero-countdown.hero-floating-card::before {
	display: none !important;
}

.hero-countdown {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	position: absolute;
	right: 0;
	bottom: clamp(1.5rem, 4vw, 3rem);
	width: clamp(280px, 32vw, 400px);
}

/* Título do countdown */
.hero-countdown .countdown-label {
	display: block !important;
	margin: 0 0 1rem !important;
	font-size: clamp(0.72rem, 1.2vw, 0.95rem) !important;
	font-weight: 900 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: rgba(255, 255, 255, 0.75) !important;
	line-height: 1.3 !important;
}

/* Grid principal do cronômetro */
.hero-countdown .countdown-grid {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-evenly !important;
	gap: 0 !important;
	width: 100% !important;
}

/* Cada unidade (número + label) */
.hero-countdown .countdown-unit {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 0.5rem !important;
	flex: 1 !important;
}

/* Números: Poppins, amarelos */
.hero-countdown .cdown-num {
	display: block !important;
	font-family: 'Poppins', sans-serif !important;
	font-size: clamp(1.9rem, 3.8vw, 3.2rem) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	color: var(--color-secondary) !important;
	letter-spacing: -0.02em !important;
	text-transform: none !important;
}

/* Labels: Días / Horas / Min / Seg */
.hero-countdown .cdown-lbl {
	display: block !important;
	font-size: 0.62rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: rgba(255, 255, 255, 0.52) !important;
}

/* Separadores: dois dots elegantes em CSS — esconde o ":" do HTML */
.hero-countdown .countdown-sep {
	flex-shrink: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 4px !important;
	padding: 0 0.35rem !important;
	font-size: 0 !important;
	color: transparent !important;
	align-self: flex-start !important;
	padding-top: 0.85rem !important; /* alinha dots com a zona dos números */
}

.hero-countdown .countdown-sep::before,
.hero-countdown .countdown-sep::after {
	content: '';
	display: block;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: rgba(244, 185, 66, 0.45);
}

.meditation-hero-copy {
	position: relative;
	max-width: 760px;
	color: var(--color-text-on-dark);
}

.meditation-hero::before {
	content: "";
	position: absolute;
	right: clamp(2rem, 9vw, 8rem);
	bottom: clamp(2rem, 6vw, 4rem);
	z-index: 1;
	width: min(32vw, 340px);
	aspect-ratio: 1;
	border: 1px solid rgba(244, 185, 66, 0.32);
	border-radius: var(--radius-full);
	opacity: 0.55;
	pointer-events: none;
}

.meditation-hero-copy h1 {
	position: relative;
	max-width: 720px;
	margin-top: 0;
	margin-bottom: 0.6rem;
	font-size: clamp(1.7rem, 3vw, 2.75rem);
	line-height: 1.1;
	color: var(--color-text-on-dark);
}

.hero-lead {
	position: relative;
	max-width: 640px;
	margin-bottom: 2rem;
	font-size: clamp(1.08rem, 1.8vw, 1.28rem);
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.86);
}

.hero-actions {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	align-items: center;
}

.meditation-manifest {
	background: #ffffff;
}

html[data-gpm-theme="dark"] .meditation-manifest {
	background: var(--color-bg-light);
}

html[data-gpm-theme="dark"] .meditation-manifest h2,
html[data-gpm-theme="dark"] .meditation-method h2,
html[data-gpm-theme="dark"] .method-steps h3 {
	color: var(--color-primary);
}

html[data-gpm-theme="dark"] .manifest-text p,
html[data-gpm-theme="dark"] .manifest-petals li,
html[data-gpm-theme="dark"] .method-copy p:not(.landing-kicker),
html[data-gpm-theme="dark"] .method-steps p {
	color: var(--color-text-secondary);
}

.manifest-grid {
	display: grid;
	grid-template-columns: minmax(340px, 0.95fr) minmax(0, 1.05fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}

.method-copy h2,
.schedule-heading h2,
.final-cta h2,
.landing-heading h2 {
	font-size: clamp(2rem, 4.8vw, 4rem);
	line-height: 1.06;
}

.manifest-text h2 {
	max-width: 620px;
	margin-bottom: 1rem;
	font-size: clamp(1.45rem, 2.2vw, 2rem);
	line-height: 1.18;
}

.manifest-symbol {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 480px;
}

.manifest-symbol img {
	position: relative;
	z-index: 1;
	width: min(100%, 520px);
	max-height: 520px;
	object-fit: contain;
}

.manifest-text {
	padding-top: 0;
}

.manifest-text p {
	font-size: 1.08rem;
	line-height: 1.9;
}

.manifest-petals {
	display: grid;
	gap: 0.8rem;
	margin-top: 1.5rem;
	padding: 0;
	list-style: none;
}

.manifest-petals li {
	position: relative;
	padding-left: 1.55rem;
	color: var(--color-text-secondary);
	line-height: 1.65;
}

.manifest-petals li::before {
	content: "";
	position: absolute;
	top: 0.62em;
	left: 0;
	width: 0.62rem;
	height: 0.62rem;
	border-radius: var(--radius-full);
	background: var(--color-secondary);
	box-shadow: 0 0 0 4px rgba(244, 185, 66, 0.16);
}

.landing-heading {
	max-width: 760px;
	margin-bottom: 2rem;
}

.landing-heading-wide {
	max-width: 980px;
}

/* ==========================================================================
   Sección de videos (después del Hero) — fondo azul oscuro, thumbnails a la derecha
   ========================================================================== */

.landing-videos {
	background: var(--color-primary-dark);
	padding-top: clamp(3rem, 6vw, 5rem);
	padding-bottom: clamp(3rem, 6vw, 5rem);
}

.landing-videos-heading {
	max-width: 760px;
	margin-bottom: 2rem;
}

.landing-videos-kicker {
	margin: 0 0 0.5rem;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-secondary);
}

.landing-videos-heading h2 {
	margin: 0;
	color: var(--color-text-on-dark);
	font-size: clamp(1.65rem, 3vw, 2.4rem);
	line-height: 1.16;
}

.landing-videos-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(260px, 0.9fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: start;
}

.landing-videos-player {
	position: relative;
}

.landing-videos-frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: var(--radius-md, 12px);
	overflow: hidden;
	background: #000;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

.landing-videos-frame iframe,
.landing-videos-frame video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.landing-videos-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	max-height: clamp(320px, 46vw, 500px);
	overflow-y: auto;
}

.landing-videos-item {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	width: 100%;
	padding: 0.4rem;
	background: transparent;
	border: 0;
	border-radius: var(--radius-md, 10px);
	cursor: pointer;
	text-align: left;
	transition: background 0.2s ease;
}

.landing-videos-item:hover {
	background: rgba(255, 255, 255, 0.06);
}

.landing-videos-item.is-active {
	background: rgba(255, 255, 255, 0.1);
}

.landing-videos-thumb-wrap {
	position: relative;
	flex-shrink: 0;
	width: 104px;
	aspect-ratio: 16 / 9;
	border-radius: 6px;
	overflow: hidden;
	border: 2px solid #fff;
	background: rgba(255, 255, 255, 0.08);
}

.landing-videos-thumb-wrap img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.landing-videos-play-icon {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: rgba(7, 21, 36, 0.28);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.landing-videos-item:hover .landing-videos-play-icon,
.landing-videos-item.is-active .landing-videos-play-icon {
	opacity: 1;
}

.landing-videos-item-title {
	flex: 1;
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--color-text-on-dark);
}

.landing-videos-item.is-active .landing-videos-item-title {
	color: var(--color-secondary);
}

@media (max-width: 860px) {
	.landing-videos-layout {
		grid-template-columns: 1fr;
	}

	.landing-videos-list {
		flex-direction: row;
		overflow-x: auto;
		overflow-y: visible;
		max-height: none;
		padding-bottom: 0.4rem;
	}

	.landing-videos-item {
		flex-direction: column;
		align-items: flex-start;
		width: auto;
		min-width: 140px;
	}

	.landing-videos-thumb-wrap {
		width: 140px;
	}
}

.meditation-path {
	background: radial-gradient(circle at top, var(--color-primary-light), var(--color-primary-dark));
}

.meditation-path .landing-heading h2 {
	max-width: 820px;
	font-size: clamp(1.65rem, 3vw, 2.7rem);
	line-height: 1.14;
	color: var(--color-text-on-dark);
}

.path-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 4vw, 3rem);
	text-align: center;
}

.path-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: auto;
	padding: 1rem;
	border-radius: var(--radius-md);
	background: transparent;
	box-shadow: none;
	transition: transform 240ms ease, background-color 240ms ease;
}

.path-image-wrap {
	display: grid;
	place-items: center;
	width: clamp(150px, 18vw, 210px);
	aspect-ratio: 1 / 1;
	margin-bottom: 1.5rem;
	border: 2px solid rgba(244, 185, 66, 0.55);
	border-radius: var(--radius-full);
	background: rgba(255, 255, 255, 0.08);
	overflow: hidden;
	transition: border-color 240ms ease, box-shadow 240ms ease, transform 240ms ease, background-color 240ms ease;
}

.path-image-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	filter: sepia(0.25);
	opacity: 1;
	transition: transform 240ms ease, filter 240ms ease;
}

.path-card::after {
	content: none;
}

.path-card-copy {
	position: static;
	padding: 0;
}

/* Padronizado com o padrão .triad-card da home: sem numeração visível. */
.path-card span {
	display: none;
}

.path-card h3 {
	max-width: 300px;
	margin: 0 auto 0.75rem;
	font-size: clamp(1.2rem, 2vw, 1.65rem);
	line-height: 1.14;
	color: var(--color-text-on-dark);
}

.path-card p {
	max-width: 290px;
	margin: 0 auto 1.5rem;
	color: rgba(255, 255, 255, 0.82);
}

.path-card:hover,
.path-card:focus-within {
	transform: translateY(-8px);
	background-color: rgba(255, 255, 255, 0.04);
}

.path-card:hover .path-image-wrap,
.path-card:focus-within .path-image-wrap {
	border-color: var(--color-secondary);
	background-color: rgba(244, 185, 66, 0.12);
	box-shadow: 0 0 0 8px rgba(244, 185, 66, 0.08), var(--shadow-lg);
	transform: scale(1.04);
}

.path-card:hover .path-image-wrap img,
.path-card:focus-within .path-image-wrap img {
	filter: sepia(0.05) saturate(1.12);
	transform: scale(1.08);
}

.path-card:hover h3,
.path-card:focus-within h3 {
	color: var(--color-secondary-light);
}

.meditation-method {
	background: var(--color-bg-surface);
}

html[data-gpm-theme="dark"] .meditation-method {
	background: var(--color-bg-dark);
}

.method-panel {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

.method-copy {
	position: sticky;
	top: 110px;
	max-width: 560px;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border-left: 5px solid var(--color-secondary);
	background: #ffffff;
	border-radius: var(--radius-md);
	box-shadow: 0 18px 50px rgba(7, 21, 36, 0.06);
}

html[data-gpm-theme="dark"] .method-copy {
	border: 1px solid rgba(6, 37, 71, 0.52);
	border-left: 5px solid var(--color-secondary);
	background: var(--color-bg-surface);
	box-shadow: 0 22px 56px rgba(0, 0, 0, 0.28);
}

.method-copy h2 {
	margin-bottom: 1rem;
	font-size: clamp(1.65rem, 3vw, 2.55rem);
	line-height: 1.16;
}

.method-copy p:not(.landing-kicker) {
	font-size: 1rem;
	line-height: 1.8;
}

.method-note {
	margin-top: 1.5rem;
	padding: 1rem;
	border-radius: var(--radius-md);
	background: rgba(244, 185, 66, 0.14);
	color: var(--color-primary);
	font-weight: 700;
}

html[data-gpm-theme="dark"] .method-note {
	background: rgba(253, 186, 73, 0.12);
	color: var(--color-primary);
}

.method-steps {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.method-steps article {
	min-height: 230px;
	padding: 1.35rem;
	border: 1px solid rgba(13, 35, 58, 0.08);
	border-radius: var(--radius-md);
	background: #ffffff;
	box-shadow: 0 12px 34px rgba(7, 21, 36, 0.05);
	transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}

html[data-gpm-theme="dark"] .method-steps article {
	border-color: rgba(6, 37, 71, 0.46);
	background: var(--color-bg-surface);
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.22);
}

.method-steps article:hover,
.method-steps article:focus-within {
	transform: translateY(-5px);
	border-color: rgba(244, 185, 66, 0.55);
	box-shadow: 0 22px 56px rgba(7, 21, 36, 0.1);
}

html[data-gpm-theme="dark"] .method-steps article:hover,
html[data-gpm-theme="dark"] .method-steps article:focus-within {
	border-color: rgba(253, 186, 73, 0.44);
	box-shadow: 0 24px 58px rgba(0, 0, 0, 0.34);
}

.method-steps span {
	display: inline-flex;
	margin-bottom: 1rem;
	color: var(--color-secondary);
	font-size: 0.82rem;
	font-weight: 900;
	letter-spacing: 0.08em;
}

.method-steps h3 {
	margin-bottom: 0.65rem;
	font-size: clamp(1.1rem, 2vw, 1.45rem);
	line-height: 1.18;
}

.method-steps p {
	margin: 0;
	line-height: 1.7;
}

.meditation-schedule {
	position: relative;
	overflow: hidden;
	background: var(--color-primary-dark);
}

.schedule-bg {
	position: absolute;
	inset: -14% 0;
	width: 100%;
	height: 128%;
	object-fit: cover;
	opacity: 0.2;
	filter: grayscale(1);
}

.meditation-schedule::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(7, 21, 36, 0.96), rgba(7, 21, 36, 0.72)),
		radial-gradient(circle at 84% 10%, rgba(244, 185, 66, 0.2), transparent 28%);
}

.schedule-layout {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
}

.schedule-heading h2,
.schedule-heading p {
	color: var(--color-text-on-dark);
}

.schedule-heading p {
	max-width: 610px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.08rem;
	line-height: 1.85;
}

.schedule-stack {
	display: grid;
	gap: 1rem;
}

.schedule-stack article {
	position: relative;
	overflow: hidden;
	padding: clamp(1.2rem, 3vw, 1.7rem);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--radius-md);
	background: rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(10px);
}

.schedule-stack article::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 5px;
	background: var(--color-secondary);
}

.schedule-stack span {
	display: inline-flex;
	margin-bottom: 0.45rem;
	color: var(--color-secondary);
	font-size: 0.76rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.schedule-stack h3 {
	margin-bottom: 0.45rem;
	color: var(--color-text-on-dark);
}

.schedule-stack p {
	margin: 0;
	color: rgba(255, 255, 255, 0.78);
}

.final-cta {
	position: relative;
	overflow: hidden;
	background: var(--color-secondary);
	text-align: left;
}

.final-cta-bg {
	position: absolute;
	inset: -16% 0;
	z-index: 0;
	width: 100%;
	height: 132%;
	object-fit: cover;
	opacity: 0.18;
	filter: grayscale(1) sepia(0.25);
}

.final-cta::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(244, 185, 66, 0.95), rgba(244, 185, 66, 0.76)),
		radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.45), transparent 35%);
}

.final-cta-inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
	padding-top: clamp(3.5rem, 8vw, 6rem);
	padding-bottom: clamp(3.5rem, 8vw, 6rem);
}

.final-cta-copy {
	max-width: 720px;
}

.final-cta h2,
.final-cta p {
	color: var(--color-primary-dark);
}

.final-cta p:not(.landing-kicker) {
	max-width: 680px;
	margin: 0 0 2rem;
	color: rgba(7, 21, 36, 0.82);
	font-size: 1.08rem;
	line-height: 1.8;
}

.final-actions {
	justify-content: flex-start;
}

.final-cta-symbol {
	justify-self: end;
	display: grid;
	place-items: center;
	width: min(100%, 340px);
	aspect-ratio: 1;
	padding: clamp(0.9rem, 2.5vw, 1.2rem);
	border: clamp(0.8rem, 2vw, 1.25rem) solid rgba(255, 255, 255, 0.42);
	border-radius: var(--radius-md);
	background: #ffffff;
	background-clip: padding-box;
	box-shadow: var(--shadow-lg);
	transform: rotate(3deg) translateY(0);
	transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}

html[data-gpm-theme="dark"] .final-cta-symbol {
	border-color: rgba(255, 255, 255, 0.34);
	background: #f8fafc;
}

.final-cta-symbol img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform 240ms ease, filter 240ms ease;
}

.final-cta-symbol:hover,
.final-cta-symbol:focus-visible {
	border-color: rgba(255, 255, 255, 0.62);
	box-shadow: 0 18px 40px rgba(7, 21, 36, 0.22);
	transform: rotate(1deg) translateY(-10px) scale(1.04);
}

.final-cta-symbol:hover img,
.final-cta-symbol:focus-visible img {
	filter: contrast(1.04) saturate(1.08);
	transform: scale(1.02);
}

/* =============================================================================
   TIMELINE — Programa del workshop
   ============================================================================= */

.meditation-timeline {
	background: var(--color-primary-dark);
	color: var(--color-text-on-dark);
}

html[data-gpm-theme="dark"] .meditation-timeline {
	background: var(--color-bg-dark);
}

.meditation-timeline .timeline-heading {
	max-width: 680px;
	margin: 0 auto clamp(3rem, 6vw, 5rem);
	text-align: center;
}

.meditation-timeline .timeline-heading h2 {
	font-size: clamp(1.9rem, 3.5vw, 3rem);
	line-height: 1.1;
	color: inherit;
}

.timeline-lead {
	margin-top: 0.85rem;
	font-size: clamp(1rem, 1.6vw, 1.15rem);
	line-height: 1.8;
	color: inherit;
	opacity: 0.7;
}

.timeline-track {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
}

.timeline-line {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 1.15rem;
	width: 2px;
	background: rgba(244, 185, 66, 0.25);
}

.timeline-items {
	display: grid;
	gap: 1.25rem;
	padding-left: 3rem;
}

.timeline-item {
	position: relative;
}

.timeline-dot {
	position: absolute;
	top: 1.45rem;
	left: -1.85rem;
	width: 1rem;
	height: 1rem;
	border-radius: var(--radius-full);
	background: var(--color-secondary);
	box-shadow: 0 0 0 4px rgba(244, 185, 66, 0.18), 0 0 0 8px rgba(244, 185, 66, 0.07);
	transform: translateX(-50%);
}

.timeline-card {
	padding: clamp(1.2rem, 3vw, 1.6rem) clamp(1.2rem, 3vw, 1.75rem);
	border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
	border-radius: var(--radius-md);
	background: color-mix(in srgb, currentColor 6%, transparent);
	backdrop-filter: blur(8px);
	transition: border-color 220ms ease, background 220ms ease;
}

.timeline-card:hover {
	border-color: rgba(244, 185, 66, 0.35);
	background: color-mix(in srgb, currentColor 9%, transparent);
}

.timeline-item-label {
	margin-bottom: 0.5rem;
	font-size: 0.73rem;
	font-weight: 400;
	letter-spacing: 0.12em;
	color: #f4b942 !important;
}

.timeline-card h3 {
	margin-bottom: 0.5rem;
	font-size: clamp(1.05rem, 1.8vw, 1.35rem);
	line-height: 1.25;
	color: inherit;
}

.timeline-card p:not(.timeline-item-label) {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.75;
	color: inherit;
	opacity: 0.72;
}

@media (max-width: 980px) {
	.meditation-hero-layout,
	.manifest-grid,
	.method-panel,
	.schedule-layout,
	.final-cta-inner {
		grid-template-columns: 1fr;
	}

	.meditation-hero {
		height: auto;
		min-height: auto;
		align-items: flex-start;
	}

	.meditation-hero-layout {
		align-items: start;
		padding-top: 5rem;
		padding-bottom: 3rem;
	}

	.path-grid {
		grid-template-columns: 1fr;
	}

	.path-card {
		min-height: auto;
	}

	.method-copy {
		position: static;
		max-width: none;
	}

	.method-steps {
		grid-template-columns: 1fr;
	}

	.final-cta-symbol {
		justify-self: start;
	}
}

@media (max-width: 640px) {
	.meditation-hero-layout {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}

	.meditation-hero-copy h1 {
		font-size: clamp(1.6rem, 9vw, 2.4rem);
	}

	.hero-actions .btn {
		width: 100%;
	}

	/* Padronizado com o padrão .triad-card da home (anexo 1): no mobile
	   o card continua empilhado (imagem centralizada em cima, título,
	   texto e botão embaixo) em vez de virar linha com imagem à esquerda. */

	/* Somente em celulares: centraliza o kicker e o título dos destaques. */
	.meditation-path .landing-heading {
		text-align: center;
	}

	.manifest-grid {
		grid-template-columns: 1fr;
	}

	.manifest-symbol {
		min-height: 260px;
		order: -1;
	}

	.manifest-symbol img {
		max-height: 280px;
	}

	.method-panel {
		grid-template-columns: 1fr;
	}

	.schedule-layout {
		grid-template-columns: 1fr;
	}

	.final-cta-inner {
		grid-template-columns: 1fr;
	}

	.hero-floating-card {
		margin-top: 0;
	}

	.hero-countdown {
		position: static;
		width: 100%;
		margin-top: 1.5rem;
	}

	.hero-countdown .cdown-num {
		font-size: clamp(1.4rem, 8vw, 2.2rem);
	}

	.hero-countdown .countdown-sep {
		padding-top: 0.5rem !important;
	}

	.btn-lp-yellow {
		width: 100%;
	}

	.timeline-track {
		max-width: none;
	}

	.timeline-items {
		padding-left: 2.5rem;
	}

	.timeline-dot {
		left: -1.35rem;
	}
}

/* ==========================================================================
   Sección "Formulario" (landing pages) — estética compatible con los
   formularios del dashboard de área de miembros (.gpm-access-form).
   ========================================================================== */

.gnosis-lp-form-layout {
	display: grid;
	gap: clamp(2rem, 5vw, 3.5rem);
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}

.gnosis-lp-form-heading p:not(.landing-kicker) {
	max-width: 620px;
	margin: 0 auto;
	color: rgba(31, 41, 55, 0.78);
	font-size: 1.05rem;
	line-height: 1.7;
}

.gnosis-lp-form {
	display: grid;
	gap: 1.1rem;
	text-align: left;
}

.gnosis-lp-form-honeypot {
	position: absolute;
	left: -9999px;
	top: -9999px;
}

.gnosis-lp-field {
	display: grid;
	gap: 0.45rem;
}

.gnosis-lp-field label {
	display: grid;
	gap: 0.45rem;
}

.gnosis-lp-field-label {
	color: #33445a;
	font-size: calc(0.86rem + 1pt);
	font-weight: 560;
}

.gnosis-lp-field input[type="text"],
.gnosis-lp-field input[type="email"],
.gnosis-lp-field input[type="tel"],
.gnosis-lp-field select,
.gnosis-lp-field textarea {
	width: 100%;
	background: #fff;
	border: 1px solid rgba(13, 35, 58, 0.18);
	border-radius: 12px;
	min-height: 48px;
	padding: 0.8rem 0.95rem;
	font-size: calc(0.95rem + 1pt);
	font-family: inherit;
	color: var(--color-text-primary, #1f2937);
}

.gnosis-lp-field textarea {
	min-height: 110px;
	resize: vertical;
}

.gnosis-lp-field input:focus,
.gnosis-lp-field select:focus,
.gnosis-lp-field textarea:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(6, 37, 71, 0.14);
}

.gnosis-lp-field-help {
	color: rgba(31, 41, 55, 0.6);
	font-size: calc(0.78rem + 1pt);
	line-height: 1.5;
}

.gnosis-lp-field-options {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

/* Especificidad: ".gnosis-lp-field label" (regla genérica más arriba) tiene
   más peso que ".gnosis-lp-field-option-line" sola, así que su "display:grid"
   ganaba y apilaba el checkbox arriba del texto. Al calificar el selector con
   ".gnosis-lp-field-options" se sube la especificidad y gana el flex. */
.gnosis-lp-field-options .gnosis-lp-field-option-line {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	font-size: calc(0.92rem + 1pt);
	padding: 0.55rem 0.7rem;
	border-radius: 10px;
	border: 1px solid rgba(13, 35, 58, 0.14);
	background: #fff;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}

.gnosis-lp-field-options .gnosis-lp-field-option-line:hover {
	border-color: rgba(13, 35, 58, 0.28);
	background: rgba(6, 37, 71, 0.04);
}

.gnosis-lp-field-options .gnosis-lp-field-option-line input[type="radio"],
.gnosis-lp-field-options .gnosis-lp-field-option-line input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	min-height: 0;
	accent-color: var(--color-primary);
}

.gnosis-lp-field-options .gnosis-lp-field-option-line span {
	flex: 1 1 auto;
}

.gnosis-lp-form-message {
	font-size: calc(0.9rem + 1pt);
	line-height: 1.5;
	min-height: 0;
}

.gnosis-lp-form-message:empty {
	display: none;
}

.gnosis-lp-form-message--success {
	color: #1a7f4b;
}

.gnosis-lp-form-message--error {
	color: #c0392b;
}

.gnosis-lp-form-submit {
	justify-self: start;
	font-size: calc(0.95rem + 1pt);
}

/* Modal de confirmación de envío — centrado en pantalla, con overlay. Al
   cerrarlo, el JS redirige a la página de inicio (ver script del formulario). */
body.gnosis-lp-modal-open {
	overflow: hidden;
}

.gnosis-lp-form-modal[hidden] {
	display: none;
}

.gnosis-lp-form-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}

.gnosis-lp-form-modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(6, 12, 24, 0.55);
	animation: gnosisLpModalFadeIn .18s ease-out;
}

.gnosis-lp-form-modal-box {
	position: relative;
	z-index: 1;
	max-width: 420px;
	width: 100%;
	background: #fff;
	border-radius: 16px;
	padding: 2.4rem 2rem 2rem;
	text-align: center;
	box-shadow: 0 20px 60px rgba(6, 12, 24, 0.35);
	animation: gnosisLpModalPopIn .2s ease-out;
}

.gnosis-lp-form-modal-close {
	position: absolute;
	top: 0.6rem;
	right: 0.7rem;
	width: 32px;
	height: 32px;
	border: none;
	background: transparent;
	color: rgba(31, 41, 55, 0.55);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	border-radius: 50%;
	transition: background .15s, color .15s;
}

.gnosis-lp-form-modal-close:hover {
	background: rgba(6, 37, 71, 0.08);
	color: var(--color-primary);
}

.gnosis-lp-form-modal-message {
	margin: 0;
	font-size: calc(1.05rem + 1pt);
	line-height: 1.6;
	color: var(--color-text-primary, #1f2937);
}

@keyframes gnosisLpModalFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes gnosisLpModalPopIn {
	from { opacity: 0; transform: translateY(8px) scale(0.97); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

html[data-gpm-theme="dark"] .gnosis-lp-form-modal-box {
	background: #0b1420;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

html[data-gpm-theme="dark"] .gnosis-lp-form-modal-message {
	color: #d7e3f8;
}

html[data-gpm-theme="dark"] .gnosis-lp-form-modal-close {
	color: rgba(215, 227, 248, 0.6);
}

html[data-gpm-theme="dark"] .gnosis-lp-form-modal-close:hover {
	background: rgba(215, 227, 248, 0.1);
	color: #fdba49;
}

/* Dark mode — sigue la misma convención html[data-gpm-theme="dark"] usada
   en todo el tema y en el dashboard de área de miembros. */
html[data-gpm-theme="dark"] .gnosis-lp-field input[type="text"],
html[data-gpm-theme="dark"] .gnosis-lp-field input[type="email"],
html[data-gpm-theme="dark"] .gnosis-lp-field input[type="tel"],
html[data-gpm-theme="dark"] .gnosis-lp-field select,
html[data-gpm-theme="dark"] .gnosis-lp-field textarea {
	background: #030f1d;
	border-color: rgba(142, 145, 150, 0.34);
	color: #d7e3f8;
}

html[data-gpm-theme="dark"] .gnosis-lp-field-label {
	color: #d7e3f8;
}

html[data-gpm-theme="dark"] .gnosis-lp-field-options .gnosis-lp-field-option-line {
	background: #030f1d;
	border-color: rgba(142, 145, 150, 0.34);
	color: #d7e3f8;
}

html[data-gpm-theme="dark"] .gnosis-lp-field-options .gnosis-lp-field-option-line:hover {
	border-color: rgba(215, 227, 248, 0.5);
	background: rgba(215, 227, 248, 0.06);
}

html[data-gpm-theme="dark"] .gnosis-lp-field-help,
html[data-gpm-theme="dark"] .gnosis-lp-form-heading p:not(.landing-kicker) {
	color: rgba(215, 227, 248, 0.68);
}

html[data-gpm-theme="dark"] .gnosis-lp-form-message--success {
	color: #4ade80;
}

html[data-gpm-theme="dark"] .gnosis-lp-form-message--error {
	color: #f87171;
}

@media (max-width: 640px) {
	.gnosis-lp-field-label {
		font-size: calc(1rem + 1pt);
	}

	.gnosis-lp-field input[type="text"],
	.gnosis-lp-field input[type="email"],
	.gnosis-lp-field input[type="tel"],
	.gnosis-lp-field select,
	.gnosis-lp-field textarea,
	.gnosis-lp-field-options .gnosis-lp-field-option-line,
	.gnosis-lp-form-message,
	.gnosis-lp-form-submit {
		font-size: calc(1rem + 1pt);
	}

	.gnosis-lp-field-help {
		font-size: calc(0.9rem + 1pt);
	}

	.gnosis-lp-form-modal-message {
		font-size: calc(1.1rem + 1pt);
	}

	.gnosis-lp-form-submit {
		justify-self: stretch;
	}
}
