:root {
/* Verde Bosque - principal */
/* Verde Medio - apoyo */
/* Verde Hoja - acento energía */
/* Lima Claro - suave */
/* Bruma - fondos claros */
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: 'Poppins', system-ui, sans-serif;
	color: var(--ink);
	line-height: 1.65;
	background: var(--white);
	overflow-x: hidden;
}

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

h1,h2,h3 {
	line-height: 1.15;
	color: var(--bosque);
	font-weight: 600;
	letter-spacing: -.01em;
}

h2 {
	font-size: 2.15rem;
	margin-bottom: .35em;
}

p {
	font-weight: 300;
}

section {
	padding: 84px 0;
	position: relative;
}

.eyebrow {
	color: var(--medio);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-size: .75rem;
	margin-bottom: 1em;
	display: block;
}

.btn {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	background: var(--hoja);
	color: var(--bosque);
	padding: 15px 32px;
	border-radius: 50px;
	font-weight: 600;
	text-decoration: none;
	font-size: 1rem;
	transition: transform .25s cubic-bezier(.2,.8,.3,1), box-shadow .25s;
	box-shadow: 0 8px 22px rgba(124,180,52,.35);
	border: none;
	cursor: pointer;
}

.btn:hover {
	transform: translateY(-3px) scale(1.02);
	box-shadow: 0 14px 30px rgba(124,180,52,.45);
}

.btn svg {
	width: 18px;
	height: 18px;
}

.btn-ghost {
	background: transparent;
	color: var(--white);
	border: 1.5px solid rgba(255,255,255,.55);
	box-shadow: none;
}

.btn-ghost:hover {
	background: rgba(255,255,255,.12);
	border-color: #fff;
}

.btn-dark {
	background: var(--bosque);
	color: #fff;
	box-shadow: 0 8px 22px rgba(15,58,42,.3);
}

/* NAV */
.sitenav {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(238,242,233,.82);
	border-bottom: 1px solid transparent;
	transition: box-shadow .3s, border-color .3s;
}

.sitenav.scrolled {
	box-shadow: 0 6px 24px rgba(15,58,42,.08);
	border-color: rgba(15,58,42,.06);
}

.sitenav .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 24px;
}

.sitenav img {
	height: 46px;
	width: auto;
	display: block;
}

.brand {
	display: flex;
	flex-direction: column;
	gap: 3px;
	line-height: 1.05;
}

.byline {
	font-size: .66rem;
	color: var(--medio);
	font-weight: 500;
	letter-spacing: .01em;
}

.sitenav a.btn {
	padding: 10px 22px;
	font-size: .9rem;
}

/* HERO */
.hero {
	background: linear-gradient(140deg,#164C36 0%,#0F3A2A 100%);
	color: #eaf3ec;
	padding: 70px 0 90px;
	overflow: hidden;
}

.hero .wrap {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	gap: 40px;
	align-items: center;
	position: relative;
	z-index: 2;
}

.hero h1 {
	color: #fff;
	font-size: 3.05rem;
	font-weight: 600;
	margin-bottom: .4em;
}

.hero h1 .accent {
	color: var(--hoja);
}

.hero p.lead {
	font-size: 1.2rem;
	color: #cfe0d4;
	font-weight: 300;
	margin-bottom: 1.7em;
	max-width: 36ch;
}

.hero .cta-row {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	align-items: center;
}

.hero .micro {
	margin-top: 1.5em;
	font-size: .86rem;
	color: #a9c4b1;
}

/* Animated 360 ring */
.ring-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	min-height: 320px;
}

.ring-svg {
	width: 330px;
	height: 330px;
	filter: drop-shadow(0 20px 40px rgba(0,0,0,.35));
}

.ring-track {
	fill: none;
	stroke: rgba(255,255,255,.12);
}

.ring-prog {
	fill: none;
	stroke: var(--hoja);
	transform-origin: center;
	transform: rotate(-90deg);
	animation: draw 2.6s cubic-bezier(.4,0,.2,1) .3s forwards;
}

@keyframes draw {
	to {
	}
}

.ring-spin {
	transform-origin: center;
	animation: spin 26s linear infinite;
}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

.ring-core {
	fill: var(--hoja);
	animation: pulse 3s ease-in-out infinite;
}

@keyframes pulse {
	0%,100% {
	}
	
	50% {
	}
}

.ring-label {
	position: absolute;
	text-align: center;
}

.ring-label b {
	display: block;
	font-size: 2.4rem;
	color: #fff;
	font-weight: 600;
	line-height: 1;
}

.ring-label span {
	font-size: .72rem;
	letter-spacing: .2em;
	color: var(--lima);
	text-transform: uppercase;
}

/* reveal on scroll */
.reveal {
	opacity: 0;
	transform: translateY(34px);
	transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.3,1);
}

.reveal.in {
	opacity: 1;
	transform: none;
}

.reveal.d1 {
	transition-delay: .1s;
}

.reveal.d2 {
	transition-delay: .2s;
}

.reveal.d3 {
	transition-delay: .3s;
}

/* PROBLEM */
.prob {
	background: var(--bruma);
}

.prob-grid {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 22px;
	margin-top: 40px;
}

.prob-card {
	background: #fff;
	border-radius: 20px;
	padding: 30px;
	border: 1px solid #e2e8dc;
	transition: transform .3s, box-shadow .3s;
}

.prob-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 40px rgba(15,58,42,.1);
}

.prob-card .q {
	font-weight: 600;
	color: var(--bosque);
	font-size: 1.1rem;
	margin-bottom: .4em;
}

.prob-card p {
	color: var(--grey);
	font-size: .96rem;
}

.prob-card .dot {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--bruma);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
	border: 2px solid var(--hoja);
}

.prob-card .dot i {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--hoja);
	display: block;
}

/* METHOD */
.method {
	background: #fff;
}

.steps {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	gap: 20px;
	margin-top: 44px;
}

.step {
	background: var(--bruma);
	border-radius: 20px;
	padding: 28px 24px;
	position: relative;
	transition: transform .3s, box-shadow .3s;
}

.step:hover {
	transform: translateY(-6px);
	box-shadow: 0 16px 36px rgba(15,58,42,.1);
}

.step .n {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--bosque);
	color: var(--hoja);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1.15rem;
	margin-bottom: 16px;
}

.step h3 {
	font-size: 1.12rem;
	margin-bottom: .3em;
}

.step p {
	color: var(--grey);
	font-size: .92rem;
}

/* PROGRAMS */
.plans-sec {
	background: var(--bruma);
}

.plans {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 22px;
	margin-top: 44px;
	align-items: stretch;
}

.plan {
	background: #fff;
	border: 1px solid #e2e8dc;
	border-radius: 24px;
	padding: 32px 26px;
	display: flex;
	flex-direction: column;
	position: relative;
	transition: transform .3s, box-shadow .3s;
}

.plan:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 44px rgba(15,58,42,.12);
}

.plan.featured {
	border: 2px solid var(--hoja);
	box-shadow: 0 22px 50px rgba(124,180,52,.22);
}

@media(min-width:861px) {
	.plan.featured {
		transform: scale(1.05);
	}
	
	.plan.featured:hover {
		transform: scale(1.05) translateY(-6px);
	}
}

.tag {
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--hoja);
	color: var(--bosque);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	padding: 7px 18px;
	border-radius: 20px;
}

.plan h3 {
	font-size: 1.4rem;
	margin-bottom: .15em;
}

.plan .who {
	color: var(--grey);
	font-size: .9rem;
	min-height: 40px;
	margin-bottom: .6em;
	font-weight: 300;
}

.plan .price {
	font-size: 2rem;
	font-weight: 600;
	color: var(--bosque);
	margin-bottom: .05em;
}

.plan .dur {
	font-size: .85rem;
	color: var(--medio);
	font-weight: 500;
	margin-bottom: 18px;
}

.plan ul {
	list-style: none;
	margin: 0 0 26px;
	flex: 1;
}

.plan li {
	padding: 8px 0 8px 28px;
	position: relative;
	font-size: .94rem;
	font-weight: 300;
	border-bottom: 1px solid #eef1ea;
}

.plan li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 15px;
	width: 13px;
	height: 13px;
	border-radius: 50%;
	background: var(--hoja);
	box-shadow: inset 0 0 0 3px #fff, 0 0 0 1px var(--hoja);
}

.plan .btn {
	justify-content: center;
	width: 100%;
}

.plan-note {
	text-align: center;
	color: var(--grey);
	font-size: .85rem;
	margin-top: 26px;
	font-weight: 300;
}

/* ECO */
.eco {
	background: var(--bosque);
	color: #eaf3ec;
}

.eco h2 {
	color: #fff;
}

.eco .eyebrow {
	color: var(--lima);
}

.eco .wrap {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	gap: 48px;
	align-items: center;
}

.eco p {
	color: #cfe0d4;
}

.scan-box {
	background: #0a2a1e;
	border: 1px solid rgba(124,180,52,.35);
	border-radius: 22px;
	position: relative;
	overflow: hidden;
	box-shadow: 0 24px 50px rgba(0,0,0,.35);
}

.scan-box .echo-img {
	display: block;
	width: 100%;
	height: auto;
}

.scan-box .line {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 3px;
	background: linear-gradient(rgba(124,180,52,.9),rgba(124,180,52,.12));
	box-shadow: 0 0 22px 7px rgba(124,180,52,.5);
	animation: barrido 3.4s ease-in-out infinite;
	pointer-events: none;
}

@keyframes barrido {
	0%,100% {
		left: 5%;
	}
	
	50% {
		left: 93%;
	}
}

.scan-box .cap {
	position: absolute;
	bottom: 12px;
	left: 0;
	right: 0;
	text-align: center;
	font-size: .72rem;
	letter-spacing: .16em;
	color: var(--lima);
	text-shadow: 0 1px 5px #000;
	pointer-events: none;
}

/* PHILOSOPHY */
.philo {
	background: var(--bruma);
	text-align: center;
}

.philo .quote {
	max-width: 760px;
	margin: 22px auto 0;
	font-size: 1.5rem;
	color: var(--bosque);
	font-weight: 400;
	line-height: 1.45;
}

.philo .quote b {
	color: var(--medio);
	font-weight: 600;
}

.philo .who {
	margin-top: 20px;
	color: var(--grey);
	font-weight: 500;
}

.philo .who small {
	display: block;
	font-weight: 300;
	font-size: .85rem;
	margin-top: 2px;
}

/* FAQ */
.faq {
	background: #fff;
}

.faq .wrap {
	max-width: 780px;
}

details {
	background: var(--bruma);
	border-radius: 14px;
	margin-bottom: 12px;
	padding: 0 24px;
	border: 1px solid transparent;
	transition: border-color .2s;
}

details[open] {
	border-color: var(--lima);
}

summary {
	cursor: pointer;
	padding: 20px 0;
	font-weight: 500;
	color: var(--bosque);
	list-style: none;
	position: relative;
	padding-right: 30px;
}

summary::-webkit-details-marker {
	display: none;
}

summary::after {
	content: "+";
	position: absolute;
	right: 2px;
	top: 16px;
	font-size: 1.5rem;
	color: var(--hoja);
	line-height: 1;
	transition: transform .25s;
}

details[open] summary::after {
	transform: rotate(45deg);
}

details p {
	padding: 0 0 22px;
	color: var(--grey);
	font-weight: 300;
}

/* FINAL CTA */
.final {
	background: linear-gradient(140deg,#164C36 0%,#0F3A2A 100%);
	color: #fff;
	text-align: center;
	overflow: hidden;
}

.final h2 {
	color: #fff;
	font-size: 2.5rem;
}

.final p {
	max-width: 52ch;
	margin: .7em auto 1.9em;
	color: #cfe0d4;
	font-size: 1.12rem;
}

.final .mini-ring {
	width: 70px;
	height: 70px;
	margin: 0 auto 22px;
}

.final .mini-ring circle.p {
	fill: none;
	stroke: var(--hoja);
	transform: rotate(-90deg);
	transform-origin: center;
}

footer {
	background: #0a2a1e;
	color: #9fb6a6;
	padding: 40px 0;
	font-size: .9rem;
	text-align: center;
}

footer .flogo {
	display: flex;
	gap: 14px;
	align-items: center;
	justify-content: center;
	margin-bottom: 14px;
}

footer .fsym {
	width: 38px;
	height: 38px;
}

footer .fname {
	font-weight: 600;
	color: #fff;
	font-size: 1.25rem;
	letter-spacing: .02em;
}

footer .fname span {
	color: var(--hoja);
}

footer .small {
	font-size: .78rem;
	opacity: .7;
	margin-top: 8px;
}

@media(max-width:860px) {
	.hero .wrap,.eco .wrap {
		grid-template-columns: 1fr;
	}
	
	.ring-wrap {
		order: -1;
		min-height: 260px;
	}
	
	.ring-svg {
		width: 250px;
		height: 250px;
	}
	
	.prob-grid,.steps,.plans {
		grid-template-columns: 1fr;
	}
	
	.hero h1 {
		font-size: 2.3rem;
	}
	
	.h2,h2 {
		font-size: 1.7rem;
	}
	
	.final h2 {
		font-size: 1.9rem;
	}
	
	section {
		padding: 60px 0;
	}
}

@media(max-width:600px) {
	.sitenav img {
		height: 38px;
	}
	
	.byline {
		font-size: .56rem;
	}
}

/* ==== Core360 · ajustes para WordPress.com (sin JS) ==== */
.reveal {
	opacity: 1 !important;
	transform: none !important;
}

.btn svg,.btn img.wa-ico {
	width: 18px;
	height: 18px;
	flex: none;
}

img.ring-svg {
	display: block;
}

img.mini-ring {
	display: block;
	margin: 0 auto 22px;
}

/* full-bleed: quitar restricciones del tema al contenido */
.wp-block-post-content,.entry-content,.is-layout-constrained {
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.wp-block-post-content>* {
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wp-block-post-title,.entry-header,.wp-block-post-date {
	display: none !important;
}

.sitenav img,.brand img {
	height: 46px;
	width: auto;
	display: block;
}