/*
 * Lista de materiales (BOM).
 * Concepto: la estructura escalonada de una BOM. El panel del hero muestra los niveles 0, 1 y 2
 * con sangría y conectores; cada sección del artículo lleva un visual hecho con su propio contenido.
 */
[data-function-layout="bom-lista"] {
    --bom-ink: #041f49;
    --bom-blue: #073d86;
    --bom-gold: #fac63f;
    --bom-branch: #8aa4c8;
    --bom-paper: #f3f6fa;
    --bom-line: #dbe2ec;
    --bom-muted: #4a5568;
}

/* ---------- Hero ---------- */
[data-function-layout="bom-lista"] #inicio { padding-block: clamp(2.5rem, 6vw, 5rem); background: var(--bom-ink); }
[data-function-layout="bom-lista"] .function-hero__overlay { background: linear-gradient(90deg, rgb(4 31 73 / .95) 0%, rgb(4 31 73 / .86) 50%, rgb(4 31 73 / .45) 100%); }
@media (max-width: 767px) {
    [data-function-layout="bom-lista"] .function-hero__overlay { background: linear-gradient(180deg, rgb(4 31 73 / .94) 0%, rgb(4 31 73 / .84) 55%, rgb(4 31 73 / .6) 100%); }
}
[data-function-layout="bom-lista"] .rh-hero-layout { align-items: center; }
[data-function-layout="bom-lista"] #inicio .cv-eyebrow,
[data-function-layout="bom-lista"] #inicio .cv-eyebrow .cv-icon { color: var(--bom-gold); }
[data-function-layout="bom-lista"] #inicio .cv-hero-title {
    max-width: 20ch;
    color: #fff;
    font-size: clamp(2rem, 3.8vw, 3.4rem);
    line-height: 1.06;
    letter-spacing: -.035em;
}
[data-function-layout="bom-lista"] #inicio .cv-hero-description { color: rgb(255 255 255 / .84); }
[data-function-layout="bom-lista"] #inicio .cv-hero-copy p.text-sm { color: rgb(255 255 255 / .62); }
[data-function-layout="bom-lista"] #inicio .cv-primary-button {
    border-color: var(--bom-gold);
    background: var(--bom-gold);
    color: var(--bom-ink);
    box-shadow: 0 14px 30px rgb(0 0 0 / .25);
}
[data-function-layout="bom-lista"] #inicio .cv-primary-button:hover,
[data-function-layout="bom-lista"] #inicio .cv-primary-button:focus-visible { background: #ffd666; }
[data-function-layout="bom-lista"] #inicio .cv-secondary-button { border-color: rgb(255 255 255 / .7); background: transparent; color: #fff; }
[data-function-layout="bom-lista"] #inicio .cv-secondary-button:hover,
[data-function-layout="bom-lista"] #inicio .cv-secondary-button:focus-visible { background: #fff; color: var(--bom-ink); }
[data-function-layout="bom-lista"] #inicio .cv-primary-button:focus-visible,
[data-function-layout="bom-lista"] #inicio .cv-secondary-button:focus-visible { outline: 3px solid var(--bom-gold); outline-offset: 3px; }

/* Panel: BOM escalonada por niveles */
[data-function-layout="bom-lista"] .function-report-panel {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0 .875rem;
    align-items: center;
    justify-self: center;
    width: 100%;
    max-width: 29rem;
    min-width: 0;
    padding: 1.75rem;
    border: 0;
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 34px 60px rgb(0 0 0 / .4);
    color: var(--bom-ink);
}
[data-function-layout="bom-lista"] .function-report-panel .rh-feature-icon { grid-column: 1; border-radius: .6rem; background: var(--bom-ink); color: var(--bom-gold); }
[data-function-layout="bom-lista"] .function-report-panel h2 { grid-column: 2; margin: 0; font-family: "Hanken Grotesk", ui-sans-serif, sans-serif; font-size: 1.3rem; font-weight: 800; line-height: 1.25; }
[data-function-layout="bom-lista"] .function-report-lines,
[data-function-layout="bom-lista"] .function-report-panel > p { grid-column: 1 / -1; }
[data-function-layout="bom-lista"] .function-report-lines { display: grid; gap: .9rem; margin-top: 1.5rem; padding: 0; list-style: none; counter-reset: bom-level -1; }
[data-function-layout="bom-lista"] .function-report-lines li {
    position: relative;
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    padding: .8rem 1rem;
    border: 2px solid var(--bom-ink);
    border-radius: .65rem;
    background: #fff;
    font-weight: 700;
    animation: bom-row-in .5s cubic-bezier(.2, .7, .2, 1) both;
}
[data-function-layout="bom-lista"] .function-report-lines li::before {
    counter-increment: bom-level;
    content: counter(bom-level);
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: .45rem;
    background: var(--bom-paper);
    color: var(--bom-blue);
    font-family: "Hanken Grotesk", ui-sans-serif, sans-serif;
    font-weight: 800;
}
[data-function-layout="bom-lista"] .function-report-lines li:nth-child(1) { border-color: var(--bom-ink); background: var(--bom-ink); color: #fff; }
[data-function-layout="bom-lista"] .function-report-lines li:nth-child(1)::before { background: var(--bom-gold); color: var(--bom-ink); }
[data-function-layout="bom-lista"] .function-report-lines li:nth-child(2) { margin-left: 2rem; animation-delay: .25s; }
[data-function-layout="bom-lista"] .function-report-lines li:nth-child(3) { margin-left: 4rem; animation-delay: .45s; }
/* Codo que une cada nivel con su padre */
[data-function-layout="bom-lista"] .function-report-lines li + li::after {
    content: "";
    position: absolute;
    top: calc(-.9rem - 2px);
    left: -1.1rem;
    width: 1.1rem;
    height: calc(50% + .9rem + 2px);
    border-bottom: 2px solid var(--bom-branch);
    border-left: 2px solid var(--bom-branch);
    border-bottom-left-radius: .4rem;
}
[data-function-layout="bom-lista"] .function-report-panel > p { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--bom-line); color: var(--bom-muted); font-size: .9rem; line-height: 1.6; }
@keyframes bom-row-in {
    from { opacity: 0; translate: -1.5rem 0; }
    to { opacity: 1; translate: 0 0; }
}

/* ---------- Definición ---------- */
[data-function-layout="bom-lista"] .rh-function-overview { display: grid; gap: 1.5rem 3rem; align-items: start; }
[data-function-layout="bom-lista"] #overview-title::before { content: ""; display: block; width: 3.5rem; height: 4px; margin-bottom: 1.25rem; background: var(--bom-gold); }
[data-function-layout="bom-lista"] .rh-function-overview .cv-section-intro { max-width: 44rem; margin: 0; color: #1f2a3d; font-size: clamp(1.0625rem, 1.5vw, 1.1875rem); line-height: 1.8; }

/* ---------- Artículo: texto + visual ---------- */
[data-function-layout="bom-lista"] .bom-article { counter-reset: bom-section; }
[data-function-layout="bom-lista"] .bom-article .bom-article__section { padding-block: clamp(3.5rem, 7vw, 6rem); background: #fff; }
[data-function-layout="bom-lista"] .bom-article .bom-article__section:nth-of-type(odd) { background: var(--bom-paper); }
[data-function-layout="bom-lista"] .bom-article__grid { display: grid; gap: 2.5rem 4rem; align-items: center; }
[data-function-layout="bom-lista"] .bom-article .function-copy { max-width: 40rem; margin: 0; padding: 0; }
[data-function-layout="bom-lista"] .bom-article .cv-section-title { font-size: clamp(1.6rem, 2.6vw, 2.25rem); line-height: 1.15; }
[data-function-layout="bom-lista"] .bom-article .cv-section-title::before {
    counter-increment: bom-section;
    content: counter(bom-section);
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    margin-bottom: 1rem;
    border-radius: .6rem;
    background: var(--bom-ink);
    color: var(--bom-gold);
    font-size: 1.05rem;
    letter-spacing: 0;
}
[data-function-layout="bom-lista"] .bom-article .function-copy p { margin-top: 1rem; color: #2a3446; font-size: 1.0625rem; line-height: 1.8; }
[data-function-layout="bom-lista"] .bom-article .function-copy p:first-of-type { margin-top: 1.25rem; }
[data-function-layout="bom-lista"] .bom-visual { min-width: 0; margin: 0; }
[data-function-layout="bom-lista"] .bom-visual ul,
[data-function-layout="bom-lista"] .bom-visual ol { margin: 0; padding: 0; list-style: none; }
[data-function-layout="bom-lista"] .bom-visual strong { font-family: "Hanken Grotesk", ui-sans-serif, sans-serif; }

/* Centro con elementos alrededor */
[data-function-layout="bom-lista"] .bom-hub { display: grid; justify-items: center; gap: 2.5rem; padding: 2rem 1.5rem; border-radius: 1.25rem; background: var(--bom-ink); color: #fff; }
[data-function-layout="bom-lista"] .bom-hub__center { position: relative; padding: 1rem 2rem; border-radius: .9rem; background: var(--bom-gold); color: var(--bom-ink); font-family: "Hanken Grotesk", ui-sans-serif, sans-serif; font-size: 1.5rem; font-weight: 800; }
[data-function-layout="bom-lista"] .bom-hub__center::after { content: ""; position: absolute; left: 50%; bottom: -1.25rem; width: 2px; height: 1.25rem; background: rgb(255 255 255 / .4); }
[data-function-layout="bom-lista"] .bom-hub ul { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
[data-function-layout="bom-lista"] .bom-hub li { padding: .75rem 1.1rem; border-radius: .6rem; background: #fff; color: var(--bom-ink); font-weight: 700; }
[data-function-layout="bom-lista"] .bom-hub__note { margin: -1rem 0 0; color: rgb(255 255 255 / .75); font-size: .9rem; text-align: center; }

/* Mosaico con íconos */
[data-function-layout="bom-lista"] .bom-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
[data-function-layout="bom-lista"] .bom-tiles li {
    display: grid;
    gap: .9rem;
    align-content: start;
    padding: 1.35rem;
    border-radius: 1rem;
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--bom-line);
    color: var(--bom-ink);
    font-family: "Hanken Grotesk", ui-sans-serif, sans-serif;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.3;
}
[data-function-layout="bom-lista"] .bom-tiles li:nth-child(4n+1),
[data-function-layout="bom-lista"] .bom-tiles li:nth-child(4n) { background: var(--bom-ink); box-shadow: none; color: #fff; }
[data-function-layout="bom-lista"] .bom-tiles .rh-feature-icon { background: var(--bom-gold); color: var(--bom-ink); }

/* Campos de una BOM */
[data-function-layout="bom-lista"] .bom-fields { padding: 1.75rem; border-radius: 1.25rem; background: #fff; box-shadow: inset 0 0 0 1px var(--bom-line); }
[data-function-layout="bom-lista"] .bom-fields__label { margin: 0 0 .75rem; color: var(--bom-muted); font-size: .9rem; font-weight: 600; }
[data-function-layout="bom-lista"] .bom-fields__label + ul + .bom-fields__label { margin-top: 1.5rem; }
[data-function-layout="bom-lista"] .bom-fields ul { display: flex; flex-wrap: wrap; gap: .5rem; }
[data-function-layout="bom-lista"] .bom-fields__required li { padding: .65rem 1rem; border-radius: .5rem; background: var(--bom-ink); color: #fff; font-weight: 700; }
[data-function-layout="bom-lista"] .bom-fields__optional li { padding: .55rem .9rem; border: 1px dashed var(--bom-branch); border-radius: .5rem; color: var(--bom-ink); font-size: .925rem; font-weight: 600; }

/* Un nivel frente a multinivel */
[data-function-layout="bom-lista"] .bom-levels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
[data-function-layout="bom-lista"] .bom-levels__col { padding: 1.5rem 1.25rem; border-radius: 1.25rem; background: #fff; box-shadow: inset 0 0 0 1px var(--bom-line); }
[data-function-layout="bom-lista"] .bom-levels__col:last-child { background: var(--bom-ink); box-shadow: none; }
[data-function-layout="bom-lista"] .bom-levels__label { margin: 0 0 1rem; color: var(--bom-blue); font-family: "Hanken Grotesk", ui-sans-serif, sans-serif; font-size: 1.25rem; font-weight: 800; }
[data-function-layout="bom-lista"] .bom-levels__col:last-child .bom-levels__label { color: var(--bom-gold); }
[data-function-layout="bom-lista"] .bom-levels__product { padding: .7rem .9rem; border-radius: .5rem; background: var(--bom-gold); color: var(--bom-ink); font-weight: 800; }
[data-function-layout="bom-lista"] .bom-levels__children { display: grid; gap: .5rem; margin-top: .6rem !important; padding-left: 1.25rem !important; border-left: 2px solid var(--bom-branch); margin-left: .9rem !important; }
[data-function-layout="bom-lista"] .bom-levels__children li { padding: .55rem .8rem; border: 2px solid var(--bom-ink); border-radius: .5rem; background: #fff; color: var(--bom-ink); font-size: .9rem; font-weight: 700; }
[data-function-layout="bom-lista"] .bom-levels__children--multi li + li { margin-left: 1.5rem; background: #e8f0fb; }

/* Pasos (secuencia real) */
[data-function-layout="bom-lista"] .bom-steps { display: grid; gap: .6rem; counter-reset: bom-step; }
[data-function-layout="bom-lista"] .bom-steps li {
    position: relative;
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.25rem;
    border-radius: .9rem;
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--bom-line);
    color: var(--bom-ink);
    font-weight: 700;
    line-height: 1.35;
}
[data-function-layout="bom-lista"] .bom-steps li::before {
    counter-increment: bom-step;
    content: counter(bom-step);
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--bom-ink);
    color: var(--bom-gold);
    font-family: "Hanken Grotesk", ui-sans-serif, sans-serif;
    font-weight: 800;
}
[data-function-layout="bom-lista"] .bom-steps li:last-child { background: var(--bom-gold); box-shadow: none; }

/* Tipos de BOM */
[data-function-layout="bom-lista"] .bom-types ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
[data-function-layout="bom-lista"] .bom-types li { display: grid; gap: .35rem; padding: 1.35rem; border-radius: 1rem; background: var(--bom-ink); color: rgb(255 255 255 / .8); }
[data-function-layout="bom-lista"] .bom-types strong { color: var(--bom-gold); font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 800; letter-spacing: -.03em; line-height: 1; }
[data-function-layout="bom-lista"] .bom-types p { margin-top: .9rem; color: var(--bom-muted); font-size: .95rem; }

/* Tabla de ejemplo */
[data-function-layout="bom-lista"] .bom-table-wrap { overflow: hidden; border-radius: 1.25rem; box-shadow: inset 0 0 0 1px var(--bom-line); background: #fff; }
[data-function-layout="bom-lista"] .bom-table { width: 100%; border-collapse: collapse; text-align: left; }
[data-function-layout="bom-lista"] .bom-table th,
[data-function-layout="bom-lista"] .bom-table td { padding: 1rem 1.25rem; border-bottom: 1px solid var(--bom-line); }
[data-function-layout="bom-lista"] .bom-table thead th { background: var(--bom-ink); color: #fff; font-size: .9rem; }
[data-function-layout="bom-lista"] .bom-table thead th:last-child { background: var(--bom-gold); color: var(--bom-ink); }
[data-function-layout="bom-lista"] .bom-table tbody th { color: var(--bom-ink); font-weight: 700; }
[data-function-layout="bom-lista"] .bom-table tbody td { color: var(--bom-ink); font-family: "Hanken Grotesk", ui-sans-serif, sans-serif; font-size: 1.25rem; font-weight: 800; }
[data-function-layout="bom-lista"] .bom-table tbody td:last-child { background: #fff8e3; }
[data-function-layout="bom-lista"] .bom-table tbody tr:last-child td { font-family: Inter, ui-sans-serif, sans-serif; font-size: .9rem; font-weight: 600; }
[data-function-layout="bom-lista"] .bom-table tbody tr:last-child > * { border-bottom: 0; }

/* Cadena BOM → explosión → MRP */
[data-function-layout="bom-lista"] .bom-chain { display: grid; gap: 1.5rem; }
[data-function-layout="bom-lista"] .bom-chain li { position: relative; display: grid; gap: .3rem; padding: 1.25rem 1.5rem; border-radius: 1rem; background: var(--bom-ink); color: rgb(255 255 255 / .82); }
[data-function-layout="bom-lista"] .bom-chain li:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 2rem;
    bottom: -1.5rem;
    width: 2px;
    height: 1.5rem;
    background: var(--bom-gold);
}
[data-function-layout="bom-lista"] .bom-chain strong { color: var(--bom-gold); font-size: 1.35rem; font-weight: 800; }

/* Necesidad frente a existencias */
[data-function-layout="bom-lista"] .bom-balance { display: grid; gap: 1rem; }
[data-function-layout="bom-lista"] .bom-balance__sides { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: .75rem; align-items: stretch; }
[data-function-layout="bom-lista"] .bom-balance__sides div { display: grid; place-items: center; padding: 1.25rem 1rem; border-radius: 1rem; background: var(--bom-ink); color: #fff; font-family: "Hanken Grotesk", ui-sans-serif, sans-serif; font-weight: 700; text-align: center; line-height: 1.3; }
[data-function-layout="bom-lista"] .bom-balance__sides span { align-self: center; color: var(--bom-blue); font-family: "Hanken Grotesk", ui-sans-serif, sans-serif; font-size: 1.25rem; font-weight: 800; }
[data-function-layout="bom-lista"] .bom-balance__outcomes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
[data-function-layout="bom-lista"] .bom-balance__outcomes li { display: grid; gap: .25rem; padding: 1.1rem 1.25rem; border-radius: 1rem; background: #fff; box-shadow: inset 0 0 0 2px var(--bom-gold); color: var(--bom-ink); }
[data-function-layout="bom-lista"] .bom-balance__outcomes strong { font-size: 1.2rem; font-weight: 800; }
[data-function-layout="bom-lista"] .bom-balance__outcomes li:first-child { box-shadow: inset 0 0 0 2px #b42318; }
[data-function-layout="bom-lista"] .bom-balance__outcomes li:first-child strong { color: #b42318; }

/* Buenas prácticas */
[data-function-layout="bom-lista"] .bom-checklist { display: grid; gap: .6rem; }
[data-function-layout="bom-lista"] .bom-checklist li { display: flex; gap: .9rem; align-items: center; padding: .9rem 1rem; border-radius: .75rem; background: #fff; box-shadow: inset 0 0 0 1px var(--bom-line); color: var(--bom-ink); font-weight: 600; line-height: 1.35; }
[data-function-layout="bom-lista"] .bom-checklist .rh-feature-icon { flex-basis: 38px; width: 38px; height: 38px; border-radius: 50%; background: var(--bom-ink); color: var(--bom-gold); }

/* Pila: la BOM como base */
[data-function-layout="bom-lista"] .bom-stack { display: grid; gap: .5rem; }
[data-function-layout="bom-lista"] .bom-stack li { display: grid; gap: .25rem; padding: 1.25rem 1.5rem; border-radius: .9rem; text-align: center; }
[data-function-layout="bom-lista"] .bom-stack li:nth-child(1) { margin-inline: 18%; background: #e8f0fb; color: var(--bom-ink); }
[data-function-layout="bom-lista"] .bom-stack li:nth-child(2) { margin-inline: 9%; background: var(--bom-blue); color: rgb(255 255 255 / .85); }
[data-function-layout="bom-lista"] .bom-stack li:nth-child(3) { background: var(--bom-ink); color: rgb(255 255 255 / .85); box-shadow: inset 0 -5px 0 var(--bom-gold); }
[data-function-layout="bom-lista"] .bom-stack strong { font-size: 1.25rem; font-weight: 800; }
[data-function-layout="bom-lista"] .bom-stack li:nth-child(n+2) strong { color: #fff; }
[data-function-layout="bom-lista"] .bom-stack li:nth-child(3) strong { color: var(--bom-gold); }

@media (min-width: 768px) {
    [data-function-layout="bom-lista"] .rh-function-overview { grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); }
    [data-function-layout="bom-lista"] .bom-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    [data-function-layout="bom-lista"] .rh-hero-layout { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
    [data-function-layout="bom-lista"] .cv-hero-copy { grid-column: 1; grid-row: 1; }
    [data-function-layout="bom-lista"] .function-report-panel { grid-column: 2; grid-row: 1; }
    [data-function-layout="bom-lista"] .bom-article__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    [data-function-layout="bom-lista"] .bom-article__section:nth-of-type(even) .bom-visual { order: -1; }
}
@media (max-width: 767px) {
    [data-function-layout="bom-lista"] #inicio .cv-hero-title { max-width: none; }
    [data-function-layout="bom-lista"] .function-report-panel { padding-inline: 1.25rem; }
    [data-function-layout="bom-lista"] .function-report-lines li:nth-child(2) { margin-left: 1.5rem; }
    [data-function-layout="bom-lista"] .function-report-lines li:nth-child(3) { margin-left: 3rem; }
    [data-function-layout="bom-lista"] .bom-levels,
    [data-function-layout="bom-lista"] .bom-balance__outcomes { grid-template-columns: minmax(0, 1fr); }
    [data-function-layout="bom-lista"] .bom-balance__sides { grid-template-columns: minmax(0, 1fr); }
    [data-function-layout="bom-lista"] .bom-balance__sides span { justify-self: center; }
}
@media (max-width: 479px) {
    [data-function-layout="bom-lista"] .bom-tiles,
    [data-function-layout="bom-lista"] .bom-types ul { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    [data-function-layout="bom-lista"] .function-report-lines li { animation: none; }
}
