/*
 * Complemento de Pago 2.0 en ERP — Cobranza / Facturación. Landing tipo artículo: cada sección lleva su figura.
 * Concepto: "del cobro al timbrado en el mismo registro". El hero es el cobro C-2051 con dos documentos que se marcan
 * (checkboxes + :has, sin JS): el total a cobrar cambia con la selección y "Guardar y Timbrar" abre el Listado de Cobros,
 * donde solo aparecen los UUID relacionados de lo marcado. Sin documentos marcados, el botón se apaga y aparece la guía.
 * Verde = timbrado; verde azulado = referencias fiscales (UUID, CFDI de tipo Pago); azul = banco y cobro; ámbar = guía o
 * pendiente; dorado = lo que se está revisando.
 * Display Familjen Grotesk, cuerpo Inter, cifras tabulares.
 * Movimiento: al cargar, los documentos entran uno tras otro; al timbrar, el estado gira y el UUID se escribe. Cada figura
 * de sección tiene su propia entrada al hacer scroll (pagos que caen en la línea de tiempo, pasos que se reparten, datos
 * que se escriben, barras que se reparten, días que se cuentan hasta el quinto), solo donde el navegador lo soporta y sin
 * movimiento reducido.
 */
[data-function-layout="rep"] {
    --cp-ink: #041f49;
    --cp-gold: #fac63f;
    --cp-pick: #fff6dc;
    --cp-on: #1f7a4a;
    --cp-on-tint: #e1f1e8;
    --cp-sat: #12685f;
    --cp-sat-tint: #e0f0ed;
    --cp-bank: #1f5f99;
    --cp-bank-tint: #e2edf6;
    --cp-wait: #8a5200;
    --cp-wait-tint: #fdf0d2;
    --cp-paper: #f3f5f8;
    --cp-line: #c3ccd7;
    --cp-rule: #e1e6ed;
    --cp-muted: #46505e;
    --cp-text: #1f2a3d;
    --cp-display: "Familjen Grotesk", "Hanken Grotesk", ui-sans-serif, sans-serif;
    --cp-ease: cubic-bezier(.2, .7, .2, 1);
}

[data-function-layout="rep"] .cv-hero-title,
[data-function-layout="rep"] .cv-section-title { font-family: var(--cp-display); font-weight: 700; letter-spacing: -.02em; }

[data-function-layout="rep"] .cv-hero-title,
[data-function-layout="rep"] .cv-section-title,
[data-function-layout="rep"] .cv-form-title { font-family: var(--cp-display); font-weight: 800; letter-spacing: -.025em; }
[data-function-layout="rep"] .cv-section-title { font-size: clamp(1.75rem, 2.7vw, 2.5rem); line-height: 1.12; }
[data-function-layout="rep"] .cp-narrow { max-width: 50rem; }
[data-function-layout="rep"] .cp-subtitle { margin: 1.75rem 0 0; font-family: var(--cp-display); font-size: 1.25rem; font-weight: 800; }

/* ---------- Superficies ---------- */
[data-function-layout="rep"] .cp-paper { background: var(--cp-paper); }
[data-function-layout="rep"] .cp-navy { background: var(--cp-ink); color: #fff; }
[data-function-layout="rep"] .cp-navy .cv-section-title,
[data-function-layout="rep"] .cp-navy .cp-subtitle { color: #fff; }
[data-function-layout="rep"] .cp-split { display: grid; gap: 2.5rem 4rem; align-items: center; }
[data-function-layout="rep"] .cp-lead { max-width: 42rem; margin-top: 1.25rem; color: var(--cp-text); font-size: clamp(1.0625rem, 1.4vw, 1.1875rem); line-height: 1.75; }
[data-function-layout="rep"] .cp-subtitle + .cp-lead { margin-top: .6rem; }
[data-function-layout="rep"] .cp-lead--light { color: rgb(255 255 255 / .88); }

/* ---------- Hero ---------- */
[data-function-layout="rep"] #inicio { background: linear-gradient(155deg, #041f49 0%, #0a2c5c 70%, #0f3870 100%); color: #fff; }
[data-function-layout="rep"] #inicio .function-hero__media img { object-position: 65% 50%; }
[data-function-layout="rep"] #inicio .function-hero__overlay {
    background:
        linear-gradient(180deg, transparent 65%, rgb(4 31 73 / .7) 100%),
        linear-gradient(90deg, rgb(4 31 73 / .97) 0%, rgb(4 31 73 / .9) 42%, rgb(10 44 92 / .72) 70%, rgb(15 56 112 / .55) 100%);
}
[data-function-layout="rep"] .rh-hero-layout { position: relative; z-index: 1; align-items: center; }
[data-function-layout="rep"] #inicio .cv-hero-title { max-width: 12ch; color: #fff; font-size: clamp(2.5rem, 5vw, 4.4rem); line-height: 1.02; }
[data-function-layout="rep"] #inicio .cv-hero-description { max-width: 34rem; margin-top: 1.5rem; color: rgb(255 255 255 / .86); }
[data-function-layout="rep"] .cp-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
[data-function-layout="rep"] #inicio .cv-primary-button { border-color: var(--cp-gold); background: var(--cp-gold); color: var(--cp-ink); box-shadow: 0 14px 30px rgb(0 0 0 / .3); }
[data-function-layout="rep"] #inicio .cv-primary-button:hover,
[data-function-layout="rep"] #inicio .cv-primary-button:focus-visible { background: #ffd666; }
[data-function-layout="rep"] #inicio .cv-secondary-button { border-color: rgb(255 255 255 / .7); background: transparent; color: #fff; }
[data-function-layout="rep"] #inicio .cv-secondary-button:hover,
[data-function-layout="rep"] #inicio .cv-secondary-button:focus-visible { background: #fff; color: var(--cp-ink); }
[data-function-layout="rep"] #inicio .cv-primary-button:focus-visible,
[data-function-layout="rep"] #inicio .cv-secondary-button:focus-visible { outline: 3px solid var(--cp-gold); outline-offset: 3px; }

[data-function-layout="rep"] #inicio .cv-hero-title { max-width: 17ch; font-size: clamp(2.2rem, 3.8vw, 3.2rem); line-height: 1.06; }
[data-function-layout="rep"] #inicio .cv-hero-description { font-size: 1.02rem; }

/* El cobro. */
[data-function-layout="rep"] .cp-cobro { position: relative; justify-self: center; width: 100%; max-width: 33rem; margin: 0; padding: 1.1rem 1.2rem 1rem; border-radius: .55rem; background: #fff; box-shadow: 0 24px 50px rgb(0 0 0 / .35); color: var(--cp-text); font-variant-numeric: tabular-nums; }
[data-function-layout="rep"] .cp-cobro .cv-icon { width: 15px; height: 15px; flex-basis: 15px; flex-shrink: 0; }
[data-function-layout="rep"] .cp-toggle { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
[data-function-layout="rep"] .cp-cobro__title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .2rem .8rem; margin: 0; padding-bottom: .65rem; border-bottom: 1px solid var(--cp-rule); }
[data-function-layout="rep"] .cp-cobro__title b { color: var(--cp-ink); font-family: var(--cp-display); font-size: 1.15rem; font-weight: 700; }
[data-function-layout="rep"] .cp-cobro__title span { color: var(--cp-muted); font-size: .78rem; font-weight: 600; }
/* Cuatro datos cortos en un renglón y la forma de pago, más larga, debajo a todo lo ancho. */
[data-function-layout="rep"] .cp-cobro__fields { display: grid; grid-auto-flow: row dense; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; margin: .7rem 0 0; }
[data-function-layout="rep"] .cp-cobro__fields div { padding: .4rem .5rem; border-radius: .35rem; background: var(--cp-paper); }
[data-function-layout="rep"] .cp-cobro__fields div:nth-child(3) { grid-column: 1 / -1; }
[data-function-layout="rep"] .cp-cobro__fields dt { color: var(--cp-muted); font-size: .66rem; font-weight: 700; }
[data-function-layout="rep"] .cp-cobro__fields dd { margin: .05rem 0 0; color: var(--cp-ink); font-size: .78rem; font-weight: 700; line-height: 1.3; }
[data-function-layout="rep"] .cp-cobro__fields--list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
[data-function-layout="rep"] .cp-cobro__fields--list div:nth-child(3) { grid-column: auto; }
[data-function-layout="rep"] .cp-docs { min-width: 0; margin: .8rem 0 0; padding: 0; border: 0; }
[data-function-layout="rep"] .cp-docs legend { margin: 0 0 .35rem; padding: 0; color: var(--cp-ink); font-size: .76rem; font-weight: 700; }
[data-function-layout="rep"] .cp-docs__head,
[data-function-layout="rep"] .cp-doc { display: grid; grid-template-columns: 1.3rem 3.9rem minmax(0, 1fr) 5rem 5rem 4.1rem; align-items: center; gap: .4rem; }
[data-function-layout="rep"] .cp-docs__head { padding: 0 .45rem .3rem; border-bottom: 2px solid var(--cp-ink); color: var(--cp-muted); font-size: .64rem; font-weight: 700; }
[data-function-layout="rep"] .cp-docs__head span:nth-child(n+4),
[data-function-layout="rep"] .cp-doc > :nth-child(n+5) { text-align: right; }
[data-function-layout="rep"] .cp-doc { position: relative; margin-top: .3rem; padding: .45rem; border-radius: .4rem; box-shadow: inset 0 0 0 1.5px var(--cp-line); font-size: .78rem; cursor: pointer; transition: background-color .15s, box-shadow .15s; animation: cp-enter .45s var(--cp-ease) backwards; }
[data-function-layout="rep"] .cp-doc:nth-of-type(2) { animation-delay: .12s; }
[data-function-layout="rep"] .cp-doc__input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
[data-function-layout="rep"] .cp-doc__box { display: grid; place-items: center; width: 1.15rem; height: 1.15rem; border-radius: .25rem; box-shadow: inset 0 0 0 2px var(--cp-line); color: transparent; }
[data-function-layout="rep"] .cp-doc__box .cv-icon { width: 12px; height: 12px; flex-basis: 12px; stroke-width: 3; }
[data-function-layout="rep"] .cp-doc b,
[data-function-layout="rep"] .cp-doc strong { color: var(--cp-ink); font-weight: 700; }
[data-function-layout="rep"] .cp-doc span { color: var(--cp-muted); }
[data-function-layout="rep"] .cp-doc:hover { background: var(--cp-paper); }
[data-function-layout="rep"] .cp-doc__input:checked ~ .cp-doc__box { background: var(--cp-ink); box-shadow: none; color: #fff; }
[data-function-layout="rep"] .cp-doc__input:focus-visible ~ .cp-doc__box { outline: 3px solid var(--cp-gold); outline-offset: 2px; }
[data-function-layout="rep"] .cp-total { display: flex; align-items: baseline; justify-content: space-between; margin: .75rem 0 0; padding: .55rem .7rem; border-radius: .4rem; background: var(--cp-bank-tint); color: var(--cp-bank); font-size: .8rem; font-weight: 700; }
[data-function-layout="rep"] .cp-total b { color: var(--cp-ink); font-family: var(--cp-display); font-size: 1.2rem; }
[data-function-layout="rep"] .cp-sum { display: none; }
[data-function-layout="rep"] .cp-sum--both { display: inline; }
[data-function-layout="rep"] .cp-none { display: none; align-items: center; gap: .4rem; margin: .45rem 0 0; color: var(--cp-wait); font-size: .76rem; font-weight: 700; }
[data-function-layout="rep"] .cp-button,
[data-function-layout="rep"] .cp-back { display: inline-flex; align-items: center; gap: .45rem; cursor: pointer; user-select: none; }
[data-function-layout="rep"] .cp-button { justify-content: center; width: 100%; margin-top: .7rem; padding: .65rem .9rem; border-radius: .45rem; background: var(--cp-ink); color: #fff; font-size: .9rem; font-weight: 700; transition: background-color .15s, opacity .15s; }
[data-function-layout="rep"] .cp-button:hover { background: #0b2c63; }
[data-function-layout="rep"] .cp-button .cv-icon { color: var(--cp-gold); }
[data-function-layout="rep"] .cp-view--list { display: none; }
[data-function-layout="rep"] .cp-list__row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: .7rem 0 0; padding: .55rem .7rem; border-radius: .4rem; background: var(--cp-paper); }
[data-function-layout="rep"] .cp-list__row b { color: var(--cp-ink); font-family: var(--cp-display); font-size: 1rem; }
[data-function-layout="rep"] .cp-status { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .55rem; border-radius: 2rem; background: var(--cp-on); color: #fff; font-size: .74rem; font-style: normal; font-weight: 700; }
[data-function-layout="rep"] .cp-uuid { display: grid; gap: .1rem; margin: .6rem 0 0; padding: .55rem .7rem; border-radius: .4rem; background: var(--cp-sat-tint); }
[data-function-layout="rep"] .cp-uuid small { color: var(--cp-sat); font-size: .68rem; font-weight: 700; }
[data-function-layout="rep"] .cp-uuid b { color: var(--cp-ink); font-size: .9rem; letter-spacing: .02em; }
[data-function-layout="rep"] .cp-related-label { margin: .6rem 0 .3rem; color: var(--cp-muted); font-size: .7rem; font-weight: 700; }
[data-function-layout="rep"] .cp-rels { display: grid; gap: .3rem; margin: 0; padding: 0; list-style: none; }
[data-function-layout="rep"] .cp-rel { display: grid; grid-template-columns: 3.9rem minmax(0, 1fr) auto; align-items: center; gap: .5rem; padding: .4rem .55rem; border-radius: .35rem; box-shadow: inset 3px 0 0 var(--cp-sat); background: var(--cp-paper); font-size: .78rem; }
[data-function-layout="rep"] .cp-rel b { color: var(--cp-ink); }
[data-function-layout="rep"] .cp-rel span { color: var(--cp-text); letter-spacing: .02em; }
[data-function-layout="rep"] .cp-rel em { color: var(--cp-muted); font-size: .7rem; font-style: normal; font-weight: 700; }
[data-function-layout="rep"] .cp-list__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin: .7rem 0 0; }
[data-function-layout="rep"] .cp-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .6rem; border-radius: .35rem; box-shadow: inset 0 0 0 1.5px var(--cp-ink); color: var(--cp-ink); font-size: .74rem; font-weight: 700; }
[data-function-layout="rep"] .cp-back { color: var(--cp-bank); font-size: .78rem; font-weight: 700; text-decoration: underline; text-underline-offset: .2rem; }
[data-function-layout="rep"] .cp-cobro figcaption { margin-top: .7rem; color: var(--cp-muted); font-size: .72rem; }
/* Selección de documentos y timbrado. shortcut: sin :has se ve siempre el cobro con los dos documentos (navegadores previos a 2023). */
@supports selector(:has(*)) {
    [data-function-layout="rep"] .cp-cobro:has(.cp-toggle:focus-visible) .cp-button,
    [data-function-layout="rep"] .cp-cobro:has(.cp-toggle:focus-visible) .cp-back { outline: 3px solid var(--cp-gold); outline-offset: 3px; }
    [data-function-layout="rep"] .cp-doc:has(.cp-doc__input:checked) { background: var(--cp-pick); box-shadow: inset 0 0 0 1.5px var(--cp-gold); }
    [data-function-layout="rep"] .cp-cobro:has(#cp-doc-1:checked):not(:has(#cp-doc-2:checked)) .cp-sum--both,
    [data-function-layout="rep"] .cp-cobro:has(#cp-doc-2:checked):not(:has(#cp-doc-1:checked)) .cp-sum--both,
    [data-function-layout="rep"] .cp-cobro:not(:has(.cp-doc__input:checked)) .cp-sum--both { display: none; }
    [data-function-layout="rep"] .cp-cobro:has(#cp-doc-1:checked):not(:has(#cp-doc-2:checked)) .cp-sum--d1,
    [data-function-layout="rep"] .cp-cobro:has(#cp-doc-2:checked):not(:has(#cp-doc-1:checked)) .cp-sum--d2,
    [data-function-layout="rep"] .cp-cobro:not(:has(.cp-doc__input:checked)) .cp-sum--none { display: inline; animation: cp-fade .25s var(--cp-ease); }
    /* Sin documentos no hay qué timbrar: el botón se apaga y aparece la guía. */
    [data-function-layout="rep"] .cp-cobro:not(:has(.cp-doc__input:checked)) .cp-none { display: flex; }
    [data-function-layout="rep"] .cp-cobro:not(:has(.cp-doc__input:checked)) .cp-button { opacity: .4; pointer-events: none; }
    [data-function-layout="rep"] .cp-cobro:has(.cp-toggle:checked) .cp-view--form { display: none; }
    [data-function-layout="rep"] .cp-cobro:has(.cp-toggle:checked) .cp-view--list { display: block; animation: cp-fade .3s var(--cp-ease); }
    [data-function-layout="rep"] .cp-cobro:not(:has(#cp-doc-1:checked)) .cp-rel--1,
    [data-function-layout="rep"] .cp-cobro:not(:has(#cp-doc-2:checked)) .cp-rel--2 { display: none; }
    /* Al timbrar, el estado gira, el UUID se escribe y los relacionados entran. */
    [data-function-layout="rep"] .cp-cobro:has(.cp-toggle:checked) .cp-status { animation: cp-flip .5s var(--cp-ease) .15s backwards; }
    [data-function-layout="rep"] .cp-cobro:has(.cp-toggle:checked) .cp-uuid b { animation: cp-type .7s steps(18) .35s backwards; }
    [data-function-layout="rep"] .cp-cobro:has(.cp-toggle:checked) .cp-rel { animation: cp-enter .4s var(--cp-ease) .6s backwards; }
    [data-function-layout="rep"] .cp-cobro:has(.cp-toggle:checked) .cp-rel--2 { animation-delay: .72s; }
}

/* ---------- Comunes ---------- */
[data-function-layout="rep"] .cp-table { width: 100%; margin-top: 1.8rem; border-collapse: collapse; table-layout: fixed; }
[data-function-layout="rep"] .cp-table thead th { padding: .8rem 1rem; border-bottom: 3px solid var(--cp-rule); color: var(--cp-muted); font-size: .95rem; font-weight: 700; text-align: left; }
[data-function-layout="rep"] .cp-table tbody th,
[data-function-layout="rep"] .cp-table td { padding: .95rem 1rem; border-bottom: 1px solid var(--cp-rule); font-size: 1.02rem; line-height: 1.5; text-align: left; vertical-align: top; }
[data-function-layout="rep"] .cp-table tbody th { color: var(--cp-ink); font-family: var(--cp-display); font-weight: 700; }
[data-function-layout="rep"] .cp-table td { color: var(--cp-muted); font-weight: 500; }
[data-function-layout="rep"] .cp-num { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; margin-right: .6rem; border-radius: 50%; background: var(--cp-sat); color: #fff; font-size: .74rem; font-style: normal; font-weight: 700; vertical-align: 1px; }

/* ---------- 1. Cuándo se utiliza: la línea de tiempo de una factura en parcialidades ---------- */
[data-function-layout="rep"] .cp-refs { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: 1.2rem 0 0; color: var(--cp-muted); font-size: .9rem; }
[data-function-layout="rep"] .cp-refs b { margin-right: .2rem; color: var(--cp-ink); }
[data-function-layout="rep"] .cp-refs span { padding: .2rem .6rem; border-radius: .3rem; background: var(--cp-sat-tint); color: var(--cp-sat); font-size: .84rem; font-weight: 700; }
[data-function-layout="rep"] .cp-timeline { margin: 0; padding: clamp(1.1rem, 3vw, 1.5rem); border-radius: .6rem; background: var(--cp-paper); font-variant-numeric: tabular-nums; }
[data-function-layout="rep"] .cp-timeline .cv-icon { width: 17px; height: 17px; flex-basis: 17px; flex-shrink: 0; }
[data-function-layout="rep"] .cp-timeline__invoice { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; margin: 0; padding: .8rem .9rem; border-radius: .45rem; background: var(--cp-ink); color: #fff; }
[data-function-layout="rep"] .cp-timeline__invoice .cv-icon { color: var(--cp-gold); }
[data-function-layout="rep"] .cp-timeline__invoice b { display: block; font-family: var(--cp-display); font-size: 1.05rem; }
[data-function-layout="rep"] .cp-timeline__invoice small { color: rgb(255 255 255 / .78); font-size: .82rem; }
[data-function-layout="rep"] .cp-timeline__invoice strong { font-size: 1rem; }
[data-function-layout="rep"] .cp-timeline ol { position: relative; display: grid; gap: .8rem; margin: 1rem 0 0; padding: 0 0 0 1.6rem; list-style: none; }
[data-function-layout="rep"] .cp-timeline ol::before { content: ""; position: absolute; top: -1rem; bottom: 1.2rem; left: .55rem; width: 2px; background: var(--cp-line); }
[data-function-layout="rep"] .cp-timeline__payment { position: relative; display: grid; gap: .35rem; }
[data-function-layout="rep"] .cp-timeline__payment::before { content: ""; position: absolute; top: 1rem; left: -1.35rem; width: .75rem; height: .75rem; border-radius: 50%; background: var(--cp-bank); box-shadow: 0 0 0 3px var(--cp-paper); }
[data-function-layout="rep"] .cp-timeline__payment > p:first-child { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: 0; padding: .65rem .8rem; border-radius: .4rem; background: #fff; box-shadow: inset 3px 0 0 var(--cp-bank); }
[data-function-layout="rep"] .cp-timeline__payment b { display: block; color: var(--cp-ink); font-size: .95rem; }
[data-function-layout="rep"] .cp-timeline__payment small { color: var(--cp-muted); font-size: .8rem; font-weight: 600; }
[data-function-layout="rep"] .cp-timeline__payment strong { color: var(--cp-ink); }
[data-function-layout="rep"] .cp-timeline__rep { display: inline-flex; align-items: center; gap: .4rem; width: fit-content; margin: 0 0 0 .8rem; padding: .3rem .6rem; border-radius: .35rem; background: var(--cp-sat-tint); color: var(--cp-sat); font-size: .8rem; font-weight: 700; }

/* ---------- 2. Cinco pasos sobre azul ---------- */
[data-function-layout="rep"] .cp-steps { display: grid; gap: .9rem; margin: 2rem 0 0; padding: 0; list-style: none; }
[data-function-layout="rep"] .cp-steps li { position: relative; display: grid; align-content: start; gap: .5rem; padding: 1.05rem 1.05rem 1.2rem; border-radius: .5rem; background: rgb(255 255 255 / .06); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .16); }
[data-function-layout="rep"] .cp-steps__head { display: flex; align-items: center; justify-content: space-between; color: var(--cp-gold); }
[data-function-layout="rep"] .cp-steps__head .cv-icon { width: 20px; height: 20px; flex-basis: 20px; }
[data-function-layout="rep"] .cp-steps__head i { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--cp-gold); color: var(--cp-ink); font-family: var(--cp-display); font-style: normal; font-weight: 700; }
[data-function-layout="rep"] .cp-steps h3 { margin: .3rem 0 0; color: #fff; font-family: var(--cp-display); font-size: 1.1rem; font-weight: 700; line-height: 1.3; }
[data-function-layout="rep"] .cp-steps p { margin: 0; color: rgb(255 255 255 / .82); font-size: .96rem; line-height: 1.5; }
/* El cuarto paso es el del timbrado: se marca en dorado. */
[data-function-layout="rep"] .cp-steps li:nth-child(4) { background: rgb(250 198 63 / .12); box-shadow: inset 0 0 0 1.5px rgb(250 198 63 / .7); }

/* ---------- 3. El renglón del listado ---------- */
[data-function-layout="rep"] .cp-row { margin: 1.8rem 0 0; padding: clamp(1.1rem, 3vw, 1.5rem); border-radius: .6rem; background: #fff; box-shadow: 0 12px 30px rgb(4 31 73 / .08); font-variant-numeric: tabular-nums; }
[data-function-layout="rep"] .cp-row .cv-icon { width: 18px; height: 18px; flex-basis: 18px; flex-shrink: 0; }
[data-function-layout="rep"] .cp-row__title { display: flex; align-items: center; gap: .45rem; margin: 0 0 1rem; color: var(--cp-ink); font-family: var(--cp-display); font-size: 1.15rem; font-weight: 700; }
[data-function-layout="rep"] .cp-row dl { display: grid; gap: .45rem; margin: 0; }
[data-function-layout="rep"] .cp-row dl div { padding: .6rem .75rem; border-radius: .4rem; background: var(--cp-paper); box-shadow: inset 0 3px 0 var(--cp-sat); }
[data-function-layout="rep"] .cp-row dt { display: flex; align-items: center; gap: .4rem; color: var(--cp-muted); font-size: .76rem; font-weight: 700; }
[data-function-layout="rep"] .cp-row dt i { display: inline-grid; place-items: center; width: 1.3rem; height: 1.3rem; border-radius: 50%; background: var(--cp-sat); color: #fff; font-size: .68rem; font-style: normal; }
[data-function-layout="rep"] .cp-row dd { margin: .2rem 0 0; color: var(--cp-ink); font-size: .92rem; font-weight: 700; overflow-wrap: anywhere; }
[data-function-layout="rep"] .cp-table--trace thead th:first-child { width: 36%; }

/* ---------- 4. Beneficios ---------- */
[data-function-layout="rep"] .cp-benefits .cp-benefits__icon { color: var(--cp-sat); }

/* ---------- 5. Una transferencia, dos facturas ---------- */
[data-function-layout="rep"] .cp-callout { margin-top: 1.4rem; padding: 1.1rem 1.2rem; border-radius: .5rem; background: #fff; box-shadow: inset 4px 0 0 var(--cp-gold); }
[data-function-layout="rep"] .cp-callout__title { display: flex; align-items: center; gap: .5rem; margin: 0 0 .45rem; color: var(--cp-ink); font-family: var(--cp-display); font-size: 1.1rem; font-weight: 700; }
[data-function-layout="rep"] .cp-callout__title .cv-icon { width: 18px; height: 18px; flex-basis: 18px; flex-shrink: 0; color: var(--cp-sat); }
[data-function-layout="rep"] .cp-callout p:not(.cp-callout__title) { margin: 0; color: var(--cp-text); font-size: 1rem; line-height: 1.6; }
[data-function-layout="rep"] .cp-split-pay { margin: 0; padding: clamp(1.1rem, 3vw, 1.5rem); border-radius: .6rem; background: #fff; box-shadow: 0 12px 30px rgb(4 31 73 / .08); font-variant-numeric: tabular-nums; }
[data-function-layout="rep"] .cp-split-pay .cv-icon { width: 17px; height: 17px; flex-basis: 17px; flex-shrink: 0; }
[data-function-layout="rep"] .cp-split-pay__source { display: flex; align-items: center; gap: .7rem; margin: 0; padding: .8rem .9rem; border-radius: .45rem; background: var(--cp-bank); color: #fff; }
[data-function-layout="rep"] .cp-split-pay__source small { display: block; color: rgb(255 255 255 / .8); font-size: .8rem; font-weight: 600; }
[data-function-layout="rep"] .cp-split-pay__source b { font-family: var(--cp-display); font-size: 1.35rem; }
[data-function-layout="rep"] .cp-split-pay ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 1.3rem 0 0; padding: 0; list-style: none; }
/* Dos ramas bajan del pago hacia cada factura. */
[data-function-layout="rep"] .cp-split-pay__target { position: relative; display: grid; gap: .4rem; padding: .75rem .8rem; border-radius: .45rem; background: var(--cp-paper); }
[data-function-layout="rep"] .cp-split-pay__target::before { content: ""; position: absolute; top: -1.3rem; left: 50%; width: 2px; height: 1.3rem; background: var(--cp-bank); }
[data-function-layout="rep"] .cp-split-pay__target p { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; margin: 0; }
[data-function-layout="rep"] .cp-split-pay__target b { color: var(--cp-ink); font-family: var(--cp-display); font-size: 1rem; }
[data-function-layout="rep"] .cp-split-pay__target strong { color: var(--cp-ink); font-size: .92rem; }
[data-function-layout="rep"] .cp-split-pay__bar { display: block; height: .5rem; border-radius: .2rem; background: #fff; }
[data-function-layout="rep"] .cp-split-pay__bar i { display: block; width: calc(var(--share) * 1%); height: 100%; border-radius: .2rem; background: var(--cp-bank); transform-origin: left; }
[data-function-layout="rep"] .cp-split-pay__target small { display: flex; align-items: flex-start; gap: .3rem; color: var(--cp-on); font-size: .76rem; font-weight: 700; line-height: 1.35; }
[data-function-layout="rep"] .cp-split-pay__target small .cv-icon { width: 14px; height: 14px; flex-basis: 14px; margin-top: .05rem; }
[data-function-layout="rep"] .cp-split-pay__rep { display: flex; align-items: center; gap: .45rem; margin: .8rem 0 0; padding: .6rem .8rem; border-radius: .4rem; background: var(--cp-sat-tint); color: var(--cp-sat); font-size: .86rem; font-weight: 700; }

/* ---------- 6. Plazo: los cinco primeros días naturales ---------- */
[data-function-layout="rep"] .cp-calendar { display: grid; gap: .9rem; margin: 0; padding: clamp(1.1rem, 3vw, 1.5rem); border-radius: .6rem; background: var(--cp-paper); font-variant-numeric: tabular-nums; }
[data-function-layout="rep"] .cp-calendar .cv-icon { width: 16px; height: 16px; flex-basis: 16px; flex-shrink: 0; }
[data-function-layout="rep"] .cp-calendar p { display: flex; align-items: center; gap: .4rem; margin: 0 0 .5rem; color: var(--cp-ink); font-family: var(--cp-display); font-size: 1rem; font-weight: 700; }
[data-function-layout="rep"] .cp-calendar__month ul { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
[data-function-layout="rep"] .cp-calendar__month li { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .65rem; border-radius: .35rem; background: #fff; box-shadow: inset 3px 0 0 var(--cp-bank); color: var(--cp-ink); font-size: .88rem; font-weight: 700; }
[data-function-layout="rep"] .cp-calendar__month li .cv-icon { color: var(--cp-bank); }
[data-function-layout="rep"] .cp-calendar__next { padding: .9rem; border-radius: .45rem; background: #fff; }
[data-function-layout="rep"] .cp-calendar__next ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .35rem; margin: 0; padding: 0; list-style: none; }
[data-function-layout="rep"] .cp-calendar__next li { display: grid; place-items: center; aspect-ratio: 1; border-radius: .4rem; background: var(--cp-paper); color: var(--cp-muted); font-family: var(--cp-display); font-size: 1.15rem; font-weight: 700; }
/* El quinto día: fecha límite. */
[data-function-layout="rep"] .cp-calendar__next li.is-limit { background: var(--cp-gold); color: var(--cp-ink); box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--cp-gold); }
[data-function-layout="rep"] .cp-calendar__limit { margin: .7rem 0 0 !important; color: var(--cp-wait) !important; font-family: Inter, sans-serif !important; font-size: .86rem !important; }

/* ---------- 7. Comparación: la columna de Evidence va marcada ---------- */
[data-function-layout="rep"] .cp-table--compare thead th:first-child { width: 22%; }
[data-function-layout="rep"] .cp-table--compare thead th:nth-child(3) { box-shadow: inset 0 4px 0 var(--cp-gold); color: var(--cp-ink); }
[data-function-layout="rep"] .cp-table--compare td:nth-child(3) { background: var(--cp-pick); color: var(--cp-ink); font-weight: 600; }

/* ---------- 8. Funciones relacionadas ---------- */
/* El id gana a la regla compartida, que va después en el archivo. */
[data-function-layout="rep"] #relacion-function .cp-related { display: grid; gap: .8rem; margin-top: 1.6rem; }
[data-function-layout="rep"] .cp-related .cp-related__link { background: #fff; box-shadow: inset 0 0 0 1.5px var(--cp-ink); }
[data-function-layout="rep"] .cp-related .cp-related__link:hover { box-shadow: inset 0 0 0 2.5px var(--cp-ink); }
[data-function-layout="rep"] .cp-related .cp-related__link:focus-visible { outline-color: var(--cp-ink); }
[data-function-layout="rep"] .cp-related .cp-related__icon { background: var(--cp-sat-tint); color: var(--cp-sat); }

/* ---------- Entradas al hacer scroll: una distinta por figura ---------- */
@supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
        /* Los pagos caen en la línea de tiempo y su CFDI de tipo Pago aparece debajo. */
        [data-function-layout="rep"] .cp-timeline__payment { animation: cp-fall linear both; animation-timeline: view(); animation-range: entry 10% cover 35%; }
        [data-function-layout="rep"] .cp-timeline__rep { animation: cp-pop linear both; animation-timeline: view(); animation-range: entry 25% cover 45%; }
        /* Los pasos se reparten como fichas desde la izquierda. */
        [data-function-layout="rep"] .cp-steps li { animation: cp-deal linear both; animation-timeline: view(); animation-range: entry 0% cover 30%; }
        /* Los datos del listado se escriben de izquierda a derecha. */
        [data-function-layout="rep"] .cp-row dl div { animation: cp-reveal linear both; animation-timeline: view(); animation-range: entry 5% cover 30%; }
        /* El pago se reparte: las barras crecen en su proporción. */
        [data-function-layout="rep"] .cp-split-pay__bar i { animation: cp-grow linear both; animation-timeline: view(); animation-range: entry 20% cover 45%; }
        [data-function-layout="rep"] .cp-split-pay__target { animation: cp-fall linear both; animation-timeline: view(); animation-range: entry 10% cover 35%; }
        /* Los días se cuentan hasta el quinto. */
        [data-function-layout="rep"] .cp-calendar__next li { animation: cp-pop linear both; animation-timeline: view(); animation-range: entry 15% cover 40%; }
        [data-function-layout="rep"] .cp-calendar__next li.is-limit { animation: cp-limit linear both; animation-timeline: view(); animation-range: entry 30% cover 50%; }
        /* La columna de Evidence se ilumina. */
        [data-function-layout="rep"] .cp-table--compare td:nth-child(3) { animation: cp-sweep linear both; animation-timeline: view(); animation-range: entry 20% cover 40%; }
    }
}

@media (min-width: 640px) {
    [data-function-layout="rep"] .cp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    [data-function-layout="rep"] .cp-row dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
    [data-function-layout="rep"] #relacion-function .cp-related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    [data-function-layout="rep"] .cp-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    /* Flecha entre pasos en la fila de cinco. */
    [data-function-layout="rep"] .cp-steps li:not(:last-child)::after { content: ""; position: absolute; top: 1.95rem; right: -.65rem; width: .42rem; height: .42rem; border-top: 2px solid rgb(255 255 255 / .5); border-right: 2px solid rgb(255 255 255 / .5); transform: rotate(45deg); }
    [data-function-layout="rep"] .cp-row dl { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    [data-function-layout="rep"] .cp-row dl div:nth-child(5) { grid-column: span 2; }
    [data-function-layout="rep"] #relacion-function .cp-related { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Capacidades ---------- */
[data-function-layout="rep"] .cp-capabilities { display: grid; gap: .75rem; margin: 2.25rem 0 0; padding: 0; list-style: none; }
[data-function-layout="rep"] .cp-capabilities li { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); gap: .9rem; align-items: center; padding: 1rem 1.1rem; border-radius: .5rem; background: #fff; box-shadow: inset 0 0 0 1px var(--cp-rule); }
[data-function-layout="rep"] .cp-capabilities__icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: .45rem; background: var(--cp-on-tint); color: var(--cp-on); }
[data-function-layout="rep"] .cp-capabilities__icon .cv-icon { width: 21px; height: 21px; flex-basis: 21px; }
[data-function-layout="rep"] .cp-capabilities p { margin: 0; color: var(--cp-ink); font-size: 1.0625rem; font-weight: 600; line-height: 1.45; }

/* ---------- Problemas: problema / respuesta ---------- */
[data-function-layout="rep"] .cp-fixes { width: 100%; margin-top: 2.5rem; border-collapse: collapse; table-layout: fixed; }
[data-function-layout="rep"] .cp-fixes thead th { padding: 1rem 1.25rem; border-bottom: 3px solid var(--cp-rule); color: var(--cp-muted); font-family: var(--cp-display); font-size: 1.15rem; font-weight: 800; text-align: left; }
[data-function-layout="rep"] .cp-fixes thead th:last-child { border-bottom-color: var(--cp-ink); color: var(--cp-ink); }
[data-function-layout="rep"] .cp-fixes tbody th,
[data-function-layout="rep"] .cp-fixes td { padding: 1.2rem 1.25rem; border-bottom: 1px solid var(--cp-rule); font-size: 1.0625rem; line-height: 1.6; text-align: left; vertical-align: middle; }
[data-function-layout="rep"] .cp-fixes tbody th { color: var(--cp-text); font-weight: 700; }
[data-function-layout="rep"] .cp-fixes td { background: var(--cp-paper); color: var(--cp-ink); font-weight: 600; }
[data-function-layout="rep"] .cp-fixes__icon { display: inline-grid; place-items: center; width: 2.2rem; height: 2.2rem; margin-right: .75rem; border-radius: .4rem; background: #e3e8ef; color: var(--cp-muted); vertical-align: middle; }
[data-function-layout="rep"] .cp-fixes__icon .cv-icon { width: 18px; height: 18px; flex-basis: 18px; }
[data-function-layout="rep"] .cp-fixes__check { display: inline-grid; margin-right: .6rem; vertical-align: -.3em; color: var(--cp-on); }
[data-function-layout="rep"] .cp-fixes__check .cv-icon { width: 20px; height: 20px; flex-basis: 20px; stroke-width: 2.4; }

/* ---------- Beneficios ---------- */
[data-function-layout="rep"] .cp-benefits { display: grid; gap: 1.5rem 3rem; margin: 2.25rem 0 0; padding: 0; list-style: none; }
[data-function-layout="rep"] .cp-benefits li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; align-items: start; padding-top: 1.25rem; border-top: 3px solid var(--cp-ink); }
[data-function-layout="rep"] .cp-benefits__icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .45rem; background: #fff; box-shadow: inset 0 0 0 1px var(--cp-rule); color: var(--cp-ink); }
[data-function-layout="rep"] .cp-benefits__icon .cv-icon { width: 22px; height: 22px; flex-basis: 22px; }
[data-function-layout="rep"] .cp-benefits p { margin: .3rem 0 0; color: var(--cp-ink); font-size: 1.125rem; font-weight: 600; line-height: 1.5; }

/* ---------- Cómo encaja: funciones relacionadas ---------- */
[data-function-layout="rep"] .cp-related { display: grid; gap: .75rem; }
[data-function-layout="rep"] .cp-related__title { margin: 0; color: #fff; font-family: var(--cp-display); font-size: 1.25rem; font-weight: 800; }
[data-function-layout="rep"] .cp-related__link { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1.1rem 1.2rem; border-radius: .55rem; background: #fff; color: var(--cp-ink); text-decoration: none; box-shadow: 0 18px 36px rgb(0 0 0 / .25); transition: box-shadow .2s; }
[data-function-layout="rep"] .cp-related__link:hover { box-shadow: 0 18px 36px rgb(0 0 0 / .25), inset 0 0 0 2px var(--cp-gold); }
[data-function-layout="rep"] .cp-related__link:focus-visible { outline: 3px solid var(--cp-gold); outline-offset: 3px; }
[data-function-layout="rep"] .cp-related__icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .45rem; background: var(--cp-on-tint); color: var(--cp-on); }
[data-function-layout="rep"] .cp-related__icon .cv-icon { width: 22px; height: 22px; flex-basis: 22px; }
[data-function-layout="rep"] .cp-related__link b { display: block; font-family: var(--cp-display); font-size: 1.15rem; font-weight: 800; }
[data-function-layout="rep"] .cp-related__link small { display: block; margin-top: .2rem; color: var(--cp-muted); font-size: .92rem; font-weight: 500; line-height: 1.45; }
[data-function-layout="rep"] .cp-related__go .cv-icon { width: 20px; height: 20px; flex-basis: 20px; }

/* ---------- Responsive ---------- */
@media (min-width: 768px) {
    [data-function-layout="rep"] .cp-capabilities,
    [data-function-layout="rep"] .cp-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    [data-function-layout="rep"] .rh-hero-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    [data-function-layout="rep"] .cp-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    [data-function-layout="rep"] .cp-capabilities { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
    [data-function-layout="rep"] #inicio .function-hero__overlay { background: linear-gradient(180deg, rgb(4 31 73 / .95) 0%, rgb(4 31 73 / .86) 50%, rgb(10 44 92 / .7) 100%); }
    [data-function-layout="rep"] #inicio .cv-hero-title { max-width: none; }
}
@media (max-width: 767px) {
    [data-function-layout="rep"] .cp-hero__actions > * { width: 100%; }
    [data-function-layout="rep"] .cp-fixes thead { display: none; }
    [data-function-layout="rep"] .cp-fixes,
    [data-function-layout="rep"] .cp-fixes tbody,
    [data-function-layout="rep"] .cp-fixes tr,
    [data-function-layout="rep"] .cp-fixes tbody th,
    [data-function-layout="rep"] .cp-fixes td { display: block; width: 100%; }
    [data-function-layout="rep"] .cp-fixes tr { padding: .75rem 0; border-bottom: 1px solid var(--cp-rule); }
    [data-function-layout="rep"] .cp-fixes tbody th,
    [data-function-layout="rep"] .cp-fixes td { padding: .65rem .85rem; border-bottom: 0; }
    [data-function-layout="rep"] .cp-fixes tbody th::before,
    [data-function-layout="rep"] .cp-fixes td::before { content: attr(data-label); display: block; margin-bottom: .35rem; color: var(--cp-muted); font-size: .82rem; font-weight: 700; }
    [data-function-layout="rep"] .cp-related__link { grid-template-columns: 3rem minmax(0, 1fr); }
    [data-function-layout="rep"] .cp-related__go { display: none; }
}

/* ---------- Keyframes ---------- */

@media (prefers-reduced-motion: reduce) {
    [data-function-layout="rep"] *,
    [data-function-layout="rep"] *::before,
    [data-function-layout="rep"] *::after { animation: none !important; transition: none !important; }
}

@media (max-width: 767px) {
    [data-function-layout="rep"] .cp-cobro { padding: .95rem .8rem; }
    [data-function-layout="rep"] .cp-cobro__fields,
    [data-function-layout="rep"] .cp-cobro__fields--list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* En móvil quedan documento, deuda y parcialidad; el vencimiento y el total se ven en escritorio. */
    [data-function-layout="rep"] .cp-docs__head,
    [data-function-layout="rep"] .cp-doc { grid-template-columns: 1.3rem 3.9rem minmax(0, 1fr) 2.6rem; }
    [data-function-layout="rep"] .cp-docs__head span:nth-child(3),
    [data-function-layout="rep"] .cp-docs__head span:nth-child(4),
    [data-function-layout="rep"] .cp-doc > span:nth-of-type(2),
    [data-function-layout="rep"] .cp-doc > span:nth-of-type(3) { display: none; }
    [data-function-layout="rep"] .cp-split-pay ul { grid-template-columns: minmax(0, 1fr); }
    [data-function-layout="rep"] .cp-split-pay__target::before { display: none; }
    [data-function-layout="rep"] .cp-table--compare thead { display: none; }
    [data-function-layout="rep"] .cp-table--compare,
    [data-function-layout="rep"] .cp-table--compare tbody,
    [data-function-layout="rep"] .cp-table--compare tr,
    [data-function-layout="rep"] .cp-table--compare tbody th,
    [data-function-layout="rep"] .cp-table--compare td { display: block; width: 100%; }
    [data-function-layout="rep"] .cp-table--compare tr { padding: .8rem .5rem; border-bottom: 1px solid var(--cp-rule); }
    [data-function-layout="rep"] .cp-table--compare tbody th,
    [data-function-layout="rep"] .cp-table--compare td { padding: .3rem 0; border: 0; }
    /* En móvil cada valor lleva el nombre de su columna. */
    [data-function-layout="rep"] .cp-table--compare td::before { content: attr(data-label); display: block; color: var(--cp-muted); font-size: .76rem; font-weight: 700; }
    [data-function-layout="rep"] .cp-table--compare td:nth-child(3) { padding: .4rem .5rem; border-radius: .35rem; }
}

@media (prefers-reduced-motion: reduce) {
    [data-function-layout="rep"] .cp-doc,
    [data-function-layout="rep"] .cp-view--list,
    [data-function-layout="rep"] .cp-view--list * { animation: none !important; }
    [data-function-layout="rep"] .cp-doc,
    [data-function-layout="rep"] .cp-button { transition: none; }
}

@keyframes cp-enter { from { opacity: 0; transform: translateY(.5rem); } }
@keyframes cp-fade { from { opacity: 0; } }
@keyframes cp-flip { from { opacity: 0; transform: rotateX(90deg); } }
@keyframes cp-type { from { clip-path: inset(0 100% 0 0); } }
@keyframes cp-fall { from { opacity: 0; transform: translateY(-1.2rem); } }
@keyframes cp-pop { from { opacity: 0; transform: scale(.6); } }
@keyframes cp-deal { from { opacity: 0; transform: translateX(-2rem) rotate(-4deg); } }
@keyframes cp-reveal { from { clip-path: inset(0 100% 0 0); } }
@keyframes cp-grow { from { transform: scaleX(0); } }
@keyframes cp-limit { from { transform: scale(.6); box-shadow: 0 0 0 3px #fff, 0 0 0 14px rgb(250 198 63 / 0); } }
@keyframes cp-sweep { from { background-color: transparent; } }
