/* Páginas de software propio: SISGEC y SISGET */
.sw-hero{padding:56px 0 64px;position:relative;overflow:hidden}
.sw-hero .wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center}
.sw-hero h1{font-size:clamp(2.1rem,4.2vw,3.3rem)}
.sw-hero .lead{max-width:56ch}
.sw-badge{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);margin-bottom:14px}
.sw-badge b{font-family:Sora,Inter,sans-serif;letter-spacing:0;text-transform:none;font-size:1rem;color:#fff;background:var(--grad);padding:4px 12px;border-radius:999px}
.sw-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.sw-trust{list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:.9rem;color:#c9cfe3}
.sw-trust li{position:relative;padding-left:22px}
.sw-trust li::before{content:"";position:absolute;left:0;top:.42em;width:12px;height:7px;border-left:2px solid var(--orange);border-bottom:2px solid var(--orange);transform:rotate(-45deg)}

/* Marco de navegador para capturas */
.shot{border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 30px 80px rgba(5,10,30,.45);border:1px solid rgba(255,255,255,.14)}
.shot-bar{height:30px;background:#e9ecf3;display:flex;align-items:center;gap:7px;padding:0 12px}
.shot-bar i{width:10px;height:10px;border-radius:50%;background:#ff5f57}.shot-bar i:nth-child(2){background:#febc2e}.shot-bar i:nth-child(3){background:#28c840}
.shot-bar span{margin-left:10px;flex:1;max-width:280px;height:16px;border-radius:8px;background:#fff;font-size:10px;line-height:16px;padding:0 10px;color:#6b7280;overflow:hidden;white-space:nowrap}
.shot img{display:block;width:100%;height:auto}
.dark .shot-bar,.sw-hero .shot-bar{background:#1b2347}.dark .shot-bar span,.sw-hero .shot-bar span{background:#0d1533;color:#8f99c2}
.sw-stack{position:relative}
.sw-stack .phone{position:absolute;right:-18px;bottom:-34px;width:28%;border-radius:26px;background:#05070f;padding:7px;box-shadow:0 24px 60px rgba(0,0,0,.55)}
.sw-stack .phone img{display:block;width:100%;height:auto;border-radius:20px}
.shot-cap{font-size:.8rem;color:var(--muted);margin-top:10px;text-align:center}
.dark .shot-cap,.sw-hero .shot-cap{color:#8f99c2}

/* Cliente principal */
.sw-client{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;background:var(--soft);border:1px solid var(--line);border-radius:var(--r);padding:22px 26px;margin-top:-28px;position:relative;z-index:2}
.sw-client .k{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--orange)}
.sw-client b{font-family:Sora,Inter,sans-serif;font-size:1.25rem;display:block;color:var(--navy)}
.sw-client p{color:var(--muted);margin:2px 0 0}
.sw-client .ic{width:56px;height:56px;border-radius:14px;background:var(--navy);display:flex;align-items:center;justify-content:center;color:#fff}
.sw-client a.lnk{font-weight:700;color:var(--pink);text-decoration:none;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}

/* Módulos */
.mods{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.mod{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px 22px;display:flex;flex-direction:column}
.mod .mi{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--grad);margin-bottom:14px}
.mod h3{font-size:1.12rem}
.mod p{color:var(--muted);margin-top:6px;font-size:.95rem}
.mod ul{list-style:none;margin-top:12px;font-size:.92rem}
.mod li{padding:6px 0 6px 20px;border-top:1px dashed var(--line);position:relative}
.mod li::before{content:"";position:absolute;left:2px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--orange)}

/* Galería de pantallas con pestañas */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.tabs button{font:inherit;font-size:.9rem;font-weight:600;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 16px;cursor:pointer;min-height:42px}
.tabs button[aria-selected="true"]{background:var(--grad);border-color:transparent}
.tab-pane{margin-top:22px}
.tab-pane[hidden]{display:none}
.tab-pane .tp{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;align-items:center}
.tab-pane h3{font-size:1.4rem;color:#fff}
.tab-pane p{color:#c9cfe3;margin-top:8px}
.tab-pane ul{margin-top:12px;color:#c9cfe3;padding-left:18px}
.tab-pane li{margin:5px 0}

/* Niveles */
.lvl{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.lv{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 24px;display:flex;flex-direction:column}
.lv.hl{border:2px solid var(--orange);box-shadow:0 18px 40px rgba(247,147,30,.12)}
.lv .tag{align-self:flex-start;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--grad);border-radius:999px;padding:4px 10px;margin-bottom:10px}
.lv h3{font-size:1.3rem}
.lv .for{color:var(--muted);margin-top:4px}
.lv ul{list-style:none;margin:16px 0;flex:1}
.lv li{padding:7px 0 7px 24px;border-top:1px dashed var(--line);position:relative;font-size:.94rem}
.lv li::before{content:"";position:absolute;left:2px;top:.85em;width:12px;height:7px;border-left:2px solid var(--orange);border-bottom:2px solid var(--orange);transform:rotate(-45deg)}
.lv .btn{align-self:flex-start}
.soon{margin-top:22px;font-size:.92rem;color:var(--muted);text-align:center}

/* Beneficios */
.bens{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:34px}
.ben{border-left:3px solid;border-image:linear-gradient(var(--pink),var(--orange)) 1;padding:4px 0 4px 16px}
.ben b{display:block;font-family:Sora,Inter,sans-serif;font-size:1.05rem}
.ben span{color:var(--muted);font-size:.93rem}
.dark .ben span{color:#aab3d1}

/* Mock de pantalla de sala (SISGET) */
.tv{border-radius:18px;background:linear-gradient(135deg,#0d3a8a,#0a1f52 60%,#2a1250);padding:22px;color:#fff;box-shadow:0 30px 80px rgba(5,10,30,.45);border:8px solid #05070f;aspect-ratio:16/9;display:grid;grid-template-columns:1.7fr 1fr;gap:16px}
.tv .now{border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px}
.tv .now small{background:#d21f3c;font-weight:800;letter-spacing:.14em;font-size:.7rem;padding:5px 12px;border-radius:6px}
.tv .now b{font-family:Sora,Inter,sans-serif;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1}
.tv .now span{font-size:clamp(.9rem,1.8vw,1.25rem);font-weight:600}
.tv .last{border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:12px;display:flex;flex-direction:column;gap:8px;font-size:.85rem}
.tv .last p{font-weight:800;letter-spacing:.12em;font-size:.66rem;color:#aab9e6}
.tv .last div{display:flex;justify-content:space-between;background:rgba(255,255,255,.07);border-radius:8px;padding:7px 10px}
.tv .last div b{font-family:Sora,Inter,sans-serif}

/* Pasos de implementación */
.impl{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:34px;counter-reset:im;list-style:none}
.impl li{counter-increment:im;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 20px}
.impl li::before{content:counter(im,decimal-leading-zero);display:inline-flex;width:40px;height:40px;border-radius:11px;background:var(--grad);color:#fff;font-family:Sora,Inter,sans-serif;font-weight:800;align-items:center;justify-content:center;margin-bottom:12px}
.impl b{display:block;font-family:Sora,Inter,sans-serif}
.impl span{color:var(--muted);font-size:.93rem}

/* Banda de software en el inicio */
.sw-home{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px}
.sw-card{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line);text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.sw-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(13,21,51,.1)}
.sw-card .im{background:var(--navy);aspect-ratio:1200/680;overflow:hidden}
.sw-card .im img{width:100%;height:100%;object-fit:cover;display:block}
.sw-card .tx{padding:22px 24px 24px;display:flex;flex-direction:column;gap:6px;flex:1}
.sw-card .tx small{font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;color:var(--orange)}
.sw-card .tx b{font-family:Sora,Inter,sans-serif;font-size:1.35rem}
.sw-card .tx p{color:var(--muted)}
.sw-card .tx span{margin-top:auto;padding-top:10px;font-weight:700;color:var(--pink)}

@media (max-width:980px){
  .sw-hero .wrap{grid-template-columns:1fr;gap:34px}
  .mods,.lvl{grid-template-columns:1fr 1fr}
  .bens,.impl{grid-template-columns:1fr 1fr}
  .tab-pane .tp{grid-template-columns:1fr}
}
@media (max-width:640px){
  .mods,.lvl,.bens,.impl,.sw-home{grid-template-columns:1fr}
  .sw-client{grid-template-columns:auto 1fr}
  .sw-client a.lnk{grid-column:1/-1}
  .sw-stack .phone{right:-6px;bottom:-22px;width:32%}
  .tv{grid-template-columns:1fr;aspect-ratio:auto}
  .tv .last{display:none}
}
.btn-ghost-d{background:transparent;color:var(--navy);border:1.5px solid var(--line);box-shadow:none}
.btn-ghost-d:hover{border-color:var(--orange)}

@media (max-width:980px){.sw-home{grid-template-columns:1fr 1fr}}
.sw-more{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}
.sw-more a{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;text-decoration:none;color:inherit}
.sw-more small{font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;color:var(--pink)}
.sw-more b{display:block;font-family:Sora,Inter,sans-serif;font-size:1.15rem;margin-top:4px}
.sw-more span{color:var(--muted);font-size:.94rem}
@media (max-width:640px){.sw-more{grid-template-columns:1fr}}

/* Portafolio */
.sw-hero .pf-hero-in{display:block}
.pf-hero{padding-bottom:72px}
.pf-feat{display:grid;gap:28px;margin-top:34px}
.pf-case{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:34px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px}
.pf-txt small{font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;color:var(--orange)}
.pf-txt h3{font-size:1.6rem;margin-top:6px}
.pf-txt p{color:var(--muted);margin-top:8px;max-width:58ch}
.pf-txt ul{list-style:none;margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}
.pf-txt li{font-size:.86rem;font-weight:600;color:var(--navy);background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.pv{margin:0}
.pv[hidden],.pa[hidden]{display:none}
.pv-frame{border-radius:16px;overflow:hidden;background:#05070f;aspect-ratio:9/16;box-shadow:0 18px 44px rgba(5,10,30,.35)}
.pv video{width:100%;height:100%;object-fit:contain;display:block;background:#000}
.pv figcaption{margin-top:10px;display:flex;flex-direction:column;gap:2px}
.pv figcaption small{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange)}
.pv figcaption b{font-family:Sora,Inter,sans-serif}
.pv figcaption span{font-size:.9rem;color:var(--muted)}
.dark .pv figcaption b{color:#fff}.dark .pv figcaption span{color:#aab3d1}
.pf-case .pv figcaption{display:none}
.pf-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:26px}
.pf-fil button{font:inherit;font-size:.88rem;font-weight:600;border-radius:999px;padding:8px 15px;cursor:pointer;min-height:40px}
.pf-fil button[aria-pressed="true"]{background:var(--grad);border-color:transparent;color:#fff}
.pf-fil-l button{color:var(--navy);background:#fff;border:1px solid var(--line)}
.pf-artes{columns:4 220px;column-gap:16px;margin-top:26px}
.pa{display:block;width:100%;break-inside:avoid;margin:0 0 16px;padding:0;border:0;background:#fff;border-radius:14px;overflow:hidden;cursor:zoom-in;box-shadow:0 10px 28px rgba(13,21,51,.1);text-align:left;font:inherit}
.pa img{display:block;width:100%;height:auto}
.pa span{display:block;padding:9px 12px;font-size:.82rem;font-weight:600;color:var(--navy)}
.pa:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.pf-lb{border:0;padding:0;background:transparent;max-width:min(92vw,720px);max-height:92vh}
.pf-lb::backdrop{background:rgba(6,10,28,.85)}
.pf-lb img{display:block;max-width:100%;max-height:88vh;border-radius:12px}
.pf-x{position:absolute;top:8px;right:8px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(13,21,51,.85);color:#fff;font-size:1.6rem;cursor:pointer}
.pf-home{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px}
@media (max-width:1100px){.pf-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:820px){.pf-case{grid-template-columns:1fr;padding:18px}.pf-case .pv{max-width:340px;margin:0 auto}.pf-grid,.pf-home{grid-template-columns:repeat(2,1fr);gap:12px}}
.pcs{display:grid;gap:30px;margin-top:30px}
.pc header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.pc header small{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);width:100%}
.pc header b{font-family:Sora,Inter,sans-serif;font-size:1.15rem}
.pc header span{color:var(--muted)}
.pc-row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:14px 2px 10px;scrollbar-width:thin}
.pc-sl{flex:0 0 clamp(200px,22vw,260px);scroll-snap-align:start;padding:0;border:0;background:#fff;border-radius:12px;overflow:hidden;cursor:zoom-in;box-shadow:0 10px 26px rgba(13,21,51,.12)}
.pc-sl img{display:block;width:100%;height:auto}
.pc-row:focus-visible,.pc-sl:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.pps{display:grid;grid-template-columns:repeat(7,1fr);gap:16px;margin-top:30px}
.pp{margin:0;text-align:center}
.pp img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;box-shadow:0 12px 30px rgba(13,21,51,.18);border:4px solid #fff}
.pp figcaption{margin-top:8px;font-size:.8rem;font-weight:600;color:var(--navy)}
.pos{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:34px}
.po{padding:0;border:0;background:#fff;border-radius:14px;overflow:hidden;cursor:zoom-in;box-shadow:0 10px 28px rgba(13,21,51,.1);text-align:left;font:inherit}
.po img{display:block;width:100%;height:auto}
.po span{display:block;padding:9px 12px;font-size:.82rem;font-weight:600;color:var(--navy)}
.po:first-child{grid-column:1/-1}
@media (max-width:980px){.pps{grid-template-columns:repeat(4,1fr)}}
@media (max-width:640px){.pps{grid-template-columns:repeat(3,1fr);gap:12px}.pos{grid-template-columns:1fr}}
.pf-dz{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;align-items:end}
.pd{padding:0;border:0;background:none;border-radius:14px;overflow:hidden;cursor:zoom-in;box-shadow:0 18px 44px rgba(5,10,30,.3)}
.pd img{display:block;width:100%;height:auto}
.pf-case-d{grid-template-columns:minmax(0,430px) 1fr}
@media (max-width:820px){.pf-case-d{grid-template-columns:1fr}}
.pf-artes{columns:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}
.pf-artes .pa{margin:0}
@media (max-width:980px){.pf-artes{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.pf-artes{grid-template-columns:repeat(2,1fr);gap:10px}}
/* Carrusel tipo Instagram: una lámina a la vez */
.pcs{grid-template-columns:repeat(2,1fr);gap:34px 28px}
.pc-wrap{position:relative;margin-top:12px;border-radius:16px;overflow:hidden;box-shadow:0 18px 44px rgba(13,21,51,.16);background:#fff}
.pc-wrap .pc-row{padding:0;gap:0;scrollbar-width:none;scroll-behavior:smooth}
.pc-wrap .pc-row::-webkit-scrollbar{display:none}
.pc-wrap .pc-sl{flex:0 0 100%;border-radius:0;box-shadow:none}
.pc-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--navy);font-size:1.7rem;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.pc-prev{left:10px}.pc-next{right:10px}
.pc-nav[disabled]{opacity:0;pointer-events:none}
.pc-dots{display:flex;justify-content:center;gap:6px;margin-top:10px}
.pc-dots i{width:7px;height:7px;border-radius:50%;background:#c7cbe0;transition:background .2s,transform .2s}
.pc-dots i.on{background:var(--pink);transform:scale(1.25)}
@media (max-width:820px){.pcs{grid-template-columns:1fr}}
.pcs{grid-template-columns:repeat(3,1fr)}
.pps{grid-template-columns:repeat(8,1fr)}
@media (max-width:980px){.pcs{grid-template-columns:1fr 1fr}.pps{grid-template-columns:repeat(4,1fr)}}
@media (max-width:640px){.pcs{grid-template-columns:1fr}}
/* Portafolio: hero claro y secciones alternadas */
.pf-light{background:var(--soft);color:var(--navy)}
.pf-light .lead{color:var(--muted)}
.dark .pc header span{color:#c9cfe3}
.dark .pc-dots i{background:rgba(255,255,255,.28)}

/* El video conserva todo el encuadre, también en el reproductor nativo de iOS.
   Reglas separadas: los Safari antiguos no reconocen :fullscreen. */
.pv video:fullscreen{object-fit:contain;background:#000;width:100%;height:100%;max-width:none;max-height:none;border-radius:0}
.pv video:-webkit-full-screen{object-fit:contain;background:#000;width:100%;height:100%;max-width:none;max-height:none;border-radius:0}
.pv-frame:fullscreen video{object-fit:contain;background:#000}
.pv-frame:-webkit-full-screen video{object-fit:contain;background:#000}

/* Portafolio: ritmo editorial y componentes uniformes. */
.portfolio-page{--pf-accent:#a62960}
.portfolio-page .sec{padding:88px 0}
.portfolio-page .dark{--pf-accent:#ffb5d8}
.portfolio-page h2{max-width:24ch;font-size:clamp(1.8rem,3.5vw,2.65rem);line-height:1.16;text-wrap:balance}
.portfolio-page .eyebrow,.portfolio-page .pf-txt small,.portfolio-page .pc header small{color:var(--pf-accent)}
.portfolio-page .lead{max-width:62ch;line-height:1.7}
.portfolio-page .pf-hero{padding:84px 0 64px;background:#f4f5f9;color:var(--navy)}
.portfolio-page .pf-hero-in{position:relative;z-index:1}
.portfolio-page .pf-hero h1{max-width:22ch;font-size:clamp(2.25rem,4.8vw,3.75rem);line-height:1.12;text-wrap:balance}
.portfolio-page .pf-hero .lead{color:var(--muted);margin-top:24px}
.pf-index{display:flex;flex-wrap:wrap;gap:12px 28px;border-top:1px solid #d8dce6;margin-top:40px;padding-top:20px}
.pf-index a{font-size:.9rem;font-weight:600;text-underline-offset:5px;min-height:44px;display:flex;align-items:center}
.portfolio-page .pf-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 20px;margin-top:32px;align-items:stretch}
.portfolio-page .pf-grid .pv{display:flex;flex-direction:column;border:1px solid #36405d;border-radius:16px;background:#16203c;overflow:hidden;min-width:0}
.portfolio-page .pf-grid .pv-frame{border-radius:0;box-shadow:none;flex:none}
.portfolio-page .pf-grid figcaption{margin:0;padding:18px 16px 20px;display:grid;grid-template-rows:minmax(2.6em,auto) minmax(3em,auto) 1fr;gap:8px;flex:1}
.portfolio-page .pf-grid figcaption small{color:#ffb5d8;font-size:.68rem;line-height:1.4;letter-spacing:.07em}
.portfolio-page .pf-grid figcaption b{font-size:.95rem;line-height:1.5}
.portfolio-page .pf-grid figcaption span{font-size:.88rem;line-height:1.55;color:#c9cfe3}
.portfolio-page .pf-fil{gap:8px;margin-top:28px;padding-bottom:6px}
.portfolio-page .pf-fil button{min-height:44px;padding:10px 18px;background:#16203c;border-color:#53607c;color:#e3e7f3}
.portfolio-page .pf-fil button:hover{border-color:#ffb5d8}
.portfolio-page .pf-fil button[aria-pressed="true"]{background:#fff;color:#0d1533;border-color:#fff}
.portfolio-page .pf-feat{gap:24px;margin-top:36px}
.portfolio-page .pf-case{grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:clamp(24px,5vw,64px);padding:28px;background:#fff;box-shadow:none}
.portfolio-page .pf-case .pv{width:100%;min-width:0}
.portfolio-page .pf-case .pv-frame{box-shadow:none;border:1px solid var(--line)}
.portfolio-page .pf-txt h3{font-size:clamp(1.4rem,2.5vw,2rem);margin:12px 0 16px}
.portfolio-page .pf-txt p{line-height:1.75}
.portfolio-page .pf-txt ul{margin-top:24px}
.portfolio-page .pf-artes{gap:20px;align-items:stretch;margin-top:32px}
.portfolio-page .pa{display:flex;flex-direction:column;box-shadow:none;border:1px solid #36405d}
.portfolio-page .pa img{aspect-ratio:4/5;object-fit:contain;background:#fff}
.portfolio-page .pa span,.portfolio-page .po span{padding:14px 16px;line-height:1.5}
.portfolio-page .pcs{gap:24px;align-items:start;margin-top:36px;grid-template-columns:repeat(3,minmax(0,1fr))}
.portfolio-page .pc{min-width:0;padding:18px;background:#fff;border:1px solid var(--line);border-radius:16px}
.portfolio-page .pc header{display:grid;gap:8px;grid-template-rows:auto minmax(3em,auto) minmax(3em,auto)}
.portfolio-page .pc header b{font-size:1rem;line-height:1.5}
.portfolio-page .pc header span{font-size:.9rem;line-height:1.5}
.portfolio-page .pc-wrap{box-shadow:none;border-radius:10px;margin-top:18px}
.portfolio-page .pc-row{min-width:0}
.portfolio-page .pc-sl{min-width:0}
.portfolio-page .pc-dots{padding-top:6px}
.pf-subhead{font-size:1.15rem;margin-top:40px;padding-top:24px;border-top:1px solid #36405d}
.portfolio-page .pps{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:24px}
.portfolio-page .pp{padding:20px 12px;border:1px solid #36405d;border-radius:16px;background:#16203c}
.portfolio-page .pp img{max-width:128px;margin:0 auto;border-width:2px;box-shadow:none}
.portfolio-page .pp figcaption{color:#e3e7f3;line-height:1.5;margin-top:16px}
.portfolio-page .pos{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px;gap:24px}
.portfolio-page .po{box-shadow:none;align-self:start}
.portfolio-page .po:first-child{grid-column:auto}
.portfolio-page #cotizar .center{margin-top:0}
.portfolio-page #cotizar h2,.portfolio-page #cotizar .lead{margin-left:auto;margin-right:auto}
.portfolio-page #cotizar .sw-btns{justify-content:center;margin-top:32px}
.portfolio-page .btn-ghost-d{background:transparent;border-color:#697087;color:var(--navy)}
.portfolio-page :is(a,button,video,[tabindex]):focus-visible{outline:3px solid #a62960;outline-offset:4px}
.portfolio-page :is(.dark,.nav,.foot) :is(a,button,video,[tabindex]):focus-visible{outline-color:#ffb5d8}
.portfolio-page .pc-row:focus-visible{outline-offset:-4px}
.portfolio-page #destacados>.inf,.portfolio-page #cotizar>.inf{right:auto;left:-220px;top:auto;bottom:-80px}
@media(max-width:980px){
  .portfolio-page .pf-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .portfolio-page .pcs{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .portfolio-page .pf-case{grid-template-columns:minmax(0,220px) minmax(0,1fr);padding:20px;gap:24px}
  .portfolio-page .pf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .portfolio-page .wrap{padding-left:16px;padding-right:16px}
  .portfolio-page .sec{padding:56px 0}
  .portfolio-page .pf-hero{padding:56px 0 40px}
  .portfolio-page .pf-grid{gap:16px 12px}
  .portfolio-page .pf-grid figcaption{padding:14px 12px;grid-template-rows:minmax(2.8em,auto) minmax(4.5em,auto) 1fr}
  .portfolio-page .pf-case,.portfolio-page .pcs{grid-template-columns:minmax(0,1fr)}
  .portfolio-page .pf-case{padding:16px;gap:24px}
  .portfolio-page .pf-case .pv{max-width:280px}
  .portfolio-page .pf-artes{gap:12px}
  .portfolio-page .pa span,.portfolio-page .po span{padding:12px;font-size:.8rem}
  .portfolio-page .pps{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .portfolio-page .pos{grid-template-columns:minmax(0,1fr);gap:16px}
  .portfolio-page .pc header{grid-template-rows:auto auto auto}
  .portfolio-page #destacados>.inf,.portfolio-page #cotizar>.inf{left:-220px}
}
@media(prefers-reduced-motion:reduce){
  .portfolio-page .inf{will-change:auto;transform:none!important}
  .portfolio-page .pc-wrap .pc-row{scroll-behavior:auto}
}

.portfolio-page .pf-count{font-size:.85rem;color:#c9cfe3;margin-top:16px}
.portfolio-page .pf-count+.pf-grid,.portfolio-page .pf-count+.pf-artes{margin-top:20px}
/* Reels compactos (2026-10-22): más columnas, texto pegado al video */
.portfolio-page .pf-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:22px 14px}
.portfolio-page .pf-grid figcaption{display:flex;flex-direction:column;gap:3px;padding:10px 12px 12px}
.portfolio-page .pf-grid figcaption small{font-size:.62rem}
.portfolio-page .pf-grid figcaption b{font-size:.86rem;line-height:1.3}
.portfolio-page .pf-grid figcaption span{font-size:.8rem;line-height:1.4}
.portfolio-page .pf-grid .pv{border-radius:14px}
.dark .inf-w{opacity:.07}
@media (max-width:1100px){.portfolio-page .pf-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:820px){.portfolio-page .pf-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px}}
@media (max-width:560px){.portfolio-page .pf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-page .pf-grid figcaption{padding:8px 10px 10px}.dark .inf-w{opacity:.06}}
/* Pies de video ordenados: etiqueta en una línea, cliente, título */
.pv figcaption{gap:3px}
.pv figcaption small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}
.pv figcaption b{line-height:1.3}
.pv figcaption span{line-height:1.4}

/* Portafolio v18: selección, reproducción propia, showreel y confianza. */
.pv-frame{position:relative}
.pv-play{position:absolute;inset:0;margin:auto;width:64px;height:64px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:var(--grad);color:#fff;box-shadow:0 8px 24px rgba(13,21,51,.25);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.pv-play svg{margin-left:3px}
.pv-play:hover{transform:scale(1.06);box-shadow:0 10px 28px rgba(13,21,51,.35)}
.pv-play:focus-visible,.pf-sound:focus-visible,.pf-reel-toggle:focus-visible,.pf-more:focus-visible{outline:3px solid #ffb5d8;outline-offset:4px}
.pv-fallback{position:absolute;inset:auto 8px 12px;padding:10px;background:var(--navy);color:#fff;border-radius:12px;text-align:center;font-size:.85rem}
/* Las reglas de tarjetas y botones no deben anular el atributo hidden. */
.pv[hidden],.pa[hidden],.pv-play[hidden],.pf-more[hidden],.pf-sound[hidden],.pf-reel-toggle[hidden]{display:none!important}
.pf-more{display:flex;margin:32px auto 0}
.portfolio-page .pf-fil button[aria-pressed="true"]{background:var(--grad);color:#fff;border-color:transparent}
.portfolio-page .pf-hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:clamp(32px,6vw,88px);align-items:center}
.pf-hero-copy{min-width:0}
.portfolio-page .pf-hero h1{font-size:clamp(2.4rem,5.4vw,4.6rem);line-height:1.02}
.portfolio-page .pf-hero .lead{font-size:clamp(1.08rem,1.5vw,1.3rem);max-width:40ch;margin-top:24px}
.portfolio-page .pf-hero .sw-btns{margin-top:36px}
.pf-reel-wrap{width:100%;max-width:360px;min-width:0;justify-self:center}
.pf-showreel{position:relative;width:100%;border:7px solid #202942;border-radius:38px;overflow:hidden;background:#0d1533;box-shadow:0 20px 50px rgba(13,21,51,.16);aspect-ratio:9/16}
.pf-showreel video{display:block;width:100%;height:100%;object-fit:cover}
.pf-reel-ctrl{display:flex;justify-content:center;gap:10px;margin-top:14px}
.pf-sound,.pf-reel-toggle{min-height:44px;border:1px solid #697087;border-radius:999px;padding:8px 12px;font:600 .78rem Inter,sans-serif;background:#0d1533;color:#fff;cursor:pointer}
.portfolio-page .pf-trust{padding:0 0 clamp(56px,6vw,80px);background:var(--soft)}
.portfolio-page #destacados{padding-bottom:clamp(40px,5vw,64px)}
.pf-trust-points li{box-shadow:0 10px 28px rgba(13,21,51,.06)!important}
.pf-trust h2{font-size:clamp(1.7rem,3.4vw,2.6rem);max-width:24ch;line-height:1.08}
.pf-trust-points{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,28px);margin-top:clamp(32px,4vw,48px);padding:0;border:0}
.pf-trust-points li{display:flex;flex-direction:column;gap:20px;min-width:0;padding:clamp(26px,3vw,36px);background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 40px rgba(13,21,51,.07);position:relative;overflow:hidden}
.pf-trust-points li::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--grad)}
.pf-trust-points svg{flex:none;width:58px;height:58px;padding:14px;border-radius:16px;color:#fff;background:var(--grad);box-shadow:0 10px 24px rgba(240,70,155,.28)}
.pf-trust-points h3{font-size:clamp(1.25rem,1.8vw,1.5rem);line-height:1.2}
.pf-trust-points p{font-size:1.05rem;color:var(--muted);margin-top:10px;line-height:1.6}
@media(max-width:820px){
  .portfolio-page .pf-hero-in{grid-template-columns:minmax(0,1fr);gap:36px}
  .pf-reel-wrap{max-width:300px}
  .pf-showreel{border-radius:32px}
  .pf-trust-points{grid-template-columns:minmax(0,1fr);gap:16px}
}
@media(prefers-reduced-motion:reduce){
  .pv-play{transition:none}
  .pv-play:hover{transform:none}
}
/* Color propio de cada sistema (página y tarjeta del inicio); menú y pie conservan el de Infinity.
   --pink: texto sobre fondo claro (AA). --orange: acento brillante para fondos oscuros. --btn: botones con texto blanco (AA). */
.t-sisgec main,.sw-card.t-sisgec{--pink:#0b7268;--orange:#2cc9b5;--grad:linear-gradient(90deg,#14a394,#43d6c2);--btn:linear-gradient(90deg,#0b6d63,#0f7d72);--g1:15,138,128;--g2:44,201,181}
.t-sisget main,.sw-card.t-sisget{--pink:#4338ca;--orange:#a99bff;--grad:linear-gradient(90deg,#7b74ff,#b383ff);--btn:linear-gradient(90deg,#4338ca,#6d28d9);--g1:79,70,229;--g2:160,97,245}
.t-asistente main,.sw-card.t-asistente{--pink:#0f7a4b;--orange:#3ddc84;--grad:linear-gradient(90deg,#1fae6b,#4be08f);--btn:linear-gradient(90deg,#0d6e5f,#0f7a4b);--g1:18,140,126;--g2:37,211,102}
.t-sisgefai main,.sw-card.t-sisgefai{--pink:#0b5f99;--orange:#4cb8ef;--grad:linear-gradient(90deg,#2a93d6,#5cc4f5);--btn:linear-gradient(90deg,#0b5487,#0e6aa8);--g1:11,95,153;--g2:41,168,232}
.t-bares main,.sw-card.t-bares{--pink:#9a4a07;--orange:#f5b623;--grad:linear-gradient(90deg,#f08a1c,#f7c548);--btn:linear-gradient(90deg,#92400e,#a6520a);--g1:194,87,12;--g2:245,182,35}
.sw-card[class*="t-"] .tx{border-top:4px solid var(--orange)}
.sw-card[class*="t-"] .tx small,.sw-card[class*="t-"] .tx span{color:var(--pink)}
body[class*="t-"] main .glow{background:radial-gradient(closest-side,rgba(var(--g1),.32),rgba(var(--g2),.14),transparent)}
body[class*="t-"] main .btn:not(.btn-ghost):not(.btn-ghost-d),body[class*="t-"] main .sw-badge b,body[class*="t-"] main .tabs button[aria-selected="true"],body[class*="t-"] main .impl li::before,body[class*="t-"] main .mod .mi,body[class*="t-"] main .lv .tag{background:var(--btn)}
body[class*="t-"] main .btn:hover{box-shadow:0 12px 30px rgba(var(--g1),.36)}
body[class*="t-"] main .lv.hl{box-shadow:0 18px 40px rgba(var(--g2),.14)}
body[class*="t-"] main .sec:not(.dark):not(.hero) .eyebrow,body[class*="t-"] main .sec:not(.dark) .faq summary::after,body[class*="t-"] main .sec:not(.dark) .mod li::before{color:var(--pink)}
body[class*="t-"] main .sec:not(.dark) .mod li::before{background:var(--pink)}
@media (min-width:981px){.sw-home{grid-template-columns:repeat(6,1fr)}.sw-home .sw-card{grid-column:span 2}.sw-home .sw-card:nth-child(4),.sw-home .sw-card:nth-child(5){grid-column:span 3}}
body[class*="t-"] main .sec:not(.dark):not(.hero) .grad-text{background-image:var(--btn)}
.sw-stack+.shot-cap{margin-top:48px}
@media (min-width:641px) and (max-width:980px){.sw-home .sw-card:last-child:nth-child(odd){grid-column:1/-1}}
@media (max-width:640px){.sw-home{grid-template-columns:1fr}.sw-stack+.shot-cap{margin-top:34px}}
/* ── Página de bares: la noche hora por hora ── */
.pshot{max-width:300px;margin:0 auto;border-radius:36px;background:#05070f;padding:9px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.pshot img{display:block;width:100%;height:auto;border-radius:28px}
.leaks{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;margin-top:36px;align-items:start}
.leak-list{list-style:none;display:grid;gap:12px}
.leak-list li{display:grid;grid-template-columns:1fr 1fr;gap:18px;background:#fff;border-radius:14px;padding:18px 20px;border:1px solid var(--line)}
.leak-list b{font-family:Sora,Inter,sans-serif;font-size:1.02rem;display:block}
.leak-list .p{color:var(--muted);font-size:.93rem;margin-top:4px}
.leak-list .s{font-size:.95rem;color:var(--ink);border-left:3px solid var(--orange);padding-left:14px}
.leak-list .s strong{display:block;color:var(--pink);font-size:.8rem;margin-bottom:3px}
.leakcalc{background:var(--navy);color:#fff;border-radius:var(--r);padding:28px;position:sticky;top:96px}
.leakcalc h3{font-size:1.25rem;color:#fff}
.leakcalc .sub{color:var(--muted-d);font-size:.9rem;margin-top:6px}
.leakcalc label{display:block;font-size:.88rem;color:#cdd3ea;margin-top:16px}
.leakcalc input[type=number]{width:100%;margin-top:6px;background:#0f1a3d;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:10px;padding:11px 12px;font:inherit;font-size:1.05rem}
.leakcalc input[type=range]{width:100%;margin-top:10px;accent-color:var(--orange)}
.leakcalc .pct{float:right;color:var(--orange);font-weight:700}
.leakcalc output{display:block;margin-top:20px;padding-top:16px;border-top:2px solid var(--orange)}
.leakcalc output b{display:block;font-family:Sora,Inter,sans-serif;font-size:2.1rem;color:var(--orange);line-height:1.1}
.leakcalc output span{color:#cdd3ea;font-size:.92rem}
.leakcalc .fine{font-size:.78rem;color:var(--muted-d);margin-top:12px}
.night{display:grid;gap:84px;margin-top:48px}
.nr{display:grid;grid-template-columns:.85fr 1.15fr;gap:52px;align-items:center}
.nr:nth-child(even){grid-template-columns:1.15fr .85fr}
.nr:nth-child(even) .nt{order:2}
.nr .hora{font-family:Sora,Inter,sans-serif;font-weight:800;font-size:clamp(2.2rem,4.2vw,3.4rem);line-height:1;letter-spacing:-.03em;color:var(--orange)}
.nr .hora small{display:block;font-size:.95rem;letter-spacing:0;color:var(--muted-d);font-weight:600;margin-top:8px}
.nr h3{font-size:clamp(1.4rem,2.3vw,1.9rem);margin-top:16px;color:#fff}
.nr p{color:#cdd3ea;margin-top:10px;font-size:1.02rem}
.nr ul{list-style:none;margin-top:16px;display:grid;gap:8px}
.nr li{position:relative;padding-left:22px;color:#e6e9f5;font-size:.97rem}
.nr li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:50%;background:var(--orange)}
.nr .media.duo{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.nr .shot-cap{text-align:left}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}
.stats div{background:#fff;border-radius:var(--r);padding:26px 22px;border:1px solid var(--line)}
.stats b{display:block;font-family:Sora,Inter,sans-serif;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.05;letter-spacing:-.02em;color:var(--pink)}
.stats span{display:block;color:var(--muted);margin-top:8px;font-size:.95rem}
.split2{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-top:36px}
.split2 h3{font-size:1.45rem}
.split2 p{color:var(--muted);margin-top:10px}
.split2 ul{list-style:none;margin-top:14px;display:grid;gap:8px}
.split2 li{position:relative;padding-left:22px}
.split2 li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:50%;background:var(--pink)}
.incl{columns:2;column-gap:40px;margin-top:30px;list-style:none}
.incl li{break-inside:avoid;padding:10px 0 10px 30px;position:relative;border-bottom:1px solid var(--line)}
.incl li::before{content:"";position:absolute;left:4px;top:15px;width:12px;height:7px;border-left:2.5px solid var(--pink);border-bottom:2.5px solid var(--pink);transform:rotate(-45deg)}
.impl.c5{grid-template-columns:repeat(5,1fr)}
@media (max-width:980px){
  .leaks,.split2{grid-template-columns:1fr}
  .leakcalc{position:static}
  .nr,.nr:nth-child(even){grid-template-columns:1fr;gap:26px}
  .nr:nth-child(even) .nt{order:0}
  .night{gap:64px}
  .stats{grid-template-columns:1fr 1fr}
  .impl.c5{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .leak-list li{grid-template-columns:1fr;gap:10px}
  .incl{columns:1}
  .stats{grid-template-columns:1fr 1fr;gap:12px}
  .stats div{padding:18px 16px}
  .impl.c5{grid-template-columns:1fr}
  .nr .media.duo{grid-template-columns:1fr}
  .pshot{max-width:260px}
}
.lst-d{list-style:none;margin-top:16px;display:grid;gap:8px}
.lst-d li{position:relative;padding-left:22px;color:#e6e9f5}
.lst-d li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:50%;background:var(--orange)}
.dark .split2 p{color:#cdd3ea}
.punch{margin-top:34px;font-family:Sora,Inter,sans-serif;font-weight:700;font-size:clamp(1.25rem,2.2vw,1.6rem);color:var(--ink)}
.quien{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px}
.quien div{background:var(--soft);border-radius:var(--r);padding:26px 24px}
.quien b{font-family:Sora,Inter,sans-serif;font-size:1.15rem}
.quien p{color:var(--muted);margin-top:8px}
.tabla-ad{margin-top:32px;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line)}
.tabla-ad>div{display:grid;grid-template-columns:.7fr 1fr 1.2fr;gap:0}
.tabla-ad span{padding:15px 20px;border-top:1px solid var(--line)}
.tabla-ad>div>span:first-child{font-weight:700;font-family:Sora,Inter,sans-serif}
.tabla-ad>div>span:nth-child(2){color:var(--muted)}
.tabla-ad>div>span:nth-child(3){font-weight:600;background:#fff8ec}
.tabla-ad .ad-h span{border-top:0;font-size:.82rem;font-weight:700;background:var(--navy);color:#fff}
.tabla-ad .ad-h span:nth-child(3){background:var(--pink);color:#fff}
.dark .stats div{background:#16204a;border:0}
.dark .stats b{color:var(--orange);white-space:nowrap}
.dark .stats span{color:#cdd3ea}
.stats b{white-space:nowrap}
.center h2,.center .lead{margin-inline:auto}
.leakcalc input[type=range]{height:36px}
.leakcalc input[type=range]::-webkit-slider-thumb{width:28px;height:28px}
.stack-l{margin-bottom:34px}
.stack-l .phone{right:auto;left:-14px;width:30%}
.red{display:grid;gap:10px;margin-bottom:22px;justify-items:center;text-align:center}
.red-n{background:#16204a;border-radius:12px;padding:12px 18px;min-width:120px}
.red-n b{display:block;color:#fff;font-family:Sora,Inter,sans-serif;font-size:.98rem}
.red-n span{display:block;color:#cdd3ea;font-size:.82rem;margin-top:2px}
.red-pc{background:var(--btn);padding:16px 26px}
.red-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.red-l{color:var(--orange);font-size:.8rem;font-weight:700;position:relative;padding:14px 0}
.red-l::before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:2px solid var(--orange);opacity:.6}
.red-l{padding-left:12px}
.red-dash::before{border-left-style:dashed}
.red-cloud{border:1.5px dashed rgba(255,255,255,.35);background:transparent}
@media (max-width:1100px) and (min-width:981px){.sw-stack .phone{right:8px}}
@media (max-width:980px){.quien{grid-template-columns:1fr}.leakcalc{order:-1}.tabla-ad>div{grid-template-columns:1fr}.tabla-ad .ad-h{display:none}.tabla-ad>div>span{border-top:0;padding:6px 18px}.tabla-ad>div{border-top:1px solid var(--line);padding:10px 0}.tabla-ad>div>span:nth-child(2)::before{content:"Antes: ";font-weight:700}.tabla-ad>div>span:nth-child(3)::before{content:"Con el sistema: ";font-weight:700}.tabla-ad>div>span:nth-child(3){background:transparent}}
@media (max-width:640px){.stats b{font-size:clamp(1.5rem,7vw,2.2rem)}.stack-l .phone{width:34%;left:-6px}}
.red-l{padding:16px 0 16px 0;line-height:1.2}
.red-l::before,.red-l::after{content:"";position:absolute;left:50%;border-left:2px solid var(--orange);opacity:.6;height:12px}
.red-l::before{top:0;bottom:auto}
.red-l::after{bottom:0}
.red-dash::before,.red-dash::after{border-left-style:dashed}
.stack-r{margin-bottom:34px}
.tabla-ad .ad-h span:nth-child(2){color:rgba(255,255,255,.78)}
#sin-internet .split2 .lead{margin-top:18px}
@media (max-width:980px){.stack-l .phone{left:0}.tabla-ad>div>span:nth-child(3)::before{color:var(--pink)}}
