/* Tarot Amor — estilos del tema */
:root {
	--ta-fondo: #F7F4FB; --ta-blanco: #FFFFFF; --ta-lav: #E9E2F5; --ta-lav2: #D6CBEC; --ta-lila: #7B68B5; --ta-lila2: #5B4A94;
	--ta-agua: #7FD6C2; --ta-agua-s: #DDF4EE; --ta-verde: #17766A; --ta-verde2: #0F5C52;
	--ta-tinta: #251E3A; --ta-tinta2: #5E5776; --ta-linea: #E3DCEF; --ta-pie: #1C162D;
	--ta-serif: "Cormorant Garamond", Georgia, serif;
	--ta-barra-h: 72px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { -webkit-font-smoothing: antialiased; }
::selection { background: var(--ta-lav2); color: var(--ta-tinta); }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.ta-main { margin-top: 0 !important; }
.ta-main > * { margin-block-start: 0 !important; }

/* ---------- Utilidades ---------- */
.ta-k { font-size: .78rem !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ta-verde); margin-bottom: -.4rem !important; }
.ta-c { text-align: center; }
.ta-lead, .ta-lead p { font-size: 1.15rem; color: var(--ta-tinta2); }
.ta-lead.ta-c { max-width: 620px !important; margin-left: auto !important; margin-right: auto !important; }
.ta-seccion { padding-top: clamp(3.5rem, 8vw, 6rem) !important; padding-bottom: clamp(3.5rem, 8vw, 6rem) !important; }
.ta-alt { background: var(--ta-blanco); border-top: 1px solid var(--ta-linea); border-bottom: 1px solid var(--ta-linea); }
.ta-grid { display: grid !important; gap: 1rem; margin-top: 2.4rem !important; }
.ta-grid > * { margin: 0 !important; }
.ta-grid-3 { grid-template-columns: repeat(3, 1fr); }
.ta-grid-2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 860px) { .ta-grid-3, .ta-grid-2 { grid-template-columns: 1fr; } }

/* ---------- Botones ---------- */
.ta-btn { display: inline-flex; align-items: center; gap: .7rem; border-radius: 999px; text-decoration: none !important; font-weight: 500; line-height: 1.2; transition: transform .2s, box-shadow .2s, background .2s, color .2s; }
.ta-btn svg { width: 20px; height: 20px; flex: none; }
.ta-btn-tel { background: var(--ta-verde); color: #fff !important; padding: .8rem 1.6rem .8rem 1.3rem; box-shadow: 0 10px 28px -10px rgba(23, 118, 106, .6); }
.ta-btn-tel:hover { background: var(--ta-verde2); transform: translateY(-2px); }
.ta-btn-tel span { display: flex; flex-direction: column; line-height: 1.15; }
.ta-btn-tel small { font-size: .75rem; opacity: .85; font-weight: 400; }
.ta-btn-tel b { font-size: 1.25rem; font-weight: 600; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.ta-btn-wa { border: 1.5px solid var(--ta-lila); color: var(--ta-lila2) !important; padding: .85rem 1.4rem; background: transparent; }
.ta-btn-wa:hover { background: var(--ta-lila); color: #fff !important; }
.ta-acc { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.8rem 0 1.1rem; }
.ta-chips { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; font-size: .9rem; color: var(--ta-tinta2); list-style: none; padding: 0; margin: 0; }
.ta-chips li::before { content: "♡"; color: var(--ta-verde); margin-right: .4rem; }
.ta-tel-txt { font-weight: 600; white-space: nowrap; }

/* ---------- Cabecera ---------- */
.ta-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--ta-linea); isolation: isolate; }
.ta-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(247, 244, 251, .9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.admin-bar .ta-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ta-header { top: 0; } }
.ta-header-in { min-height: 70px; gap: 1rem; }
.ta-header-der { gap: 1.6rem; }
.wp-block-site-title { font-family: var(--ta-serif); font-size: 1.6rem; font-weight: 600; line-height: 1; margin: 0; }
.wp-block-site-title a { text-decoration: none; color: var(--ta-tinta); display: inline-flex; align-items: center; gap: .55rem; }
.wp-block-site-title i { color: var(--ta-lila); font-weight: 500; }
.ta-header .wp-block-site-title a::before {
	content: ""; width: 28px; height: 28px; flex: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='none' stroke='%237B68B5' stroke-width='2' d='M24 40S7 29.5 7 18.5A8.5 8.5 0 0 1 24 14a8.5 8.5 0 0 1 17 4.5C41 29.5 24 40 24 40Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ta-nav { font-size: .95rem; }
.ta-nav a { text-decoration: none; color: var(--ta-tinta2); }
.ta-nav a:hover { color: var(--ta-verde); }
.ta-btn-mini { background: var(--ta-verde); color: #fff !important; padding: .55rem 1.1rem; font-size: .95rem; gap: .45rem; white-space: nowrap; }
.ta-btn-mini:hover { background: var(--ta-verde2); }
.ta-btn-mini svg { width: 16px; height: 16px; }
.ta-btn-mini .ta-mini-num { font-variant-numeric: tabular-nums; }
.ta-btn-mini .ta-mini-txt { display: none; }
@media (max-width: 520px) { .ta-btn-mini .ta-mini-num { display: none; } .ta-btn-mini .ta-mini-txt { display: inline; } .ta-header-der { gap: .8rem; } .wp-block-site-title { font-size: 1.4rem; } }

/* Menú móvil */
.ta-nav .wp-block-navigation__responsive-container-open { color: var(--ta-lila2); }
.ta-nav .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }
.ta-nav .wp-block-navigation__responsive-container.is-menu-open { background: radial-gradient(ellipse 120% 60% at 50% 0%, var(--ta-lav) 0%, var(--ta-fondo) 65%) !important; padding: 1.25rem 1.5rem 2rem !important; }
.ta-nav .wp-block-navigation__responsive-container-close { color: var(--ta-lila2); }
.ta-nav .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }
.ta-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4.5rem !important; align-items: center !important; }
.ta-nav .is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: stretch !important; gap: 0 !important; width: 100%; max-width: 420px; margin: 0 auto; }
.ta-nav .is-menu-open .wp-block-navigation-item { width: 100%; justify-content: center !important; border-bottom: 1px solid var(--ta-linea); }
.ta-nav .is-menu-open .wp-block-navigation-item:first-child { border-top: 1px solid var(--ta-linea); }
.ta-nav .is-menu-open .wp-block-navigation-item__content { display: block; width: 100%; text-align: center; padding: 1rem 0 !important; font-family: var(--ta-serif); font-size: 1.6rem; color: var(--ta-tinta) !important; }

/* ---------- Portada ---------- */
.ta-hero { padding-top: clamp(2.5rem, 6vw, 4.5rem) !important; padding-bottom: clamp(3rem, 6vw, 4.5rem) !important; overflow: hidden; }
.ta-hero-cols { gap: 3rem !important; }
.ta-hero h1 em { font-style: italic; color: var(--ta-lila); font-weight: 500; }
.ta-hero-cols .ta-lead { max-width: 540px; }
.ta-vis { position: relative; height: 460px; }
.ta-luna { position: absolute; inset: 4% 2% 4% 6%; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff 0, var(--ta-lav) 45%, var(--ta-lav2) 100%); }
.ta-anillo { position: absolute; inset: -2% -4% -2% 0; border: 1px dashed var(--ta-lav2); border-radius: 50%; }
.ta-carta { position: absolute; width: 150px; height: 240px; border-radius: 14px; background: var(--ta-blanco); box-shadow: 0 24px 50px -20px rgba(37, 30, 58, .35); padding: 10px; }
.ta-carta > div { height: 100%; border-radius: 8px; border: 1px solid var(--ta-lav2); display: grid; place-items: center; background: linear-gradient(180deg, var(--ta-fondo), var(--ta-lav)); }
.ta-c1 { left: 14%; top: 16%; transform: rotate(-10deg); }
.ta-c2 { left: 42%; top: 9%; transform: rotate(6deg); z-index: 2; }
.ta-c2 > div { background: linear-gradient(180deg, var(--ta-agua-s), #BDEBDF); }
.ta-chispa { position: absolute; color: var(--ta-verde); font-size: 1.4rem; line-height: 1; }
.ta-ch1 { left: 8%; top: 62%; } .ta-ch2 { right: 6%; top: 30%; font-size: 1rem; } .ta-ch3 { right: 20%; bottom: 8%; }
.ta-hero-servicio { text-align: left; border-bottom: 1px solid var(--ta-linea); background: linear-gradient(180deg, var(--ta-lav) 0, var(--ta-fondo) 100%); }
.ta-hero-servicio .wp-block-post-excerpt__excerpt { margin: 0; }
@media (max-width: 781px) {
	.ta-hero-cols { flex-direction: column-reverse; gap: 1.5rem !important; }
	.ta-vis { height: 250px; max-width: 260px; margin: 0 auto; }
	.ta-carta { width: 100px; height: 160px; }
}

/* ---------- Preguntas ---------- */
.ta-p { border: 1px solid var(--ta-linea); border-radius: 20px; padding: 1.4rem 1.5rem; background: var(--ta-fondo); }
.ta-p h3 { font-size: 1.45rem; margin: 0 0 .35rem; }
.ta-p p { font-size: .96rem; color: var(--ta-tinta2); margin: 0 !important; }
.ta-p:nth-child(3n+2) { background: var(--ta-agua-s); border-color: #C6EBE1; }

/* ---------- Pasos ---------- */
.ta-pasos { gap: 2rem; counter-reset: ta; }
.ta-paso { counter-increment: ta; border-top: 1px solid var(--ta-lav2); padding-top: 1.2rem; }
.ta-paso::before { content: "0" counter(ta); font-family: var(--ta-serif); font-size: 2.6rem; color: var(--ta-lila); font-style: italic; font-weight: 500; display: block; line-height: 1; margin-bottom: .6rem; }
.ta-paso h3 { margin: 0 0 .4rem; }
.ta-paso p { color: var(--ta-tinta2); font-size: .98rem; margin: 0 !important; }

/* ---------- Texto ---------- */
.ta-texto { background: var(--ta-blanco); border-top: 1px solid var(--ta-linea); }
.ta-senales { gap: 1rem; }
.ta-senal { border-radius: 18px; padding: 1.2rem 1.4rem; background: var(--ta-lav); }
.ta-senal-si { background: var(--ta-agua-s); }
.ta-senal h3 { font-size: 1.3rem; margin: 0 0 .4rem; }
.ta-senal ul { margin: 0 !important; padding-left: 1.1rem; font-size: .96rem; }

/* ---------- Cartas ---------- */
.ta-cartas { background: linear-gradient(180deg, var(--ta-lav) 0, var(--ta-fondo) 100%); }
.ta-cc { display: grid !important; grid-template-columns: 86px 1fr; gap: 1.1rem; background: var(--ta-blanco); border-radius: 20px; padding: 1.1rem; border: 1px solid var(--ta-linea); }
.ta-cc > * { margin: 0 !important; }
.ta-mini { height: 132px; border-radius: 10px; border: 1px solid var(--ta-lav2); display: grid; place-items: center; color: var(--ta-lila); background: linear-gradient(180deg, var(--ta-fondo), var(--ta-lav)); }
.ta-si .ta-mini { color: var(--ta-verde); background: linear-gradient(180deg, var(--ta-agua-s), #BDEBDF); }
.ta-cc-txt > * { margin: 0 !important; }
.ta-cc h3 { font-size: 1.35rem; margin: 0 0 .2rem !important; }
.ta-tag { font-size: .72rem !important; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: .15rem .55rem; border-radius: 99px; display: inline-block; margin-bottom: .45rem !important; background: var(--ta-lav); color: var(--ta-lila2); }
.ta-si .ta-tag { background: var(--ta-agua-s); color: var(--ta-verde2); }
.ta-cc p:not(.ta-tag) { font-size: .92rem; color: var(--ta-tinta2); }

/* ---------- Guía ---------- */
.ta-guia-cols { gap: 4rem !important; }
.ta-consejos { list-style: none; padding: 0 !important; margin: 0 !important; }
.ta-consejos li { position: relative; padding: 1.1rem 0 1.1rem 3.2rem; border-bottom: 1px solid var(--ta-linea); color: var(--ta-tinta2); font-size: .96rem; }
.ta-consejos li::before { content: "✦"; position: absolute; left: 0; top: 1rem; width: 40px; height: 40px; border-radius: 50%; background: var(--ta-agua-s); color: var(--ta-verde); display: grid; place-items: center; }
.ta-consejos strong { display: block; color: var(--ta-tinta); font-weight: 600; font-size: 1.02rem; margin-bottom: .15rem; }
.ta-nota { margin-top: 1.6rem !important; padding: 1.2rem 1.4rem; border-radius: 18px; background: var(--ta-lav); font-size: .95rem; }
@media (max-width: 781px) { .ta-guia-cols { gap: 1.5rem !important; } }

/* ---------- Otras consultas (servicios) ---------- */
.ta-servicios { background: var(--ta-blanco); border-top: 1px solid var(--ta-linea); border-bottom: 1px solid var(--ta-linea); padding: clamp(3.5rem, 8vw, 6rem) 22px; }
.ta-w { max-width: 1140px; margin: 0 auto; }
.ta-servicios .ta-k { display: block; margin-bottom: .7rem !important; }
.ta-servicios-h { margin: 0; }
.ta-sgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1rem; margin-top: 2.4rem; }
.ta-s { border-radius: 20px; padding: 1.4rem; background: var(--ta-fondo); border: 1px solid var(--ta-linea); text-decoration: none !important; display: flex; flex-direction: column; gap: .4rem; color: var(--ta-tinta) !important; transition: transform .2s, border-color .2s; }
.ta-s:hover { transform: translateY(-3px); border-color: var(--ta-lila); }
.ta-s-t { font-family: var(--ta-serif); font-size: 1.35rem; font-weight: 600; line-height: 1.1; }
.ta-s-p { font-size: .9rem; color: var(--ta-tinta2); }
.ta-s em { font-style: normal; font-size: .85rem; color: var(--ta-verde); font-weight: 500; margin-top: auto; padding-top: .3rem; }
@media (max-width: 520px) { .ta-sgrid { grid-template-columns: 1fr; } }

/* ---------- FAQ ---------- */
.wp-block-details { border-bottom: 1px solid var(--ta-linea); padding: 1.1rem 0; margin-block: 0 !important; }
.ta-faq h2 + .wp-block-details { margin-top: 1.6rem !important; }
.wp-block-details summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; font-weight: 500; font-size: 1.05rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; color: var(--ta-lila); font-size: 1.4rem; line-height: 1; }
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details p { color: var(--ta-tinta2); margin: .7rem 0 0 !important; }

/* ---------- Llamada final ---------- */
.ta-fin { padding-top: clamp(3rem, 6vw, 4.5rem) !important; padding-bottom: clamp(3.5rem, 8vw, 6rem) !important; }
.ta-caja { background: var(--ta-tinta); color: #EFEAF8; border-radius: 28px; padding: clamp(2.2rem, 5vw, 3.6rem) clamp(1.4rem, 4vw, 3rem) !important; position: relative; overflow: hidden; isolation: isolate; }
.ta-caja::before { content: ""; position: absolute; z-index: -1; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(127, 214, 194, .25), transparent 70%); top: -200px; right: -120px; }
.ta-caja h2 { color: #fff; }
.ta-caja .ta-k { color: var(--ta-agua); }
.ta-caja p:not(.ta-k) { color: #C9C1DD; }
.ta-caja .ta-acc { justify-content: center; margin-bottom: 0; }
.ta-caja .ta-btn-wa { border-color: #B9ABE3; color: #E6DEFA !important; }

/* ---------- Contenido de páginas ---------- */
.ta-contenido h2 { margin-top: 2.6rem; font-size: clamp(1.8rem, 3.4vw, 2.4rem); }
.ta-contenido ul li { margin-bottom: .4rem; }
.ta-contenido ul li::marker { color: var(--ta-verde); }
.ta-contenido .ta-acc { margin: 2rem 0; }
.ta-pagina h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); }
.ta-listado { list-style: none; padding: 0; }
.ta-listado > li { border-bottom: 1px solid var(--ta-linea); padding: 1.2rem 0; }
.ta-listado h2 a { text-decoration: none; color: var(--ta-tinta); }

/* ---------- Pie ---------- */
.ta-footer { background: var(--ta-pie); color: #B7AFCB; font-size: .88rem; padding-top: 2.6rem !important; padding-bottom: 2.6rem !important; margin-top: 0 !important; }
.ta-footer .wp-block-site-title a { color: #fff; }
.ta-footer .wp-block-site-title i { color: var(--ta-agua); }
.ta-footer a { color: #DCD5EC; text-decoration: none; }
.ta-footer a:hover { color: var(--ta-agua); }
.ta-nav-pie { gap: 1.2rem; }
.ta-legal { border-top: 1px solid rgba(255, 255, 255, .1); padding-top: 1rem; margin-top: 1.4rem; font-size: .8rem; }

/* ---------- Barra fija (móvil) ---------- */
.ta-barra { display: none; }
@media (max-width: 860px) {
	.ta-barra { display: flex; gap: .5rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 999; padding: .6rem .75rem calc(.6rem + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .95); border-top: 1px solid var(--ta-linea); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
	.ta-barra .ta-btn { flex: 1; justify-content: center; min-height: 50px; padding: .4rem .8rem; }
	.ta-barra .ta-btn-tel { flex: 1.6; box-shadow: none; }
	.ta-barra .ta-btn-tel:hover { transform: none; }
	.ta-barra .ta-btn-tel b { font-size: 1.1rem; }
	.ta-con-barra .ta-footer { padding-bottom: calc(var(--ta-barra-h) + 2rem) !important; }

	/* Cookies (Complianz): la pestaña «Gestionar consentimiento» sube por encima de la barra */
	.ta-con-barra #cmplz-manage-consent .cmplz-manage-consent,
	.ta-con-barra .cmplz-manage-consent {
		bottom: calc(var(--ta-barra-h) + env(safe-area-inset-bottom)) !important;
		top: auto !important;
		padding: .45rem .8rem !important;
		font-size: .78rem !important;
		min-height: 0 !important;
		height: auto !important;
		border-radius: 10px 10px 0 0 !important;
		box-shadow: 0 -2px 10px rgba(0, 0, 0, .08) !important;
	}
}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } html { scroll-behavior: auto; } }
