/*
|--------------------------------------------------------------------------
| PRINT — what the site looks like on paper and in "Save as PDF"
|--------------------------------------------------------------------------
|
| WHAT THIS FILE IS
|   Print styles. People genuinely print two things from this site: the rate
|   card, and a service page they want to take into a meeting. This file makes
|   both come out as a clean black-on-white document.
|
| LOAD ORDER (set in includes/head.php — do not reorder)
|   variables → base → layout → components → pages → responsive → print
|   It is loaded with media="print", so nothing here affects the screen.
|
| WHAT IT DOES
|   • Strips navigation, the drawer, the utility bar, the footer and every
|     call-to-action band — none of them mean anything on paper.
|   • Turns the calculator into its static rate table (the fallback markup is
|     already in the page, so no JavaScript is involved).
|   • Opens every <details> so nothing is hidden in the printed copy.
|   • Prints the URL after external links, so a citation survives the print.
|   • Keeps headings with the text that follows them and stops tables and
|     cards from being split across a page break.
|
| SAFE TO EDIT
|   Yes. Print with Ctrl/Cmd-P to check your change; the browser preview is
|   accurate enough.
*/

@media print {

    /* --- Page setup ------------------------------------------------- */

    @page {
        margin: 16mm 14mm;
    }

    html,
    body {
        background: #FFFFFF !important;
        color: #000000;
        font-size: 11pt;
        line-height: 1.45;
    }

    /* --- Remove everything that is not the content ------------------ */

    .utility-bar,
    .site-header,
    .mobile-menu,
    .nav-panel,
    .menu-button,
    .site-footer,
    .cta-band,
    .breadcrumbs,
    .search-form,
    .skip-link,
    .lang-switch,
    .button-row,
    .article-actions,
    .form-actions,
    .site-form,
    .contact-aside,
    .hero-actions,
    .box-card-foot .link-arrow,
    .section-foot {
        display: none !important;
    }

    /* The interactive calculator never prints; the server-rendered rate
       card underneath it always does. */
    .calculator,
    .js-only {
        display: none !important;
    }

    .calculator-fallback,
    .no-js-only {
        display: block !important;
    }

    /* --- Flatten the visual treatment ------------------------------- */

    .hero,
    .home-hero,
    .section,
    .section-alt,
    .section-alt-wrap,
    .audience-strip,
    .stat-strip {
        background: none !important;
        padding-block: 0.6rem;
        border: 0;
    }

    .section-ink,
    .section-ink * {
        background: none !important;
        color: #000000 !important;
    }

    .card,
    .box-card,
    .tier-card,
    .sla-card,
    .form-card,
    .featured-article {
        border: 1px solid #999999 !important;
        border-radius: 0;
        box-shadow: none !important;
        background: none !important;
        padding: 0.5rem 0.6rem;
    }

    .accent,
    .service-row-headline,
    .discount-value,
    .metric-value,
    .price-amount,
    .box-price,
    .sample-amount {
        color: #000000 !important;
    }

    .container,
    .container-narrow {
        max-width: none;
        padding: 0;
    }

    /* Multi-column layouts collapse: paper is one column. */
    .hero-grid,
    .split-grid,
    .split-even,
    .article-layout,
    .service-row,
    .study-row,
    .footer-grid,
    .cta-inner {
        display: block !important;
    }

    .card-grid,
    .stat-grid,
    .tier-grid,
    .service-grid,
    .article-grid,
    .study-grid,
    .process-grid,
    .deliverable-list,
    .sample-totals {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.4rem !important;
    }

    /* --- Tables ------------------------------------------------------ */

    .table-scroll,
    .price-table-wrap {
        overflow: visible !important;
        border: 0;
    }

    table {
        width: 100%;
        border-collapse: collapse;
        font-size: 9.5pt;
    }

    th,
    td {
        border: 1px solid #999999;
        padding: 3pt 5pt;
        background: none !important;
        color: #000000 !important;
    }

    thead {
        display: table-header-group;      /* repeat the header on each page */
    }

    /* --- Disclosure widgets ----------------------------------------- */

    details {
        display: block;
    }

    details > summary {
        list-style: none;
        font-weight: 700;
    }

    details > *:not(summary) {
        display: block !important;
    }

    .faq-item[open],
    .faq-item {
        break-inside: avoid;
    }

    /* --- Links -------------------------------------------------------- */

    a {
        color: #000000 !important;
        text-decoration: underline;
    }

    /* Print the destination of real links. Internal anchors, tel: and
       mailto: links are skipped — the text already says where they go. */
    .rich-body a[href^="http"]::after,
    .article-main a[href^="http"]::after,
    .prose-block a[href^="http"]::after {
        content: " (" attr(href) ")";
        font-size: 8.5pt;
        word-break: break-all;
    }

    /* --- Pagination --------------------------------------------------- */

    h1, h2, h3, h4 {
        break-after: avoid;
        page-break-after: avoid;
    }

    .card,
    .tier-card,
    .sla-card,
    .study-row,
    .service-row,
    table,
    figure,
    blockquote {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    img {
        max-width: 100% !important;
    }

    /* Motion utilities must not leave anything invisible on paper. */
    [data-reveal],
    .is-revealed {
        opacity: 1 !important;
        transform: none !important;
    }
}
