/* Public model pages (main/model_page.html, main/models_index.html). */
.mdl-page { max-width: 58rem; margin: 0 auto; display: grid; gap: 2rem; color: var(--color-text-main); }
.mdl-crumbs { display: flex; flex-wrap: wrap; gap: 0.4rem; font-size: 0.75rem; color: var(--color-text-muted); }
.mdl-crumbs a:hover { color: var(--color-text-main); }
.mdl-hero { display: grid; gap: 0.8rem; }
.mdl-kicker { font-size: 0.78rem; font-weight: 700; color: rgb(var(--primary-rgb)); }
.mdl-hero h1 { font-size: clamp(1.5rem, 4vw, 2.3rem); font-weight: 800; line-height: 1.5; }
.mdl-lede { font-size: 0.95rem; line-height: 2; color: var(--color-text-muted); max-width: 46rem; }
.mdl-facts { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.mdl-fact {
    display: inline-flex; gap: 0.4rem; align-items: center;
    font-size: 0.75rem; padding: 0.35rem 0.7rem; border-radius: 999px;
    border: 1px solid var(--border-subtle); background: var(--color-surface);
}
.mdl-fact b { font-weight: 700; color: var(--color-text-muted); }
.mdl-fact--ok { color: rgb(52 211 153); border-color: rgb(52 211 153 / 0.35); }
.mdl-cta { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.4rem; }
.mdl-section { display: grid; gap: 0.75rem; }
.mdl-section h2 { font-size: 1.2rem; font-weight: 800; }
.mdl-section p { font-size: 0.92rem; line-height: 2.05; color: var(--color-text-muted); }
.mdl-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.mdl-list { display: grid; gap: 0.5rem; font-size: 0.9rem; line-height: 1.9; color: var(--color-text-muted); }
.mdl-list li { position: relative; padding-inline-start: 1.1rem; }
.mdl-list li::before {
    content: ''; position: absolute; inset-inline-start: 0; top: 0.75em;
    width: 0.4rem; height: 0.4rem; border-radius: 50%; background: rgb(var(--primary-rgb));
}
.mdl-steps { display: grid; gap: 0.5rem; padding-inline-start: 1.2rem; list-style: decimal; font-size: 0.9rem; line-height: 1.9; color: var(--color-text-muted); }
.mdl-samples { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.6rem; }
.mdl-sample { display: grid; gap: 0.35rem; font-size: 0.72rem; color: var(--color-text-muted); }
.mdl-sample img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 12px; background: var(--color-surface); }
.mdl-more a { font-size: 0.8rem; color: rgb(var(--primary-rgb)); }
.mdl-faq { display: grid; gap: 0.5rem; }
.mdl-faq details {
    border: 1px solid var(--border-subtle); border-radius: 12px; background: var(--color-surface);
    padding: 0.8rem 1rem;
}
.mdl-faq summary { cursor: pointer; font-weight: 700; font-size: 0.9rem; }
.mdl-faq details p { margin-top: 0.5rem; }
.mdl-related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.6rem; }
.mdl-related a {
    display: grid; gap: 0.2rem; padding: 0.85rem 1rem; border-radius: 12px;
    border: 1px solid var(--border-subtle); background: var(--color-surface);
    transition: border-color .2s;
}
.mdl-related a:hover { border-color: rgb(var(--primary-rgb) / 0.5); }
.mdl-related b { font-size: 0.9rem; }
.mdl-related span { font-size: 0.72rem; color: var(--color-text-muted); }
.mdl-related small { font-size: 0.72rem; line-height: 1.8; color: var(--color-text-muted); }
.mdl-final {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
    padding: 1.2rem 1.4rem; border-radius: 16px;
    background: rgb(var(--primary-rgb) / 0.08); border: 1px solid rgb(var(--primary-rgb) / 0.25);
    font-size: 0.9rem;
}
@media (max-width: 720px) {
    .mdl-two, .mdl-related { grid-template-columns: 1fr; }
    .mdl-samples { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
