/* =====================================================================
   PROTOTIPOS E2–E5 · piezas propias sobre el sistema del Nuevo Encanto
   Se carga después de nuevo-encanto.css: mismos tokens (--ne-*), misma
   escena tinta/crema y mismos componentes. Aquí solo lo nuevo: héroe
   fotográfico, mapa del ecosistema, la web viva en un dispositivo,
   calendario, campaña, flujo, comunidad, curva, lote y proceso.
   ===================================================================== */

/* El héroe fotográfico (.pt-hero) vive en nuevo-encanto.css: lo comparten los cinco prototipos. */

/* ---------- visual de cada táctica en las tarjetas apiladas ---------- */
.pt-cv{ position:absolute; inset:0; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at 50% 35%, #0f4e6c, #0b1a22 72%); }
.pt-cv img{ position:absolute; border-radius:12px; box-shadow:0 30px 50px -24px rgba(0,0,0,.7); }
.pt-cv .is-pc{ width:84%; top:12%; left:6%; }
.pt-cv .is-movil{ width:30%; right:6%; bottom:8%; border-radius:18px; border:5px solid #111; }
.pt-cv.is-tres img{ width:30%; border-radius:16px; border:4px solid #111; }
.pt-cv.is-tres img:nth-child(1){ transform:translateX(-78%) rotate(-7deg); }
.pt-cv.is-tres img:nth-child(2){ z-index:2; transform:translateY(-4%); }
.pt-cv.is-tres img:nth-child(3){ transform:translateX(78%) rotate(7deg); }
.pt-cv.is-precio{ background:radial-gradient(circle at 50% 40%, #6a4b0e, #1d1608 74%); gap:14px; grid-auto-flow:column; }
.pt-etq{ position:relative; display:grid; gap:4px; padding:20px 22px; border-radius:16px; background:#f6f0de; color:#1b1a17; transform:rotate(-4deg); box-shadow:0 26px 40px -20px rgba(0,0,0,.6); }
.pt-etq.is-b{ transform:rotate(5deg) translateY(16px); background:#f0bf40; }
.pt-etq small{ font-size:.66rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.pt-etq b{ font-family:"Fraunces",serif; font-size:2rem; line-height:1; }
.pt-etq em{ font-style:normal; font-size:.78rem; font-weight:700; }
.pt-cv.is-cal{ background:#f6f0de; display:grid; grid-template-columns:repeat(3,1fr); gap:6px; padding:16%; place-items:stretch; }
.pt-cv.is-cal i{ position:relative; aspect-ratio:1; border-radius:8px; overflow:hidden; box-shadow:0 0 0 3px var(--c); }
.pt-cv.is-cal img{ position:static; width:100%; height:100%; object-fit:cover; border-radius:0; box-shadow:none; }
.pt-cv.is-story img{ position:static; width:46%; aspect-ratio:9/16; object-fit:cover; border-radius:20px; border:5px solid #111; }
.pt-cv.is-story span{ position:absolute; width:46%; aspect-ratio:9/16; display:flex; flex-direction:column; justify-content:flex-end; padding:16px; color:#fff; border-radius:20px; background:linear-gradient(0deg, rgba(0,0,0,.75), transparent 60%); }
.pt-cv.is-story b{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:#f0bf40; }
.pt-cv.is-story em{ font-family:"Fraunces",serif; font-style:normal; font-size:1.25rem; line-height:1.1; margin:6px 0 10px; }
.pt-cv.is-story i{ align-self:center; font-style:normal; font-size:.72rem; font-weight:800; padding:6px 12px; border-radius:999px; background:#fff; color:#111; }
.pt-cv.is-com{ background:#e7ddd2; display:flex; flex-direction:column; justify-content:center; gap:10px; padding:10%; }
.pt-cv.is-com span{ max-width:86%; padding:10px 14px; border-radius:14px; font:500 .9rem/1.4 "Inter",sans-serif; color:#111; box-shadow:0 2px 3px rgba(0,0,0,.08); }
.pt-cv.is-com .in{ background:#fff; align-self:flex-start; }
.pt-cv.is-com .out{ background:#d9fdd3; align-self:flex-end; }
.pt-cv.is-scan img:first-child{ position:static; width:40%; border-radius:6px; transform:rotate(-6deg) translateX(-30%); box-shadow:0 30px 40px -20px rgba(0,0,0,.6); }
.pt-cv.is-scan .is-tel{ width:32%; right:12%; border-radius:18px; border:5px solid #111; }
.pt-cv.is-scan i{ position:absolute; left:16%; width:30%; height:2px; background:#0cbfde; box-shadow:0 0 18px 4px rgba(12,191,222,.7); animation:ptEscan 2.4s ease-in-out infinite alternate; }
@keyframes ptEscan{ from{ top:30%; } to{ top:70%; } }
.pt-cv.is-proc{ grid-template-columns:repeat(2,1fr); gap:10px; padding:10%; place-items:stretch; background:#13120e; }
.pt-cv.is-proc span{ position:relative; border-radius:12px; overflow:hidden; aspect-ratio:4/3; }
.pt-cv.is-proc img{ position:static; width:100%; height:100%; object-fit:cover; border-radius:0; }
.pt-cv.is-proc b{ position:absolute; left:8px; bottom:8px; padding:3px 9px; border-radius:999px; background:rgba(0,0,0,.6); color:#f6f0de; font-size:.72rem; }

/* ---------- mapa del ecosistema ---------- */
.pt-eco{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:clamp(18px,2.6vw,36px); align-items:stretch; }
.pt-eco-lienzo{ position:relative; aspect-ratio:16/11; border-radius:var(--r-lg); background:radial-gradient(circle at 50% 50%, rgba(2,155,210,.22), transparent 55%), var(--ne-surf); border:1px solid var(--ne-line); overflow:hidden; }
.pt-eco-lienzo::before{ content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(246,240,222,.10) 1px, transparent 1.4px); background-size:22px 22px; mask-image:radial-gradient(circle at 50% 50%, #000 30%, transparent 75%); }
.pt-eco-svg{ position:absolute; inset:0; width:100%; height:100%; }
.pt-eco-l{ fill:none; stroke:rgba(12,191,222,.55); stroke-width:.35; stroke-dasharray:1.4 1.6; vector-effect:non-scaling-stroke; }
.pt-eco-svg .pt-eco-l{ stroke-width:1.6; animation:ptFlujo 1.6s linear infinite; animation-delay:var(--d,0s); }
@keyframes ptFlujo{ to{ stroke-dashoffset:-6; } }
.pt-eco-centro{ position:absolute; left:50%; top:50%; width:clamp(110px,17%,180px); transform:translate(-50%,-50%); filter:drop-shadow(0 20px 40px rgba(2,155,210,.5)); z-index:2; pointer-events:none; }
.pt-eco-n{ position:absolute; left:calc(var(--x) * 1%); top:calc(var(--y) * 1%); transform:translate(-50%,-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; border:0; background:none; cursor:pointer; color:var(--ne-fg); font:700 .84rem/1.2 var(--urb); }
.pt-eco-n i{ display:grid; place-items:center; width:58px; height:58px; border-radius:50%; font-style:normal; font-weight:900; font-size:1.2rem; color:#fff; background:var(--c,#0a6e99); box-shadow:0 0 0 6px rgba(246,240,222,.06), 0 18px 30px -12px rgba(0,0,0,.7); transition:transform .4s var(--spring), box-shadow .3s; }
.pt-eco-n span{ padding:4px 10px; border-radius:999px; background:rgba(12,11,8,.65); white-space:nowrap; }
.pt-eco-n:hover i,.pt-eco-n.is-on i{ transform:scale(1.14); box-shadow:0 0 0 8px rgba(240,191,64,.28), 0 18px 30px -12px rgba(0,0,0,.7); }
.pt-eco-n.is-web{ left:50%; top:50%; width:22%; height:32%; }
.pt-eco-n.is-web i{ width:100%; height:100%; background:transparent; box-shadow:none; }
.pt-eco-n.is-web span{ position:absolute; bottom:-34px; }
.pt-eco-n.is-ig{ --c:linear-gradient(135deg,#f58529,#dd2a7b,#8134af); }
.pt-eco-n.is-fb{ --c:#1877f2; } .pt-eco-n.is-wa{ --c:#1f9e55; } .pt-eco-n.is-qr{ --c:#f0bf40; } .pt-eco-n.is-google{ --c:#ea4335; } .pt-eco-n.is-meta{ --c:#0a6e99; }
.pt-eco-n.is-qr i{ color:#1b1a17; }
.pt-eco-panel{ padding:clamp(22px,2.6vw,34px); border-radius:var(--r-lg); background:var(--ne-surf); border:1px solid var(--ne-line); display:flex; flex-direction:column; }
.pt-eco-panel h3{ margin:0 0 10px; font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem); font-weight:800; letter-spacing:-.03em; }
.pt-eco-tc{ font-size:.86rem; color:var(--ne-faint) !important; }
.pt-eco-tc b{ color:var(--ne-em); }
.pt-eco-viaje{ list-style:none; margin:auto 0 0; padding:18px 0 0; border-top:1px solid var(--ne-line); display:grid; gap:10px; }
.pt-eco-viaje li{ display:flex; gap:12px; align-items:center; font-size:.92rem; color:var(--ne-mut); }
.pt-eco-viaje b{ flex:none; display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--ne-soft); color:var(--ne-em); font-size:.8rem; }

/* ---------- la web viva en un dispositivo ---------- */
.pt-dev{ display:grid; grid-template-columns:minmax(0,1fr) 240px; grid-template-areas:"ctl ctl" "marco ruta"; gap:16px 24px; }
.pt-dev:not(:has(.pt-ruta)){ grid-template-columns:1fr; grid-template-areas:"ctl" "marco"; }
.pt-dev-ctl{ grid-area:ctl; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.pt-dev-ctl .ne-seg button{ display:inline-flex; align-items:center; gap:7px; }
.pt-dev-marco{ grid-area:marco; position:relative; justify-self:center; width:100%; border-radius:18px; overflow:hidden; background:#fff; box-shadow:0 50px 90px -40px rgba(0,0,0,.6), 0 0 0 1px rgba(0,0,0,.1); transition:width .6s var(--ease), border-radius .5s; }
.pt-dev-barra{ display:flex; align-items:center; gap:6px; padding:10px 12px; background:#eceae4; }
.pt-dev-barra i{ width:10px; height:10px; border-radius:50%; background:#d7d2c4; }
.pt-dev-barra span{ margin-left:10px; flex:1; padding:5px 12px; border-radius:999px; background:#fff; font:500 .74rem "Inter",sans-serif; color:#666; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.pt-dev-vista{ position:relative; width:100%; height:var(--h,620px); overflow:hidden; background:#fbf8ef; }
.pt-dev-vista iframe{ position:absolute; top:0; left:0; border:0; width:var(--iw,1366px); height:calc(var(--h,620px) / var(--s,1)); transform:scale(var(--s,1)); transform-origin:0 0; }
.pt-dev[data-modo="movil"] .pt-dev-marco{ width:min(100%,392px); padding:12px; border-radius:48px; background:#121212; box-shadow:0 50px 90px -40px rgba(0,0,0,.6), inset 0 0 0 2px #2a2a2a; }
.pt-dev[data-modo="movil"] .pt-dev-barra{ display:none; }
.pt-dev[data-modo="movil"] .pt-dev-vista{ border-radius:36px; height:var(--h,740px); }
.pt-ruta{ grid-area:ruta; list-style:none; margin:0; padding:0; display:grid; gap:6px; align-content:start; }
.pt-ruta button{ width:100%; display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:14px; border:1px solid var(--ne-line); background:var(--ne-surf); color:var(--ne-mut); font:700 .92rem var(--urb); cursor:pointer; text-align:left; transition:background-color .2s, color .2s, border-color .2s, transform .3s var(--spring); }
.pt-ruta b{ font-size:.74rem; color:var(--ne-faint); font-variant-numeric:tabular-nums; }
.pt-ruta button:hover{ color:var(--ne-fg); transform:translateX(3px); }
.pt-ruta button[aria-pressed="true"]{ background:var(--azul); border-color:var(--azul); color:#fff; }
.pt-ruta button[aria-pressed="true"] b{ color:rgba(255,255,255,.75); }
.pt-tres-mini{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:clamp(22px,2.6vw,36px); border-radius:var(--r-md); border:1px solid var(--ne-line); background:var(--ne-surf); overflow:hidden; }
.pt-tres-mini > .ne-card{ border:0; border-radius:0; background:none; box-shadow:none; }
.pt-tres-mini > .ne-card + .ne-card{ border-left:1px solid var(--ne-line); }
.pt-tres-mini > .ne-card h3 .ne-ic{ width:30px; height:30px; padding:6px; border-radius:10px; background:var(--ne-soft); color:var(--ne-em); }
.pt-tres-mini .ne-card h3{ font-size:1.12rem; }
.pt-dos{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(14px,2vw,24px); margin-top:clamp(20px,2.4vw,32px); }

/* ---------- perfiles (E2) ---------- */
.pt-ig-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:6px; }
.pt-ig-grid img{ width:100%; aspect-ratio:1; object-fit:cover; }
.pt-rapidas{ display:flex; flex-wrap:wrap; gap:5px; margin-top:4px; }
.pt-rapidas span{ font-size:.62rem; font-weight:600; padding:4px 8px; border-radius:999px; background:#fff; border:1px solid #d6e3dc; color:#075e54; }
.pt-fb-info{ display:grid; gap:8px; padding:14px 18px 18px; font-size:.8rem; color:#333; }
.pt-fb-info p{ margin:0; }
.pt-fb-info b{ display:block; font-size:.72rem; color:#888; text-transform:uppercase; letter-spacing:.08em; }
.pt-suite{ display:grid; grid-template-columns:150px minmax(0,1fr); min-height:330px; font-size:.78rem; }
.pt-suite aside{ display:flex; flex-direction:column; gap:3px; padding:14px 10px; background:#f3f1ec; border-right:1px solid #e3dfd5; }
.pt-suite aside b{ font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:#999; margin:8px 6px 4px; }
.pt-suite aside span{ display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:8px; color:#333; }
.pt-suite aside span.is-on{ background:#fff; font-weight:700; }
.pt-suite aside em{ margin-left:auto; font-style:normal; font-size:.66rem; padding:1px 6px; border-radius:999px; background:#029bd2; color:#fff; }
.pt-suite i{ width:9px; height:9px; border-radius:50%; flex:none; }
.pt-suite i.is-wa{ background:#1f9e55; } .pt-suite i.is-ig{ background:#dd2a7b; } .pt-suite i.is-fb{ background:#1877f2; }
.pt-suite-l p{ display:grid; grid-template-columns:12px minmax(0,1fr) auto; grid-template-rows:auto auto; column-gap:10px; align-items:center; margin:0; padding:12px 14px; border-bottom:1px solid #eee; }
.pt-suite-l p i{ grid-row:span 2; }
.pt-suite-l p span{ color:#777; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.pt-suite-l .et{ grid-row:1 / span 2; grid-column:3; font-style:normal; font-size:.66rem; font-weight:700; padding:3px 8px; border-radius:999px; color:#fff; background:var(--c); }

/* ---------- precio a la vista (E2) ---------- */
.pt-precio{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(18px,2.6vw,36px); align-items:stretch; }
.pt-mpc{ padding:clamp(24px,3vw,40px); border-radius:var(--r-lg); background:var(--ne-surf); border:1px solid var(--ne-line); }
.pt-mpc-num{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin:6px 0 20px; }
.pt-mpc-num b{ font-size:clamp(4rem,2.6rem + 4vw,7rem); font-weight:800; line-height:.9; letter-spacing:-.05em; color:var(--ne-fg); font-variant-numeric:tabular-nums; }
.pt-mpc-num span{ color:var(--ne-mut); font-weight:700; }
.pt-mpc-num em{ font-style:normal; font-weight:800; font-size:1.4rem; padding:4px 12px; border-radius:999px; background:rgba(70,194,142,.16); color:#46c28e; }
.pt-mpc-barra{ position:relative; height:16px; border-radius:999px; background:var(--ne-surf2); margin-bottom:34px; }
.pt-mpc-barra i{ position:absolute; inset:0 auto 0 0; width:calc(var(--p) * 100%); border-radius:999px; background:linear-gradient(90deg, var(--azul), var(--maiz)); transition:width .8s var(--ease); }
.pt-mpc-barra span{ position:absolute; left:calc(var(--p) * 100%); top:22px; transform:translateX(-50%); font-size:.76rem; font-weight:700; color:var(--ne-faint); white-space:nowrap; }
.pt-mpc-barra span::before{ content:""; position:absolute; left:50%; top:-26px; width:2px; height:20px; background:var(--ne-fg); opacity:.6; }
.pt-mpc-ctl{ display:grid; gap:10px; margin-bottom:14px; }
.pt-mpc-ctl span{ font-weight:700; color:var(--ne-fg); }
.pt-mpc-ctl b{ color:var(--ne-em); font-size:1.2rem; }
.pt-mpc-ctl input,.pt-sem-ctl input{ width:100%; accent-color:var(--maiz); height:28px; }
.pt-etiqueta{ display:grid; gap:14px; align-content:center; }
.pt-etq-g{ display:grid; grid-template-columns:96px minmax(0,1fr); gap:18px; align-items:center; padding:18px 22px; border-radius:22px; background:#f6f0de; color:#1b1a17; box-shadow:0 30px 50px -36px rgba(0,0,0,.7); transform:rotate(-1.2deg); }
.pt-etq-g.is-c{ background:#f0bf40; transform:rotate(1.2deg); }
.pt-etq-g img{ filter:drop-shadow(0 14px 18px rgba(0,0,0,.3)); }
.pt-etq-g small{ display:block; font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.pt-etq-g b{ display:block; font-family:"Fraunces",serif; font-size:2.6rem; line-height:1.05; }
.pt-etq-g span{ font-weight:700; font-size:.9rem; }
.pt-hoja-c{ list-style:none; margin:0 0 12px; padding:0; }
.pt-hoja-c li{ display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px dashed var(--ne-line2); color:var(--ne-mut); }
.pt-hoja-c li b{ font-variant-numeric:tabular-nums; color:var(--ne-fg); }
.pt-hoja-c li.is-t{ border-bottom:0; border-top:2px solid var(--ne-fg); margin-top:6px; font-weight:800; color:var(--ne-fg); }
.pt-hoja-c li.is-t b{ color:var(--ne-em); font-size:1.2rem; }
.pt-reglas{ grid-template-columns:1fr 1fr; margin:0; }

/* ---------- concepto rector (E3) ---------- */
.pt-concepto{ overflow:hidden; isolation:isolate; padding-block:clamp(90px,12vw,180px); }
.pt-concepto-foto{ position:absolute; inset:0; z-index:-1; }
.pt-concepto-foto img{ width:100%; height:100%; object-fit:cover; opacity:.22; filter:saturate(.9); }
.pt-concepto-foto::after{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 30% 50%, transparent, var(--ne-bg) 80%); }
.pt-concepto-t{ margin:0; font-weight:800; font-size:clamp(2.8rem,1.2rem + 5.6vw,7.2rem); line-height:.95; letter-spacing:-.05em; color:var(--ne-fg) !important; }
.pt-concepto-t span,.pt-concepto-t em{ display:inline-block; }
.pt-concepto-t em{ font-family:"Fraunces",serif; font-style:italic; font-weight:600; color:var(--maiz); letter-spacing:-.02em; }
.pt-concepto-t .is-b{ font-size:.48em; letter-spacing:-.03em; color:var(--ne-mut); margin-top:.4em; }
.pt-concepto-t .is-b b{ font-family:"Fraunces",serif; color:var(--ne-fg); }
.pt-concepto-g{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,2vw,28px); margin-top:clamp(40px,5vw,72px); }
.pt-concepto-g div{ padding-top:14px; border-top:2px solid var(--maiz); }
.pt-concepto-g small{ font-weight:800; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ne-em); }
.pt-concepto-g p{ margin:8px 0 0; color:var(--ne-fg) !important; font-size:1.05rem; line-height:1.5; }
.pt-pilar .ne-hoja-muestra{ padding:0; overflow:hidden; }
.pt-pilar-foto img{ width:100%; height:100%; object-fit:cover; border-radius:inherit; }

/* ---------- calendario (E3) ---------- */
.pt-cal-zona{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:clamp(18px,3vw,44px); align-items:center; }
.pt-cal{ padding:clamp(18px,2.4vw,30px); border-radius:var(--r-lg); background:var(--ne-surf); border:1px solid var(--ne-line); }
.pt-cal-cab{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.pt-cal-cab b{ font-size:1.6rem; font-weight:800; letter-spacing:-.03em; color:var(--ne-fg); }
.pt-cal-cab span{ font-size:.88rem; color:var(--ne-mut); }
.pt-cal-g{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.pt-cal-d{ text-align:center; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ne-faint); padding-bottom:4px; }
.pt-cal-c{ position:relative; aspect-ratio:1; border-radius:12px; background:var(--ne-surf2); border:1px solid var(--ne-line); padding:6px; font:700 .78rem var(--urb); color:var(--ne-faint); overflow:hidden; }
.pt-cal-c b{ position:relative; z-index:2; }
button.pt-cal-c{ cursor:pointer; border:0; box-shadow:inset 0 0 0 2px var(--c); color:#fff; text-align:left; transition:transform .35s var(--spring), box-shadow .25s; }
button.pt-cal-c img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; filter:saturate(.95); }
button.pt-cal-c::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(0deg, rgba(0,0,0,.7), rgba(0,0,0,.05) 70%); }
button.pt-cal-c small{ position:absolute; left:6px; right:6px; bottom:5px; z-index:2; font-size:.6rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--c); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; filter:brightness(1.4); }
button.pt-cal-c:hover{ transform:scale(1.06); z-index:3; }
button.pt-cal-c.is-on{ box-shadow:inset 0 0 0 3px var(--c), 0 0 0 3px var(--ne-bg), 0 0 0 5px var(--c); transform:scale(1.05); z-index:3; }
.pt-cal-ley{ list-style:none; margin:14px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px 16px; font-size:.82rem; font-weight:700; color:var(--ne-mut); }
.pt-cal-ley i{ display:inline-block; width:10px; height:10px; border-radius:3px; background:var(--c); margin-right:6px; }
.pt-cal-prev .ne-phone{ margin-inline:auto; width:min(100%,280px); }
.pt-post{ display:flex; flex-direction:column; }
.pt-post-img{ aspect-ratio:1; overflow:hidden; background:#ddd; }
.pt-post-img img{ width:100%; height:100%; object-fit:cover; transition:opacity .35s; }
.pt-post-acc{ display:flex; gap:12px; padding:8px 12px 0; font-size:1rem; }
.pt-post-acc em{ margin-left:auto; font-style:normal; }
.pt-post-cap{ margin:6px 12px 0; font-size:.72rem; line-height:1.4; color:#222; }
.pt-post-tag{ color:#00376b; }
.pt-post-dia{ margin:auto 12px 12px; font-size:.66rem; color:#888; }

/* ---------- campaña (E3) ---------- */
.pt-camp{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(20px,3vw,48px); align-items:center; }
.pt-camp-piezas{ display:flex; gap:clamp(12px,2vw,24px); justify-content:center; align-items:flex-end; }
.pt-camp-piezas figure{ margin:0; display:grid; gap:10px; justify-items:center; }
.pt-camp-piezas figcaption{ font-size:.78rem; font-weight:700; color:var(--ne-mut); text-align:center; max-width:22ch; }
.pt-camp-piezas .ne-phone{ width:clamp(190px,17vw,240px); }
.pt-ad{ display:flex; flex-direction:column; height:100%; font-size:.72rem; }
.pt-ad-cab{ display:flex; gap:8px; align-items:center; padding:10px 10px 6px; }
.pt-ad-cab img{ width:28px; height:28px; border-radius:50%; }
.pt-ad-cab b{ display:block; font-size:.74rem; }
.pt-ad-cab small{ color:#888; font-size:.62rem; }
.pt-ad p{ margin:0 10px 8px; line-height:1.35; }
.pt-ad-img{ width:100%; aspect-ratio:1; object-fit:cover; }
.pt-ad-pie{ display:flex; align-items:center; gap:8px; padding:8px 10px; background:#f2f2f2; }
.pt-ad-pie span{ display:flex; flex-direction:column; flex:1; }
.pt-ad-pie small{ color:#888; font-size:.58rem; text-transform:uppercase; }
.pt-ad-pie i{ font-style:normal; font-weight:700; padding:6px 9px; border-radius:6px; background:#e4e6eb; font-size:.62rem; }
.ne-phone.is-story .ne-phone-in{ background:#000; }
.pt-story{ position:relative; height:100%; color:#fff; }
.pt-story > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pt-story::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.8), rgba(0,0,0,0) 55%, rgba(0,0,0,.3)); }
.pt-story-bar{ position:absolute; top:10px; left:10px; right:10px; z-index:2; display:flex; gap:4px; }
.pt-story-bar i{ flex:1; height:2px; border-radius:2px; background:rgba(255,255,255,.4); }
.pt-story-bar i:first-child{ background:#fff; }
.pt-story-t{ position:absolute; z-index:2; left:16px; right:16px; bottom:70px; display:grid; gap:6px; }
.pt-story-t small{ font-size:.62rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#f0bf40; }
.pt-story-t b{ font-family:"Fraunces",serif; font-size:1.5rem; line-height:1.05; }
.pt-story-t span{ font-size:.78rem; opacity:.9; }
.pt-story-cta{ position:absolute; z-index:2; left:50%; bottom:22px; transform:translateX(-50%); padding:8px 14px; border-radius:999px; background:#fff; color:#111; font-size:.7rem; font-weight:800; white-space:nowrap; }
.pt-embudo{ list-style:none; margin:0 0 14px; padding:0; display:grid; gap:8px; }
.pt-embudo li{ position:relative; display:grid; grid-template-columns:minmax(0,1fr); padding:12px 16px; border-radius:14px; overflow:hidden; isolation:isolate; }
.pt-embudo li i{ position:absolute; inset:0 auto 0 0; z-index:-1; width:calc(var(--w) * 1%); border-radius:14px; background:linear-gradient(90deg, rgba(2,155,210,.55), rgba(240,191,64,.45)); transform-origin:left; }
.ne-js .pt-embudo li i{ transform:scaleX(0); transition:transform 1.1s var(--ease) var(--d,0s); }
.ne-js .pt-embudo li.is-in i{ transform:scaleX(1); }
.pt-embudo li::before{ content:""; position:absolute; inset:0; z-index:-2; border-radius:14px; background:var(--ne-surf); border:1px solid var(--ne-line); }
.pt-embudo b{ font-weight:800; color:var(--ne-fg); }
.pt-embudo span{ font-size:.86rem; color:var(--ne-mut); }
.pt-semaforo{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:clamp(18px,3vw,40px); align-items:center; margin-top:clamp(26px,3vw,44px); padding:clamp(22px,2.6vw,34px); border-radius:var(--r-lg); background:var(--ne-surf); border:1px solid var(--ne-line); }
.pt-semaforo h3{ margin:0 0 6px; font-size:1.3rem; }
.pt-sem-ctl{ display:grid; gap:8px; font-weight:700; color:var(--ne-fg); }
.pt-sem-ctl b{ color:var(--ne-em); }
.pt-sem-luz{ display:grid; grid-template-columns:repeat(3,auto) minmax(160px,220px); gap:8px; align-items:center; }
.pt-sem-luz i{ width:30px; height:30px; border-radius:50%; background:#333; opacity:.35; transition:opacity .3s, box-shadow .3s; }
.pt-sem-luz .v{ background:#46c28e; } .pt-sem-luz .a{ background:#f0bf40; } .pt-sem-luz .r{ background:#e2574c; }
.pt-sem-luz[data-estado="verde"] .v,.pt-sem-luz[data-estado="amarillo"] .a,.pt-sem-luz[data-estado="rojo"] .r{ opacity:1; box-shadow:0 0 22px 2px currentColor; }
.pt-sem-luz[data-estado="verde"] .v{ color:#46c28e; } .pt-sem-luz[data-estado="amarillo"] .a{ color:#f0bf40; } .pt-sem-luz[data-estado="rojo"] .r{ color:#e2574c; }
.pt-sem-luz p{ margin:0 0 0 8px; font-weight:700; font-size:.92rem; color:var(--ne-fg) !important; }

/* ---------- flujo del QR al Círculo (E4) ---------- */
.pt-flujo{ display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.62fr); gap:clamp(20px,3vw,48px); align-items:center; }
.pt-flujo-pasos{ list-style:none; margin:0; padding:0; display:grid; gap:10px; position:relative; }
.pt-flujo-pasos::before{ content:""; position:absolute; left:31px; top:24px; bottom:24px; width:2px; background:linear-gradient(var(--azul), var(--maiz)); opacity:.5; }
.pt-flujo-pasos button{ position:relative; width:100%; display:grid; grid-template-columns:64px minmax(0,1fr); grid-template-rows:auto auto; column-gap:14px; text-align:left; padding:14px 18px 14px 0; border:0; border-radius:18px; background:none; color:var(--ne-mut); cursor:pointer; font-family:var(--urb); transition:background-color .3s, color .3s; }
.pt-flujo-pasos button i{ grid-row:span 2; justify-self:center; display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:var(--ne-surf2); border:2px solid var(--ne-line2); color:var(--ne-mut); transition:all .35s var(--spring); }
.pt-flujo-pasos b{ font-size:1.12rem; color:var(--ne-fg); }
.pt-flujo-pasos span{ font-size:.92rem; line-height:1.45; }
.pt-flujo-pasos button[aria-pressed="true"]{ background:var(--ne-surf); color:var(--ne-fg); }
.pt-flujo-pasos button[aria-pressed="true"] i{ background:var(--maiz); border-color:var(--maiz); color:#1b1a17; transform:scale(1.12); }
.pt-flujo-vista{ position:relative; display:grid; justify-items:center; gap:14px; }
.pt-flujo-marco{ position:relative; width:min(100%,300px); aspect-ratio:9/16; border-radius:36px; padding:10px; background:#121212; box-shadow:0 50px 80px -40px rgba(0,0,0,.7), inset 0 0 0 2px #2a2a2a; }
.pt-flujo-marco img{ position:absolute; inset:10px; width:calc(100% - 20px); height:calc(100% - 20px); object-fit:cover; object-position:top; border-radius:28px; opacity:0; transform:scale(.96); transition:opacity .5s, transform .6s var(--ease); background:#fff; }
.pt-flujo-marco img[src*="empaque"]{ object-fit:contain; background:radial-gradient(circle at 50% 40%, #0a6e99, #0b1f2a 70%); padding:16%; }
.pt-flujo-marco img.is-on{ opacity:1; transform:none; }
.pt-flujo-prog{ width:min(100%,300px); height:4px; border-radius:4px; background:var(--ne-surf2); overflow:hidden; }
.pt-flujo-prog b{ display:block; height:100%; width:0; background:var(--maiz); }
.pt-flujo.is-corre .pt-flujo-prog b{ animation:ptBarra 3.2s linear; }
@keyframes ptBarra{ to{ width:100%; } }

/* ---------- registro (E4) y conoce (E5) ---------- */
.pt-unete{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(20px,3.4vw,56px); align-items:start; }
.pt-unete .pt-dev{ grid-template-columns:auto; grid-template-areas:"ctl" "marco"; }
.pt-unete-txt{ display:grid; gap:clamp(16px,2vw,24px); align-content:start; }
.pt-campos{ grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.pt-hoja{ margin-top:14px; overflow-x:auto; border-radius:12px; border:1px solid var(--ne-line); }
.pt-hoja table{ width:100%; border-collapse:collapse; font:500 .82rem "Inter",sans-serif; min-width:460px; }
.pt-hoja th{ text-align:left; padding:9px 10px; background:var(--ne-surf2); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ne-faint); }
.pt-hoja td{ padding:9px 10px; border-top:1px solid var(--ne-line); color:var(--ne-fg); font-variant-numeric:tabular-nums; }
.pt-hoja em{ font-style:normal; font-size:.7rem; font-weight:700; padding:3px 8px; border-radius:999px; color:#fff; background:#029bd2; }
.pt-hoja .et-tienda{ background:#70853a; } .pt-hoja .et-recurrente{ background:#c8901a; } .pt-hoja .et-círculo{ background:#7d6bd6; }
.pt-unete:has(.pt-scan){ grid-template-columns:minmax(0,.7fr) auto minmax(0,1fr); align-items:center; }
.pt-scan{ position:relative; display:grid; justify-items:center; gap:14px; }
.pt-scan img{ width:min(100%,260px); transform:rotate(-5deg); filter:drop-shadow(0 30px 40px rgba(0,0,0,.4)); }
.pt-scan-linea{ position:absolute; left:15%; right:15%; height:3px; background:#0cbfde; box-shadow:0 0 20px 6px rgba(12,191,222,.55); animation:ptEscan2 2.6s ease-in-out infinite alternate; }
@keyframes ptEscan2{ from{ top:62%; } to{ top:88%; } }
.pt-scan span{ font-size:.82rem; font-weight:700; color:var(--ne-mut); text-align:center; }

/* ---------- comunidad (E4) ---------- */
.pt-com{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(22px,4vw,64px); align-items:center; }
.pt-com-tel .ne-phone{ width:clamp(240px,22vw,290px); }
.pt-com-mes{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.pt-sem{ padding:18px; border-radius:var(--r-md); background:var(--ne-surf); border:1px solid var(--ne-line); display:grid; gap:10px; align-content:start; }
.pt-sem small{ font-weight:800; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ne-em); }
.pt-sem p{ margin:0; padding:12px 14px 12px 16px; border-radius:12px; background:var(--ne-surf2); font-size:.92rem; line-height:1.45; border-left:4px solid #46c28e; }
.pt-sem p.is-com{ border-left-color:var(--maiz); }
.pt-sem p b{ display:block; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ne-fg); margin-bottom:2px; }
.pt-com-ley{ grid-column:1 / -1; margin:0; font-size:.88rem; color:var(--ne-mut); }
.pt-com-ley span{ display:inline-flex; align-items:center; gap:6px; margin-right:12px; font-weight:800; color:var(--ne-fg); }
.pt-com-ley span::before{ content:""; width:12px; height:12px; border-radius:3px; background:#46c28e; }
.pt-com-ley .is-com::before{ background:var(--maiz); }
.pt-encuesta{ align-self:stretch; margin:4px 0; padding:10px 12px; border-radius:12px; background:#fff; font-size:.72rem; display:grid; gap:6px; box-shadow:0 1px 1px rgba(0,0,0,.08); }
.pt-encuesta span{ position:relative; display:flex; justify-content:space-between; padding:6px 8px; border-radius:8px; overflow:hidden; isolation:isolate; border:1px solid #e3e3e3; }
.pt-encuesta span i{ position:absolute; inset:0 auto 0 0; width:var(--p); z-index:-1; background:#d9fdd3; }
.pt-encuesta em{ font-style:normal; font-weight:700; }
.pt-encuesta small{ color:#999; font-size:.6rem; }

/* ---------- reglas (tarjetas que se alargan) y curva (E4) ---------- */
.pt-regla-n{ display:grid; place-items:center; width:100%; height:100%; font-family:"Fraunces",serif; font-size:clamp(2.4rem,1.4rem + 3vw,4.4rem); font-weight:700; color:#1b1a17; letter-spacing:-.02em; }
.ne-kit-img.is-tinta .pt-regla-n{ color:#f0bf40; }
.ne-kit-img.is-azul .pt-regla-n{ color:#f6f0de; }
.pt-curva{ position:relative; margin-top:clamp(30px,3.6vw,56px); padding:clamp(22px,2.6vw,34px) clamp(22px,2.6vw,34px) 40px; border-radius:var(--r-lg); background:var(--ne-surf); border:1px solid var(--ne-line); }
.pt-curva-cab h3{ margin:0 0 6px; font-size:1.5rem; }
.pt-curva-svg{ display:block; width:100%; height:clamp(180px,22vw,300px); margin-top:20px; overflow:visible; }
.pt-curva-svg polyline{ fill:none; stroke:var(--maiz); stroke-width:3; vector-effect:non-scaling-stroke; stroke-linejoin:round; stroke-dasharray:1; stroke-dashoffset:1; filter:drop-shadow(0 6px 12px rgba(240,191,64,.4)); }
.pt-curva.is-in .pt-curva-svg polyline{ stroke-dashoffset:0; transition:stroke-dashoffset 2.2s var(--ease) .2s; }
.ne-js .pt-curva:not(.is-in) .pt-curva-svg polyline{ stroke-dashoffset:1; }
.pt-curva-ej{ display:flex; justify-content:space-between; margin-top:10px; font-size:.76rem; font-weight:700; color:var(--ne-faint); }
.pt-curva-hitos{ position:absolute; left:clamp(22px,2.6vw,34px); right:clamp(22px,2.6vw,34px); bottom:calc(40px + 1.4em); height:clamp(180px,22vw,300px); pointer-events:none; }
.pt-curva-hitos span{ position:absolute; left:var(--x); top:var(--y); transform:translate(-50%,-140%); padding:5px 10px; border-radius:999px; background:var(--ne-bg); border:1px solid var(--ne-line2); font-size:.74rem; font-weight:700; color:var(--ne-fg); white-space:nowrap; }
.pt-curva-hitos span:last-child{ transform:translate(-100%,-140%); background:var(--maiz); color:#1b1a17; border-color:var(--maiz); }

/* ---------- lote (E5) ---------- */
.pt-lote{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:clamp(22px,4vw,64px); align-items:center; }
.pt-lote-etq{ padding:clamp(22px,3vw,36px); border-radius:22px; background:#fbf8ef; color:#1b1a17; border:2px dashed rgba(27,26,23,.25); box-shadow:0 40px 70px -40px rgba(0,0,0,.5); transform:rotate(-1.5deg); }
.pt-lote-cab{ display:flex; gap:14px; align-items:center; padding-bottom:16px; border-bottom:1px solid rgba(27,26,23,.12); }
.pt-lote-cab img{ width:58px; }
.pt-lote-cab b{ display:block; font-family:"Fraunces",serif; font-size:1.25rem; }
.pt-lote-cab span{ font-size:.86rem; color:#5a5548; }
.pt-lote-cod{ margin:18px 0 10px; font:800 .9rem "Inter",sans-serif; letter-spacing:.2em; color:#5a5548 !important; }
.pt-lote-cod b{ display:block; margin-top:4px; font:700 clamp(2.6rem,1.6rem + 3.2vw,4.6rem)/1 ui-monospace,Consolas,monospace; letter-spacing:.12em; color:#1b1a17; }
.pt-lote-partes{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.pt-lote-partes span{ padding:12px; border-radius:14px; background:#efe6cc; text-align:center; }
.pt-lote-partes b{ display:block; font:700 1.8rem ui-monospace,Consolas,monospace; }
.pt-lote-partes small{ font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#5a5548; }
.pt-lote-partes span:nth-child(1){ box-shadow:inset 0 -4px 0 #029bd2; } .pt-lote-partes span:nth-child(2){ box-shadow:inset 0 -4px 0 #f0bf40; } .pt-lote-partes span:nth-child(3){ box-shadow:inset 0 -4px 0 #70853a; }
.pt-lote-pie{ display:flex; align-items:center; gap:12px; margin:18px 0 0; font-weight:700; font-size:.92rem; color:#1b1a17 !important; }
.pt-lote-pie img{ width:62px; background:#fff; padding:4px; border-radius:8px; }
.pt-lote-pie small{ font-weight:500; color:#5a5548; }
.pt-lote-pie em{ margin-left:auto; font-style:normal; font-size:.82rem; color:#5a5548; }
.pt-lote-ctl{ display:grid; gap:14px; justify-items:start; }
.pt-lote-ctl label{ display:grid; gap:8px; font-weight:700; color:var(--ne-fg); width:100%; }
.pt-lote-ctl input{ font:700 2rem ui-monospace,Consolas,monospace; letter-spacing:.3em; padding:14px 18px; border-radius:16px; border:2px solid var(--ne-line2); background:var(--ne-surf); color:var(--ne-fg); width:100%; max-width:320px; }
.pt-lote-ctl input:focus{ outline:0; border-color:var(--azul); }
.pt-lote-lee{ margin:0; font-size:1.3rem; font-weight:800; color:var(--ne-fg) !important; }

/* ---------- lo que se muestra y lo que se cuida (E5) ---------- */
.pt-hoja-m{ margin-top:10px !important; padding:10px 12px; border-radius:12px; background:var(--ne-surf2); font-size:.86rem; }
.pt-hoja-m small{ display:block; font-weight:800; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ne-em); }
.pt-cuida{ display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:clamp(16px,3vw,44px); align-items:center; }
.pt-cuida-l{ padding:clamp(22px,2.6vw,34px); border-radius:var(--r-lg); }
.pt-cuida-l.is-si{ background:rgba(70,194,142,.12); border:1px solid rgba(70,194,142,.35); }
.pt-cuida-l.is-no{ background:var(--ne-surf); border:1px solid var(--ne-line); }
.pt-cuida-l ul{ margin:0; padding-left:20px; display:grid; gap:8px; color:var(--ne-fg); }
.pt-cuida-eje img{ width:clamp(90px,10vw,140px); filter:drop-shadow(0 20px 30px rgba(0,0,0,.25)); }
.pt-bpm{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(18px,3vw,44px); margin-top:clamp(26px,3vw,44px); padding:clamp(22px,2.6vw,34px); border-radius:var(--r-lg); background:var(--ne-surf); border:1px solid var(--ne-line); }
.pt-bpm h3{ margin:0 0 8px; font-size:1.4rem; }
.pt-bpm-l{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.pt-bpm-l li{ display:grid; grid-template-columns:minmax(0,1fr) 120px auto; gap:12px; align-items:center; font-size:.92rem; color:var(--ne-fg); }
.pt-bpm-l li i{ height:8px; border-radius:8px; background:var(--ne-surf2); overflow:hidden; }
.pt-bpm-l li i b{ display:block; height:100%; width:var(--p); background:#46c28e; }
.pt-bpm-l li em{ font-style:normal; font-size:.72rem; font-weight:800; padding:3px 8px; border-radius:999px; background:var(--ne-soft); color:var(--ne-em); white-space:nowrap; }

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .pt-unete:has(.pt-scan){ grid-template-columns:auto minmax(0,1fr); }
  .pt-unete:has(.pt-scan) .pt-scan{ display:none; }
}
@media (max-width:1024px){
  .pt-eco,.pt-precio,.pt-cal-zona,.pt-camp,.pt-flujo,.pt-com,.pt-lote,.pt-bpm{ grid-template-columns:1fr; }
  .pt-dev{ grid-template-columns:1fr; grid-template-areas:"ctl" "marco" "ruta"; }
  .pt-ruta{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .pt-semaforo{ grid-template-columns:1fr; }
  .pt-unete,.pt-unete:has(.pt-scan){ grid-template-columns:1fr; justify-items:center; }
  .pt-unete-txt{ width:100%; }
  .pt-cal-prev{ order:-1; }
}
@media (max-width:760px){
  .pt-tres-mini > .ne-card + .ne-card{ border-left:0; border-top:1px solid var(--ne-line); }
  .pt-tres-mini,.pt-dos,.pt-concepto-g,.pt-com-mes,.pt-campos,.pt-reglas{ grid-template-columns:1fr; }
  .pt-ruta{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pt-eco-lienzo{ aspect-ratio:4/5; }
  .pt-eco-n span{ font-size:.7rem; }
  .pt-eco-n i{ width:44px; height:44px; }
  .pt-cuida{ grid-template-columns:1fr; }
  .pt-cuida-eje{ display:none; }
  .pt-camp-piezas .ne-phone{ width:min(42vw,200px); }
  .pt-cal-g{ gap:3px; }
  button.pt-cal-c small{ display:none; }
  .pt-sem-luz{ grid-template-columns:repeat(3,auto); }
  .pt-sem-luz p{ grid-column:1 / -1; margin:6px 0 0; }
  .pt-bpm-l li{ grid-template-columns:minmax(0,1fr) auto; }
  .pt-bpm-l li i{ display:none; }
}
@media (prefers-reduced-motion:reduce){
  .pt-eco-svg .pt-eco-l,.pt-scan-linea,.pt-cv.is-scan i{ animation:none; }
  .pt-curva .pt-curva-svg polyline{ stroke-dashoffset:0 !important; }
}
