/**
 * Copyright (c) 2026 DNA Genics, S.L. All rights reserved.
 * Heritage bioinformatics: file contracts, method comparisons and service acquisition.
 */
.hbio-page .happ-desktop-hero-layout { align-items: start; }
.hbio-page .happ-desktop-hero h1 { max-width: 17ch; }
.hbio-page .hbio-hero-price { margin: 0 0 22px; color: var(--hd-forest); font: 500 2.4rem/1.2 var(--hd-serif); }
.hbio-hero-price > small { display: block; color: var(--hd-muted); font: 400 13px/1.8 var(--hd-sans); margin-top: 8px; }
.hbio-route-panel { min-width: 0; padding: clamp(24px, 3vw, 38px); background: var(--hd-forest); border-radius: 12px; }
.hbio-route-panel > .hpl-eyebrow { color: #dfd0af; }
.hbio-page .hbio-route-panel h2 { color: #faf8f4; font-size: clamp(2.1rem, 3vw, 2.9rem); margin-bottom: 24px; }
.hbio-page .hbio-route-panel p { color: #d5dfd8; font-size: 14px; line-height: 1.85; }
.hbio-route-panel dl { margin: 0; }
.hbio-route-panel dl > div { padding-block: 18px; border-top: 1px solid #718071; }
.hbio-route-panel dt { color: #dfd0af; font: 500 12px/1.7 ui-monospace, Consolas, monospace; margin-bottom: 6px; }
.hbio-route-panel dd { color: #faf8f4; font-size: 15px; line-height: 1.8; margin: 0; }
.hbio-page .hbio-route-panel > p:last-child { margin: 24px 0 0; padding-top: 18px; border-top: 1px solid #718071; font-size: 13px; }
.hbio-format-flow { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin: 0 0 28px; padding: 0; list-style: none; }
.hbio-format-flow > li { color: var(--hd-forest); font: 500 clamp(1.7rem, 3vw, 2.3rem)/1.35 var(--hd-serif); }
.hbio-format-flow > li + li::before { content: "\2192"; margin-right: 16px; color: #765e34; }
.hbio-route-panel .hbio-format-flow > li { color: #faf8f4; }
.hbio-route-panel .hbio-format-flow > li + li::before { color: #dfd0af; }
.hbio-output-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--hd-border); }
.hbio-output-list > li { padding-block: 22px; border-bottom: 1px solid var(--hd-border); color: var(--hd-muted); font-size: 15px; line-height: 1.9; }
.hbio-output-list strong { display: block; color: var(--hd-forest); font-size: 16px; margin-bottom: 8px; }
.hbio-page .hbio-offer-note { max-width: 78ch; margin: 20px 0 0; font-size: 14px; line-height: 1.9; }
.hbio-page .hpl-offer-grid:has(> :only-child) { max-width: 780px; grid-template-columns: minmax(0, 1fr); }
.hbio-methods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.hbio-methods > article { min-width: 0; border-top: 1px solid #cbbd9f; padding-top: 26px; }
.hbio-methods p { font-size: 15px; line-height: 1.9; }
.hbio-directory { border-top: 1px solid var(--hd-border); }
.hbio-directory > article { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr) minmax(150px, .4fr); gap: 28px; padding-block: 26px; border-bottom: 1px solid var(--hd-border); align-items: start; }
.hbio-directory h3 { font-size: 1.9rem; }
.hbio-directory p { font-size: 14px; line-height: 1.9; margin-bottom: 0; }
.hbio-directory a { justify-self: end; }
.hbio-decision-list { margin: 0; padding: 0; list-style: none; counter-reset: hbio-decision; }
.hbio-decision-list > li { counter-increment: hbio-decision; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 18px; padding-block: 22px; border-top: 1px solid var(--hd-border); }
.hbio-decision-list > li::before { content: "0" counter(hbio-decision); color: #765e34; font: 500 1.7rem/1.3 var(--hd-serif); }
.hbio-decision-list p { font-size: 15px; line-height: 1.9; margin-bottom: 0; }
.hbio-callout { border-left: 3px solid #9c824d; padding: 8px 0 8px 24px; }
.hbio-callout p:last-child { margin-bottom: 0; }
.hbio-page .hpl-faq-list summary { min-height: 60px; }
@media (max-width: 1100px) { .hbio-directory > article { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 18px 28px; } .hbio-directory a { grid-column: 2; justify-self: start; } }
@media (max-width: 767px) {
    .hbio-methods { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .hbio-directory > article { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .hbio-directory a { grid-column: 1; justify-self: start; }
    .hbio-format-flow { gap: 10px; }
    .hbio-format-flow > li + li::before { margin-right: 10px; }
    .hbio-page .hbio-route-panel h2 { font-size: 2.3rem; }
}
@media print { .hbio-route-panel { background: #fff; border: 1px solid #718071; } .hbio-page .hbio-route-panel :is(h2, p, dt, dd, li, span) { color: #213a2f; } }
