/* Aislado a Software: la navegación, el modal y el cursor usan sus componentes compartidos. */
.software-page .site-header { position: relative; z-index: 2; color: #f5f4ee; background: transparent; }
.software-page .site-header :focus-visible { outline-color: #f5f4ee; }
.software-hero { --software-header-height: 7rem; position: relative; isolation: isolate; padding: clamp(4rem, 8vw, 8rem) var(--page-gutter) 4rem; min-height: min(830px, 90svh); display: grid; place-items: center; text-align: center; color: #f5f4ee; background: #101110; }
.software-hero::before { content: ''; position: absolute; inset: calc(-1 * var(--software-header-height)) 0 0; z-index: -3; background: #101110; }
.software-atmosphere { position: absolute; inset: calc(-1 * var(--software-header-height)) 0 0; overflow: clip; pointer-events: none; z-index: -2; }
.software-hero::after { content: ''; position: absolute; inset: calc(-1 * var(--software-header-height)) 0 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 50% 48%, rgb(10 11 10 / 94%) 0%, rgb(10 11 10 / 82%) 30%, rgb(10 11 10 / 28%) 76%, rgb(10 11 10 / 42%) 100%); }
.software-hero-content { width: 100%; max-width: 1100px; min-width: 0; }
.software-eyebrow { font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.6; letter-spacing: .1em; margin-bottom: 2.5rem; }
.software-hero h1 { margin-inline: auto; font-size: clamp(2.9rem, 5.8vw, 6rem); font-weight: 400; line-height: 1.06; letter-spacing: -.055em; }
.software-hero h1 em { font-family: var(--font-editorial); font-weight: 400; color: #d3d4c8; }
.software-lead { max-width: 43ch; margin: 2rem auto; font-size: 1.05rem; line-height: 1.7; color: #d3d4c8; }
.software-page .software-button { border: 1px solid #eeeee5; background: #eeeee5; color: #20221d; font-size: .7rem; letter-spacing: .08em; cursor: pointer; max-width: 100%; }
.software-page .software-button:hover { background: #d6d8cb; }
.software-hero :focus-visible { outline: 2px solid #f5f4ee; outline-offset: 5px; }
.software-hero-index { margin-top: 3.5rem; font: .62rem/1.8 var(--font-sans); letter-spacing: .13em; color: #b9bcb0; }
/* Estructuras conectadas: dos diagramas silenciosos, sin representar un producto real. */
.software-map { position: absolute; width: 370px; height: 370px; color: #d3d5c8; opacity: .26; }
.software-map--left { left: -5%; top: 15%; }
.software-map--right { right: -4%; bottom: 8%; transform: rotate(180deg); }
.software-map::before { content: ''; position: absolute; left: 70px; top: 95px; width: 195px; height: 190px; border: 1px solid currentColor; }
.software-map i { position: absolute; display: block; border: 1px solid currentColor; background: #121410; width: 140px; height: 80px; }
.software-map i::after { content: ''; position: absolute; inset: 18px 20px; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; }
.software-map i:nth-child(1) { left: 0; top: 0; height: 110px; }
.software-map i:nth-child(2) { right: 0; top: 60px; }
.software-map i:nth-child(3) { left: 0; bottom: 45px; }
.software-map i:nth-child(4) { right: 0; bottom: 0; height: 130px; }
@media (max-width: 56rem) { .software-hero { --software-header-height: 5.75rem; } }
@media (max-width: 40rem) {
  .software-hero { min-height: 680px; padding-block: 4rem; }
  .software-hero h1 { font-size: clamp(2.1rem, 8vw, 3.5rem); }
  .software-hero-index { font-size: .55rem; letter-spacing: .07em; }
  .software-map { opacity: .16; }
  .software-map--left { left: -70%; }
  .software-map--right { right: -70%; }
}
/* La textura es estática, también con prefers-reduced-motion. */

.software-scope { background: #fafaf7; color: var(--ink); }
.software-scope-inner { max-width: var(--content-max); margin-inline: auto; padding: clamp(4rem, 6vw, 6rem) var(--page-gutter); }
.software-scope-heading { text-align: center; }
.software-scope-eyebrow { font-size: .7rem; line-height: 1.6; letter-spacing: .15em; margin-bottom: 2rem; }
.software-scope h2 { font-size: clamp(2rem, 4.6vw, 4.7rem); font-weight: 400; line-height: 1.1; letter-spacing: -.05em; }
.software-scope h2 em { font-family: var(--font-editorial); font-weight: 400; }
.software-scope-copy { max-width: 48ch; margin: 1.5rem auto 0; font-size: 1.05rem; line-height: 1.8; color: #64665d; }
.software-scope-factors { max-width: 950px; margin: 2.5rem auto 0; }
.software-scope-factors > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 2rem; padding-block: 1.3rem; border-top: 1px solid #bfc3b3; align-items: baseline; }
.software-scope-factors > div:last-child { border-bottom: 1px solid #bfc3b3; }
.software-scope-factors dt { font-size: clamp(1.1rem, 1.8vw, 1.5rem); letter-spacing: -.025em; }
.software-scope-factors dd { margin: 0; font-size: 1rem; line-height: 1.7; color: #64665d; }
.software-price-heading { margin-top: 3rem; text-align: center; }
.software-price-heading h3 { font-size: clamp(2.2rem, 4.6vw, 4.7rem); font-weight: 400; line-height: 1.1; letter-spacing: -.05em; }
.software-price-heading h3 em { font-family: var(--font-editorial); font-weight: 400; }
.software-price-heading p { max-width: 45ch; margin: 2rem auto 0; font-size: 1.05rem; line-height: 1.8; color: #64665d; }
@media (max-width: 40rem) {
  .software-price-heading h3 { font-size: clamp(1.8rem, 7vw, 2.7rem); }
}
.software-price-list { margin-top: 4rem; }
.software-price-list > div { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: 2.2rem 0; border-top: 1px solid #bfc3b3; align-items: center; }
.software-price-list dt { font-size: .95rem; line-height: 1.5; }
.software-price-list dt small { display: block; max-width: 45ch; font-size: .85rem; font-weight: normal; margin-top: .7rem; color: #565c4d; line-height: 1.7; }
.software-price-list dd { text-align: right; font: clamp(1.5rem, 2.9vw, 2.7rem)/1.4 Georgia, serif; letter-spacing: -.035em; }
.software-price-list dd small { font: .65rem var(--font-sans); letter-spacing: .06em; }
.software-price-note { max-width: 65ch; margin-top: 2rem; font-size: .85rem; line-height: 1.8; color: #565c4d; }

@media (max-width: 64rem) {
  .software-price-list > div { grid-template-columns: 1.1fr 1fr; }
}
@media (max-width: 40rem) {
  .software-price-list > div { grid-template-columns: 1fr; gap: 1rem; }
  .software-price-list dd { text-align: left; }
}
@media (hover: hover) and (pointer: fine) {
  .software-price-list dd { transform-origin: right center; transition: transform 320ms ease, color 320ms ease; }
  .software-price-list > div:hover dd { transform: scale(1.035); color: #10120e; }
}
@media (max-width: 40rem) and (hover: hover) and (pointer: fine) {
  .software-price-list dd { transform-origin: left center; }
}
@media (prefers-reduced-motion: reduce) {
  .software-price-list dd { transition: none; }
  .software-price-list > div:hover dd { transform: none; }
}

.software-scope-close { text-align: center; margin-top: 2rem; }
.software-scope-close p { max-width: 48ch; margin-inline: auto; font-size: 1.05rem; line-height: 1.8; }
.software-page .software-scope-button { margin-top: 2rem; font-size: .7rem; letter-spacing: .08em; max-width: 100%; }
@media (max-width: 40rem) {
  .software-scope-factors > div { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
}

/* Proceso: cuatro etapas editoriales, siempre visibles. */
.software-process { background: var(--surface); color: var(--ink); }
.software-process-inner { max-width: var(--content-max); margin-inline: auto; padding: clamp(4.5rem, 8vw, 8rem) var(--page-gutter); }
.software-process-heading { text-align: center; margin-bottom: 4rem; }
.software-process-eyebrow { font-size: .7rem; line-height: 1.6; letter-spacing: .15em; margin-bottom: 2rem; }
.software-process h2 { font-size: clamp(2.2rem, 4.6vw, 4.7rem); font-weight: 400; line-height: 1.1; letter-spacing: -.05em; }
.software-process h2 em { font-family: var(--font-editorial); font-weight: 400; }
.software-process-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.software-process-steps li { padding: 1.5rem; border-top: 1px solid #c9cbc0; }
.software-process-steps li + li { border-left: 1px solid #c9cbc0; }
.software-process-steps li > span { font: italic 2.5rem Georgia, serif; color: #757969; }
.software-process-steps h3 { font-size: .82rem; font-weight: 400; letter-spacing: .04em; margin: 2rem 0 1rem; }
.software-process-steps p { font-size: .9rem; line-height: 1.8; color: #64665d; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .software-process-steps h3 { transition: transform 300ms ease; }
  .software-process-steps li:hover h3 { transform: translateX(3px); }
}
@media (max-width: 64rem) {
  .software-process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .software-process-steps li:nth-child(3) { border-left: 0; }
}
@media (max-width: 40rem) {
  .software-process-steps { grid-template-columns: 1fr; }
  .software-process-steps li + li { border-left: 0; }
}

/* Problema primero: soluciones siempre visibles, sin simular controles interactivos. */
.software-cases { background: var(--surface); color: var(--ink); }
.software-cases-inner { max-width: var(--content-max); margin-inline: auto; padding: clamp(4rem, 6vw, 6rem) var(--page-gutter); }
.software-cases-heading { text-align: center; margin-bottom: 3rem; }
.software-cases-eyebrow { font-size: .7rem; line-height: 1.6; letter-spacing: .15em; margin-bottom: 2rem; }
.software-cases h2 { font-size: clamp(2rem, 4.6vw, 4.7rem); font-weight: 400; line-height: 1.1; letter-spacing: -.05em; }
.software-cases h2 em { font-family: var(--font-editorial); font-weight: 400; }
.software-cases-list { list-style: none; padding: 0; margin: 0; }
.software-cases-list li { display: grid; grid-template-columns: 3rem minmax(0, 1.35fr) minmax(0, 1fr); gap: 2rem; align-items: baseline; padding-block: 2.2rem; border-top: 1px solid #cdcec5; }
.software-cases-list li:last-child { border-bottom: 1px solid #cdcec5; }
.software-case-number { font-size: .75rem; letter-spacing: .08em; color: #64665d; }
.software-cases-list h3 { max-width: 29ch; font-size: clamp(1.35rem, 2.2vw, 2.1rem); font-weight: 400; line-height: 1.35; letter-spacing: -.035em; }
.software-case-solution { display: flex; align-items: baseline; gap: 1.5rem; font-size: 1rem; line-height: 1.7; color: #64665d; }
.software-case-solution small { display: block; font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .5rem; }
.software-case-arrow { flex: none; }
@media (hover: hover) and (pointer: fine) {
  .software-cases-list li:hover { background-color: rgb(32 34 29 / 2%); }
  .software-cases-list li:hover h3 { color: #121410; }
  .software-cases-list li:hover .software-case-solution,
  .software-cases-list li:hover .software-case-number { color: #20221d; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .software-cases-list li { transition: background-color 300ms ease; }
  .software-cases-list h3,
  .software-case-number,
  .software-case-solution { transition: color 300ms ease; }
  .software-case-arrow { transition: transform 300ms ease; }
  .software-cases-list li:hover .software-case-arrow { transform: translateX(3px); }
}
@media (max-width: 56rem) {
  .software-cases-list li { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem 1.25rem; }
  .software-case-solution { grid-column: 2; gap: 1rem; }
}

/* Progresión conceptual: tipografía y conexiones, sin controles ni tarjetas. */
.software-logic { background: #171914; color: #f5f4ee; text-align: center; }
.software-logic-inner { max-width: var(--content-max); margin-inline: auto; padding: clamp(4rem, 6vw, 6rem) var(--page-gutter); }
.software-logic-eyebrow { font-size: .7rem; line-height: 1.6; letter-spacing: .15em; margin-bottom: 2rem; color: #f5f4ee; }
.software-logic h2 { font-size: clamp(2rem, 5.5vw, 5.5rem); font-weight: 400; line-height: 1.1; letter-spacing: -.045em; }
.software-logic h2 em { font-family: var(--font-editorial); font-weight: 400; }
.software-logic-arrow { display: block; margin-block: .25rem; font: 400 clamp(1.1rem, 2vw, 1.6rem)/1.5 var(--font-sans); color: #b9bcb0; }
.software-logic-copy { max-width: 48ch; margin: 2rem auto 0; font-size: 1.05rem; line-height: 1.8; color: #babeb0; }
.software-logic-flow { display: flex; align-items: center; max-width: 800px; margin: 3rem auto 0; padding: 0; list-style: none; color: #b9bcb0; }
.software-logic-flow li { display: flex; align-items: center; flex: 1; font-size: .65rem; line-height: 1.6; letter-spacing: .12em; }
.software-logic-flow li:last-child { flex: 0; }
.software-logic-flow li:not(:last-child)::after { content: ''; flex: 1; height: 1px; margin-inline: clamp(.75rem, 2vw, 2rem); background: #4d5145; }
@media (max-width: 40rem) {
  .software-logic-flow { flex-direction: column; }
  .software-logic-flow li { flex-direction: column; flex: none; }
  .software-logic-flow li:not(:last-child)::after { flex: none; width: 1px; height: 1.5rem; margin: .8rem 0; }
}

.software-solutions { background: var(--surface); color: var(--ink); }
.software-solutions-inner { max-width: var(--content-max); margin-inline: auto; padding: clamp(4.5rem, 8vw, 8rem) var(--page-gutter); }
.software-solutions-heading { text-align: center; margin-bottom: 3rem; }
.software-solutions-eyebrow { font-size: .7rem; line-height: 1.6; letter-spacing: .15em; margin-bottom: 2rem; }
.software-solutions h2 { font-size: clamp(2rem, 4.6vw, 4.7rem); font-weight: 400; line-height: 1.1; letter-spacing: -.05em; }
.software-solutions h2 em { font-family: var(--font-editorial); font-weight: 400; }
.software-solutions-list { list-style: none; padding: 0; margin: 0; }
.software-solutions-list li { display: grid; grid-template-columns: 3rem minmax(0, 1.2fr) minmax(0, 1fr); gap: 2rem; align-items: baseline; padding-block: 2.4rem; border-top: 1px solid #cdcec5; }
.software-solutions-list li:last-child { border-bottom: 1px solid #cdcec5; }
.software-solutions-list li > span { font: italic 1rem Georgia, serif; color: #737669; }
.software-solutions-list h3 { font-size: clamp(1.3rem, 2.5vw, 2.4rem); font-weight: 400; line-height: 1.3; letter-spacing: -.04em; }
.software-solutions-list p { max-width: 34ch; font-size: 1rem; line-height: 1.7; color: #64665d; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .software-solutions-list li { transition: background-color 350ms ease; }
  .software-solutions-list li:hover { background: #fafaf7; }
}
@media (max-width: 56rem) {
  .software-solutions-list li { grid-template-columns: 2rem minmax(0, 1fr); gap: .75rem 1.25rem; }
  .software-solutions-list p { grid-column: 2; max-width: 45ch; }
}

/* Declaración editorial: cuatro bloques centrados con ritmo vertical contenido. */
.software-perspective { background: var(--surface); color: var(--ink); text-align: center; }
.software-perspective-inner { max-width: var(--content-max); margin-inline: auto; padding: clamp(4.5rem, 8vw, 8rem) var(--page-gutter); }
.software-perspective-eyebrow { margin-bottom: 2rem; font-size: .7rem; line-height: 1.6; letter-spacing: .15em; }
.software-perspective h2 { font-size: clamp(1.8rem, 3.7vw, 4rem); font-weight: 400; line-height: 1.15; letter-spacing: -.045em; }
.software-perspective h2 em { display: block; margin-top: 1.5rem; font-family: var(--font-editorial); font-weight: 400; }
.software-perspective-copy { max-width: 45ch; margin: 2rem auto 0; font-size: 1.05rem; line-height: 1.8; color: #64665d; }
@media (max-width: 40rem) {
  .software-perspective-eyebrow { margin-bottom: 2rem; }
  .software-perspective h2 { font-size: clamp(1.65rem, 6.2vw, 2.4rem); }
}

/* Qué incluye: patrón editorial equivalente al de Experiencias Digitales. */
.software-includes { max-width: var(--content-max); padding: clamp(4.5rem, 8vw, 8rem) var(--page-gutter); margin-inline: auto; text-align: center; }
.software-includes-eyebrow { font-size: .7rem; line-height: 1.6; letter-spacing: .15em; margin-bottom: 2rem; }
.software-includes h2 { font-size: clamp(2.2rem, 4.6vw, 4.7rem); font-weight: 400; line-height: 1.1; letter-spacing: -.05em; }
.software-includes h2 em { font-family: var(--font-editorial); font-weight: 400; }
.software-includes { border-top: 1px solid #d9dbd1; }
.software-includes .software-include-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; margin-top: 3rem; text-align: left; align-items: start; }
.software-includes .software-include-column { list-style: none; margin: 0; padding: 0; min-width: 0; }
.software-includes li { border-bottom: 1px solid #d9dbd1; padding: 1.3rem 0; font-size: .9rem; }
.software-includes .software-include-toggle {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 0; border: 0; background: transparent; color: inherit;
  font: inherit; text-align: left; line-height: inherit; cursor: pointer;
}
.software-includes .software-include-toggle[hidden] { display: none; }
.software-include-toggle > span { font-size: 1rem; font-weight: normal; }
.software-include-description p { padding-top: .9rem; font-size: .85rem; line-height: 1.75; color: #64665d; }
.software-include-item.is-interactive .software-include-static-title { display: none; }
.software-include-item.is-interactive .software-include-description {
  display: grid; grid-template-rows: 0fr; opacity: 0;
  transition: grid-template-rows 320ms ease, opacity 250ms ease;
}
.software-include-item.is-interactive .software-include-description > div { min-height: 0; overflow: hidden; }
.software-include-item.is-open .software-include-description { grid-template-rows: 1fr; opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .software-include-item.is-interactive .software-include-description { transition: none; }
}


@media (max-width: 40rem) {
  .software-includes h2 { font-size: clamp(1.8rem, 7vw, 2.7rem); }
  .software-includes .software-include-columns { display: flex; flex-direction: column; gap: 0; }
  .software-includes .software-include-column { display: contents; }
  .software-includes .software-include-item { order: var(--software-include-order); }
}

/* FAQ: mismo patrón editorial y despliegue que Experiencias Digitales. */
.software-faq { max-width: var(--content-max); padding: clamp(4.5rem, 8vw, 8rem) var(--page-gutter); margin-inline: auto; text-align: center; }
.software-faq-eyebrow { font-size: .7rem; line-height: 1.6; letter-spacing: .15em; margin-bottom: 2rem; }
.software-faq h2 { font-size: clamp(2.2rem, 4.6vw, 4.7rem); font-weight: 400; line-height: 1.1; letter-spacing: -.05em; }
.software-faq h2 em { font-family: var(--font-editorial); font-weight: 400; }
.software-faq .software-faq-item { max-width: 900px; margin-inline: auto; text-align: left; border-bottom: 1px solid #cdcec5; }
.software-faq .software-faq-item:first-of-type { margin-top: 3rem; border-top: 1px solid #cdcec5; }
.software-faq .software-faq-item h3 { padding: 1.5rem 0; font-size: 1rem; line-height: 1.6; font-weight: 400; }
.software-faq .software-include-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.software-faq .software-include-toggle[hidden] { display: none; }
.software-faq .software-faq-item p { max-width: 70ch; padding: 0 0 1.5rem; color: #64665d; line-height: 1.8; font-size: 1rem; }
@media (max-width: 40rem) { .software-faq h2 { font-size: clamp(1.8rem, 7vw, 2.7rem); } }

/* Cierre: proporciones y acciones equivalentes a Experiencias Digitales. */
.software-final { background: #171914; color: #f5f4ee; text-align: center; }
.software-final-inner { max-width: var(--content-max); padding: clamp(4.5rem, 8vw, 8rem) var(--page-gutter); margin-inline: auto; }
.software-final-eyebrow { font-size: .7rem; line-height: 1.6; letter-spacing: .15em; margin-bottom: 2rem; }
.software-final h2 { font-size: clamp(2.2rem, 4.6vw, 4.7rem); font-weight: 400; line-height: 1.1; letter-spacing: -.05em; }
.software-final h2 em { font-family: var(--font-editorial); font-weight: 400; }
.software-final-copy { max-width: 45ch; margin: 2rem auto 0; font-size: 1.05rem; line-height: 1.8; color: #babeb0; }
.software-final-actions { display: flex; justify-content: center; align-items: center; gap: 2rem; margin-top: 2.5rem; }
.software-final-actions > a { font-size: .85rem; text-decoration: underline; text-underline-offset: .35em; }
.software-final :focus-visible { outline: 2px solid #f5f4ee; outline-offset: 5px; }
.software-page .footer-navigation > span { font-size: .8rem; line-height: 1.8; }
.software-page .footer-navigation > span small { color: #62625d; }
@media (max-width: 40rem) {
  .software-final h2 { font-size: clamp(1.8rem, 7vw, 2.7rem); }
  .software-final-actions { flex-direction: column; gap: 1.5rem; }
}

/* Mismo overlay ambiental que el lobby; las figuras propias permanecen intactas. */
@media (min-width: 64.001rem) {
  .software-hero::after { background: radial-gradient(ellipse at 50% 48%, rgb(10 11 10 / 96%) 0%, rgb(10 11 10 / 86%) 28%, rgb(10 11 10 / 32%) 52%, rgb(10 11 10 / 6%) 78%, transparent 100%); }
}

@media (max-width: 40rem) { .software-process h2 { font-size: clamp(1.8rem, 7vw, 2.7rem); } }

/* Compactar los bloques propios en móvil sin reducir su tipografía ni ocultar contenido. */
@media (max-width: 40rem) {
  .software-perspective-inner,
  .software-solutions-inner,
  .software-logic-inner,
  .software-cases-inner,
  .software-scope-inner { padding-block: 3rem; }
  .software-solutions-list li { padding-block: 1.5rem; }
  .software-cases-list li { padding-block: 1.5rem; }
}
