/* ==========================================================================
   Print stylesheet for michel-gruppe.ch
   Loaded via <link rel="stylesheet" media="print" ...> so all rules apply
   only when the document is printed.
   Built against the snapshot at /scripts/printcss/index.html and the
   compiled app.css + hotfix.css.
   ========================================================================== */
*{}
/* ---- Type scale -----------------------------------------------------------
   Single source of truth for font sizes/weights across the whole print
   stylesheet. Seven tokens; everything else is one of these. */
:root {
	--print-hero-size: 32pt;
	--print-hero-weight: 300;

	--print-h1-size: 18pt;
	--print-h1-weight: 600;

	--print-h2-size: 14pt;
	--print-h2-weight: 600;

	--print-h3-size: 13pt;
	--print-h3-weight: 600;

	--print-h4-size: 12pt;
	--print-h4-weight: 600;

	--print-body-size: 11pt;
	--print-body-weight: 400;

	--print-meta-size: 9pt;
	--print-meta-weight: 400;
}

/* ---- Page setup -----------------------------------------------------------
   Explicit page geometry + scaling resets so output is identical regardless
   of which printer/driver is selected. Some drivers (e.g. Epson) report a
   smaller printable width than A4 when the browser computes the print
   viewport, which can flip mobile media queries from app.css/timeline.css/
   hotfix.css. Pinning size, margins, and zoom mitigates that. */

@page {
	size: A4 portrait;
	margin: 18mm 14mm;
}

@page :first {
	margin-top: 12mm;
}

/* Force backgrounds we care about (card colors, hero images) to actually
   print. Most browsers strip background images by default; this hint asks
   them to keep them. */
html {
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
	/* min-width pins the print viewport's lower bound so mobile media
	   queries from app.css/hotfix.css/timeline.css don't trigger when a
	   printer driver reports a narrow printable area. We don't pin a max
	   width — the body should still fill whatever the driver actually
	   gives us, otherwise content prints at ~70% width. A4 minus the
	   left+right @page margins is 182mm. */
	min-width: 182mm !important;
	width: auto !important;
	max-width: none !important;
	zoom: 1 !important;
	-webkit-text-size-adjust: 100% !important;
	text-size-adjust: 100% !important;
}

html,
body {
	min-width: 182mm !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: #fff !important;
	color: #000 !important;
	font-size: var(--print-body-size);
	line-height: 1.4;
	overflow: visible !important;
	transform-origin: top left !important;
}

/* Reset transform-origin globally so any leftover transforms scale from a
   consistent anchor — printers handle origin differently. */
* {
	transform-origin: top left !important;
}

/* Bootstrap container resets — let containers be full width on paper. */
.container,
.container-fluid,
.container-lg,
.container-xl,
.container-xxl,
.container-navbar {
	width: 100% !important;
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Bootstrap rows: prevent negative margins from creating overflow. */
.row {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.row > [class*="col-"],
[class*="col-"] {
	padding-left: 4mm !important;
	padding-right: 4mm !important;
	float: none !important;
}

/* ---- Hide elements that don't belong on paper ---------------------------- */

#navbar-menu-pc,
#navbar-mobile,
.cookies-banner,
#cookie-consent-banner,
.modal,
.modal-backdrop,
.btn-search,
.nav-icons,
.nav-buttons,
#searchInput,
.search-results-list,
#searchLoading,
#searchFooter,
#noResults,
#modalSearch,
#modalEmergency,
.btn-emergency,
.fixed-bottom,
.fixed-top {
	display: none !important;
}

/* Show only the red logo from #navbar — hide every other navbar child. */
#navbar {
	display: block !important;
	position: static !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 0 2mm 0 !important;
	height: auto !important;
}
#navbar.top-nav,
#navbar.navbar.fixed-top {
	position: static !important;
	display: block !important;
}
#navbar .container-navbar {
	display: block !important;
	padding: 0 !important;
	margin: 0 !important;
}
#navbar .navbar-brand {
	display: inline-block !important;
}
#navbar .navbar-brand .logo-red {
	display: block !important;
	max-width: 40mm !important;
	height: auto !important;
}
#navbar .navbar-brand .logo-white,
#navbar .navbar-brand .logo-title,
#navbar .nav-buttons,
#navbar .nav-icons {
	display: none !important;
}

/* Hide swiper navigation/pagination — all slides will be shown statically. */
.swiper-button-prev,
.swiper-button-next,
.swiper-pagination,
.swiper-scrollbar,
.custom-swiper-navigation,
.custom-swiper-button-prev,
.custom-swiper-button-next,
.team-slide-control,
.slick-arrow,
.slick-dots {
	display: none !important;
}

/* Hide JS-driven timeline horizontal navigation (sticky bar). */
#timeline #h-timeline {
	display: none !important;
}

/* Hide “read more” / link icons & decorative arrows. */
.icon-arrow-down,
.icon-arrow-up,
.icon-arrow-left,
.icon-arrow-right,
.icon-angle-light-right,
.icon-link,
.icon-hamburger,
.icon-search,
.icon-close,
.icon-instagram,
.icon-linkedin,
.icon-facebook {
	display: none !important;
}

/* Hide visibility-hidden placeholder badges (cards use them as spacers). */
[style*="visibility:hidden"],
[style*="visibility: hidden"] {
	display: none !important;
}

/* ---- Reset positioning so the document flows ----------------------------- */

* {
	position: static !important;
	transform: none !important;
	float: none !important;
	overflow: visible !important;
	box-shadow: none !important;
	text-shadow: none !important;
	animation: none !important;
	transition: none !important;
}

/* Some elements need their position to remain (e.g. header-heading absolutely
   positioned). Re-allow relative wherever helpful. */
.header,
.header-slide,
.slide-content,
.section,
.card,
.media,
.image-wrap {
	position: relative !important;
}

/* ---- Typography ---------------------------------------------------------- */

body,
p,
li,
td,
th,
dd,
dt,
small {
	color: #000 !important;
}

h1, h2, h3, h4, h5, h6,
.h0, .h1, .h2, .h3, .h4, .h5, .h6 {
	color: #000 !important;
	page-break-after: avoid;
	break-after: avoid;
	page-break-inside: avoid;
	break-inside: avoid;
}

h1, .h1 { font-size: var(--print-h1-size) !important; font-weight: var(--print-h1-weight) !important; line-height: 1.15; margin: 0 0 6mm; }
h2, .h2 { font-size: var(--print-h2-size) !important; font-weight: var(--print-h2-weight) !important; line-height: 1.2;  margin: 0 0 5mm; }
h3, .h3 { font-size: var(--print-h3-size) !important; font-weight: var(--print-h3-weight) !important; line-height: 1.25; margin: 0 0 4mm; }
h4, .h4 { font-size: var(--print-h4-size) !important; font-weight: var(--print-h4-weight) !important; line-height: 1.3;  margin: 0 0 3mm; }
h5, .h5 { font-size: var(--print-body-size) !important; font-weight: var(--print-h4-weight) !important; margin: 0 0 3mm; }
h6, .h6 { font-size: var(--print-meta-size) !important; font-weight: var(--print-h4-weight) !important; margin: 0 0 3mm; }

.h0 { font-size: var(--print-h1-size) !important; }

/* Outline / display-style hero text shouldn’t balloon on paper. */
.text-outline,
.text-outline-white {
	color: #000 !important;
	-webkit-text-stroke: 0 !important;
}

/* Links: keep text readable, do not underline twice. */
a,
a:link,
a:visited {
	color: #000 !important;
	text-decoration: none !important;
}

/* Append URL after “real” outbound links (keep internal anchors clean). */
/* a[href^="http"]:not([href*="javascript:"])::after,
a[href^="mailto:"]::after,
a[href^="tel:"]::after {
	content: " (" attr(href) ")";
	font-size: 90%;
	font-weight: normal;
	word-break: break-all;
}
a[href^="mailto:"]::after { content: " (" attr(href) ")"; }
a[href^="tel:"]::after    { content: " (" attr(href) ")"; } */

/* Strip the protocol/scheme prefix for readability. */
/* a[href^="mailto:"]::after { content: " (" attr(href) ")"; } */

/* ---- Layout: avoid awkward page breaks ----------------------------------- */

.section,
section.section,
.card,
.team-slide .swiper-slide,
.section-teaser-v2,
.section-teaser-v2 .media,
.section-quote .row,
.section-quote-2,
.section-welcome,
.contact-info,
.card-link,
figure,
table,
tr,
img {
	page-break-inside: avoid;
	break-inside: avoid;
}

img {
	max-width: 100% !important;
	height: auto !important;
}

/* Sections: more breathing room, top divider for "section-top-line". */
.section {
	margin: 0 0 8mm 0 !important;
	padding: 0 !important;
}
.section-top-line {
	border-top: 1pt solid #000;
	padding-top: 4mm !important;
}
.section.section-top-line::before {
	height: 4mm !important;
}

.section-header {
	margin-bottom: 0mm !important;
	padding-bottom: 4mm !important;
}
.section-heading {
	font-size: var(--print-h2-size) !important;
	font-weight: var(--print-h2-weight) !important;
	margin: 0 0 3mm !important;
}

/* ---- Header / hero slide -------------------------------------------------
   Print treatment: drop the carousel entirely. No background image, no
   background colour variants, no overlay — only the first real slide's title
   is shown, rendered as a plain h2 in brand red. Robust against swiper.js's
   inline transform/opacity/visibility on inactive slides and loop-mode clones. */

#header,
#header.header-layout-medium,
#header.header-layout-small,
#header.header-layout-big,
#header.header-count-0,
#header.header-count-1,
#header.header-count-2 {
	display: block !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 0 6mm 0 !important;
	padding: 0 !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
}

/* Force the whole chain that wraps slide titles to render as plain blocks —
   defeats swiper.js's inline transform / width / opacity / visibility. */
#header .header-slide,
#header .header-slide .swiper,
#header .header-slide .swiper-wrapper,
#header .header-slide .swiper-wrapper > .swiper-slide,
#header .header-slide .slide-content,
#header .header-slide .slide-content .container {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	transform: none !important;
	inset: auto !important;
	flex: 0 0 auto !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
}

/* Drop the dark overlay and the image stack entirely. */
#header .header-slide .slide-content::before,
#header .header-slide .slide-content .images,
#header .header-slide .slide-content .images > div,
#header .header-slide .slide-content .image-mobile,
#header .header-slide .slide-content .image-pc {
	display: none !important;
	background: none !important;
	background-image: none !important;
}

/* Swiper loop-mode clones share the title of a real slide — drop them so the
   same title doesn't print twice. */
#header .header-slide .swiper-wrapper > .swiper-slide-duplicate {
	display: none !important;
}

/* Show only the first heading. We hide every header-heading that is preceded
   by another header-heading anywhere inside the wrapper, regardless of which
   .swiper-slide it lives in or which slide is currently active. */
#header .header-slide .swiper-wrapper .header-heading ~ .header-heading,
#header .header-slide .swiper-wrapper .swiper-slide ~ .swiper-slide .header-heading,
#header .header-slide .swiper-wrapper .swiper-slide ~ .swiper-slide h2 {
	display: none !important;
}

/* The title — only thing that remains. Plain h2 in brand red. */
#header .header-heading,
#header h2 {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	position: static !important;
	width: 100% !important;
	margin: 0 0 8mm 0 !important;
	padding: 0 !important;
	color: #AF1932 !important;
	background: none !important;
	font-size: var(--print-hero-size) !important;
	font-weight: var(--print-hero-weight) !important;
	line-height: 1.1 !important;
	text-align: left !important;
	text-transform: uppercase !important;
	letter-spacing: 0.02em !important;
}

/* Wipe every slide-color variant — none of them should paint anything. */
.swiper-slide-color-red,
.swiper-slide-color-white,
.swiper-slide-color-lightgrey,
.swiper-slide-color-grey,
.swiper-slide-color-olive,
.swiper-slide-color-beige,
.swiper-slide-color-brown,
.swiper-slide-color-green,
.swiper-slide-color-pink,
.swiper-slide-color-salmon {
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
}
.swiper-slide-color-red       .container h2,
.swiper-slide-color-white     .container h2,
.swiper-slide-color-lightgrey .container h2,
.swiper-slide-color-grey      .container h2,
.swiper-slide-color-olive     .container h2,
.swiper-slide-color-beige     .container h2,
.swiper-slide-color-brown     .container h2,
.swiper-slide-color-green     .container h2,
.swiper-slide-color-pink      .container h2,
.swiper-slide-color-salmon    .container h2 {
	color: #AF1932 !important;
}

/* ---- Breadcrumb ---------------------------------------------------------- */

.breadcrumb {
	background: transparent !important;
	padding: 0 !important;
	margin: 0 0 10mm 0 !important;
	font-size: var(--print-meta-size);
	overflow: visible !important;
	white-space: normal !important;
}
.breadcrumb .breadcrumb-item,
.breadcrumb .breadcrumb-item.active,
.breadcrumb .breadcrumb-item + .breadcrumb-item {
	display: inline !important;
	color: #000 !important;
	padding-left: 0 !important;
	text-decoration: none !important;
}
/* Add a ">" separator before every breadcrumb item except the first.
   The theme's app.css uses content: "\e914" with font-family: "MG-Icons"
   (an icon font) — we have to override BOTH the content and the font-family,
   otherwise ">" gets rendered in the icon font and shows as nothing. */
.breadcrumb .breadcrumb-item + .breadcrumb-item::before {
	content: "> " !important;
	font-family: inherit !important;
	color: #000 !important;
	padding: 0 0.3em 0 0.8em !important;
	margin: 0 !important;
	float: none !important;
	display: inline !important;
	position: static !important;
	left: auto !important;
	top: auto !important;
	transform: none !important;
	text-decoration: none !important;
}
/* The icon element itself carries font-family: "MG-Icons" !important from
   app.css. Override it to the body font so the "Home" text renders in
   sans-serif rather than falling through to a system serif. */
.breadcrumb .icon-home,
.breadcrumb i.icon-home {
	font-family: inherit !important;
}
.breadcrumb .icon-home::before {
	content: "Home";
	font-family: inherit !important;
}

/* ---- Swiper carousels (teams / cards) — show every slide, wrap to grid -- */

.swiper-container,
.swiper {
	overflow: visible !important;
}
.swiper-wrapper {
	display: flex !important;
	flex-wrap: wrap !important;
	transform: none !important;
	width: 100% !important;
}
.swiper-slide {
	width: 50% !important;
	max-width: 50% !important;
	flex: 0 0 50% !important;
	margin: 0 !important;
	padding: 2mm !important;
	page-break-inside: avoid;
	break-inside: avoid;
}
/* Swiper.js clones slides ("loop mode") so the carousel can scroll
   infinitely. With 2 slides it often creates 4 slide elements (2 originals +
   2 clones); without this hide rule the clones print on top of / next to
   the originals and look like duplicated/overlapping cards. */
.swiper-slide-duplicate,
.swiper-slide.swiper-slide-duplicate {
	display: none !important;
}

/* The “card” cards (.section-cards) are wider and have more text — keep
   them at one third so three fit per row when the page allows. */
.section-cards .swiper-slide {
	width: 33.333% !important;
	max-width: 33.333% !important;
	flex: 0 0 33.333% !important;
}

/* ---- Cards (general) ----------------------------------------------------- */

.card {
	border: 1pt solid #ccc !important;
	border-radius: 4pt !important;
	color: #000 !important;
	padding: 4mm !important;
	min-height: 0 !important;
	page-break-inside: avoid;
	break-inside: avoid;
}
.card * {
	color: inherit !important;
}
.card .card-body {
	padding: 0 !important;
	min-height: 0 !important;
}

/* Cards that paint a portrait image as background should still show that
   image — they hold most of a "team card"'s information. Compact for print:
   - min-height gives the card a sensible portrait-shaped footprint
   - padding-top reserves space for the image; card-body sits beneath as caption
   - height: auto lets cards with longer bios grow rather than clip */
.team-slide .card,
.section-teams .team-slide .card,
section.section .team-slide .card {
	background-size: cover !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	color: #fff !important;
	min-height: 90mm !important;
	height: auto !important;
	border: 0 !important;
	padding: 70mm 0 0 0 !important;
	margin: 0 !important;
	aspect-ratio: auto !important;
}

/* Carousel cards inside .section-teams (.card-type-carousel) are content
   cards with a solid background colour, not portrait photos. They don't
   need the 70mm photo well — let the body fill the card. We can't preserve
   the inline background-color via !important (it'd be overridden by the
   .card rule), so we just give all carousel cards a light brand-neutral
   background and dark text for readable print. */
.team-slide .card.card-type-carousel,
.section-teams .team-slide .card.card-type-carousel,
section.section .team-slide .card.card-type-carousel {
	min-height: 90mm !important;
	height: auto !important;
	padding: 4mm !important;
	/*background-color: #f4f4f0 !important;*/
	background-image: none !important;
	color: #000 !important;
	border: 1pt solid #ccc !important;
}
.team-slide .card.card-type-carousel *,
.section-teams .team-slide .card.card-type-carousel * {
	color: #000 !important;
}
/* Carousel card body copy ships with .font-weight-bold in the source markup
   (Bootstrap utility = 700). On paper that reads heavy; flatten to normal
   so it matches all other Fliesstext. The .card-name keeps its weight via
   the more-specific .card-name rule below. */
.team-slide .card.card-type-carousel .card-text,
.team-slide .card.card-type-carousel .card-text.font-weight-bold,
.section-teams .team-slide .card.card-type-carousel .card-text,
.section-teams .team-slide .card.card-type-carousel .card-text.font-weight-bold {
	font-weight: var(--print-body-weight) !important;
}
/* Carousel card titles ship with .text-underline in the source markup —
   matches "Print Cards (Normal)" once the underline is dropped. */
.team-slide .card.card-type-carousel .card-name,
.team-slide .card.card-type-carousel .card-name.text-underline,
.section-teams .team-slide .card.card-type-carousel .card-name,
.section-teams .team-slide .card.card-type-carousel .card-name.text-underline {
	text-decoration: none !important;
}
.team-slide .card.card-type-carousel .card-body,
.section-teams .team-slide .card.card-type-carousel .card-body {
	background: transparent !important;
	border-radius: 0 !important;
	padding: 0 !important;
	color: #000 !important;
}

/* The real culprits for big inter-card gaps:
   1. swiper-bundle.min.css sets .swiper-slide { height: 100% } and
      .swiper-wrapper { height: 100% }.
   2. swiper.js sets an inline height: Xpx on the .swiper element, sized
      to the tallest pre-print slide.
   3. .swiper-wrapper is display: flex with default align-items: stretch.
   Together: every slide is forced to wrapper-height, so short cards leave
   tall empty stretches behind them. Force the whole thing to auto-size. */
.section-teams .team-slide,
.section-teams .team-slide .swiper,
.section-teams .team-slide .swiper-wrapper,
.team-slide,
.team-slide .swiper,
.team-slide .swiper-wrapper {
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	align-items: flex-start !important;
	align-content: flex-start !important;
}
.section-teams .team-slide .swiper-slide,
.team-slide .swiper-slide {
	align-self: flex-start !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
}
.team-slide .card * {
	color: #fff !important;
}
.team-slide .card .card-body,
.section-teams .team-slide .card .card-body {
	display: block !important;
	background: rgba(0, 0, 0, 0.55);
	padding: 2mm 3mm !important;
	margin: 0 !important;
	border-radius: 4pt !important;
	min-height: 0 !important;
	height: auto !important;
	max-height: none !important;
}
/* Reset min-height: 8rem on .card-text inside team cards (set by app.css). */
.team-slide .card .card-text,
.section-teams .team-slide .card .card-text {
	min-height: 0 !important;
	margin: 0 !important;
}
.team-slide .card .card-name,
.section-teams .team-slide .card .card-name {
	margin: 0 !important;
}
/* Honorific / suffix line that follows the name (e.g. "Dr. med.", "PD Dr.
   med."). Source markup is just <p class="mb-0">…</p> with no class hook,
   so we target it via the adjacent-sibling selector. Without this they sit
   flush against the underlined name above. */
.team-slide .card .card-body .card-name + p,
.section-teams .team-slide .card .card-body .card-name + p {
	margin: 1mm 0 0 0 !important;
	min-height: 1.4em !important;
}
/* When a card has no honorific, the suffix <p> is omitted entirely — without
   compensation the dark card-body below those cards prints noticeably
   shorter than its siblings. Reserve the same phantom line via a pseudo on
   the name so all cards in a row line up. */
.team-slide .card .card-body .card-name:not(:has(+ p))::after,
.section-teams .team-slide .card .card-body .card-name:not(:has(+ p))::after {
	content: "" !important;
	display: block !important;
	min-height: 1.4em !important;
	margin-top: 1mm !important;
}

/* Reset hotfix.css aspect-ratio rules — they expect viewport units that
   don’t make sense on paper. */
.section-cards.section-cards-height-small  .card-body,
.section-cards.section-cards-height-medium .card-body,
.section-cards.section-cards-height-large  .card-body,
.section-teams.section-teams-height-small  .team-slide .card,
.section-teams.section-teams-height-medium .team-slide .card,
.section-teams.section-teams-height-large  .team-slide .card {
	aspect-ratio: auto !important;
	max-width: none !important;
}

/* Subtitle pill ("Plakette") — render as plain bold lead-in. The source
   markup uses .btn-outline / .btn-outline-light which carry uppercase +
   letter-spacing + horizontal padding from app.css; flatten all of them. */
.card-subtitle,
a.card-subtitle,
a.card-subtitle.btn-outline,
a.card-subtitle.btn-outline-light {
	display: block !important;
	border: 0 !important;
	background: transparent !important;
	padding: 0 0 1mm 0 !important;
	margin: 0 !important;
	font-weight: var(--print-h2-weight) !important;
	font-size: var(--print-meta-size) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.card-subtitle span,
a.card-subtitle span {
	text-transform: none !important;
	letter-spacing: normal !important;
}
/* Override Bootstrap .mb-2 margin-bottom on .card-subtitle in section-cards. */
.section-cards .card-subtitle,
.section-cards a.card-subtitle.mb-2 {
	margin: 0 0 3mm 0 !important;
	padding-bottom: 0 !important;
}
.card-subtitle span {
	display: inline !important;
	overflow: visible !important;
	-webkit-line-clamp: unset !important;
	-webkit-box-orient: unset !important;
}

.card-title,
a.card-title,
.card-link-title,
a.card-link-title,
.card-name {
	font-size: var(--print-h2-size) !important;
	font-weight: var(--print-h2-weight) !important;
	margin: 0 0 2mm 0 !important;
	color: inherit !important;
}

.card-text,
.card-link-text {
	font-size: var(--print-body-size) !important;
	margin: 0 0 2mm 0 !important;
	color: inherit !important;
}
.card-link {
	font-weight: var(--print-h2-weight) !important;
}
/* Hide "Mehr" CTAs inside cards — paper has no clickable affordance.
   Scoped to .card so the .card-link tiles in .section-card-links stay. */
.card a.card-link,
.card .card-body > .card-link {
	display: none !important;
}

/* ---- Section: cards (.section-cards) ------------------------------------- */

.section-cards .card {
	/* background-color: #f4f4f0 !important; */ /* fallback if inline bg lost */
	min-height: 90mm !important;
	height: auto !important;
	margin: 0 !important;
}

/* Same auto-sizing fix as team-slide: swiper-bundle.min.css forces 100%
   heights, swiper.js sets a fixed inline height, and align-items: stretch
   makes all slides in a row match the tallest. Force the chain to auto. */
.section-cards .row.card-slide-mobile,
.section-cards .swiper,
.section-cards .swiper-wrapper {
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	align-items: flex-start !important;
	align-content: flex-start !important;
}
/* The .swiper is a direct child of .row.card-slide-mobile (no .col-* in
   between). Bootstrap's .row is display:flex, which makes .swiper a flex
   item that shrinks to content width — collapsing the row to a narrow
   centered block. Force the row to plain block flow and the .swiper to
   span the full row so the inner slides can resolve their percentage
   widths against a sane parent. Without this, two-card carousels render
   as a constrained "merged" rectangle. */
.section-cards .row.card-slide-mobile {
	display: block !important;
	width: 100% !important;
}
.section-cards .swiper {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 100% !important;
}
.section-cards .swiper-wrapper > .swiper-slide {
	align-self: flex-start !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
}
/* Bootstrap .mt-1 / .mt-md-2 utilities on the cards themselves add a small
   top margin that compounds with the slide's 2mm padding — zero them. */
.section-cards .card.mt-1,
.section-cards .card.mt-md-2 {
	margin-top: 0 !important;
}

/* ---- Section: teams (.section-teams) ------------------------------------- */

/* Portrait-photo team cards: render the subtitle as a plain meta line, flush
   with the card's left edge so it aligns with the name/text below. The
   translucent-pill treatment used on screen would visually offset the text
   by its left padding and looks scrappy on paper. Zero padding/margin so
   the subtitle→name gap matches the name→suffix gap (~1mm from the suffix's
   own margin-top). */
.section-teams .team-slide .card:not(.card-type-carousel) .card-subtitle,
.section-teams .team-slide .card:not(.card-type-carousel) a.card-subtitle.btn-outline,
.section-teams .team-slide .card:not(.card-type-carousel) a.card-subtitle.btn-outline-light {
	display: block !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
/* Print Cards Karussell etc.: re-flatten the subtitle inside carousel cards
   so the .section-teams pill rule above doesn't re-add padding / inline-block
   / background. Specificity has to beat the base .card-subtitle styling. */
.section-teams .team-slide .card.card-type-carousel .card-subtitle,
.section-teams .team-slide .card.card-type-carousel a.card-subtitle.btn-outline,
.section-teams .team-slide .card.card-type-carousel a.card-subtitle.btn-outline-light {
	display: block !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 0 1mm 0 !important;
	margin: 0 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}

/* ---- Section: contact ---------------------------------------------------- */

/* Kill Bootstrap padding/margin utilities that bloat this section on paper. */
section.section.section-contact,
section.section.section-contact.pb-5,
section.section.section-contact.pb-lg-10 {
	padding-bottom: 10mm !important;
	margin-bottom: 10mm !important;
}
.section-contact .section-body,
.section-contact .section-body.pt-2 {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
/* Outer columns of the section (heading row + content row) get a small
   top/bottom margin for vertical rhythm. Force 50% width regardless of
   viewport — Bootstrap's `.col-md-6 { flex: 0 0 50% }` only fires at
   min-width 768px, but print viewports are typically ~688px so without
   this override the columns stack 100% width. */
.section-contact > .container > .section-body > .row > [class*="col-"],
.section-contact .col-md-6 {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-top: 4mm !important;
	margin-bottom: 4mm !important;
	flex: 0 0 50% !important;
	max-width: 50% !important;
	width: 50% !important;
}
/* Force the .row to flex side-by-side regardless of which Bootstrap
   responsive rule is in effect for the print viewport. */
.section-contact > .container > .section-body > .row {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
}
/* Inner columns inside .contact-info (image + details) must NOT inherit
   that top/bottom margin. */
.section-contact .contact-info > [class*="col-"],
.section-contact .contact-info .col-4,
.section-contact .contact-info .col-8 {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
/* And the wrapper + first child inside .col-8 too — defensive against any
   inherited top spacing on .contact-details / .contact-name. */
.section-contact .contact-details,
.section-contact .contact-details > *:first-child,
.section-contact .contact-name {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
.section-contact .section-contact-heading,
.section-contact h4.section-contact-heading.mb-4,
.section-contact h4.section-contact-heading.mb-lg-9 {
	font-size: var(--print-meta-size) !important;
	letter-spacing: 0.05em;
	border-top: 1pt solid #000;
	padding: 2mm 0 0 0 !important;
	margin: 0 0 3mm 0 !important;
}
.section-contact .contact-info,
.section-contact .contact-info.mb-4 {
	margin: 0 0 4mm 0 !important;
}
.section-contact .contact-info img {
	max-width: 28mm !important;
	border-radius: 2pt;
}
.section-contact .contact-info .contact-name {
	font-size: var(--print-h3-size) !important;
	font-weight: var(--print-h2-weight) !important;
	text-decoration: underline;
	text-underline-offset: 2pt;
	margin: 0 0 2mm !important;
}
.section-contact .contact-info .contact-address,
.section-contact .contact-info .contact-phone,
.section-contact .contact-info .contact-email {
	margin: 0 0 1mm !important;
	font-size: var(--print-body-size) !important;
}
.section-contact .contact-info-additional {
	font-size: var(--print-body-size) !important;
	color: #333 !important;
}

/* ---- Section: paragraph -------------------------------------------------- */

.section-paragraph .paragraph-wrap {
	max-width: 100% !important;
	margin: 0 !important;
}
.section-paragraph .paragraph-title {
	color: #000 !important;
	font-weight: var(--print-h2-weight) !important;
	margin-bottom: 3mm !important;
	font-size: var(--print-h2-size) !important;
}
.section-paragraph .paragraph-text p {
	font-size: var(--print-body-size) !important;
	margin-bottom: 3mm !important;
}
.section-paragraph .paragraph-text a {
	text-decoration: underline !important;
	color: #000 !important;
}

/* Tables inside paragraphs (e.g. data-table excerpt). */
.section-paragraph .table,
.section-paragraph table {
	width: 100% !important;
	border-collapse: collapse !important;
	margin: 0 0 4mm 0 !important;
	font-size: var(--print-meta-size) !important;
}
.section-paragraph .table td,
.section-paragraph .table th,
.section-paragraph table td,
.section-paragraph table th {
	border: 0.5pt solid #999 !important;
	padding: 1.5mm 2mm !important;
	color: #000 !important;
	vertical-align: top !important;
}

/* ---- Section: full image ------------------------------------------------- */

.section-full_image .image-wrap {
	padding-top: 0 !important;
	min-height: 0 !important;
	background-size: cover !important;
	background-position: center !important;
	height: 90mm !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 0 !important;
}
.section-full_image .image-wrap::before {
	display: none !important;
}
.section-full_image .image-wrap > * {
	position: static !important;
}
.section-full_image .image-wrap .text {
	color: #fff !important;
	font-size: var(--print-h1-size) !important;
	text-align: center;
	background: rgba(0, 0, 0, 0.45);
	padding: 4mm 6mm !important;
}
.section-full_image .image-wrap .btn-top {
	display: none !important;
}

/* ---- Section: teasers (v2 list) ----------------------------------------- */

.section-teasers .media,
.section-teaser-v2 .media {
	display: flex !important;
	flex-direction: row !important;
	align-items: stretch !important;
	gap: 5mm !important;
	border-bottom: 0.5pt solid #999 !important;
	padding: 0 !important;
	margin: 0 !important;
	page-break-inside: avoid;
	break-inside: avoid;
}
/* Also kill any margin on the wrapping <section> / <ul> / <li>. */
.section-teaser-v2,
.section-teaser-v2 ul,
.section-teaser-v2 ul.list-unstyled,
.section-teaser-v2 ul li {
	margin: 0 !important;
	padding: 0 !important;
}
.section-teaser-v2 .media-image {
	width: 90mm !important;
	flex: 0 0 90mm !important;
	height: auto !important;
	aspect-ratio: 3 / 2 !important;
	align-self: flex-start !important;
}
.section-teaser-v2 .media-image .img-cover {
	width: 100% !important;
	height: 100% !important;
	padding-top: 0 !important;
	background-size: cover !important;
	background-position: center !important;
}
.section-teaser-v2 .media-body {
	flex: 1 !important;
	padding: 4mm 0 0 0 !important;
}
.section-teaser-v2 .media-heading {
	font-size: var(--print-h3-size) !important;
	font-weight: var(--print-h2-weight) !important;
	margin: 0 0 1mm 0 !important;
}
.section-teaser-v2 .media-description {
	font-size: var(--print-body-size) !important;
	margin: 0 0 1mm 0 !important;
	display: block !important;
	-webkit-line-clamp: unset !important;
	overflow: visible !important;
}
.section-teaser-v2 .media-link {
	display: none !important;
}
.section-teaser-v2 .media-datetime {
	margin: 0 0 1mm 0 !important;
	padding: 0 !important;
}
.section-teaser-v2 .media-datetime small {
	font-size: var(--print-meta-size) !important;
	color: #555 !important;
}

/* ---- Section: quote (testimonial) --------------------------------------- */

.section-quote .person-image,
.section-quote img.person-image,
.section-quote img.person-image.img-fluid {
	width: 90mm !important;
	max-width: 90mm !important;
	height: auto !important;
	border-radius: 2pt !important;
}
/* Widen the testimonial's image column so the 90mm portrait actually fits
   without being clamped by .col-5's ~76mm width. Match the teaser layout. */
.section-quote .section-body .row > .col-left {
	flex: 0 0 94mm !important;
	max-width: 94mm !important;
	width: 94mm !important;
}
.section-quote .section-body .row > .col-right {
	flex: 1 1 auto !important;
	max-width: none !important;
}
.section-quote .person-position {
	margin-top: 3mm !important;
	font-size: var(--print-meta-size) !important;
	font-weight: var(--print-h2-weight) !important;
	color: #000 !important;
}
/* The .quote class adds big asymmetric padding (3.5rem 6.5rem 2.5rem from
   app.css) which pushes the quote text down and far into the column. It
   also has decorative ::before / ::after icon-font glyphs that don't render
   meaningfully in print. Strip both. */
.section-quote .person-quote,
.section-quote .quote,
.section-quote-2 .section-title {
	font-size: var(--print-h2-size) !important;
	font-weight: var(--print-body-weight) !important;
	font-style: italic;
	color: #000 !important;
	padding: 0 !important;
	margin: 0 !important;
}
.section-quote .quote::before,
.section-quote .quote::after {
	display: none !important;
	content: none !important;
}
.section-quote .quote p {
	font-size: var(--print-h2-size) !important;
	color: #000 !important;
	margin: 0 !important;
	line-height: 1.3 !important;
}
/* Side-by-side: image col on left, quote on right, both aligned to top. */
.section-quote .section-body .row {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	flex-wrap: nowrap !important;
}
.section-quote .col-left,
.section-quote .col-right {
	padding-top: 0 !important;
}
/* Force text col + image col to 50/50 side-by-side, top-aligned. */
.section-quote-2 .row {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
}
.section-quote-2 .row > .col-lg-4,
.section-quote-2 .row > .col-lg-8 {
	flex: 0 0 50% !important;
	max-width: 50% !important;
	width: 50% !important;
	padding-left: 4mm !important;
	padding-right: 4mm !important;
}
.section-quote-2 .row > .col-lg-8 img,
.section-quote-2 .row > .col-lg-8 img.img-fluid {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
}
.section-quote-2 .section-description {
	font-size: var(--print-meta-size);
	color: #333 !important;
	margin-top: 2mm;
}

/* ---- Section: card-links (tiles) ---------------------------------------- */

.section-card-links .card-link {
	display: block !important;
	page-break-inside: avoid;
	break-inside: avoid;
}
.section-card-links .card-link-body {
	border: 0 !important;
	border-bottom: 2px solid #AF1932 !important;
	border-radius: 0 !important;
	padding: 4mm !important;
	background-color: #FCFCFC !important;
	background-image: none !important;
}
.section-card-links .card-link-body::after {
	display: none !important;
}
.section-card-links .card-link-title {
	font-size: var(--print-h3-size) !important;
	font-weight: var(--print-h2-weight) !important;
	margin: 0 0 2mm 0 !important;
	color: #000 !important;
}
.section-card-links .card-link-text {
	font-size: var(--print-body-size) !important;
	font-weight: var(--print-body-weight) !important;
	color: #000 !important;
	margin: 0 !important;
}
.section-card-links .card-link-icon {
	display: none !important;
}

/* ---- Section: partners (.section-partners) ------------------------------
   Logo strip ("Unsere Partnerinnen"). The carousel is replaced with a flat
   row: every logo shown side-by-side, small (~18mm tall), nav controls hidden.
   We have to override the global .swiper-slide 50% width rule, plus the
   .h-100 / 100% height inline styles that would otherwise stretch the logos
   to fill their parent. */

.section-partners {
	margin: 0 0 6mm 0 !important;
}
.section-partners .partner-slide-navigation,
.section-partners .partner-slide-control,
.section-partners .custom-swiper-button-prev,
.section-partners .custom-swiper-button-next {
	display: none !important;
}
.section-partners .partner-slide,
.section-partners .partner-slide .swiper,
.section-partners .partner-slide .swiper-wrapper {
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	align-items: center !important;
	justify-content: center !important;
}
.section-partners .swiper-wrapper {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	gap: 4mm !important;
}
.section-partners .swiper-slide {
	width: auto !important;
	max-width: none !important;
	flex: 0 0 auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}
.section-partners .swiper-slide .slide-content {
	height: auto !important;
	padding: 0 !important;
}
.section-partners .swiper-slide .image {
	display: inline-block !important;
	height: auto !important;
}
.section-partners .swiper-slide img {
	height: 30mm !important;
	width: auto !important;
	max-width: 80mm !important;
	object-fit: contain !important;
}

/* ---- Section: welcome ---------------------------------------------------- */

.section-welcome {
	padding: 4mm 0 !important;
}
.section-welcome::before {
	display: none !important;
}
.section-welcome .section-title {
	color: #000 !important;
	font-size: var(--print-h1-size) !important;
	max-width: 100% !important;
	margin-bottom: 3mm !important;
}
.section-welcome .section-content {
	max-width: 100% !important;
	padding-left: 0 !important;
}
.section-welcome .section-content p {
	font-size: var(--print-body-size) !important;
	font-weight: var(--print-body-weight) !important;
	line-height: 1.4 !important;
}

/* ---- Accordion (.section-careers) --------------------------------------- */

/* Force every collapsible panel open in print. */
.collapse,
.collapse:not(.show),
.collapsing {
	display: block !important;
	height: auto !important;
	visibility: visible !important;
}
.section-careers .accordion .card,
.accordion .card {
	border: 0 !important;
	border-top: 0.5pt solid #999 !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 2mm 0 !important;
	background: transparent !important;
	height: auto !important;
	min-height: 0 !important;
	flex: 0 0 auto !important;
}
/* Make sure the accordion column and the row containing it don't stretch
   panels to equal heights. */
.section-careers .accordion,
.section-careers .row,
.section-careers .row > [class*="col-"] {
	align-items: flex-start !important;
	height: auto !important;
	min-height: 0 !important;
}
.section-careers .accordion .collapse,
.section-careers .accordion .card-body {
	height: auto !important;
	min-height: 0 !important;
}
.accordion .card-header {
	background: transparent !important;
	padding: 0 !important;
	border: 0 !important;
}
.accordion .btn-link,
.accordion .btn,
.accordion .card-header .btn-block,
html.fe-edit-No .accordion > .card > .card-header .btn-block,
html.fe-edit-Yes .accordion > .block-item > .card > .card-header .btn-block {
	color: #000 !important;
	font-weight: var(--print-h2-weight) !important;
	padding: 1mm 0 !important;
	text-align: left !important;
	background: transparent !important;
	border: 0 !important;
	font-size: var(--print-h2-size) !important;
	min-height: 0 !important;
	height: auto !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
/* Bootstrap collapse JS can leave behind inline style="height: Xpx" — kill it. */
.section-careers .accordion .collapse,
.section-careers .accordion .collapse.show,
.section-careers .accordion .collapsing {
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	overflow: visible !important;
	display: block !important;
}
.accordion .card-body {
	margin-bottom: 0 !important;
	padding: 2mm 0 0 0 !important;
	font-size: var(--print-body-size) !important;
}
.accordion .card-body p,
.accordion .card-body li {
	font-size: var(--print-body-size) !important;
	line-height: 1.4 !important;
}
.accordion .card-heading {
	font-size: var(--print-h3-size) !important;
	font-weight: var(--print-h2-weight) !important;
	margin: 0 0 2mm 0 !important;
	color: #000 !important;
}
.section-careers .big-image {
	max-width: 100% !important;
	max-height: 100mm !important;
	width: auto !important;
}

/* ---- Timeline ------------------------------------------------------------ */

/* Always start the timeline on a fresh page — keeps the centre line aligned
   with its items rather than wrapping awkwardly around a previous section.
   Only set on the outer .mura-object wrapper; if we also set it on the
   inner #timeline, browsers emit two breaks and leave a blank page in
   between (the wrapper's content lands on its own page). */
.mura-object[data-object="timeline"] {
	page-break-before: always !important;
	break-before: page !important;
}

#timeline {
	padding: 0 !important;
	color: #000 !important;
	--tl-line: #999 !important;
	--tl-accent: #AF1932 !important;
	--tl-text: #000 !important;
	--tl-bg: #fff !important;
}
#timeline #v-timeline {
	display: block !important;
	padding: 0 8mm !important;
	position: relative !important;
	margin: 0 auto !important;
	max-width: 100% !important;
}
/* Centre vertical line: span the full v-timeline height as a solid grey
   rule. Override the original linear-gradient that fades the bottom 100px
   to transparent (which reads as "ends too early" on paper). */
#timeline #v-timeline::before {
	display: block !important;
	content: '' !important;
	position: absolute !important;
	left: 50% !important;
	top: 0 !important;
	bottom: 0 !important;
	width: 1pt !important;
	height: auto !important;
	background: #999 !important;
	background-image: none !important;
	transform: translateX(-50%) !important;
	margin: 0 !important;
	padding: 0 !important;
}
/* Each timeline item must be relatively positioned so its ::before (dot)
   and ::after (connector line) anchor to it. The selector list explicitly
   matches the original timeline.css @media (max-width: 768px) selectors
   (`.v-item, .v-item:nth-child(odd), .v-item:nth-child(even)`) so this
   print rule wins regardless of which printer driver triggers the mobile
   media query. */
#timeline .v-item,
#timeline .v-item:nth-child(odd),
#timeline .v-item:nth-child(even) {
	position: relative !important;
	display: block !important;
	width: 44% !important;
	margin-bottom: 8mm !important;
	page-break-inside: avoid;
	break-inside: avoid;
}
#timeline .v-item:nth-child(odd) {
	margin-left: 3% !important;
	margin-right: 0 !important;
	text-align: right !important;
}
#timeline .v-item:nth-child(even) {
	margin-left: 53% !important;
	margin-right: 0 !important;
	text-align: left !important;
}
/* Dot on the centre line. */
#timeline .v-item::before {
	display: block !important;
	content: '' !important;
	position: absolute !important;
	width: 8pt !important;
	height: 8pt !important;
	border-radius: 50% !important;
	background: #999 !important;
	top: 4mm !important;
	border: 1pt solid #fff !important;
	outline: 1pt solid #999 !important;
}
/* Explicitly clear the property *not* used on each side. The mobile media
   query in timeline.css sets `left: -40px; right: auto` for ALL items —
   without explicit `left: auto` here, the mobile `left: -40px` would still
   apply to odd items even though we set `right: -6.8%`, and browsers honor
   `left` over `right` in LTR. That's exactly what was pushing odd dots to
   the very left of the page. */
#timeline .v-item:nth-child(odd)::before {
	right: -6.8% !important;
	left: auto !important;
	transform: translateX(50%) !important;
}
#timeline .v-item:nth-child(even)::before {
	left: -6.8% !important;
	right: auto !important;
	transform: translateX(-50%) !important;
}
/* Horizontal connector from dot to card. The connector visually overlaps
   the dot (dot vertical range ~4-6.8mm), so push it above with z-index and
   give it a touch more thickness so the visible portion (between item edge
   and dot) is clearly readable. */
#timeline .v-item::after {
	display: block !important;
	content: '' !important;
	position: absolute !important;
	top: 5mm !important;
	height: 1pt !important;
	background: #999 !important;
	z-index: 2 !important;
}
#timeline .v-item:nth-child(odd)::after {
	right: -6.8% !important;
	left: auto !important;
	width: 6.8% !important;
}
#timeline .v-item:nth-child(even)::after {
	left: -6.8% !important;
	right: auto !important;
	width: 6.8% !important;
}
#timeline .v-content {
	background: #fff !important;
	padding: 3mm !important;
	border: 0.5pt solid #ddd !important;
	border-radius: 2pt !important;
}
#timeline .v-image {
	max-height: 40mm !important;
	margin-bottom: 2mm !important;
}
#timeline .v-year {
	font-size: var(--print-meta-size) !important;
	font-weight: var(--print-h2-weight) !important;
	color: #AF1932 !important;
	margin-bottom: 0.5mm !important;
}
#timeline .v-title {
	font-size: var(--print-h4-size) !important;
	font-weight: var(--print-h2-weight) !important;
	margin-bottom: 0.5mm !important;
}
#timeline .v-subtitle {
	font-size: var(--print-meta-size) !important;
	color: #666 !important;
	margin-bottom: 1mm !important;
}
#timeline .v-summary {
	font-size: var(--print-body-size) !important;
	color: #333 !important;
}

/* ---- Footer (simplified) ------------------------------------------------- */

footer.footer {
	border-top: 0.5pt solid #999;
	margin-top: 8mm !important;
	padding-top: 4mm !important;
	font-size: var(--print-meta-size) !important;
	color: #333 !important;
	page-break-inside: avoid !important;
	break-inside: avoid !important;
	page-break-before: auto;
	break-before: auto;
}
footer .footer-top {
	padding: 0 !important;
}
/* Hide the entire copyright bar (legal links + © text + socials). */
footer .copyright,
footer > .copyright {
	display: none !important;
}
footer .footer-logo {
	max-width: 10mm !important;
	height: auto !important;
	margin-bottom: 0 !important;
}
footer .footer-top > .container > .row:first-child,
footer .footer-top > .container > .row:first-child > .col-12 {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}
footer .footer-top > .container > .row + .row,
footer .footer-top > .container > .row + .row > [class*="col-"] {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
/* Hide both .footer-menu lists (site list + nav links) — keep only contact. */
footer .footer-menu,
footer ul.footer-menu,
footer .footer-menu.footer-site-list,
footer .col-md-6.col-lg-3:has(.footer-menu) {
	display: none !important;
}
footer .footer-contact,
footer .copyright-links {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 3mm 0 !important;
}
footer .footer-menu .nav-item,
footer .footer-contact .nav-item,
footer .copyright-links .nav-item {
	display: inline !important;
	margin-right: 3mm;
}
footer .footer-menu .nav-link,
footer .footer-contact .nav-link,
footer .copyright-links .nav-link {
	color: #000 !important;
	padding: 0 !important;
	text-decoration: none !important;
	font-size: var(--print-meta-size) !important;
	line-height: 1.4 !important;
}
footer .footer-menu .nav-item,
footer .footer-contact .nav-item,
footer .copyright-links .nav-item {
	font-size: var(--print-meta-size) !important;
}
footer .copyright-socials {
	display: none !important;
}
footer .copyright-text {
	font-size: var(--print-meta-size) !important;
}

/* ---- Mura editor / object chrome ---------------------------------------- */

.mura-edit-button,
.mura-sidebar,
.mura-toolbar,
.mura-region-edit-controls {
	display: none !important;
}

/* ---- Utility resets ------------------------------------------------------ */

/* Bootstrap responsive display utilities — neutralise on paper. */
.d-none,
.d-md-none,
.d-lg-none,
.d-xl-none {
	display: none !important;
}
.d-block,
.d-md-block,
.d-lg-block,
.d-xl-block {
	display: block !important;
}
.d-flex,
.d-md-flex,
.d-lg-flex,
.d-xl-flex {
	display: flex !important;
}

/* Strip rounded everywhere — paper doesn't need 8px radii. */
.rounded,
.rounded-lg,
.rounded-circle,
.rounded-pill {
	border-radius: 2pt !important;
}

/* Avoid orphans/widows in paragraphs */
p, li {
	orphans: 3;
	widows: 3;
}