@media print {
  /* Print stylesheet */

  * {
    box-sizing: border-box;
  }

  /* ================================
     PRINT PAGE
  ================================= */

  @page {
    size: A4;
    margin: 15mm 10mm;
  }

  .banner-space .fl-row-content-wrap {
    padding: 0 !important;
  }

  html,
  body {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .fl-row-content {
    max-width: 100% !important;
  }

  /* ================================
     REMOVE WEBSITE UI
  ================================= */

  header,
  footer,
  nav,
  .header,
  .footer,
  .navbar,
  .site-header,
  .site-footer,
  .menu,
  .navigation,
  .sticky-header,
  .fl-builder-shape-layer,
  .fl-post img[class*="wp-image-"],
  .fl-post img.alignnone,
  .fl-post img.alignleft,
  .fl-post img.aligncenter,
  .fl-post img.alignright,
  .header-icon-collapse,
  .header-icon-expand {
    display: none !important;
  }

  /* ================================
     MAIN CONTENT
  ================================= */

  main,
  article,
  section,
  .container,
  .content,
  .page-content {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    margin-top: 0 !important;
    margin-bottom: 0 !important;

    padding-top: 0 !important;

    overflow: visible !important;
  }

  /* ================================
     REMOVE FIXED HEIGHTS
     FROM THE PLAYBOOK CONTENT
  ================================= */

  main *,
  article *,
  .page-content * {
    max-height: none !important;
  }

  /* ================================
     TEXT MUST NOT BE CLIPPED
  ================================= */

  p,
  li,
  span,
  strong,
  em,
  a {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
  }

  /* ================================
     HEADINGS
     Keep heading with following content
  ================================= */

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;

    break-after: avoid !important;
    page-break-after: avoid !important;

    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* ================================
     PARAGRAPHS
  ================================= */

  p {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  /* ================================
     LISTS
  ================================= */

  ul,
  ol {
    height: auto !important;
    max-height: none !important;

    overflow: visible !important;

    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  li {
    height: auto !important;
    max-height: none !important;

    overflow: visible !important;

    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* ================================
     CARDS / BOXES
  ================================= */

  .card,
  .box,
  [class*="card"],
  [class*="Card"],
  [class*="box"],
  [class*="Box"] {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    overflow: visible !important;

    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* ================================
     TABLES
  ================================= */

  table {
    width: 100% !important;

    height: auto !important;
    max-height: none !important;

    overflow: visible !important;

    border-collapse: collapse !important;

    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  tr {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* ================================
     FLEX / GRID
     
     These can cause unexpected
     empty space in Chrome printing.
  ================================= */

  .print-content,
  .pdf-content,
  .page-content {
    display: block !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    overflow: visible !important;
  }

  /* ================================
     PREVENT TRANSFORM / SCALE
     FROM CREATING EMPTY SPACE
  ================================= */

  .print-content,
  .pdf-content,
  .page-content,
  main {
    transform: none !important;
    zoom: 1 !important;
  }

  /* ================================
     IMPORTANT:
     Remove large screen spacing
  ================================= */

  [style*="height"],
  [style*="min-height"] {
    max-height: none !important;
  }

  /* Remove scrollbar from UABB table wrapper */
  .uabb-table,
  .uabb-table-wrapper,
  .uabb-table-wrap,
  .table-responsive,
  .fl-module-uabb-table,
  .fl-module-content:has(.uabb-table) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
  }

  /* Actual table */
  .uabb-table table,
  .uabb-table {
    width: 100% !important;
    max-width: 100% !important;

    height: auto !important;
    max-height: none !important;

    overflow: visible !important;

    table-layout: auto !important;
  }

  .uabb-table tbody,
  .uabb-table thead {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .uabb-table tr {
    height: auto !important;

    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .uabb-table td,
  .uabb-table th {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* Remove desktop width constraints */
  .fl-row-content,
  .fl-row-content-wrap,
  .fl-col,
  .fl-col-content,
  .fl-module,
  .fl-module-content {
    max-width: none !important;
  }

  .fl-row-content {
    width: 100% !important;
    max-width: 100% !important;

    flex: none !important;
    -webkit-flex: none !important;
    -ms-flex: none !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .fl-row-content-wrap {
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* ================================
       FIX: FORCE COLUMNS TO STACK
       .fl-col-group is the flex container
       Beaver Builder uses to lay columns
       side-by-side. Without resetting it,
       .fl-col width:100% is overridden by
       each column's inline flex-basis.
    ================================= */

  .fl-col-group {
    display: block !important;
    width: 100% !important;
  }

  .fl-col {
    display: block !important;
    flex: 0 0 100% !important;
    -webkit-flex: 0 0 100% !important;
    -ms-flex: 0 0 100% !important;
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Catch inline flex-basis/width Beaver Builder injects per column */
  .fl-col[style*="flex-basis"],
  .fl-col[style*="width"] {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  .fl-col-content {
    width: 100% !important;
  }

  /* Text/table should use printable width */
  .fl-module-rich-text,
  .uabb-table {
    width: 100% !important;
    max-width: none !important;
  }

  .fl-module,
  .fl-module-content,
  .fl-rich-text,
  .fl-module-rich-text .fl-module-content,
  .fl-module-content .fl-rich-text {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;

  }

  /* Catch any inline width/max-width Beaver Builder injected directly */
  .fl-module[style*="width"],
  .fl-module-content[style*="width"] {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Beaver Builder "Custom Width" column setting - hard reset for print */
  .fl-col-group.fl-col-group-custom-width,
  .fl-col.fl-col-small-custom-width,
  .fl-col.full-width,
  .fl-col.no-design {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    -webkit-flex: 0 0 100% !important;
    -ms-flex: 0 0 100% !important;
    flex-basis: 100% !important;
  }

  .fl-col-group.fl-col-group-custom-width>.fl-col,
  .fl-col.fl-col-small-custom-width>.fl-col-content {
    width: 100% !important;
    max-width: 100% !important;
  }

  .fl-col.no-design .fl-col-content {
    padding: 10px !important;
  }

  /* Hide things that should not print */
  .pdf-print-button,
  .header-inner .fl-photo-img-svg,
  .print-hide,
  button,
  footer,
  nav,
  #cookie-notice,
  .fl-module-pp-announcement-bar,
  .no-design .uabb-imgicon-wrap,
  .print-code-none {
    display: none !important;
  }

  .features-card {
    border: 1px solid #000;
  }

  .full-width,
  .full-width h3,
  .full-width h2,
  .full-width .fl-module-rich-text {
    display: block;
    width: 100%;
  }

  /* ================================
     HEADINGS - SPACING
  ================================= */

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin-top: 0 !important;
    margin-bottom: 8px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* Give a little breathing room above headings that follow other content,
     but not at the very top of a section/page */
  h1+*,
  h2+*,
  h3+*,
  h4+*,
  h5+*,
  h6+* {
    margin-top: 4px !important;
  }

  /* If headings sit inside Beaver Builder modules, their wrapper
     often carries its own margin too — reset that as well */
  .fl-module-heading,
  .fl-module-heading .fl-module-content,
  .fl-heading {
    margin-top: 0 !important;
    margin-bottom: 8px !important;
  }


  body .pricing-package body .sticky-element {
    position: relative;
    top: 0;
    width: 100% !important;
  }

  .fl-module.full-width-print {
    display: block !important;
  }


  body .fl-module-rich-text,
  .tabs-content .fl-module-content {
    margin: 15px 0 !important;
  }

  img {
    max-width: 100% !important;
    height: auto !important;

  }

  .pp-toc-container.pp-toc-sticky,
  .pp-toc-body,
  .print-code-display,
  .print-code-display .pp-photo-content,
  .print-code-display .pp-photo-content-inner,
  .print-code-display .pp-photo-container,
  .print-code-display .uabb-imgicon-wrap,
  .print-code-display .uabb-image-content {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    transform: none !important;
  }

  .print-code-display .pp-photo-content-inner img,
  .print-code-display .uabb-imgicon-wrap .uabb-image-content img,
  .print-code-display,
  .print-code-display img {
    display: block !important;
    width: 150px !important;
    height: 150px !important;
    max-width: 150px !important;
    max-height: 150px !important;
    min-width: 150px !important;
    min-height: 150px !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    transform: none !important;
    object-fit: contain !important;
    margin: 30px auto;
  }

  body .print-code-display {
    width: 100% !important;
  }

  .uabb-table table,
  body .border-text-area,
  .no-head-row .uabb-table-inner-wrap .uabb-table-features .table-body-td {
    border: 1px solid #000
  }

  .uabb-table {
    width: 98% !important;
  }

  .uabb-table tr td:last-child,
  .uabb-table tr th:last-child {
    border-right: 1px solid #000 !important;
  }

  .pp-toc-container.pp-toc-sticky,
  .pp-toc-container .pp-toc-header {
    position: relative !important;
  }


}