/* rameseba.com — portada v2 (2026-10-13)
   Sistema visual de negocio.rameseba.com V10 (piedra, tinta, terracota, miel, Plus Jakarta Sans)
   mezclado con la marca actual. Movimiento según motion-design-skill (LottieFiles/Nattu):
   curva de firma (.2,0,0,1), entradas (.05,.7,.1,1), 180 / 360 / 650 ms, stagger < 500 ms,
   tres capas (principal, secundaria, ambiente) y todo quieto con «reducir movimiento». */

@font-face {
  font-family: "Jakarta";
  src: url("/assets/fonts/jakarta-var.woff2") format("woff2");
  font-weight: 400 800;
  font-display: swap;
}

body.v2 {
  --bg: #f4f2ee;
  --ink: #1c1917;
  --ink-2: #44403c;
  --mute: #675f59;
  --line: #e7e1d8;
  --soft: #ebe6df;
  --acc: #0e5a2b;
  --acc-soft: #e4f2d9;
  --miel: #d2f34c;
  --ok: #16a34a;
  --ok-soft: #e8f6ec;
  --card: rgb(255 255 255 / .86);
  --sh: 0 1px 2px rgb(28 25 23 / .04), 0 14px 34px -18px rgb(28 25 23 / .22);
  --sh-up: 0 2px 4px rgb(28 25 23 / .05), 0 26px 50px -22px rgb(28 25 23 / .32);
  --display: "Jakarta", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --body: "Jakarta", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --e: cubic-bezier(.2, 0, 0, 1);
  --e-in: cubic-bezier(.05, .7, .1, 1);
  --e-out: cubic-bezier(.3, 0, 1, 1);
  --e-back: cubic-bezier(.175, .885, .32, 1.275);
  background: var(--bg);
  color: var(--ink);
  font-family: var(--body);
  font-size: 17px;
  overflow-x: clip;
}
.v2 ::selection { background: var(--miel); color: var(--ink); }
.v2-wrap { width: min(1160px, 100% - 32px); margin-inline: auto; }
.v2-center { text-align: center; }
.v2-visually { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.v2-acc { color: var(--acc); }
.v2-miel { color: var(--miel); }

/* ───── barra ───── */
.v2 .nav { background: rgb(244 242 238 / .78); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid transparent; }
.v2 .nav.is-scrolled { border-bottom-color: rgb(28 25 23 / .07); }
.v2 .brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--display); font-weight: 700; letter-spacing: -.02em; }
.v2 .brand-mark { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 7px; background: #d2f34c; color: #0b0b09; font-family: Consolas, Menlo, monospace; font-size: 18px; font-weight: 700; transition: transform .36s var(--e-back); }
.v2 .brand:hover .brand-mark { transform: rotate(-8deg) scale(1.06); }
.v2 .clock { display: none; }
.v2 .nav-links { font-size: 14.5px; font-weight: 500; color: var(--ink-2); }
.v2 .nav-links a:not(.nav-cta)::after { background: var(--acc); }
.v2 .nav-links a:hover { color: var(--ink); }
.v2 .nav-cta { border-radius: 999px; font-family: var(--body); font-weight: 600; text-transform: none; letter-spacing: 0; font-size: 14px; padding: 9px 18px !important; transition: transform .18s var(--e), background-color .18s; }
.v2 .nav-cta:hover, .v2 .nav-links a.nav-cta:hover { background: #d2f34c; color: var(--ink); transform: translateY(-1px); }

/* ───── piezas comunes ───── */
.v2-chip { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 12px; border-radius: 999px; background: #fff; box-shadow: var(--sh); font-size: 13.5px; font-weight: 600; color: var(--ink-2); }
.v2-ping { position: relative; width: 8px; height: 8px; border-radius: 50%; background: var(--ok); }
.v2-ping::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--ok); animation: v2-ping 1.8s var(--e) infinite; }
@keyframes v2-ping { 75%, 100% { transform: scale(2.6); opacity: 0; } }
.v2-pill { display: inline-flex; padding: 5px 12px; border-radius: 999px; background: var(--acc-soft); color: var(--acc); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.v2-pill-dark { background: rgb(210 243 76 / .14); color: var(--miel); }
.v2-h2 { margin: 16px 0 0; max-width: 18ch; font-family: var(--display); font-weight: 650; font-size: clamp(2.2rem, 4.6vw, 3.7rem); line-height: 1.04; letter-spacing: -.035em; text-wrap: balance; }
.v2-center .v2-h2 { margin-inline: auto; }
.v2-p { margin: 14px 0 0; max-width: 46ch; font-size: 18px; line-height: 1.55; color: var(--mute); }
.v2-center .v2-p { margin-inline: auto; }
.v2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; font-weight: 600; font-size: 16px; transition: transform .18s var(--e), background-color .18s, box-shadow .36s var(--e); }
.v2-btn:active { transform: scale(.97); }
.v2-btn-dark { background: var(--ink); color: #fff; box-shadow: 0 10px 24px -12px rgb(28 25 23 / .6); }
.v2-btn-dark:hover { background: #000; transform: translateY(-2px); }
.v2-btn-line { border: 1px solid rgb(28 25 23 / .14); background: rgb(255 255 255 / .6); }
.v2-btn-line:hover { background: #fff; transform: translateY(-2px); }
.v2-btn-miel { background: var(--miel); color: var(--ink); }
.v2-btn-miel:hover { background: #fff; transform: translateY(-2px); }
.v2-sec { position: relative; padding: clamp(72px, 10vw, 128px) 0 0; }

/* ───── hero ───── */
.v2-hero { position: relative; padding: calc(var(--navh) + clamp(40px, 7vw, 88px)) 0 0; text-align: center; isolation: isolate; }
.v2-aurora { position: absolute; inset: 0 0 auto; height: 900px; z-index: -1; overflow: hidden; pointer-events: none; }
.v2-aurora span { position: absolute; border-radius: 50%; filter: blur(70px); animation: v2-breathe 16s ease-in-out infinite; }
.v2-aurora span:nth-child(1) { width: 560px; height: 420px; left: -8%; top: -6%; background: rgb(210 243 76 / .38); }
.v2-aurora span:nth-child(2) { width: 520px; height: 460px; right: -10%; top: 4%; background: rgb(14 90 43 / .12); animation-duration: 21s; animation-direction: reverse; }
.v2-aurora span:nth-child(3) { width: 640px; height: 360px; left: 30%; top: 38%; background: rgb(255 255 255 / .8); animation-duration: 26s; }
@keyframes v2-breathe { 0%, 100% { transform: translate3d(0, 0, 0) scale(1); } 50% { transform: translate3d(-4%, 3%, 0) scale(1.08); } }
.v2-grid-bg { position: absolute; inset: 0 0 auto; height: 760px; z-index: -1; background-image: linear-gradient(rgb(28 25 23 / .045) 1px, transparent 1px), linear-gradient(90deg, rgb(28 25 23 / .045) 1px, transparent 1px); background-size: 56px 56px; -webkit-mask-image: radial-gradient(ellipse 70% 55% at 50% 30%, #000 30%, transparent 75%); mask-image: radial-gradient(ellipse 70% 55% at 50% 30%, #000 30%, transparent 75%); }
.v2-h1 { margin: 22px auto 0; max-width: 15ch; font-family: var(--display); font-weight: 680; font-size: clamp(2.6rem, 7.2vw, 5.6rem); line-height: .98; letter-spacing: -.045em; text-wrap: balance; }
.v2-under { position: relative; display: inline-block; }
.v2-under svg { position: absolute; left: -2%; bottom: -.08em; width: 104%; height: .28em; overflow: visible; }
.v2-under path { fill: none; stroke: var(--miel); stroke-width: 9; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.is-in .v2-under path, .v2-h1.is-in path { animation: v2-stroke 1s var(--e) .55s forwards; }
@keyframes v2-stroke { to { stroke-dashoffset: 0; } }
.v2-sub { margin: 22px auto 0; max-width: 40rem; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.55; color: var(--mute); }
.v2-cta { margin-top: 30px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.v2-proof { list-style: none; margin: 30px auto 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 26px; font-size: 14.5px; color: var(--mute); }
.v2-proof b { color: var(--ink); font-weight: 700; }
.v2 .gbadge { margin-top: 18px; }

.v2-stage { margin-top: clamp(44px, 7vw, 72px); }
.v2-tilt { position: relative; width: 100%; max-width: 1120px; margin-inline: auto; transform-origin: 50% 0; transform: perspective(1600px) rotateX(var(--rx, 14deg)) scale(var(--sc, .94)); will-change: transform; }
.v2-glow { position: absolute; inset: 33% -40px -40px; z-index: -1; border-radius: 50%; background: radial-gradient(closest-side, rgb(190 228 60 / .5), transparent); animation: v2-glowpulse 7s ease-in-out infinite; }
@keyframes v2-glowpulse { 0%, 100% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.06); } }
.v2-win { position: relative; aspect-ratio: 16 / 10.6; overflow: hidden; border-radius: clamp(10px, 1.3vw, 16px); background: #fff; box-shadow: 0 2px 4px rgb(28 25 23 / .06), 0 40px 80px -30px rgb(28 25 23 / .55), inset 0 0 0 1px rgb(255 255 255 / .7); }
.v2-winbar { position: absolute; inset: 0 0 auto; z-index: 2; height: 5.7%; display: flex; align-items: center; gap: .6%; padding: 0 1.4%; background: rgb(255 255 255 / .92); border-bottom: 1px solid rgb(0 0 0 / .05); }
.v2-winbar i { width: .8%; aspect-ratio: 1; border-radius: 50%; background: #ff5f57; }
.v2-winbar i:nth-child(2) { background: #febc2e; }
.v2-winbar i:nth-child(3) { background: #28c840; }
.v2-url { margin-inline: auto; display: inline-flex; align-items: center; gap: 6px; padding: .35% 2.2%; border-radius: 999px; background: var(--bg); font-size: clamp(9px, 1vw, 13px); color: var(--mute); }
.v2-url svg { width: 1em; height: 1em; }
.v2-screens { position: absolute; inset: 5.7% 0 0; }
.v2-shot { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; opacity: 0; transform: scale(1.03); transition: opacity .65s var(--e), transform 4.6s var(--e); }
.v2-shot.is-on { opacity: 1; transform: none; }
.v2-float { position: absolute; z-index: 3; display: flex; align-items: center; gap: 10px; padding: 10px 14px 10px 10px; border-radius: 16px; background: #fff; box-shadow: 0 18px 40px -18px rgb(28 25 23 / .45); text-align: left; font-size: 13px; line-height: 1.25; opacity: 0; }
.v2-float b { display: block; font-weight: 700; }
.v2-float small { color: var(--mute); font-size: 12px; }
.v2-float-a { left: -3%; top: 22%; }
.v2-float-b { right: -3%; top: 12%; }
.v2-float-c { right: 6%; bottom: -5%; }
.v2-stage.is-in .v2-float { animation: v2-upin .65s var(--e-in) both, v2-bob 6s ease-in-out infinite; }
.v2-stage.is-in .v2-float-a { animation-delay: .9s, 1.6s; }
.v2-stage.is-in .v2-float-b { animation-delay: 1.15s, 2.4s; }
.v2-stage.is-in .v2-float-c { animation-delay: 1.4s, 3.1s; }
@keyframes v2-upin { from { opacity: 0; transform: translateY(26px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes v2-bob { 0%, 100% { transform: none; } 50% { transform: translateY(-6px); } }
.v2-stage.is-in .v2-float { opacity: 1; }
.v2-ic { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; flex: none; }
.v2-ic svg { width: 20px; height: 20px; }
.v2-ic-wa { background: #e7f8ee; color: #128c4a; }
.v2-ic-ok { background: var(--ok); color: #fff; }
.v2-ic-ok path { stroke-dasharray: 1; stroke-dashoffset: 1; }
.is-in .v2-ic-ok path { animation: v2-stroke .5s var(--e) 1.9s forwards; }
.v2-ring { position: relative; display: inline-grid; place-items: center; width: 40px; height: 40px; flex: none; }
.v2-ring svg { position: absolute; inset: 0; transform: rotate(-90deg); }
.v2-ring circle { fill: none; stroke: var(--soft); stroke-width: 3.4; }
.v2-ring .v2-ring-on { stroke: var(--ok); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; }
.is-in .v2-ring-on { animation: v2-ring98 1.2s var(--e) 1.4s forwards; }
@keyframes v2-ring98 { to { stroke-dashoffset: 2; } }
.v2-ring b { font-size: 12px; }

/* ───── cinta ───── */
.v2-cinta { margin-top: clamp(64px, 9vw, 104px); overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.v2-cinta-track { list-style: none; margin: 0; padding: 0; display: flex; gap: 46px; width: max-content; animation: v2-marquee 60s linear infinite; font-family: var(--display); font-weight: 650; font-size: clamp(18px, 2vw, 24px); letter-spacing: -.02em; color: var(--mute); white-space: nowrap; }
.v2-cinta-track li::before { content: "✦"; margin-right: 46px; color: var(--acc); opacity: .5; font-size: .7em; vertical-align: middle; }
.v2-cinta:hover .v2-cinta-track { animation-play-state: paused; }
@keyframes v2-marquee { to { transform: translateX(-50%); } }

/* ───── resumen ───── */
.v2-resumen { padding-top: clamp(56px, 7vw, 88px); }
.v2-lead { margin: 0 auto; max-width: 52rem; text-align: center; font-size: clamp(18px, 1.9vw, 22px); line-height: 1.55; color: var(--ink-2); }
.v2-lead b { color: var(--ink); }

/* ───── planes ───── */
.v2-plans { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.v2-plan { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 24px 22px 20px; border-radius: 1.6rem; background: var(--card); border: 1px solid rgb(255 255 255 / .8); box-shadow: var(--sh); transition: transform .36s var(--e), box-shadow .36s var(--e); }
.v2-plan:hover { transform: translateY(-4px); box-shadow: var(--sh-up); }
.v2-plan h3 { margin: 0; font-family: var(--display); font-weight: 680; font-size: 21px; letter-spacing: -.02em; }
.v2-plan p { margin: 0; font-size: 14.5px; line-height: 1.4; color: var(--mute); }
.v2-price { margin-top: auto !important; padding-top: 16px; font-family: var(--display); font-weight: 700; font-size: clamp(30px, 3vw, 40px) !important; letter-spacing: -.035em; color: var(--ink) !important; line-height: 1 !important; }
.v2-price small { display: block; margin-bottom: 4px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mute); }
.v2-plan-go { margin-top: 14px; display: inline-flex; justify-content: space-between; align-items: center; padding: 11px 16px; border-radius: 999px; background: var(--bg); font-weight: 600; font-size: 14.5px; transition: background-color .18s, color .18s; }
.v2-plan-go:hover { background: var(--ink); color: #fff; }
.v2-plan-hot { background: var(--ink); color: #fff; border-color: var(--ink); }
.v2-plan-hot p { color: rgb(255 255 255 / .6); }
.v2-plan-hot .v2-price { color: #fff !important; }
.v2-plan-hot .v2-plan-go { background: var(--miel); color: var(--ink); }
.v2-plan-hot .v2-plan-go:hover { background: #fff; }
.v2-plan-tag { position: absolute; top: -11px; left: 20px; padding: 3px 10px; border-radius: 999px; background: var(--miel); color: var(--ink); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.v2-more { margin: 22px 0 0; font-size: 15px; line-height: 2; color: var(--mute); }
.v2-more a { color: var(--ink-2); text-decoration: underline; text-decoration-color: rgb(28 25 23 / .2); text-underline-offset: 4px; }
.v2-more a:hover { color: var(--acc); text-decoration-color: currentColor; }

/* ───── la diferencia (rejilla) ───── */
.v2-bento { margin-top: 44px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.v2-card { grid-column: span 3; display: flex; flex-direction: column; overflow: hidden; border-radius: 1.75rem; background: var(--card); border: 1px solid rgb(255 255 255 / .8); box-shadow: var(--sh); transition: transform .36s var(--e), box-shadow .36s var(--e); }
.v2-card:hover { transform: translateY(-4px); box-shadow: var(--sh-up); }
.v2-c-wide { grid-column: span 4; }
.v2-c-wide + .v2-card { grid-column: span 2; }
.v2-card:nth-child(5) { grid-column: span 2; }
.v2-c-wide2 { grid-column: span 4; }
.v2-card-tx { padding: 26px 26px 0; }
.v2-card h3 { margin: 16px 0 0; font-family: var(--display); font-weight: 680; font-size: clamp(20px, 2vw, 24px); letter-spacing: -.02em; }
.v2-card-tx p { margin: 6px 0 0; max-width: 34ch; font-size: 15.5px; line-height: 1.5; color: var(--mute); }
.v2-icb { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 15px; background: var(--acc-soft); color: var(--acc); }
.v2-icb svg { width: 24px; height: 24px; transition: transform .36s var(--e-back); }
.v2-card:hover .v2-icb svg { transform: rotate(-8deg) scale(1.1); }
.v2-viz { position: relative; flex: 1; min-height: 220px; margin-top: 22px; overflow: hidden; }
.v2-viz-c { display: grid; place-items: center; padding: 0 22px 22px; }

/* WhatsApp que no para */
.v2-feed { position: absolute; inset: 0 26px; animation: v2-feed 22s linear infinite; }
.v2-viz:has(.v2-feed)::before, .v2-viz:has(.v2-feed)::after { content: ""; position: absolute; inset-inline: 0; z-index: 1; height: 40px; pointer-events: none; }
.v2-viz:has(.v2-feed)::before { top: 0; background: linear-gradient(#fff, transparent); }
.v2-viz:has(.v2-feed)::after { bottom: 0; height: 56px; background: linear-gradient(transparent, #fff); }
.v2-feed-set { display: grid; gap: 8px; padding-bottom: 8px; }
.v2-msg { justify-self: start; max-width: 78%; margin: 0; padding: 9px 13px; border-radius: 16px 16px 16px 5px; background: var(--bg); font-size: 14px; line-height: 1.35; }
.v2-msg b { display: block; font-size: 11.5px; color: var(--acc); }
.v2-msg-me { justify-self: end; border-radius: 16px 16px 5px 16px; background: #dcf8c6; }
@keyframes v2-feed { to { transform: translateY(-50%); } }

/* indicador de velocidad */
.v2-gauge { position: relative; width: 168px; aspect-ratio: 1; }
.v2-gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.v2-gauge circle { fill: none; stroke: var(--soft); stroke-width: 9; }
.v2-gauge .v2-gauge-on { stroke: var(--ok); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; }
.is-in .v2-gauge-on { animation: v2-ring98 1.4s var(--e) .3s forwards; }
.v2-gauge b { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; font-family: var(--display); font-weight: 700; font-size: 46px; letter-spacing: -.04em; color: var(--ok); line-height: 1; }
.v2-gauge small { display: block; margin-top: 4px; font-family: var(--body); font-size: 12px; font-weight: 600; letter-spacing: 0; color: var(--mute); }

/* resultado en Google */
.v2-serp { position: absolute; inset: 0 22px; display: grid; gap: 8px; align-content: start; }
.v2-serp-q { margin: 0; display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); font-size: 14px; }
.v2-serp-q svg { width: 16px; height: 16px; flex: none; color: var(--mute); }
.v2-type { display: inline-block; overflow: hidden; white-space: nowrap; width: 0; }
.is-in .v2-type { animation: v2-typing 1.2s steps(25) .4s forwards; }
@keyframes v2-typing { to { width: 25ch; } }
.v2-serp-r { margin: 0; padding: 10px 14px; border-radius: 14px; background: var(--bg); font-size: 13px; color: var(--mute); opacity: 0; }
.v2-serp-r b { display: block; font-size: 14.5px; color: #1a4fd6; }
.v2-serp-top { background: #fff; box-shadow: 0 0 0 2px var(--miel); }
.v2-serp-top span { color: var(--ink-2); }
.is-in .v2-serp-r { animation: v2-rise .5s var(--e-in) both; }
.is-in .v2-serp-r:nth-child(2) { animation-delay: 1.75s; }
.is-in .v2-serp-r:nth-child(3) { animation-delay: 1.85s; }
.is-in .v2-serp-r:nth-child(4) { animation-delay: 1.95s; }
@keyframes v2-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* panel propio */
.v2-panel { position: absolute; inset: 0 22px; display: grid; gap: 8px; align-content: start; }
.v2-field { margin: 0; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; background: var(--bg); font-size: 14.5px; }
.v2-field small { color: var(--mute); font-size: 13px; }
.v2-field s { color: var(--mute); }
.v2-swap { display: inline-block; padding: 1px 8px; border-radius: 8px; }
.is-in .v2-swap { animation: v2-hl 1.4s var(--e) .8s both; }
@keyframes v2-hl { 0% { background: transparent; } 30% { background: var(--miel); } 100% { background: #f1fad0; } }
.v2-saved { margin: 4px 0 0; display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 999px; background: var(--ok-soft); color: #166534; font-size: 14px; font-weight: 600; opacity: 0; }
.v2-saved .v2-ic { width: 26px; height: 26px; border-radius: 50%; }
.v2-saved .v2-ic svg { width: 15px; height: 15px; }
.is-in .v2-saved { animation: v2-popin .5s var(--e-back) 1.6s both; }
.is-in .v2-saved path { animation-delay: 1.9s; }
@keyframes v2-popin { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: none; } }

/* es tuya */
.v2-own { width: 100%; max-width: 280px; display: grid; gap: 8px; }
.v2-own p { margin: 0; display: flex; justify-content: space-between; gap: 10px; padding: 11px 14px; border-radius: 14px; background: var(--bg); font-size: 14px; opacity: 0; }
.v2-own span { color: var(--mute); }
.is-in .v2-own p { animation: v2-linein .45s var(--e-in) both; }
.is-in .v2-own p:nth-child(2) { animation-delay: .15s; }
.is-in .v2-own p:nth-child(3) { animation-delay: .3s; }
@keyframes v2-linein { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }

/* boleta */
.v2-receipt { width: 100%; max-width: 330px; padding: 18px; border-radius: 20px; background: #fff; box-shadow: 0 1px 2px rgb(28 25 23 / .05), 0 18px 40px -20px rgb(28 25 23 / .35); }
.v2-receipt p { margin: 0; }
.v2-rc-h { font-size: 12px; color: var(--mute); }
.v2-rc-t { font-family: var(--display); font-weight: 700; font-size: 30px; letter-spacing: -.03em; }
.v2-rc-l, .v2-rc-ok { margin-top: 8px !important; display: flex; justify-content: space-between; padding: 8px 12px; border-radius: 10px; background: var(--bg); font-size: 14px; opacity: 0; }
.v2-rc-ok { background: var(--ok-soft); color: #166534; }
.is-in .v2-rc-l, .is-in .v2-rc-ok { animation: v2-rise .5s var(--e-in) both; }
.is-in .v2-rc-l:nth-of-type(3) { animation-delay: .5s; }
.is-in .v2-rc-l:nth-of-type(4) { animation-delay: .95s; }
.is-in .v2-rc-ok { animation-delay: 1.5s; }

/* ───── proyectos ───── */
.v2-works { position: relative; margin-top: 48px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; padding-bottom: 40px; }
.v2-work { margin: 0; }
.v2-work:nth-child(4n + 2), .v2-work:nth-child(4n + 3) { transform: translateY(40px); }
.v2-work a { display: block; }
.v2-work-img { display: block; overflow: hidden; aspect-ratio: 4 / 5; border-radius: 1.6rem; background: #fff; box-shadow: var(--sh); }
.v2-work-img img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .7s var(--e); }
.v2-work a:hover img { transform: scale(1.05); }
.v2-work figcaption { margin-top: 10px; display: grid; font-size: 14px; color: var(--mute); }
.v2-work figcaption b { color: var(--ink); font-size: 15px; }
.v2-works-cta { margin: 40px 0 0; }

/* teléfono que navega solo */
.v2-phone { pointer-events: none; }
.v2-phone-d { position: absolute; left: 50%; top: 46%; width: 240px; transform: translate(-50%, -50%); z-index: 2; }
.v2-phone-m { display: none; }
.v2-ph { position: relative; aspect-ratio: 393 / 852; filter: drop-shadow(0 50px 70px rgb(0 0 0 / .45)) drop-shadow(0 12px 18px rgb(0 0 0 / .25)); }
.v2-ph-frame { position: absolute; inset: 0; padding: 1.3%; border-radius: 15.5% / 7.2%; background: linear-gradient(135deg, #b9a68a 0%, #ecdfc9 20%, #a4906f 45%, #e2d3b9 70%, #9c8a6c 100%); }
.v2-ph-btn { position: absolute; left: -.9%; width: 1.3%; border-radius: 2px 0 0 2px; background: #b9a68a; }
.v2-ph-b1 { top: 17%; height: 3.4%; }
.v2-ph-b2 { top: 24%; height: 6.2%; }
.v2-ph-scr { position: relative; height: 100%; overflow: hidden; border-radius: 14.4% / 6.6%; background: #000; border: 6px solid #000; }
.v2-ph-isle { position: absolute; top: 1.3%; left: 50%; z-index: 3; width: 30%; height: 3.4%; transform: translateX(-50%); border-radius: 999px; background: #000; }
.v2-tour { position: absolute; inset: 0; overflow: hidden; border-radius: 12.6% / 5.8%; background: #f8f4ee; opacity: 0; animation: v2-tour 16s var(--e) infinite; }
.v2-tour img { display: block; width: 100%; height: auto; animation: v2-tourscroll 16s var(--e) infinite; }
.v2-tour-1, .v2-tour-1 img, .v2-tour-1 .v2-tap { animation-delay: 4s; }
.v2-tour-2, .v2-tour-2 img, .v2-tour-2 .v2-tap { animation-delay: 8s; }
.v2-tour-3, .v2-tour-3 img, .v2-tour-3 .v2-tap { animation-delay: 12s; }
@keyframes v2-tour { 0% { opacity: 0; transform: translateX(12%); } 3%, 22% { opacity: 1; transform: none; } 25%, 100% { opacity: 0; transform: translateX(-12%); } }
@keyframes v2-tourscroll { 0%, 5% { transform: translateY(0); } 18%, 25% { transform: translateY(-38%); } 100% { transform: translateY(-38%); } }
.v2-tap { position: absolute; left: 50%; top: 62%; width: 16%; aspect-ratio: 1; border-radius: 50%; background: rgb(28 25 23 / .25); box-shadow: 0 0 0 4px rgb(255 255 255 / .7); opacity: 0; transform: translate(-50%, -50%) scale(.4); animation: v2-tap 16s var(--e) infinite; }
@keyframes v2-tap { 0%, 17% { opacity: 0; transform: translate(-50%, -50%) scale(.4); } 19% { opacity: 1; transform: translate(-50%, -50%) scale(.8); } 23%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(1.3); } }

/* ───── proceso ───── */
.v2-steps { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; counter-reset: none; }
.v2-steps li { padding: 24px 22px; border-radius: 1.6rem; background: var(--card); border: 1px solid rgb(255 255 255 / .8); box-shadow: var(--sh); }
.v2-steps span { font-family: var(--monof); font-size: 13px; letter-spacing: .14em; color: var(--acc); }
.v2-steps h3 { margin: 14px 0 0; font-family: var(--display); font-weight: 680; font-size: 21px; letter-spacing: -.02em; }
.v2-steps p { margin: 6px 0 0; font-size: 15px; line-height: 1.45; color: var(--mute); }

/* ───── velocidad, reseñas y preguntas (bloques generados) ───── */
.v2 .label.mono, .v2 .rule { font-family: var(--body); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--acc); }
.v2 .rule { display: flex; justify-content: space-between; gap: 16px; border-bottom: 0; padding: 0; }
.v2 .rule span + span { color: var(--mute); font-weight: 600; letter-spacing: .06em; }
.v2 .lh-title { margin: 14px 0 0; max-width: 20ch; font-family: var(--display); font-weight: 650; font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.05; letter-spacing: -.035em; }
.v2 .lh-lead { max-width: 60ch; font-size: 16px; line-height: 1.6; color: var(--mute); }
.v2 .lh-kpi-label { margin-top: 28px; font-family: var(--body); font-size: 13px; font-weight: 600; color: var(--ink-2); text-transform: none; letter-spacing: 0; }
.v2 .lh-kpis { margin-top: 12px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; border: 0; }
.v2 .lh-kpis li { padding: 22px; border: 0; border-radius: 1.4rem; background: var(--card); box-shadow: var(--sh); }
.v2 .lh-kpis b { font-family: var(--display); font-size: clamp(36px, 4vw, 52px); letter-spacing: -.04em; }
.v2 .lh-kpis span { font-family: var(--body); text-transform: none; letter-spacing: 0; font-size: 14px; }
.v2 .lh-details summary.btn { margin-top: 18px; border-radius: 999px; border-color: rgb(28 25 23 / .14); font-family: var(--body); text-transform: none; letter-spacing: 0; font-size: 15px; font-weight: 600; }
.v2 .lh-table { background: #fff; border-radius: 14px; }
.v2-rev .section { padding: 0; background: transparent; }
.v2-rev .wrap { width: min(1160px, 100% - 32px); margin-inline: auto; padding: 0; }
.v2 .reviews-list { margin-top: 32px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.v2 .review-item { padding: 26px; border: 0; border-radius: 1.6rem; background: var(--card); box-shadow: var(--sh); }
.v2 .review-item blockquote { margin: 10px 0 0; font-size: 17px; line-height: 1.5; color: var(--ink-2); }
.v2 .review-item footer { margin-top: 14px; font-size: 13.5px; color: var(--mute); font-family: var(--body); }
.v2 .stars-static { color: #e7a63b; letter-spacing: .1em; }
.v2 .reviews-cta { margin-top: 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--mute); font-size: 15px; }
.v2 .reviews-cta .btn, .v2 .btn-ghost { border-radius: 999px; border-color: rgb(28 25 23 / .14); font-family: var(--body); text-transform: none; letter-spacing: 0; font-size: 14.5px; font-weight: 600; }
.v2 .faq-list { margin-top: 28px; border-top: 0; gap: 0 32px; }
.v2 .faq-item { padding: 20px 0; border-bottom: 1px solid rgb(28 25 23 / .09); }
.v2 .faq-item h3 { font-family: var(--display); font-weight: 650; font-size: 19px; letter-spacing: -.015em; }
.v2 .faq-item p { font-size: 16px; color: var(--mute); }
.v2 .faq-item summary::after { color: var(--acc); }

/* ───── contacto ───── */
.v2-end { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(28px, 5vw, 64px); padding: clamp(28px, 5vw, 64px); border-radius: 2rem; background: radial-gradient(80% 70% at 70% 0%, #1d2a1e 0%, var(--ink) 70%); color: #fff; box-shadow: 0 2px 4px rgb(28 25 23 / .05), 0 30px 60px -24px rgb(28 25 23 / .45); }
.v2-end .v2-h2 { color: #fff; max-width: 16ch; }
.v2-end-tx > p { color: rgb(255 255 255 / .62); font-size: 17px; line-height: 1.55; }
.v2-end-links { margin-top: 24px; }
.v2-end-data { font-size: 15px !important; }
.v2-end-data a, .v2-end .author a { color: #fff; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgb(255 255 255 / .3); }
.v2-end .author { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgb(255 255 255 / .1); font-size: 14.5px; color: rgb(255 255 255 / .55); }
.v2-end .author strong { color: #fff; }
.v2 .contact-form { padding: clamp(20px, 3vw, 30px); border-radius: 1.5rem; background: #fff; color: var(--ink); }
.v2 .field label { font-family: var(--body); text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 600; color: var(--ink-2); }
.v2 .field input, .v2 .field select, .v2 .field textarea { padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); font-family: var(--body); font-size: 16px; }
.v2 .field input:focus, .v2 .field select:focus, .v2 .field textarea:focus { border-color: var(--acc); box-shadow: 0 0 0 3px rgb(14 90 43 / .15); }
.v2 #cf-submit { width: 100%; justify-content: center; min-height: 52px; border-radius: 999px; font-family: var(--body); text-transform: none; letter-spacing: 0; font-size: 16px; font-weight: 600; }
.v2 .footer { margin-top: clamp(64px, 8vw, 104px); background: transparent; border-top: 1px solid rgb(28 25 23 / .08); }
.v2 .footer-inner { font-family: var(--body); font-size: 13.5px; letter-spacing: 0; text-transform: none; color: var(--mute); }

/* ───── entradas al aparecer ───── */
.v2-js [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .65s var(--e-in), transform .65s var(--e-in); }
.v2-js [data-reveal].is-in { opacity: 1; transform: none; }
.v2-js .v2-plans > :nth-child(2), .v2-js .v2-steps > :nth-child(2), .v2-js .v2-bento > :nth-child(2) { transition-delay: .06s; }
.v2-js .v2-plans > :nth-child(3), .v2-js .v2-steps > :nth-child(3), .v2-js .v2-bento > :nth-child(3) { transition-delay: .12s; }
.v2-js .v2-plans > :nth-child(4), .v2-js .v2-steps > :nth-child(4), .v2-js .v2-bento > :nth-child(4) { transition-delay: .18s; }
.v2-js .v2-bento > :nth-child(5) { transition-delay: .06s; }
.v2-js .v2-bento > :nth-child(6) { transition-delay: .12s; }
.v2-js .v2-works > :nth-child(4n + 2) { transition-delay: .06s; }
.v2-js .v2-works > :nth-child(4n + 3) { transition-delay: .12s; }
.v2-js .v2-works > :nth-child(4n + 4) { transition-delay: .18s; }
.v2-js .v2-work:nth-child(4n + 2):not(.is-in), .v2-js .v2-work:nth-child(4n + 3):not(.is-in) { transform: translateY(58px); }
.v2-js .v2-work.is-in:nth-child(4n + 2), .v2-js .v2-work.is-in:nth-child(4n + 3) { transform: translateY(40px); }
/* lo que está fuera de pantalla no gasta batería */
[data-off], [data-off] * { animation-play-state: paused !important; }

/* ───── arreglos 2026-10-13 ───── */
html:has(body.v2) { overflow-x: clip; }
.v2-hero { overflow-x: clip; }
.v2 .reveal { animation: none !important; opacity: 1 !important; transform: none !important; }
.v2 .lh-kpis { background: transparent; }
.v2-rev .reviews { padding: 0; }
.v2-end .v2-h2 + p { margin-top: 18px; }
.v2-end .author p { color: rgb(255 255 255 / .6); }
.v2-ph-base { position: absolute; inset: 0; width: 100%; height: auto; border-radius: 12.6% / 5.8%; }
/* proyectos: el teléfono es una columna propia, no tapa tarjetas */
@media (min-width: 981px) {
  .v2-works { grid-template-columns: 1fr 1fr 220px 1fr 1fr; grid-auto-flow: dense; align-items: start; gap: 16px; }
  .v2-work:nth-child(4n + 2), .v2-work:nth-child(4n + 3) { transform: none; }
  .v2-work:nth-child(even) { transform: translateY(40px); }
  .v2-js .v2-work:nth-child(4n + 2):not(.is-in), .v2-js .v2-work:nth-child(4n + 3):not(.is-in) { transform: translateY(18px); }
  .v2-js .v2-work.is-in:nth-child(4n + 2), .v2-js .v2-work.is-in:nth-child(4n + 3) { transform: none; }
  .v2-js .v2-work.is-in:nth-child(even) { transform: translateY(40px); }
  .v2-phone-d { position: sticky; top: calc(var(--navh) + 40px); left: auto; width: 100%; transform: none; grid-column: 3; grid-row: 1 / span 2; align-self: start; }
}

.v2-faq-more-wrap { display: none; margin: 18px 0 0; }
@media (max-width: 640px) {
  .v2-js .v2-faq:not(.is-open) .faq-item:nth-child(n+9) { display: none; }
  .v2-js .v2-faq-more-wrap { display: block; }
  .v2-js .v2-faq.is-open .v2-faq-more-wrap { display: none; }
}

/* ───── teléfono y tablet ───── */
@media (max-width: 980px) {
  .v2-plans, .v2-steps, .v2 .lh-kpis { grid-template-columns: repeat(2, 1fr); }
  .v2-bento { grid-template-columns: repeat(2, 1fr); }
  .v2-bento > .v2-card { grid-column: span 1 !important; }
  .v2-bento > .v2-c-wide, .v2-bento > .v2-c-wide2 { grid-column: span 2 !important; }
  .v2-end { grid-template-columns: 1fr; }
  .v2-phone-d { display: none; }
  .v2-phone-m { display: block; width: min(58%, 240px); margin: 36px auto 0; }
}
@media (max-width: 640px) {
  body.v2 { font-size: 16px; }
  .v2-h1 { font-size: clamp(2.45rem, 11.5vw, 3.3rem); }
  .v2-sub { font-size: 16.5px; }
  .v2-btn { min-height: 50px; padding: 0 20px; font-size: 15px; width: 100%; }
  .v2-cta { flex-direction: column; }
  .v2-proof { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; text-align: left; }
  .v2-proof li { padding: 10px 12px; border-radius: 14px; background: rgb(255 255 255 / .7); font-size: 13.5px; }
  .v2-proof b { display: block; font-size: 17px; }
  .v2-tilt { --rx: 8deg !important; }
  .v2-float { padding: 7px 10px 7px 7px; font-size: 11.5px; border-radius: 12px; gap: 7px; }
  .v2-float small { font-size: 10.5px; }
  .v2-ic, .v2-ring { width: 26px; height: 26px; border-radius: 8px; }
  .v2-ic svg { width: 15px; height: 15px; }
  .v2-ring b { font-size: 9.5px; }
  .v2-float-a { left: -1%; top: 30%; }
  .v2-float-b { right: -1%; top: 6%; }
  .v2-float-c { right: 2%; bottom: -12%; }
  .v2-aurora span { animation: none; }
  .v2-aurora span:nth-child(3) { display: none; }
  .v2-plans { gap: 10px; }
  .v2-plan { padding: 20px 14px 14px; border-radius: 1.2rem; }
  .v2-plan h3 { font-size: 17px; }
  .v2-plan p { font-size: 12.5px; }
  .v2-price { font-size: 25px !important; padding-top: 10px; }
  .v2-plan-go { padding: 9px 12px; font-size: 13px; }
  .v2-plan-tag { left: 12px; font-size: 10px; }
  .v2-bento { grid-template-columns: 1fr 1fr; gap: 10px; }
  .v2-bento > .v2-card { grid-column: span 1 !important; border-radius: 1.2rem; }
  .v2-bento > .v2-c-wide, .v2-bento > .v2-c-wide2 { grid-column: span 2 !important; }
  .v2-card-tx { padding: 16px 14px 0; }
  .v2-card h3 { margin-top: 10px; font-size: 16px; }
  .v2-card-tx p { font-size: 12.5px; line-height: 1.4; }
  .v2-icb { width: 34px; height: 34px; border-radius: 11px; }
  .v2-icb svg { width: 19px; height: 19px; }
  .v2-viz { min-height: 150px; margin-top: 12px; }
  .v2-c-wide .v2-viz, .v2-c-wide2 .v2-viz { min-height: 170px; }
  .v2-viz-c { padding: 0 12px 12px; }
  .v2-feed { inset: 0 14px; }
  .v2-gauge { width: 112px; }
  .v2-gauge b { font-size: 30px; }
  .v2-gauge small { font-size: 10px; }
  .v2-serp, .v2-panel { inset: 0 10px; gap: 6px; }
  .v2-serp-q { padding: 7px 10px; font-size: 11.5px; }
  .v2-serp-r { padding: 7px 10px; font-size: 10.5px; }
  .v2-serp-r b { font-size: 12px; }
  .v2-field { padding: 8px 10px; font-size: 12px; flex-direction: column; align-items: flex-start; gap: 2px; }
  .v2-field small { font-size: 11px; }
  .v2-saved { padding: 7px 10px; font-size: 11.5px; gap: 6px; }
  .v2-own p { padding: 8px 10px; font-size: 12px; }
  .v2-msg { font-size: 12.5px; padding: 7px 11px; }
  .v2-works { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .v2-work:nth-child(4n + 2), .v2-work:nth-child(4n + 3) { transform: none; }
  .v2-work:nth-child(even) { transform: translateY(28px); }
  .v2-js .v2-work:nth-child(4n + 2):not(.is-in), .v2-js .v2-work:nth-child(4n + 3):not(.is-in) { transform: translateY(18px); }
  .v2-js .v2-work.is-in:nth-child(4n + 2), .v2-js .v2-work.is-in:nth-child(4n + 3) { transform: none; }
  .v2-js .v2-work.is-in:nth-child(even) { transform: translateY(28px); }
  .v2-work-img { border-radius: 1.1rem; }
  .v2-steps li { padding: 18px 16px; border-radius: 1.2rem; }
  .v2-steps h3 { font-size: 17px; }
  .v2-steps p { font-size: 13.5px; }
  .v2 .lh-kpis li { padding: 16px; }
  .v2 .reviews-list { grid-template-columns: 1fr; }
  .v2 .faq-list { grid-template-columns: 1fr; }
  .v2-end { padding: 26px 18px 18px; border-radius: 1.6rem; }
  .v2 .contact-form { padding: 18px 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .v2 *, .v2 *::before, .v2 *::after { animation: none !important; transition: none !important; }
  .v2-tilt { transform: none !important; }
  .v2-js [data-reveal] { opacity: 1; transform: none; }
  .v2-under path, .v2-ic-ok path { stroke-dashoffset: 0; }
  .v2-ring-on, .v2-gauge-on { stroke-dashoffset: 2; }
  .v2-float, .v2-serp-r, .v2-saved, .v2-own p, .v2-rc-l, .v2-rc-ok, .v2-tour:first-child { opacity: 1; }
  .v2-type { width: auto; }
  .v2-tap { display: none; }
}
.v2 .footer-inner a { text-decoration: underline; text-decoration-color: rgb(28 25 23 / .25); text-underline-offset: 3px; }
.v2 .footer-inner a:hover { color: var(--acc); }

/* ═════ Páginas interiores con el sistema v2 (precios, servicios, proyectos, blog, etc.) ═════ */
.v2 .mono, .v2 .label, .v2 .breadcrumb { font-family: var(--body); font-weight: 600; letter-spacing: .1em; }
.v2 .label { color: var(--acc); font-size: 12px; }
.v2 main.case, .v2 main.blog-main, .v2 main.review, .v2 main.e404 { padding-top: calc(var(--navh) + 32px); }
.v2 .wrap { width: min(1160px, 100% - 32px); max-width: none; padding-inline: 0; margin-inline: auto; }
.v2 .breadcrumb { font-size: 12px; color: var(--mute); }
.v2 .breadcrumb a { color: var(--ink-2); text-decoration: underline; text-decoration-color: rgb(28 25 23 / .2); text-underline-offset: 3px; }
.v2 .case-head h1, .v2 .post-head h1, .v2 main h1 { font-family: var(--display); font-weight: 680; letter-spacing: -.04em; line-height: 1.02; text-wrap: balance; }
.v2 .case-lead, .v2 .post-lead { color: var(--ink-2); line-height: 1.55; }
.v2 .case-panel, .v2 .post-body, .v2 .svc-line-desc { color: var(--ink-2); }
.v2 .post-body a, .v2 .case-body a:not(.btn), .v2 .case-panel a { color: var(--acc); text-decoration: underline; text-underline-offset: 3px; }
.v2 .updated { color: var(--mute); }
/* botones */
.v2 .btn { min-height: 48px; padding: 0 22px; border-radius: 999px; font-family: var(--body); font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none; transition: transform .18s var(--e), background-color .18s, color .18s, border-color .18s; }
.v2 .btn:active { transform: scale(.97); }
.v2 .btn-solid { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2 .btn-solid:hover { background: #d2f34c; border-color: #d2f34c; color: var(--ink); transform: translateY(-2px); }
.v2 .btn-ghost { background: rgb(255 255 255 / .6); border-color: rgb(28 25 23 / .14); color: var(--ink); }
.v2 .btn-ghost:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2 .btn-visit, .v2 .btn-case { border-radius: 999px; font-family: var(--body); text-transform: none; letter-spacing: 0; }
.v2 .btn-visit:hover { background: #d2f34c; border-color: #d2f34c; color: var(--ink); }
/* tarjetas y paneles */
.v2 .post-cta { border: 0; border-radius: 1.6rem; background: var(--ink); color: #fff; box-shadow: var(--sh-up); }
.v2 .post-cta h2, .v2 .post-cta p { color: #fff; }
.v2 .post-cta p { color: rgb(255 255 255 / .7); }
.v2 .post-cta .btn-solid { background: #d2f34c; border-color: #d2f34c; color: var(--ink); }
.v2 .post-cta .btn-solid:hover { background: #fff; border-color: #fff; }
.v2 .post-card { padding: 22px 24px; margin-bottom: 12px; border: 0; border-radius: 1.4rem; background: var(--card); box-shadow: var(--sh); transition: transform .36s var(--e), box-shadow .36s var(--e); }
.v2 .post-card:hover { transform: translateY(-3px); box-shadow: var(--sh-up); }
.v2 .post-list { border: 0; }
.v2 .case-side { padding: 22px; border-radius: 1.4rem; background: var(--card); box-shadow: var(--sh); }
.v2 .svc-price { color: var(--ink); font-weight: 700; }
.v2 .svc-line { padding: 26px; margin-top: 12px; border: 0; border-radius: 1.6rem; background: var(--card); box-shadow: var(--sh); }
.v2 .svc-line h2 { font-family: var(--display); font-weight: 680; letter-spacing: -.025em; }
.v2 .posts { border-top: 0; }
.v2 .posts li a { border-bottom: 1px solid rgb(28 25 23 / .08); }
.v2 .posts li a:hover { color: var(--acc); }
.v2 .posts span { color: var(--acc); font-family: var(--body); font-weight: 600; }
.v2 .card { border-radius: 1.6rem; overflow: hidden; }
.v2 .band { background: var(--ink); }
.v2 .table-scroll { border-radius: 1rem; }
.v2 .faq-item summary h3 { font-family: var(--display); }
/* precios con el sistema v2 */
.v2 .plan { border: 1px solid rgb(255 255 255 / .8); border-radius: 1.6rem; background: var(--card); box-shadow: var(--sh); }
.v2 .plan:hover { border-color: rgb(255 255 255 / .8); box-shadow: var(--sh-up); }
.v2 .plan h2 { font-weight: 680; letter-spacing: -.02em; }
.v2 .plan-price { font-weight: 700; letter-spacing: -.035em; }
.v2 .plan-hot { background: var(--ink); border-color: var(--ink); }
.v2 .plan-hot li::before, .v2 .plan li::before { color: var(--acc); }
.v2 .plan-hot li::before { color: #d2f34c; }
.v2 .plan-badge { background: #d2f34c; font-family: var(--body); font-weight: 700; }
.v2 .plans-all { border-radius: 1.2rem; background: rgb(255 255 255 / .7); }
.v2 .plan .btn { width: 100%; }
@media (max-width: 720px) { .v2 .btn { min-height: 44px; padding: 0 16px; font-size: 14px; } }
.v2 .nav-inner { width: min(1160px, 100% - 32px); }
.v2 .plan-hot .btn-solid { background: #d2f34c; border-color: #d2f34c; color: var(--ink); }
.v2 .plan-hot .btn-solid:hover { background: #fff; border-color: #fff; }
.v2 .band .label, .v2 .band .label.mono { color: #d2f34c; }
.v2 .case-result-grid p.mono.dim { opacity: 1; color: var(--mute); }
.v2 .band .case-result-grid p.mono.dim { color: rgb(255 255 255 / .68); }
.v2 .pc-meta, .v2 .pc-go, .v2 .post-meta, .v2 .langs a, .v2 .lh-note, .v2 .svc-case-meta, .v2 .footer-inner { font-family: var(--body); letter-spacing: .04em; }
.v2 .pc-go { color: var(--acc); font-weight: 600; }
