/* ==========================================================================
   DFV · Experiencia — capa de interacción sobre el sitio de Oxygen (clases dfvo-*)
   Idea rectora: "enfocar". Lo importante llega borroso y se aclara, como en la
   consulta cuando la graduación correcta encaja. Todo lo oculto depende de la
   clase .dfvx (la pone un script en <head>); sin JS la página se ve completa.
   ========================================================================== */

:root {
	--dfvx-out: cubic-bezier(0.16, 1, 0.3, 1);
	--dfvx-focus-ring: 0 0 0 3px #fff, 0 0 0 6px var(--turquesa, #1fb3b3);
	--dfvx-teal-deep: #137f80;
	--dfvx-bar-h: 64px;
}

/* ---------- Superficies del navegador ---------- */
::selection { background: #c9eeee; color: #1d2b2b; }
html { scrollbar-color: #c9bfb3 transparent; accent-color: var(--turquesa, #1fb3b3); }
body { caret-color: var(--turquesa, #1fb3b3); }
.dfvo-page, body.home { overflow-x: clip; }
.dfvo-page a:focus-visible,
.dfvo-page button:focus-visible,
.dfvo-page [tabindex]:focus-visible,
.drfv-header a:focus-visible,
.drfv-header button:focus-visible,
.drfv-footer a:focus-visible,
.dfvx-bar a:focus-visible {
	outline: none;
	box-shadow: var(--dfvx-focus-ring);
	border-radius: 999px;
}
.dfvo-page a { text-underline-offset: 0.18em; text-decoration-thickness: 1.5px; }

/* ---------- Encabezado: se compacta al bajar y marca la sección actual ---------- */
.drfv-header { transition: box-shadow 0.3s var(--dfvx-out), background-color 0.3s; }
.drfv-header.dfvx-scrolled { box-shadow: 0 1px 0 rgba(44, 39, 35, 0.04), 0 12px 30px -18px rgba(44, 39, 35, 0.28); }
.drfv-header__links a { position: relative; padding: 6px 0; }
.drfv-header__links a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 3px;
	border-radius: 3px;
	background: var(--turquesa, #1fb3b3);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.35s var(--dfvx-out);
}
.drfv-header__links a:hover::after,
.drfv-header__links a[aria-current="true"]::after { transform: scaleX(1); }
.drfv-header__links a[aria-current="true"] { color: var(--ink, #2c2723); font-weight: 600; }

/* ---------- Héroe: el ojo que mira ---------- */
.dfvo-hero-grid { grid-template-columns: minmax(0, 1fr) clamp(220px, 30vw, 400px); row-gap: 0; }
.dfvo-hero-grid > .dfvo-h1 { margin-top: 4px; }
.dfvo-hero-grid > .dfvo-lede { margin-top: 26px; margin-bottom: 0; }
.dfvo-hero-grid > .dfvo-cta { margin-top: 34px; }
.dfvo-hero-grid > .dfvo-call { margin-top: 18px; margin-bottom: 0; }
.dfvo-hero-grid > .dfvo-chips { margin-top: 30px; }
.dfvo-hero-eye.dfvx-eye-ready {
	max-width: none;
	width: 100%;
	height: auto;
	top: auto; right: auto;
	filter: none;
	animation: none;
	margin-top: -8px;
	position: relative;
}
.dfvx-eye { display: block; width: 100%; height: auto; overflow: visible; }
.dfvx-eye .dfvx-blob { transform-origin: 50% 55%; }
.dfvx-eye .dfvx-iris { transition: transform 0.5s var(--dfvx-out); }
.dfvx-eye .dfvx-pupil { transform-box: fill-box; transform-origin: center; transition: transform 0.45s var(--dfvx-out); }
.dfvx-eye .dfvx-lid-group { transform-box: view-box; transform-origin: 120px 92px; }
.dfvx-eye .dfvx-lash { transform-box: fill-box; transform-origin: 50% 100%; }
.dfvx-eye.is-curious .dfvx-pupil { transform: scale(1.32); }
.dfvx-eye.is-blinking .dfvx-ball { animation: dfvxBlink 0.34s cubic-bezier(0.4, 0, 0.2, 1); }
.dfvx-eye.is-blinking .dfvx-lash { animation: dfvxLash 0.34s cubic-bezier(0.4, 0, 0.2, 1); }
.dfvx-eye .dfvx-ball { transform-box: view-box; transform-origin: 120px 92px; }
@keyframes dfvxBlink { 0%, 100% { transform: scaleY(1); } 45%, 55% { transform: scaleY(0.08); } }
@keyframes dfvxLash { 0%, 100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(10px) scaleY(0.6); } }

/* Apertura del ojo al cargar (el momento de la página) */
.dfvx .dfvo-hero-eye.dfvx-eye-ready .dfvx-ball { transform: scaleY(0.06); }
.dfvx .dfvo-hero-eye.dfvx-eye-ready .dfvx-lash { opacity: 0; transform: translateY(12px) scaleY(0.4); }
.dfvx .dfvo-hero-eye.dfvx-eye-ready .dfvx-blob { opacity: 0; transform: scale(0.7); }
.dfvx.dfvx-go .dfvo-hero-eye.dfvx-eye-ready .dfvx-ball { transform: scaleY(1); transition: transform 0.9s var(--dfvx-out) 0.35s; }
.dfvx.dfvx-go .dfvo-hero-eye.dfvx-eye-ready .dfvx-lash {
	opacity: 1; transform: none;
	transition: opacity 0.4s ease calc(0.55s + var(--i, 0) * 0.05s), transform 0.7s var(--dfvx-out) calc(0.55s + var(--i, 0) * 0.05s);
}
.dfvx.dfvx-go .dfvo-hero-eye.dfvx-eye-ready .dfvx-blob { opacity: 1; transform: none; transition: opacity 0.6s ease 0.1s, transform 1s var(--dfvx-out) 0.1s; }

/* ---------- Enfoque de títulos (borroso → nítido) ---------- */
.dfvx .dfvo-h1,
.dfvx .dfvo-h2.dfvo-wm,
.dfvx .dfvo-tagline { animation: none; }
.dfvx .dfvo-wm > span {
	display: inline-block;
	margin-inline-end: 0.24em;
	opacity: 0.12;
	filter: blur(12px);
	transform: translateY(0.12em) scale(1.06);
	will-change: filter, transform;
}
.dfvx .dfvo-wm.dfvx-focused > span {
	opacity: 1;
	filter: blur(0);
	transform: none;
	transition:
		opacity 0.5s ease calc(var(--i, 0) * 70ms),
		filter 0.75s var(--dfvx-out) calc(var(--i, 0) * 70ms),
		transform 0.75s var(--dfvx-out) calc(var(--i, 0) * 70ms);
}
.dfvx .dfvo-wm.dfvx-done > span { will-change: auto; }

.dfvx .dfvo-quote-p { opacity: 0; filter: blur(8px); }
.dfvx .dfvo-quote-p.dfvx-focused { opacity: 1; filter: blur(0); transition: opacity 0.6s ease, filter 0.8s var(--dfvx-out); }

/* ---------- Servicios: iconos, arrastre y controles ---------- */
.dfvo-rail { scroll-snap-type: x mandatory; scroll-padding-inline: 4px; scrollbar-width: none; cursor: grab; }
.dfvo-rail::-webkit-scrollbar { display: none; }
.dfvo-rail.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.dfvo-rail.is-dragging .dfvo-tile { pointer-events: none; }
.dfvo-tile { scroll-snap-align: start; position: relative; }
.dfvo-tile-sym {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-bottom: 16px;
	border-radius: 16px;
	background: color-mix(in srgb, var(--sym, #1fb3b3) 14%, #fff);
	color: var(--sym, #1fb3b3);
	transition: transform 0.35s var(--spring, cubic-bezier(.34, 1.42, .5, 1));
}
.dfvo-tile-sym svg { width: 30px; height: 30px; }
.dfvx-rail-foot { display: flex; align-items: center; gap: 18px; margin-top: 10px; }
.dfvx-rail-foot .dfvo-rail-hint { margin: 0; }
.dfvx-rail-progress { flex: 1; height: 4px; border-radius: 4px; background: #efe7dd; overflow: hidden; }
.dfvx-rail-progress span { display: block; height: 100%; width: 100%; border-radius: 4px; background: var(--turquesa, #1fb3b3); transform-origin: left center; transform: scaleX(0.3); transition: transform 0.25s var(--dfvx-out); }
.dfvx-rail-btns { display: flex; gap: 8px; }
.dfvx-rail-btn {
	display: grid; place-items: center;
	width: 44px; height: 44px;
	border: 2px solid var(--ink, #2c2723);
	border-radius: 50%;
	background: #fff;
	color: var(--ink, #2c2723);
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, transform 0.2s var(--dfvx-out), opacity 0.2s;
}
.dfvx-rail-btn svg { width: 18px; height: 18px; }
.dfvx-rail-btn:hover:not(:disabled) { background: var(--ink, #2c2723); color: #fff; }
.dfvx-rail-btn:active:not(:disabled) { transform: scale(0.92); }
.dfvx-rail-btn:disabled { opacity: 0.3; cursor: default; }

/* ---------- Simulador: manija con flechas ---------- */
.dfvo-lab-handle {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232c2723' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6 3 12l6 6M15 6l6 6-6 6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px;
	transition: transform 0.25s var(--dfvx-out);
}
.dfvo-lab:active .dfvo-lab-handle { transform: translate3d(-50%, -50%, 0) scale(1.1); }
.dfvo-lab { touch-action: pan-y; cursor: ew-resize; }

/* ---------- Preguntas: altura exacta y signo dibujado ---------- */
.dfvo-qa-item .dfvo-qa-a { display: grid; grid-template-rows: 0fr; max-height: none; transition: grid-template-rows 0.4s var(--dfvx-out); }
.dfvo-qa-item.is-open .dfvo-qa-a { grid-template-rows: 1fr; max-height: none; }
.dfvo-qa-a > * { min-height: 0; overflow: hidden; }
.dfvo-qa-item .dfvo-qa-a > p { padding-bottom: 0; }
.dfvo-qa-item .dfvo-qa-a > p::after { content: ""; display: block; height: 22px; }
.dfvo-qa-q { cursor: pointer; user-select: none; }
.dfvo-qa-q::after,
.dfvo-qa-item.is-open .dfvo-qa-q::after {
	content: "";
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 14px;
}
.dfvo-qa-item.is-open .dfvo-qa-q::after { transform: translate3d(0, -50%, 0) rotate(135deg); }
.dfvo-qa-q:focus-visible { outline: none; box-shadow: inset 0 0 0 3px var(--turquesa, #1fb3b3); border-radius: var(--r-md, 22px); }

/* ---------- Mitos: la raya se dibuja al llegar ---------- */
.dfvx .dfvo-myth-m { text-decoration: none; }
.dfvx .dfvo-myth-m .dfvx-strike {
	background-image: linear-gradient(var(--rosa, #ef8fb8), var(--rosa, #ef8fb8));
	background-repeat: no-repeat;
	background-position: 0 55%;
	background-size: 0% 2.5px;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	transition: background-size 0.9s var(--dfvx-out) 0.15s;
}
.dfvx .dfvo-myth.dfvx-focused .dfvx-strike { background-size: 100% 2.5px; }
.dfvx .dfvo-myth .dfvo-myth-t { opacity: 0.35; transition: opacity 0.6s ease 0.6s; }
.dfvx .dfvo-myth.dfvx-focused .dfvo-myth-t { opacity: 1; }

/* ---------- Reseñas ---------- */
.dfvo-rev-track { touch-action: pan-y; }
.dfvo-rev-slide { display: flex; flex-direction: column; }
.dfvo-rev-text { flex: 1; font-size: clamp(1rem, 1.4vw, 1.12rem); }
.dfvo-rev-stars { color: var(--sol, #f3b733); letter-spacing: 0.1em; }
.dfvo-rev-author { font-family: var(--font-display, "Baloo 2"); font-weight: 700; color: var(--ink, #2c2723); }
.dfvo-rev-dot { cursor: pointer; transition: transform 0.2s var(--dfvx-out), background-color 0.2s; }
.dfvo-rev-dot.active { transform: scale(1.35); }

/* ---------- Contacto: datos con estilo propio ---------- */
.dfvo-datalist > div { display: flex; gap: 14px; align-items: baseline; padding: 13px 4px; border-top: 1px solid #eee5da; }
.dfvo-datalist > div:first-child { border-top: 0; }
.dfvo-datalist > div > span { flex: 0 0 88px; color: var(--dfvx-teal-deep); font-family: var(--font-display, "Baloo 2"); font-weight: 700; font-size: 0.85rem; }
.dfvo-datalist p { margin: 0; }
.dfvo-datalist a { color: var(--ink, #2c2723); font-weight: 700; text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 2px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size 0.3s var(--dfvx-out), color 0.2s; overflow-wrap: anywhere; }
.dfvo-datalist a:hover { color: var(--dfvx-teal-deep); background-size: 100% 2px; }
.dfvo-real-map { background: #e9f4f4; min-height: 200px; }

/* ---------- Pie: contraste legible sobre el azul petróleo ---------- */
.drfv-footer,
.drfv-footer .drfv-footer__spec,
.drfv-footer .drfv-footer__loc,
.drfv-footer .drfv-footer__cert { color: rgba(255, 255, 255, 0.78); }
.drfv-footer .drfv-footer__col-title { color: rgba(255, 255, 255, 0.62); }
.drfv-footer .drfv-footer__bottom,
.drfv-footer .drfv-footer__bottom * { color: rgba(255, 255, 255, 0.66); }
.drfv-footer a { color: rgba(255, 255, 255, 0.9); }
.drfv-footer a:hover { color: #fff; }

/* ---------- Barra fija de acción en móvil ---------- */
.dfvx-bar { display: none; }
@media (max-width: 767px) {
	.dfvx-bar {
		position: fixed;
		left: 12px; right: 12px;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		z-index: 190;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		padding: 8px;
		border-radius: 999px;
		background: rgba(255, 255, 255, 0.92);
		-webkit-backdrop-filter: blur(14px) saturate(1.4);
		backdrop-filter: blur(14px) saturate(1.4);
		box-shadow: 0 2px 6px rgba(44, 39, 35, 0.08), 0 18px 40px -12px rgba(44, 39, 35, 0.35);
		transform: translateY(calc(100% + 28px));
		transition: transform 0.45s var(--dfvx-out);
	}
	.dfvx-bar.is-on { transform: none; }
	.dfvx-bar a {
		display: flex; align-items: center; justify-content: center; gap: 8px;
		min-height: 48px;
		border-radius: 999px;
		font-family: var(--font-display, "Baloo 2"), sans-serif;
		font-weight: 700;
		font-size: 1rem;
		text-decoration: none;
		transition: transform 0.15s var(--dfvx-out);
	}
	.dfvx-bar a:active { transform: scale(0.96); }
	.dfvx-bar svg { width: 20px; height: 20px; flex: none; }
	.dfvx-bar .dfvx-bar-wa { background: var(--wa, #33a64f); color: #fff; }
	.dfvx-bar .dfvx-bar-cita { background: var(--ink, #2c2723); color: #fff; }
	body.dfvx-has-bar .drfv-footer { padding-bottom: calc(var(--dfvx-bar-h) + 28px); }
	.dfvo-hero-grid { grid-template-columns: 1fr; }
	.dfvo-hero-eye.dfvx-eye-ready { position: relative; width: 190px; max-width: 58vw; justify-self: center; margin: 0 auto 10px; }
	.dfvo-hero-grid > .dfvo-cta { margin-top: 28px; }
	.dfvo-cta { flex-wrap: wrap; }
}

/* ---------- Movimiento reducido: sin desplazamientos, se conserva el estado ---------- */
@media (prefers-reduced-motion: reduce) {
	.dfvx .dfvo-wm > span,
	.dfvx .dfvo-quote-p { filter: none; transform: none; opacity: 0; }
	.dfvx .dfvo-wm.dfvx-focused > span,
	.dfvx .dfvo-quote-p.dfvx-focused { opacity: 1; transition: opacity 0.4s ease; }
	.dfvx .dfvo-hero-eye.dfvx-eye-ready .dfvx-ball,
	.dfvx .dfvo-hero-eye.dfvx-eye-ready .dfvx-lash,
	.dfvx .dfvo-hero-eye.dfvx-eye-ready .dfvx-blob { transform: none; opacity: 1; transition: none; }
	.dfvx-eye .dfvx-iris { transition: none; }
	.dfvx-bar { transition: none; }
	.dfvo-doodle { animation: none; }
}

/* ==========================================================================
   Lenguaje «de juguete» (referencia Duolingo, con la paleta del doctor):
   botones con volumen que se hunden al presionar, tarjetas tipo estampa con
   borde grueso, sin sombras difusas. Todo lo demás del sitio se conserva.
   ========================================================================== */
:root {
	--dfvx-line: #ebe3d9;
	--dfvx-line-2: #dcd2c6;
	--dfvx-wa-d: #23863b;
	--dfvx-turq-d: #138b8b;
	--dfvx-ink-d: #000000;
}

/* Botones con volumen */
.dfvo-btn,
.drfv-header__cta,
.drfv-header__cta2 {
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.92rem;
	box-shadow: 0 4px 0 var(--dfvx-btn-d, var(--dfvx-ink-d)) !important;
	transform: translateY(0);
	transition: transform 0.1s ease, box-shadow 0.1s ease, filter 0.2s ease, background-color 0.2s !important;
}
.dfvo-btn { --dfvx-btn-d: var(--dfvx-ink-d); }
.dfvo-btn-wa,
.drfv-header__cta { --dfvx-btn-d: var(--dfvx-wa-d); }
.dfvo-btn-book { --dfvx-btn-d: var(--dfvx-turq-d); }
.dfvo-btn-ghost,
.drfv-header__cta2 {
	--dfvx-btn-d: var(--dfvx-line-2);
	background: #fff !important;
	color: var(--dfvx-teal-deep) !important;
	border: 2px solid var(--dfvx-line-2) !important;
}
.dfvo-btn:hover,
.drfv-header__cta:hover,
.drfv-header__cta2:hover { transform: translateY(-1px); filter: brightness(1.06); }
.dfvo-btn:active,
.drfv-header__cta:active,
.drfv-header__cta2:active,
.dfvx-bar a:active,
.dfvx-rail-btn:active:not(:disabled) { transform: translateY(4px) !important; box-shadow: 0 0 0 var(--dfvx-btn-d, #000) !important; }
.drfv-header__cta2:hover { background: #effafa !important; }
.dfvx-bar .dfvx-bar-wa { box-shadow: 0 4px 0 var(--dfvx-wa-d); }
.dfvx-bar .dfvx-bar-cita { box-shadow: 0 4px 0 #000; }
.dfvx-rail-btn { box-shadow: 0 3px 0 var(--ink, #2c2723); --dfvx-btn-d: var(--ink, #2c2723); }

/* Tarjetas tipo estampa */
.dfvo-tile,
.dfvo-myth,
.dfvo-qa-item,
.dfvo-rev-slide,
.dfvo-fact,
.dfvo-contact-card,
.dfvo-quote {
	border: 2px solid var(--dfvx-line);
	border-bottom-width: 5px;
	box-shadow: none !important;
}
.dfvo-tile { transition: transform 0.2s var(--dfvx-out), border-color 0.2s; }
.dfvo-tile:hover { transform: translateY(-4px); border-color: var(--sym, var(--turquesa, #1fb3b3)); }
.dfvo-qa-item.is-open { border-color: var(--turquesa, #1fb3b3); }
.dfvo-chip { border: 2px solid var(--dfvx-line); }
.dfvo-real-map { border: 2px solid var(--dfvx-line); border-bottom-width: 5px; box-shadow: none; }
.dfvo-portrait img,
.dfvo-clinical-row img { border: 3px solid #fff; outline: 2px solid var(--dfvx-line); }

/* ==========================================================================
   Dibujos de niño
   ========================================================================== */
.dfvx-dib { display: block; width: 100%; height: auto; overflow: visible; }
.dfvx-dib .tx { font-family: "Schoolbell", "Caveat", cursive; font-weight: 400; stroke: none; letter-spacing: 0.02em; }
.dfvx-dib .s { fill: none; stroke-dasharray: 1 1; stroke-dashoffset: 1; opacity: 0; }
.dfvx-dib .f { opacity: 0; stroke: none; }
.dfvx-dib .tx { opacity: 0; }
.dfvx-dib.is-drawn .s {
	opacity: 1;
	stroke-dashoffset: 0;
	transition: stroke-dashoffset 0.5s cubic-bezier(0.5, 0, 0.3, 1) calc(var(--d, 0) * 0.09s), opacity 0s linear calc(var(--d, 0) * 0.09s);
}
.dfvx-dib.is-drawn .f { opacity: 1; transition: opacity 0.6s ease calc(var(--d, 0) * 0.09s + 0.2s); }
.dfvx-dib.is-drawn .tx { opacity: 1; transition: opacity 0.5s ease 0.9s; }

/* Capa de dibujos en los márgenes de cada sección */
.dfvo-section { position: relative; }
.dfvx-capa { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.dfvx-pieza {
	position: absolute;
	width: calc(var(--w, 80px) * var(--k, 1.2));
	transform: rotate(var(--rot, 0deg));
	pointer-events: auto;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.dfvx-pieza.dfvx-l { left: calc(-1 * var(--w, 80px) * var(--k, 1.2) - 22px); }
.dfvx-pieza.dfvx-r { right: calc(-1 * var(--w, 80px) * var(--k, 1.2) - 22px); }
.dfvx-pieza > svg { animation: dfvxFlota 7s ease-in-out infinite; animation-delay: calc(var(--rot, 0deg) / 1deg * -0.3s); }
@keyframes dfvxFlota { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
.is-saltando { animation: dfvxSalta 0.5s cubic-bezier(0.3, 1.6, 0.5, 1); }
@keyframes dfvxSalta { 0% { scale: 1; } 40% { scale: 1.18; rotate: -6deg; } 100% { scale: 1; rotate: 0deg; } }

/* Pantallas medianas: los dibujos entran al borde de la sección, más chicos */
@media (max-width: 1279px) {
	.dfvx-pieza { --k: 0.72; }
	.dfvx-pieza.dfvx-l { left: -6px; }
	.dfvx-pieza.dfvx-r { right: -6px; }
	.dfvx-pieza { opacity: 0.9; }
}
@media (max-width: 767px) {
	.dfvx-pieza { display: none; }
	.dfvx-pieza.dfvx-m { display: block; --k: 0.55; top: 18px !important; }
	.dfvx-pieza.dfvx-m.dfvx-l { left: auto; right: 12px; }
	.dfvx-pieza.dfvx-m.dfvx-r { right: 12px; }
}

/* Hoja pegada con cinta */
.dfvx-hoja {
	position: relative;
	max-width: 360px;
	margin: 30px 0 0 auto;
	padding: 16px 18px 10px;
	background: #fffdf7;
	border: 2px solid var(--dfvx-line);
	border-radius: 6px;
	transform: rotate(2.5deg);
	box-shadow: 0 2px 0 var(--dfvx-line);
	background-image: repeating-linear-gradient(#fffdf7 0 23px, #e9f1f7 23px 24px);
	cursor: pointer;
}
.dfvx-hoja::before,
.dfvx-hoja::after {
	content: "";
	position: absolute;
	top: -12px;
	width: 74px;
	height: 24px;
	background: rgba(243, 183, 51, 0.55);
	border-radius: 2px;
	transform: rotate(-8deg);
}
.dfvx-hoja::before { left: 18px; }
.dfvx-hoja::after { right: 18px; transform: rotate(7deg); background: rgba(84, 166, 224, 0.45); }

/* Arcoíris con familia sobre la frase final */
.dfvx-familia { width: min(520px, 100%); margin: 0 auto 26px; cursor: pointer; }

/* Subrayado de crayón bajo los títulos */
.dfvo-h2 { position: relative; }
.dfvx-sub { display: block; width: min(260px, 70%); height: 16px; margin-top: 6px; }
.dfvx-sub .dfvx-dib { height: 16px; }

@media (max-width: 767px) {
	.dfvx-hoja { margin: 26px auto 0; max-width: 320px; }
}

@media (prefers-reduced-motion: reduce) {
	.dfvx-pieza > svg,
	.is-saltando { animation: none; }
	.dfvx-dib .s,
	.dfvx-dib .f,
	.dfvx-dib .tx { opacity: 1; stroke-dashoffset: 0; transition: none; }
}
