/* Loaded only in the public site with media=print; the guard also protects previews. */
@media print {
	@page { margin: 15mm; }

	html:root, body, .wp-site-blocks {
		display: block !important;
		position: static !important;
		width: auto !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
		background: #fff !important;
	}
	body { font-size: 11pt; line-height: 1.45; }
	*, *::before, *::after {
		animation: none !important;
		transition: none !important;
		text-shadow: none !important;
		box-shadow: none !important;
	}
	:root body .wp-site-blocks, :root body .wp-site-blocks * {
		color: #111 !important;
		background-color: transparent !important;
		background-image: none !important;
	}
	:root body .wp-site-blocks .has-text-color { color: #111 !important; }
	/* Exclude interface chrome, not editorial links or accordion headings. */
	body :is(#wpadminbar, .skip-link, .aw-header__topbar, .aw-gradient-bar,
	.aw-header--sticky, .aw-header__actions, .aw-header__menu-source,
	.aw-header__navigation, .aw-header__drawer, [data-aw-backdrop],
	.aw-share-modal, .asca-a11y__panel, .asca-a11y__trigger, .asca-consent,
	[role="dialog"], .aw-header-action-tooltip, .asca-consent__manage-link, [data-asca-consent-allow],
	.wp-block-navigation, .wp-block-search, .aw-onepage-menu,
	.aw-notify-banner, .aw-breadcrumb__contact, .asca-social-share,
	.aw-social-share, .aws-share-bar-pattern, .wp-block-social-links, .aw-newsletter-sidebar,
	.aw-return-top, .aw-notify-message__dismiss, .aw-notify-evidence__dismiss,
	main form, .wp-block-query-pagination, .wp-block-spacer,
	.aw-cpt-content-style-01__sidebar, .aw-document-anchor-layout__nav-col,
	.aw-document-anchor-layout__nav-placeholder, .aw-document-anchor-layout__nav,
	aside, [role="complementary"], .asca-print-exclude,
	.aw-footer-logos, .aw-footer__bottom,
	.aw-footer__column:not(.aw-footer__column--contacts),
	.aw-footer .wp-block-image, .aw-footer__column--contacts img,
	.aw-expandable-text__actions, .aw-read-more__details > summary,
	.aw-read-more-advance__details > summary, .aw-asca-accordion__toggle,
	.aw-step-guide__status, .aw-step-guide__navigation, .aw-guide-step__frame-tabs,
	.aw-hero-carousel__controls, .aw-hero-carousel__pagination, .aw-hero-carousel__nav, .aw-hero-carousel__pause,
	.aw-hero-carousel__slide:not(:first-child), .aw-visual-band__media, .aw-visual-band__overlay,
	.asca-media-gallery__overlay, .pswp,
	.aw-hero__lead-actions, .aw-hero__orizzonti-logo,
	.asca-heading-area__bar, .aw-service-heading__bar, .wp-block-cover__image-background, .wp-block-cover__background) {
		display: none !important;
	}

	/* Keep the configured subsite brand once, at the start of the document. */
	.aw-header--primary, .aw-header__bar, .aw-header__left, .aw-header__brand {
		position: static !important;
		display: block !important;
		min-height: 0 !important;
		height: auto !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		transform: none !important;
		opacity: 1 !important;
		visibility: visible !important;
	}
	.aw-header--primary { padding-bottom: 5mm !important; }
	.aw-header__brand-link { display: flex !important; gap: 3mm !important; width: auto !important; text-decoration: none !important; }
	.aw-header__brand-mark, .aw-header__brand-symbol { width: auto !important; height: auto !important; flex: 0 0 auto !important; }
	.aw-header__brand-symbol img { width: auto !important; height: 15mm !important; max-width: 45mm !important; object-fit: contain !important; }
	.aw-header__brand-copy { display: block !important; }
	.aw-header__institution { display: block; font-size: 16pt !important; line-height: 1.2 !important; }
	.aw-header__tagline { display: block; font-size: 10pt !important; }

	.aw-breadcrumb, .aw-breadcrumb__shell, .aw-breadcrumb__nav {
		display: block !important;
		position: static !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	.aw-breadcrumb { padding-block: 3mm !important; border-block: 1px solid #bbb; font-size: 9pt; }
	.aw-breadcrumb__list { display: block !important; margin: 0 !important; padding: 0 !important; list-style: none; }
	.aw-breadcrumb__item { display: inline !important; white-space: normal !important; }
	.aw-breadcrumb__item:not(:last-child)::after { content: " / " !important; margin: 0 1mm !important; }

	/* Linear flow allows long text to continue across sheets rather than clip. */
	main, .wp-block-post-content, .wp-block-columns, .wp-block-column,
	.aw-cpt-content-style-01, .aw-cpt-content-style-01__main,
	.aw-document-anchor-layout, .aw-document-anchor-layout__content-col,
	.aw-footer, .aw-footer-columns, .aw-footer-columns__inner, .aw-footer-columns__grid {
		display: block !important;
		position: static !important;
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		min-height: 0 !important;
		height: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
		border: 0 !important;
		float: none !important;
	}
	main :is(.alignfull, .alignwide, .is-layout-constrained > *) {
		max-width: 100% !important;
		margin-inline: 0 !important;
	}
	main > .wp-block-group { padding-block: 3mm !important; }
	.asca-heading-area, .asca-heading-area__content, .aw-service-heading, .aw-service-heading__content, .aw-hero, .wp-block-cover,
	.aw-hero-carousel__slide .wp-block-cover, .aw-hero-carousel__slide .wp-block-cover__inner-container,
	.aw-hero-carousel__slide .aw-hero-carousel__content-shell,
	.aw-hero__white-layer, .aw-hero__polygon, .aw-hero__lead-layer,
	.aw-hero__lead-container, .aw-hero__lead-inner {
		display: block !important;
		position: static !important;
		inset: auto !important;
		width: auto !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		min-block-size: 0 !important;
		max-block-size: none !important;
		margin: 0 !important;
		padding: 3mm 0 !important;
		overflow: visible !important;
		clip-path: none !important;
		transform: none !important;
	}
	.asca-heading-area::before, .asca-heading-area::after, .aw-service-heading::before, .aw-service-heading::after,
	.aw-hero::before, .aw-hero::after { display: none !important; }
	h1, .asca-heading-area__title { font-size: 22pt !important; line-height: 1.2 !important; margin-block: 3mm !important; }
	h2 { font-size: 16pt; }
	h3 { font-size: 13pt; }
	.asca-heading-area__subtitle, .aw-service-heading__subtitle, .asca-post-subtitle { font-size: 12pt !important; line-height: 1.4 !important; }
	h1, h2, h3, h4, h5, h6, dt, summary { break-after: avoid; }
	p, li, dd { orphans: 3; widows: 3; overflow-wrap: anywhere; }
	a { text-decoration: none !important; overflow-wrap: anywhere; }
	pre { white-space: pre-wrap !important; overflow-wrap: anywhere; }
	img, svg { max-width: 100%; }
	main img { height: auto; max-height: 230mm; object-fit: contain; }
	figure, tr { break-inside: avoid; }
	.wp-block-table { overflow: visible !important; }
	table { width: 100% !important; table-layout: fixed; border-collapse: collapse; }
	thead { display: table-header-group; }
	th, td { overflow-wrap: anywhere; }
	/* These two fields are deliberately visually hidden by the fullscreen template. */
	.asca-hero-fullscreen__editor-title, .asca-hero-fullscreen__editor-subtitle,
	main > .wp-block-post-title.screen-reader-text {
		position: static !important; clip: auto !important; clip-path: none !important;
		width: auto !important; height: auto !important; overflow: visible !important; white-space: normal !important;
	}

	html.aw-reveal-ready .aw-reveal, html.aw-reveal-ready .aw-reveal:not(.is-revealed) {
		opacity: 1 !important; visibility: visible !important; transform: none !important;
	}
	.aw-asca-accordion, .aw-asca-accordion__item, .aw-asca-accordion__panel,
	.aw-expandable-text:not(.aw-expandable-text--static) .aw-expandable-text__details,
	main details, .aw-step-guide__steps, .aw-guide-step,
	.aw-guide-step .aw-guide-step__frame, .aw-guide-step .aw-guide-step__frame-text, .aw-guide-step .aw-guide-step__legend,
	.aw-hero-carousel, .aw-hero-carousel__viewport, .aw-hero-carousel__track, .aw-hero-carousel__slide {
		display: block !important;
		position: static !important;
		max-height: none !important;
		height: auto !important;
		max-block-size: none !important;
		min-inline-size: 0 !important;
		width: auto !important;
		overflow: visible !important;
		content-visibility: visible !important;
		opacity: 1 !important;
		transform: none !important;
		break-inside: auto;
	}
	.aw-asca-accordion__item { margin-block: 4mm; border: 0; }
	.aw-asca-accordion__heading, .aw-asca-accordion__trigger { border: 0 !important; padding: 0 !important; }
	.aw-asca-accordion__heading { break-after: avoid; }
	.aw-asca-accordion__panel { padding: 2mm 0 !important; }
	.aw-asca-accordion__title { font-size: 14pt !important; }
	.aw-asca-accordion__marker { width: auto; height: auto; flex-basis: auto; }
	main summary { font-weight: bold; list-style: none; }
	main summary::marker { content: ""; }
	/* Remove grid fragmentation from CPT fact sheets with multi-page descriptions. */
	.asca-teacher-details, .asca-teaching-details { container-type: normal !important; }
	main .asca-details-table, main .asca-details-table__list, main .asca-details-table__row {
		display: block !important; overflow: visible !important; break-inside: auto;
	}
	main .asca-details-table__row { padding-block: 2mm !important; }
	main .asca-details-table__row :is(dt, dd) { margin: 0 !important; }
	main .asca-details-table__media { max-width: 35mm !important; margin-bottom: 3mm; }
	main .asca-editorial-details__image { aspect-ratio: auto !important; }
	main .asca-editorial-details__image--placeholder { display: none !important; }
	main .asca-editorial-details__image > img { height: auto !important; }
	.aw-footer-columns { margin-top: 7mm !important; padding-top: 3mm !important; border-top: 1px solid #bbb !important; }
	.aw-footer__column--contacts { display: block !important; width: auto !important; padding: 0 !important; }
	.aw-footer__column--contacts .aw-footer__label { font-size: 11pt !important; margin-block: 0 2mm !important; }
	.aw-footer__text--contacts { font-size: 9pt !important; line-height: 1.4 !important; margin: 0 !important; }

	/* Slideshow: a deterministic first slide, with readable text and no empty cover. */
	body .aw-hero-carousel :is(.aw-hero-carousel__slide, .wp-block-cover, .wp-block-cover__inner-container,
	.aw-hero-carousel__content-shell, .aw-hero-carousel__content, .aw-hero-carousel__intro-box) {
		display: block !important;
		width: auto !important; inline-size: auto !important;
		min-width: 0 !important; min-inline-size: 0 !important;
		height: auto !important; block-size: auto !important;
		min-height: 0 !important; min-block-size: 0 !important;
		max-height: none !important; max-block-size: none !important;
		margin: 0 !important; padding: 0 !important;
		contain: none !important; overflow: visible !important;
		position: static !important; transform: none !important;
	}
	.aw-hero-carousel .aw-hero-lqip::before { display: none !important; }
	.aw-graphic-band::before, .aw-graphic-band::after { display: none !important; }
	.aw-hero-carousel .aw-hero-carousel__title { font-size: 18pt !important; padding: 0 !important; }
	.aw-hero-carousel .aw-hero-carousel__text { font-size: 11pt !important; }
	.aw-hero-carousel { margin-block: 4mm !important; }

	/* Screen banners place text over absolute-positioned photos: print the text in flow. */
	body :is(.aw-visual-band, .aw-visual-band__inner, .aw-visual-band__content,
	.aw-visual-band__foreground, .aw-section-info) {
		display: block !important; position: static !important;
		width: auto !important; height: auto !important;
		min-block-size: 0 !important; max-block-size: none !important;
		min-height: 0 !important; max-height: none !important;
		padding: 3mm 0 !important; margin: 0 !important;
		overflow: visible !important; transform: none !important;
	}
	.aw-visual-band__foreground img { max-height: 25mm !important; width: auto !important; }
	body main .aw-graphic-band__logo { position: static !important; margin: 0 !important; }
	body main .aw-graphic-band__logo img { max-height: 25mm !important; filter: brightness(0); }
	body main :is(.aw-overview-section, .aw-overview__side, .aw-icon-card-intro, .aw-newsletter-band) {
		margin-block: 4mm !important; padding-block: 3mm !important; min-height: 0 !important;
	}
	body main .aw-graphic-band { min-height: 0 !important; height: auto !important; }
	body .aw-newsletter-band__quote-icon { display: none !important; }
	body main .aw-icon-number-band { padding-block: 3mm !important; }
	body main .aw-icon-number-band__grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3mm !important; }
	.aw-icon-number-band .aw-icon-number { padding: 0 !important; }
	.aw-icon-number-band .aw-icon-number__label { font-size: 9pt !important; }

	/* Loaded media must not wait for scroll/reveal animations on paper. */
	body .asca-media-gallery--progressive .asca-media-gallery__item.loading,
	body .aw-conditional-featured-image--progressive.loading {
		opacity: 1 !important; visibility: visible !important; transform: none !important;
	}
	body main :is(.wp-block-image, .wp-block-post-featured-image, .aw-post-card-vert__media,
	.aw-post-card-vert__media-inner, .asca-media-gallery__link, .asca-media-gallery__frame) {
		height: auto !important; min-height: 0 !important; max-height: none !important;
		aspect-ratio: auto !important; overflow: visible !important;
		transform: none !important;
	}
	body main :is(.wp-block-image, .wp-block-post-featured-image) img {
		position: static !important; display: block !important;
		width: auto !important; height: auto !important;
		max-width: 100% !important; max-height: 90mm !important;
		aspect-ratio: auto !important; object-fit: contain !important; margin-inline: auto !important;
	}
	body main .aw-post-card-vert {
		display: block !important; min-height: 0 !important; height: auto !important;
		overflow: visible !important; margin-block: 4mm !important;
		break-inside: avoid;
	}
	.aw-post-card-vert__media::after { display: none !important; }
	body main .aw-post-card-vert__image {
		display: block !important; width: auto !important; height: auto !important;
		max-width: 100% !important; max-height: 35mm !important; aspect-ratio: auto !important; object-fit: contain !important;
	}
	body main .asca-media-gallery__grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 2mm !important; }
	.asca-media-gallery__item { break-inside: avoid; }
	body main .asca-media-gallery__image {
		width: 100% !important; height: auto !important; max-height: 32mm !important; object-fit: contain !important;
	}
	.aw-icon-card { break-inside: avoid; }
	/* Print final counter values even when the scroll animation has not started. */
	[data-aw-counter][data-asca-print-value] { font-size: 0 !important; }
	[data-aw-counter][data-asca-print-value]::after { content: attr(data-asca-print-value); font-size: 20pt; }
}
