@charset "UTF-8";

/* =====================================================================
   OLLATOEDU ECOSYS
   Global Print Styles
   =====================================================================

   File:
   assets/css/print.css

   Phase:
   Phase 4 - Global CSS Foundation

   Purpose:
   - Optimise public website pages for printing
   - Remove interactive-only interface elements
   - Simplify colour-heavy presentation
   - Improve page-break behaviour
   - Preserve readable typography
   - Preserve useful links and structured content
   - Support future printable information pages
   - Avoid unnecessary backgrounds, shadows and animation

   Recommended loading:
   <link
       rel="stylesheet"
       href=".../assets/css/print.css"
       media="print"
   >

   Dependencies:
   - assets/css/style.css
   - assets/css/website.css
   - assets/css/forms.css
   - assets/css/responsive.css

   IMPORTANT:

   This file controls print presentation only.

   It does NOT generate reports or PDFs.
   Dedicated application reports will later use their own report views
   and report-specific styles where required.
   ===================================================================== */


/* =====================================================================
   1. PAGE SETUP
   ===================================================================== */

@page {
    size: A4;
    margin: 16mm 14mm 18mm;
}


/* =====================================================================
   2. PRINT ROOT
   ===================================================================== */

html,
body {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;

    background: #ffffff !important;
    color: #000000 !important;

    font-size: 10.5pt !important;
    line-height: 1.45 !important;

    -webkit-print-color-adjust: economical;
    print-color-adjust: economical;
}


/* =====================================================================
   3. REMOVE ANIMATION / TRANSITIONS
   ===================================================================== */

*,
*::before,
*::after {
    animation: none !important;
    transition: none !important;

    text-shadow: none !important;
}


/* =====================================================================
   4. GLOBAL BACKGROUND AND SHADOW CLEANUP
   ===================================================================== */

.website,
.website__body,
.website__main,
.website__content,
.website-page,
.section,
.website-section,
.surface,
.surface-soft,
.surface-muted,
.website-gradient-soft {
    background: #ffffff !important;
}


.card,
.feature-item,
.content-card,
.quote-card,
.info-panel,
.highlight-box,
.form-card,
.media-block,
.details-item,
.stat-item,
.cta-band {
    box-shadow: none !important;
}


/* =====================================================================
   5. HIDE SCREEN-ONLY INTERFACE
   ===================================================================== */

.no-print,
[aria-hidden="true"].no-print,
.skip-link,
.back-to-top,
.loading,
.loading-overlay,
.cookie-consent,
.flash-message__close,
.mobile-navigation,
.navigation-toggle,
.password-field__toggle,
.form-actions,
.responsive-actions,
button,
.btn,
[role="button"] {
    display: none !important;
}


/* =====================================================================
   6. COMPONENTS GENERALLY NOT REQUIRED IN PRINT
   =====================================================================

   These selectors are intentionally generic and will become active once
   the corresponding component files are created.
   ===================================================================== */

.topbar,
.site-topbar,
.navigation,
.site-navigation,
.main-navigation,
.mobile-navigation,
.footer__actions,
.footer__social,
.site-footer__social,
.cookie-banner,
.back-to-top-button {
    display: none !important;
}


/* =====================================================================
   7. KEEP MAIN CONTENT VISIBLE
   ===================================================================== */

main,
#main-content,
.website__main,
.website__content {
    display: block !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* =====================================================================
   8. CONTAINER RESET
   ===================================================================== */

.container,
.container--xs,
.container--sm,
.container--md,
.container--lg,
.container--xl,
.container--fluid,
.content-width,
.content-width--sm,
.content-width--md,
.content-width--lg {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding-inline: 0 !important;
}


/* =====================================================================
   9. SECTION SPACING
   ===================================================================== */

.section,
.section--sm,
.section--lg,
.website-section,
.website-section--sm,
.website-section--lg {
    padding-block: 10mm !important;
}


.section:first-child,
.website-section:first-child {
    padding-top: 0 !important;
}


.section:last-child,
.website-section:last-child {
    padding-bottom: 0 !important;
}


/* =====================================================================
   10. TYPOGRAPHY
   ===================================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
    color: #000000 !important;

    page-break-after: avoid;
    break-after: avoid-page;

    page-break-inside: avoid;
    break-inside: avoid;

    orphans: 3;
    widows: 3;
}


h1 {
    font-size: 22pt !important;
}


h2 {
    font-size: 18pt !important;
}


h3 {
    font-size: 15pt !important;
}


h4 {
    font-size: 13pt !important;
}


h5,
h6 {
    font-size: 11pt !important;
}


p,
li,
dd,
dt,
td,
th {
    color: #000000 !important;

    orphans: 3;
    widows: 3;
}


p {
    line-height: 1.5 !important;
}


strong,
b {
    color: #000000 !important;
}


/* =====================================================================
   11. LINKS
   ===================================================================== */

a,
a:visited {
    color: #000000 !important;

    text-decoration: underline !important;
    text-underline-offset: 0.15em;
}


/* ---------------------------------------------------------------------
   Show meaningful external URLs after links
   --------------------------------------------------------------------- */

.rich-text a[href^="http"]::after,
.print-show-url a[href^="http"]::after {
    content:
        " (" attr(href) ")";

    font-size: 8pt;
    font-weight: normal;

    word-break: break-all;
}


/* ---------------------------------------------------------------------
   Do not print URLs after common navigation-style links
   --------------------------------------------------------------------- */

.navigation a::after,
.mobile-navigation a::after,
.topbar a::after,
.site-footer a::after,
.btn::after,
.website-link::after {
    content: none !important;
}


/* =====================================================================
   12. IMAGES
   ===================================================================== */

img {
    max-width: 100% !important;
    height: auto !important;

    page-break-inside: avoid;
    break-inside: avoid;
}


/* =====================================================================
   13. SVG
   ===================================================================== */

svg {
    max-width: 100% !important;

    page-break-inside: avoid;
    break-inside: avoid;
}


/* =====================================================================
   14. VIDEO / EMBEDS
   ===================================================================== */

video,
audio,
iframe,
.embed-responsive {
    display: none !important;
}


/* =====================================================================
   15. CONTENT SPLIT
   ===================================================================== */

.content-split,
.content-split--wide-content,
.content-split--wide-media {
    display: block !important;
}


.content-split__content,
.content-split__media {
    display: block !important;

    width: 100% !important;

    margin: 0 !important;
}


.content-split__media {
    margin-top: 8mm !important;
}


.content-split--reverse
.content-split__content,
.content-split--reverse
.content-split__media {
    order: initial !important;
}


/* =====================================================================
   16. CARDS
   ===================================================================== */

.card,
.feature-item,
.content-card,
.quote-card,
.info-panel,
.highlight-box,
.stat-item {
    page-break-inside: avoid;
    break-inside: avoid;

    background: #ffffff !important;

    border:
        1px
        solid
        #cfcfcf !important;

    border-radius: 0 !important;

    box-shadow: none !important;
}


/* =====================================================================
   17. CARD CONTENT
   ===================================================================== */

.card__body,
.feature-item,
.content-card__body,
.quote-card,
.info-panel,
.highlight-box,
.stat-item {
    padding: 5mm !important;
}


/* =====================================================================
   18. CARD MEDIA
   ===================================================================== */

.content-card__media,
.media-block,
.content-split__media-frame {
    border-radius: 0 !important;

    box-shadow: none !important;
}


/* =====================================================================
   19. FEATURE GRID
   ===================================================================== */

.feature-grid,
.content-card-grid,
.stats-grid,
.process-list,
.auto-grid,
.responsive-grid {
    display: block !important;
}


/* =====================================================================
   20. GRID ITEM SPACING
   ===================================================================== */

.feature-item,
.content-card,
.stat-item,
.process-item {
    margin-bottom: 6mm !important;
}


/* =====================================================================
   21. PROCESS ITEMS
   ===================================================================== */

.process-item {
    page-break-inside: avoid;
    break-inside: avoid;
}


.process-item__number {
    color: #000000 !important;
    background: transparent !important;

    border:
        1px
        solid
        #000000 !important;

    box-shadow: none !important;
}


/* =====================================================================
   22. CTA BAND
   ===================================================================== */

.cta-band {
    padding: 6mm !important;

    color: #000000 !important;
    background: #ffffff !important;

    border:
        1px
        solid
        #bfbfbf !important;

    border-radius: 0 !important;

    box-shadow: none !important;
}


.cta-band::before,
.cta-band::after {
    display: none !important;
}


.cta-band__title,
.cta-band__text,
.cta-band__eyebrow {
    color: #000000 !important;
}


.cta-band__actions {
    display: none !important;
}


/* =====================================================================
   23. WEBSITE NOTICE
   ===================================================================== */

.website-notice,
.assessment-disclaimer {
    page-break-inside: avoid;
    break-inside: avoid;

    color: #000000 !important;
    background: #ffffff !important;

    border:
        1px
        solid
        #bfbfbf !important;

    border-radius: 0 !important;
}


/* =====================================================================
   24. ASSESSMENT DISCLAIMER
   ===================================================================== */

.assessment-disclaimer {
    margin-top: 6mm !important;
    padding: 4mm !important;

    font-size: 9pt !important;
    line-height: 1.45 !important;
}


/* =====================================================================
   25. FAQ / DETAILS
   ===================================================================== */

details,
.details-item {
    display: block !important;

    page-break-inside: avoid;
    break-inside: avoid;
}


details > summary {
    display: block !important;

    list-style: none !important;
}


.details-item__summary::after {
    display: none !important;
}


.details-item__content {
    display: block !important;

    padding:
        0
        5mm
        5mm !important;
}


/* =====================================================================
   26. RICH TEXT
   ===================================================================== */

.rich-text {
    max-width: none !important;

    color: #000000 !important;
}


.rich-text h2,
.rich-text h3,
.rich-text h4 {
    page-break-after: avoid;
    break-after: avoid-page;
}


.rich-text ul,
.rich-text ol {
    padding-left: 6mm !important;
}


.rich-text blockquote {
    border-left:
        2px
        solid
        #666666 !important;
}


/* =====================================================================
   27. TABLES
   ===================================================================== */

.table-responsive {
    overflow: visible !important;
}


.table-responsive table,
table {
    width: 100% !important;
    min-width: 0 !important;

    font-size: 9pt !important;

    page-break-inside: auto;
    break-inside: auto;
}


thead {
    display: table-header-group;
}


tfoot {
    display: table-footer-group;
}


tr {
    page-break-inside: avoid;
    break-inside: avoid;
}


th,
td {
    padding: 2.5mm !important;

    color: #000000 !important;

    border:
        1px
        solid
        #cccccc !important;
}


th {
    background: #f2f2f2 !important;

    font-weight: 700 !important;
}


/* =====================================================================
   28. FORMS
   ===================================================================== */

form {
    width: 100% !important;
}


.form-card {
    padding: 0 !important;

    border: 0 !important;

    box-shadow: none !important;
}


.form-grid,
.form-grid--two,
.form-grid--three,
.form-grid--four {
    display: block !important;
}


.form-group {
    margin-bottom: 5mm !important;

    page-break-inside: avoid;
    break-inside: avoid;
}


.form-label {
    display: block !important;

    margin-bottom: 1.5mm !important;

    color: #000000 !important;

    font-weight: 700 !important;
}


/* =====================================================================
   29. FORM CONTROLS
   ===================================================================== */

.form-control,
.form-file__control,
select.form-control,
textarea.form-control {
    width: 100% !important;

    color: #000000 !important;
    background: #ffffff !important;

    border:
        1px
        solid
        #999999 !important;

    border-radius: 0 !important;

    box-shadow: none !important;
}


/* =====================================================================
   30. READ-ONLY PRINT VALUE
   =====================================================================

   Optional helper for pages that render values separately from actual
   interactive controls.
   ===================================================================== */

.print-value {
    display: block;

    padding:
        1.5mm
        0;

    color: #000000 !important;

    border-bottom:
        1px
        solid
        #bbbbbb;
}


/* =====================================================================
   31. CHECKBOXES AND RADIO BUTTONS
   ===================================================================== */

.form-check {
    page-break-inside: avoid;
    break-inside: avoid;
}


.form-check__input {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}


/* =====================================================================
   32. HIDE UPLOAD INTERACTIONS
   ===================================================================== */

.upload-zone,
.form-file {
    display: none !important;
}


/* =====================================================================
   33. VALIDATION STATES
   ===================================================================== */

.form-error,
.form-success,
.form-summary {
    color: #000000 !important;
    background: #ffffff !important;

    border:
        1px
        solid
        #999999 !important;
}


.form-error::before,
.form-success::before {
    color: #000000 !important;
    background: transparent !important;
}


/* =====================================================================
   34. BREADCRUMB
   =====================================================================

   Breadcrumb may remain useful on printed public information pages.
   ===================================================================== */

.breadcrumb {
    margin-bottom: 6mm !important;

    font-size: 8.5pt !important;
}


.breadcrumb a {
    text-decoration: none !important;
}


/* =====================================================================
   35. PAGE HEADER
   ===================================================================== */

.page-header {
    padding:
        0
        0
        7mm !important;

    background: #ffffff !important;

    border-bottom:
        1px
        solid
        #cccccc !important;
}


.page-header__title {
    color: #000000 !important;
}


.page-header__description {
    color: #333333 !important;
}


/* =====================================================================
   36. FOOTER
   ===================================================================== */

.site-footer,
.footer {
    margin-top: 10mm !important;
    padding-top: 5mm !important;

    color: #000000 !important;
    background: #ffffff !important;

    border-top:
        1px
        solid
        #bfbfbf !important;
}


/* ---------------------------------------------------------------------
   Hide large footer navigation groups in normal print
   --------------------------------------------------------------------- */

.footer__navigation,
.footer__links,
.footer__services,
.footer__social,
.footer__actions {
    display: none !important;
}


/* ---------------------------------------------------------------------
   Keep legal / copyright details where available
   --------------------------------------------------------------------- */

.footer__bottom,
.footer__copyright,
.footer__disclaimer {
    display: block !important;

    color: #444444 !important;

    font-size: 8pt !important;
    line-height: 1.4 !important;
}


/* =====================================================================
   37. PROFILE SUMMARY
   ===================================================================== */

.profile-summary {
    page-break-inside: avoid;
    break-inside: avoid;
}


.profile-summary__image {
    width: 25mm !important;
    height: 25mm !important;
}


/* =====================================================================
   38. STATISTICS
   ===================================================================== */

.stat-item__value {
    color: #000000 !important;
}


/* =====================================================================
   39. BADGES / PILLS
   ===================================================================== */

.badge,
.pill-list__item {
    color: #000000 !important;
    background: #ffffff !important;

    border:
        1px
        solid
        #aaaaaa !important;
}


/* =====================================================================
   40. EMPTY STATES
   ===================================================================== */

.empty-state {
    padding: 8mm 0 !important;
}


.empty-state__icon,
.empty-state__actions {
    display: none !important;
}


/* =====================================================================
   41. HIDE DECORATIVE ELEMENTS
   ===================================================================== */

.website-pattern::before,
.decorative,
.decoration,
.background-shape,
.background-pattern {
    display: none !important;
}


/* =====================================================================
   42. PAGE BREAK UTILITIES
   ===================================================================== */

.print-page-break-before {
    page-break-before: always !important;
    break-before: page !important;
}


.print-page-break-after {
    page-break-after: always !important;
    break-after: page !important;
}


.print-avoid-break {
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
}


.print-keep-with-next {
    page-break-after: avoid !important;
    break-after: avoid-page !important;
}


/* =====================================================================
   43. PRINT-ONLY CONTENT
   ===================================================================== */

.print-only {
    display: block !important;
}


.print-inline {
    display: inline !important;
}


/* =====================================================================
   44. SCREEN-ONLY CONTENT
   ===================================================================== */

.screen-only {
    display: none !important;
}


/* =====================================================================
   45. PRINT DOCUMENT HEADER
   =====================================================================

   Optional reusable structure:

   <div class="print-document-header print-only">
       ...
   </div>
   ===================================================================== */

.print-document-header {
    display: block !important;

    margin-bottom: 8mm;
    padding-bottom: 5mm;

    border-bottom:
        1px
        solid
        #bfbfbf;
}


.print-document-header__brand {
    font-size: 16pt;
    font-weight: 700;

    color: #000000;
}


.print-document-header__title {
    margin-top: 2mm;

    font-size: 12pt;
    font-weight: 600;

    color: #000000;
}


.print-document-header__meta {
    margin-top: 2mm;

    font-size: 8pt;

    color: #444444;
}


/* =====================================================================
   46. PRINT DOCUMENT FOOTNOTE
   ===================================================================== */

.print-footnote {
    display: block !important;

    margin-top: 8mm;
    padding-top: 4mm;

    font-size: 8pt;
    line-height: 1.4;

    color: #444444;

    border-top:
        1px
        solid
        #cccccc;
}


/* =====================================================================
   47. PREVENT EMPTY LINK TARGETS
   ===================================================================== */

a[href=""],
a[href="#"],
a[href^="javascript:"] {
    text-decoration: none !important;
}


a[href=""]::after,
a[href="#"]::after,
a[href^="javascript:"]::after {
    content: none !important;
}


/* =====================================================================
   48. REMOVE SCREEN OVERFLOW HELPERS
   ===================================================================== */

.mobile-scroll,
.overflow-x-auto {
    overflow: visible !important;
}


/* =====================================================================
   49. STICKY / FIXED POSITION RESET
   ===================================================================== */

.sticky-responsive,
[style*="position: sticky"],
[style*="position: fixed"] {
    position: static !important;
}


/* =====================================================================
   50. PRINT COLOUR OVERRIDE HELPER
   ===================================================================== */

.print-exact-colour {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
}


/* =====================================================================
   END OF OLLATOEDU ECOSYS GLOBAL PRINT STYLES
   ===================================================================== */