/* =====================================================================
   retreva print (media="print", loaded last).
   Goal: a calm A4 sheet with the decisive facts first – brand + QR back to the page,
   title, lead, facts, description, rooms/offers, hotel, location. Interactive UI is hidden.
   ===================================================================== */
@page { size: A4; margin: 14mm 14mm 16mm; }

html { font-size: 10pt; }
body { background: #fff !important; color: #000; }
*, *::before, *::after { box-shadow: none !important; text-shadow: none !important; animation: none !important; transition: none !important; }
img, svg { break-inside: avoid; }
h1, h2, h3 { break-after: avoid; color: #000; }
p, li, dd { orphans: 3; widows: 3; }
a { color: #000; text-decoration: none; }
/* Editorial links name their target; component links stay plain. */
.rt-prose a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .85em; color: #444; word-break: break-all; }

/* ---------- Print header ---------- */
.rt-print-header { display: flex !important; align-items: center; justify-content: space-between; gap: 8mm; margin: 0 0 7mm; padding-bottom: 4mm; border-bottom: .3mm solid #000; }
.rt-print-header__brand img { display: block; width: auto; height: 8mm; }
.rt-print-header__brand p { margin: 1.5mm 0 0; font-size: 9pt; color: #333; }
.rt-print-header__link { display: flex; align-items: center; gap: 4mm; text-align: right; }
.rt-print-header__link p { display: flex; flex-direction: column; gap: 1mm; margin: 0; font-size: 8.5pt; color: #333; }
.rt-print-header__link strong { font-size: 9pt; color: #000; word-break: break-all; max-width: 70mm; }
.rt-qr { display: block; width: 24mm; height: 24mm; }

/* ---------- Hide interactive and decorative UI ---------- */
.rt-header, .rt-skip, dialog, .rt-mobile-dialog, .rt-saved-dialog, .rt-image-dialog,
.rt-section-navigation, .rt-pricebar, [data-pricebar], .rt-share-row, .rt-js-only,
.rt-collection-toolbar, .rt-collection-more, [data-show-all], .rt-carousel-controls,
.rt-card__heart, .rt-card__foot .rt-btn, .rt-gallery__all, .rt-gallery__source,
.rt-travel, .rt-booking .rt-notice, .rt-detail-discover, #impressionen, .rt-alternative-hotels,
.cusu-pm-hotel-contact, .cusu-pm-map, .rt-theme-contact .dashicons, .rt-contact-social,
#bewertungen header .rt-btn, .rt-reviews-all, .cusu-reviews__filters, .cusu-review-card__more,
.cusu-review-card__debug, .cusu-reviews__divider, .cusu-reviews__cta-head, .cusu-reviews__cta, .cusu-reviews__more,
.rt-footer__main > .rt-container > :not(.rt-footer__legal), .rt-footer__legal a,
#wpadminbar, .rt-theme-toast { display: none !important; }
.rt-footer, .rt-footer__main { margin: 0; padding: 0; background: none; border: 0; }
.rt-footer__legal { display: block; margin-top: 8mm; padding-top: 3mm; border-top: .2mm solid #999; font-size: 8pt; color: #333; }
.rt-footer__legal span + span::before { content: " · "; }

/* ---------- Layout: one column, natural flow ---------- */
.rt-container { max-width: none; padding: 0; }
.rt-main { min-height: 0; }
.rt-page-end { display: none; }
.rt-detail, .rt-detail--child { display: block !important; margin-top: 5mm; }
.rt-detail > *, .rt-detail__main, .rt-detail__aside { grid-row: auto !important; grid-column: auto !important; }
.rt-detail-section { padding-top: 7mm; }
.rt-detail-head { padding-top: 0; }
.rt-crumbs { font-size: 8pt; color: #444; }
.rt-detail-head h1 { font-size: 22pt; }
.rt-detail-head h1 small { font-size: 11pt; color: #333; }
.rt-detail-head__meta a { color: #000; }

/* Gallery: the lead image only. */
.rt-theme-gallery { display: block !important; height: auto !important; aspect-ratio: auto !important; border-radius: 2mm; overflow: hidden; }
.rt-theme-gallery > a:not(:first-child), .rt-theme-gallery [data-extra-gallery] { display: none !important; }
.rt-theme-gallery > a:first-child { display: block; position: relative; height: 85mm; }

/* Booking: a static price note instead of the widget. */
.rt-detail__aside { margin: 5mm 0 0; }
.rt-booking, .rt-detail #buchung { position: static !important; }
.rt-booking__card { display: inline-block; padding: 3mm 4mm; border: .3mm solid #000 !important; border-radius: 2mm; }
.rt-booking .rt-price strong { font-size: 14pt; }

/* Facts, groups, cards: flat, framed, never split across pages. */
.rt-facts, .rt-detail-facts { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 2.5mm; }
.rt-fact, .rt-feature-lists > div, .rt-card, .rt-parent-hotel, .rt-theme-contact, .rt-hotel-region__panel,
.cusu-reviews__summary, .cusu-review-card, .rt-service-entry { break-inside: avoid; border: .2mm solid #999 !important; background: #fff !important; }
.rt-fact { padding: 3mm; }
.rt-detail-facts dd { font-size: 11pt; hyphens: auto; }
.rt-feature-lists { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 2.5mm; }
.rt-features__img, .rt-hotel-features__image { display: none !important; }
.rt-feature-lists--with-image { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }

/* Carousels and collections become a short grid. */
.rt-carousel, [data-collection-items], .rt-grid { display: grid !important; grid-auto-flow: row !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 3mm !important; overflow: visible !important; margin: 0 !important; padding: 0 !important; }
.rt-carousel > :nth-child(n + 5) { display: none !important; }
[data-collection-items] > [hidden] { display: none !important; }
.rt-card { border-radius: 2mm; overflow: hidden; }
.rt-card__media { aspect-ratio: auto !important; height: 32mm; }
.rt-card__media img { transform: none !important; }
.rt-card__body { padding: 3mm; }
.rt-card__text { -webkit-line-clamp: 3; }

/* Hotel card and location as plain blocks. */
.rt-parent-hotel { display: grid !important; grid-template-columns: 55mm minmax(0, 1fr) !important; border-radius: 2mm; overflow: hidden; margin-top: 7mm; }
.rt-parent-hotel__image { min-height: 0 !important; height: auto; }
.rt-parent-hotel__body { padding: 4mm; }
.rt-parent-hotel__actions, .rt-hotel-teaser__score + .rt-parent-hotel__actions { display: none !important; }
.rt-location-content { display: block !important; }
.rt-location-content > .rt-theme-contact { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4mm; padding: 4mm; border-radius: 2mm; }
.rt-theme-contact .rt-contact a { min-height: 0; }
.rt-theme-contact__logo img { max-height: 12mm; }
.rt-hotel-region__panel { padding: 4mm; border-radius: 2mm; }
.rt-hotel-region__icon { display: none !important; }

/* Reviews: summary and the cards already shown. */
.rt-hotel-lower #bewertungen .cusu-reviews:has(.cusu-review-card) { display: block !important; }
.cusu-reviews__list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 3mm; margin-top: 3mm; }
.cusu-review-card.rt-review-later { display: none !important; }
/* An invitation to write the first review is meaningless on paper. */
#bewertungen:not(:has(.cusu-review-card)) { display: none !important; }

/* Home hero: a banner, not a full page (100svh equals the sheet height in print). */
.rt-home-hero--image { min-height: 0 !important; padding: 16mm 0 !important; }
.rt-home-hero h1 { font-size: 26pt; }
.rt-home-hero__intro { font-size: 11pt; }
.rt-home-hotels { gap: 3mm !important; }
.rt-home-hotels .rt-card__media { height: 45mm !important; aspect-ratio: auto !important; }

/* Services: summaries only. */
.rt-services { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 2.5mm; }
.rt-service-entry { padding: 2.5mm 3mm; }
.rt-service-entry summary > .dashicons { display: none; }

/* ---------- Specificity fixes against screen rules ---------- */
html .rt-js-only, .js .rt-js-only, .js .rt-collection-toolbar.rt-js-only, .js .rt-share-row, .rt-card .rt-card__heart, .rt-carousel-head .rt-btn,
.js .rt-theme-gallery .rt-gallery__all { display: none !important; }
@supports selector(::scroll-button(*)) { .rt-carousel::scroll-button(*) { display: none !important; } }
.rt-carousel-section .rt-carousel-head { padding-inline-end: 0 !important; }
.rt-detail-facts .rt-fact dd { font-size: 10pt; hyphens: manual; }
.rt-detail-facts .rt-fact dt { font-size: 8pt; }
.rt-booking .rt-booking__card { display: inline-block; width: auto; break-inside: avoid; }
.rt-booking .rt-booking__form { padding: 0; gap: 1mm; }
.rt-parent-hotel { align-items: stretch; }
.rt-parent-hotel .rt-parent-hotel__image { position: relative; min-height: 45mm !important; height: 100%; }
.rt-parent-hotel .rt-parent-hotel__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Print width falls under the tablet media queries; undo their stacked hotel card and stretched price box. */
.rt-booking { align-items: flex-start; }
.rt-parent-hotel .rt-parent-hotel__image { aspect-ratio: auto !important; }
