/* BO Vehicle Print Sheet
   The sheet is assembled from the already rendered vehicle and finance data. */

.bo-print-sheet {
    display: none;
}

@page {
    size: A4 portrait;
    margin: 12mm;
}

@media print {
    html,
    body {
        background: #fff !important;
        color: #111 !important;
        font-size: 9.5pt;
        height: auto !important;
        margin: 0 !important;
        overflow: visible !important;
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }

    body > * {
        display: none !important;
    }

    body > .bo-print-sheet {
        display: block !important;
    }

    .bo-print-sheet,
    .bo-print-sheet * {
        box-sizing: border-box;
    }

    .bo-print-sheet {
        line-height: 1.35;
        max-width: 186mm;
        width: 100%;
    }

    .bo-print-header {
        align-items: center;
        border-bottom: 1.5pt solid #111;
        display: flex;
        justify-content: space-between;
        margin-bottom: 5mm;
        padding-bottom: 3mm;
    }

    .bo-print-logo {
        display: block;
        max-height: 16mm;
        max-width: 55mm;
        object-fit: contain;
        object-position: left center;
    }

    .bo-print-company {
        font-size: 8.5pt;
        max-width: 90mm;
        text-align: right;
    }

    .bo-print-company-name {
        font-size: 10pt;
        font-weight: 700;
    }

    .bo-print-hero {
        display: grid;
        gap: 5mm;
        grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
        margin-bottom: 5mm;
    }

    .bo-print-hero-image {
        aspect-ratio: 4 / 3;
        background: #f1f1f1;
        border: 1px solid #d8d8d8;
        display: block;
        height: auto;
        object-fit: cover;
        width: 100%;
    }

    .bo-print-hero-copy {
        display: flex;
        flex-direction: column;
    }

    .bo-print-kicker {
        color: #555;
        font-size: 8pt;
        font-weight: 700;
        letter-spacing: .08em;
        margin-bottom: 1.5mm;
        text-transform: uppercase;
    }

    .bo-print-title {
        font-size: 20pt;
        line-height: 1.08;
        margin: 0 0 4mm;
    }

    .bo-print-price {
        font-size: 18pt;
        font-weight: 700;
        line-height: 1.1;
        margin-top: auto;
    }

    .bo-print-tax-note {
        color: #555;
        font-size: 8pt;
        margin-top: 1mm;
    }

    .bo-print-section {
        break-inside: avoid;
        margin-top: 5mm;
    }

    .bo-print-section--flow {
        break-inside: auto;
    }

    .bo-print-section-title {
        border-bottom: 1px solid #999;
        font-size: 12pt;
        font-weight: 700;
        margin: 0 0 2.5mm;
        padding-bottom: 1.2mm;
    }

    .bo-print-specs,
    .bo-print-finance-grid {
        display: grid;
        gap: 1.4mm 5mm;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        margin: 0;
    }

    .bo-print-spec,
    .bo-print-finance-row {
        border-bottom: 1px solid #ddd;
        display: flex;
        gap: 2mm;
        justify-content: space-between;
        padding: 1mm 0;
    }

    .bo-print-spec dt,
    .bo-print-finance-label {
        color: #555;
        font-weight: 400;
        margin: 0;
    }

    .bo-print-spec dd,
    .bo-print-finance-value {
        font-weight: 700;
        margin: 0;
        text-align: right;
    }

    .bo-print-description {
        white-space: pre-line;
    }

    .bo-print-description p:last-child {
        margin-bottom: 0;
    }

    .bo-print-equipment {
        columns: 3;
        column-gap: 6mm;
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .bo-print-equipment li {
        break-inside: avoid;
        margin: 0 0 1.2mm;
        padding-left: 3.5mm;
        position: relative;
    }

    .bo-print-equipment li::before {
        content: "\2713";
        font-weight: 700;
        left: 0;
        position: absolute;
    }

    .bo-print-finance {
        border: 1.5px solid #555;
        padding: 3.5mm;
    }

    .bo-print-finance-heading {
        align-items: baseline;
        display: flex;
        gap: 3mm;
        justify-content: space-between;
    }

    .bo-print-finance-monthly {
        font-size: 14pt;
        font-weight: 700;
        white-space: nowrap;
    }

    .bo-print-finance-meta {
        display: flex;
        gap: 5mm;
        margin: 0 0 2.5mm;
    }

    .bo-print-finance-partner {
        align-items: center;
        display: flex;
        gap: 3mm;
        margin-top: 3mm;
    }

    .bo-print-finance-logo {
        display: block;
        max-height: 8mm;
        max-width: 34mm;
        object-fit: contain;
    }

    .bo-print-risk {
        border-top: 1px solid #bbb;
        font-size: 7.5pt;
        margin-top: 3mm;
        padding-top: 2mm;
    }

    .bo-print-risk strong {
        display: block;
    }

    .bo-print-footer {
        border-top: 1px solid #999;
        display: flex;
        font-size: 7.5pt;
        gap: 5mm;
        justify-content: space-between;
        margin-top: 5mm;
        padding-top: 2mm;
    }

    .bo-print-url {
        overflow-wrap: anywhere;
        text-align: right;
    }
}
