/* Print output is intentionally loaded as a standalone stylesheet after the screen bundle.
 * Keep it independent from generated CSS so the same rules apply in development and production. */
@media print {
	@page {
		size: A4;
		margin: 15mm 13mm 17mm;
	}

	html,
	body {
		width: auto !important;
		min-width: 0 !important;
		height: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
		background: #fff !important;
		color: #111 !important;
		font-size: 9.5pt;
	}

	*,
	*::before,
	*::after {
		box-shadow: none !important;
		text-shadow: none !important;
		animation: none !important;
		transition: none !important;
	}

	/* Navigation, transient UI, forms and calls to action do not belong in a document. */
	#preloader,
	.loader,
	.header,
	.navigation,
	.mobile-menu-icon-wraper,
	.side-menu-btn,
	.side-menu-btn-fix,
	.scroll-top,
	.cookie-wrapper,
	.cc-window,
	.cc-revoke,
	#welcomeBanner,
	#developmentBanner,
	.band-footer-recurrent,
	.band-footer-development,
	.band-footer-quote-modal,
	.quote-modal,
	.band-secondary-cta,
	.intro-hero .actions,
	section.dark-bg.ptb-60,
	.social-share-buttons,
	form,
	.btn,
	button,
	input,
	select,
	textarea,
	iframe,
	video,
	.youtubevideo,
	.spotifypodcast,
	.applepodcast {
		display: none !important;
	}

	/* Remove decoration that consumes ink or obscures the document hierarchy. */
	.intro-hero::before,
	.band-pricing::before,
	.band-illustration,
	.band-document__figure,
	.band-report-output__page-header,
	.band-report-output__lines,
	svg[aria-hidden="true"],
	[aria-hidden="true"] canvas {
		display: none !important;
	}

	body,
	main,
	section,
	.block,
	[class^="band-"],
	[class*=" band-"] {
		background-color: #fff !important;
		background-image: none !important;
		color: #111 !important;
	}

	body * {
		color: #111 !important;
	}

	a,
	a:visited {
		color: #111 !important;
		text-decoration: underline;
	}

	a[href^="https://wa.me/"],
	a[href*="api.whatsapp.com"],
	*:has(> a[href^="https://wa.me/"]:only-child),
	*:has(> a[href*="api.whatsapp.com"]:only-child) {
		display: none !important;
	}

	/* Bootstrap prints destinations by default; long URLs make Corporate pages unreadable. */
	a[href]::after,
	a[href]::before,
	abbr[title]::after {
		content: none !important;
	}

	.container,
	.container-fluid,
	.wrap,
	[class$="__wrap"] {
		width: 100% !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding-right: 0 !important;
		padding-left: 0 !important;
	}

	.row {
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	[class^="col-"],
	[class*=" col-"] {
		padding-right: 0 !important;
		padding-left: 0 !important;
	}

	section,
	.block,
	[class^="band-"],
	[class*=" band-"] {
		min-height: 0 !important;
		padding-top: 2.5mm !important;
		padding-bottom: 2.5mm !important;
	}

	.ptb-100,
	.ptb-80,
	.ptb-60,
	.pt-100,
	.pt-80,
	.pt-60,
	.pb-100,
	.pb-80,
	.pb-60 {
		padding-top: 4mm !important;
		padding-bottom: 4mm !important;
	}

	.mt-80,
	.mt-60,
	.mt-45,
	.mtb-80,
	.mtb-60,
	.mtb-45,
	.mb-80,
	.mb-60,
	.mb-45 {
		margin-top: 4mm !important;
		margin-bottom: 4mm !important;
	}

	.intro-hero,
	.intro-hero-service,
	.intro-hero-page {
		min-height: 0 !important;
		height: auto !important;
		padding-top: 8mm !important;
		background: #fff !important;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6,
	.title,
	.component-section-title,
	.component-section-title-heading,
	.band-courses__heading,
	.band-report-output__heading {
		break-after: avoid-page;
		page-break-after: avoid;
	}

	p,
	li {
		orphans: 3;
		widows: 3;
	}

	img {
		max-width: 100% !important;
		height: auto !important;
		break-inside: avoid-page;
		page-break-inside: avoid;
	}

	table {
		width: 100% !important;
		max-width: 100% !important;
		table-layout: auto !important;
		font-size: 9pt;
	}

	tr,
	thead,
	tfoot {
		break-inside: avoid-page;
		page-break-inside: avoid;
	}

	.band-audiences__cell,
	.band-courses__card,
	.band-document__card,
	.band-matrix__cell,
	.band-report-output__page,
	.band-situations__item,
	.faq-item,
	.blog-post blockquote {
		break-inside: avoid-page;
		page-break-inside: avoid;
	}

	.band-audiences__cell,
	.band-compliance__cell,
	.band-courses__card,
	.band-matrix__cell,
	.band-report-output__page,
	.band-situations__item,
	.page-services .services-row > div {
		text-align: left !important;
	}

	.band-audiences__description,
	.band-compliance__description,
	.band-courses__card p,
	.band-report-output__page p,
	.page-services .services-row p {
		text-align: left !important;
	}

	.band-document,
	.band-document__wrap,
	.band-compliance,
	.band-compliance__wrap,
	.band-compliance__grid {
		break-inside: auto !important;
		page-break-inside: auto !important;
	}

	.band-audiences__grid,
	.band-compliance__grid,
	.band-courses__grid,
	.band-report-output__pages {
		margin-top: 4mm !important;
		gap: 4mm !important;
	}

	.band-audiences__cell {
		min-height: 0 !important;
	}

	.band-audiences__grid,
	.band-report-output__pages {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	/* A print CSS grid is fragmented as one unit by Chromium. Inline blocks keep the
	 * three-column layout while allowing compliance rows to continue on the next page. */
	.band-compliance__grid {
		display: block !important;
	}

	.band-compliance__cell {
		display: inline-block !important;
		box-sizing: border-box;
		width: 32%;
		margin: 0 1.5% 4mm 0;
		vertical-align: top;
	}

	.band-compliance__cell:nth-child(3n) {
		margin-right: 0;
	}

	.band-courses__grid,
	.page-services .services-row {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 3mm !important;
	}

	.page-services .services-row {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 2mm 4mm !important;
	}

	.page-services .services-row::before,
	.page-services .services-row::after {
		display: none !important;
	}

	.page-services .services-row > div {
		float: none !important;
		margin-top: 1mm !important;
		margin-bottom: 1mm !important;
		width: auto !important;
		min-height: 0 !important;
		break-inside: avoid-page;
		page-break-inside: avoid;
	}

	.page-services .page-icon-top {
		display: none !important;
	}

	/* Chromium does not reliably honor break-after on the family heading. Start a
	 * new page only for the final compact families that otherwise orphaned. */
	.page-services #secops + .dark-bg,
	.page-services #ssdlc + .dark-bg {
		break-before: page;
		page-break-before: always;
	}

	.page-services .dark-bg {
		break-after: avoid-page;
		page-break-after: avoid;
	}

	.page-services .title-end {
		display: inline;
		padding-right: 0;
	}

	.page-services .title-end em {
		display: inline;
		max-width: none;
		white-space: normal;
		overflow-wrap: anywhere;
		hyphens: auto;
		transform: none;
	}

	.page-services .title-dot {
		display: none !important;
	}

	.page-services .services-row h3,
	.page-services .services-row h4,
	.page-services .services-row h5 {
		margin: 0 0 1.5mm !important;
		font-size: 11pt !important;
	}

	.page-services .services-row p {
		margin: 0 !important;
		font-size: 9pt !important;
		line-height: 1.35 !important;
	}

	.band-document__wrap {
		display: block !important;
	}

	.band-document__content {
		width: 100% !important;
	}

	.band-pricing {
		text-align: left !important;
	}

	.band-pricing__price {
		justify-content: flex-start !important;
	}

	.band-pricing__amount {
		font-size: 34pt !important;
	}

	.band-pricing__copy {
		max-width: none !important;
		margin: 4mm 0 0 !important;
	}

	/* Closed details hide their content in the browser UA stylesheet. Print every answer. */
	.faq-item details,
	.faq-item details:not([open]),
	.faq-item details.is-animating {
		height: auto !important;
		overflow: visible !important;
	}

	.faq-item details:not([open]) > :not(summary),
	.faq-a {
		display: block !important;
		opacity: 1 !important;
	}

	.faq-q {
		padding: 2.5mm 0 1mm !important;
		font-size: 13pt !important;
	}

	.faq-q .plus,
	.faq-a .faq-link {
		display: none !important;
	}

	.faq-a {
		max-width: none !important;
		padding: 0 0 2.5mm !important;
	}

	.footer {
		margin-top: 8mm;
		break-inside: avoid-page;
		page-break-inside: avoid;
		padding: 6mm 0 0 !important;
		border-top: 1px solid #bbb;
		background: #fff !important;
	}
}
