/* Ctrl+P on the live site: a tidy A4 printout of the page as it stands.
   The designed, multi-page Information Memorandum lives at print-im.html (footer "Save IM as PDF"). */
@page {
  size: A4;
  margin: 14mm 14mm 16mm;
  @bottom-right { content: counter(page) " / " counter(pages); font: 600 7.5pt "Manrope", Arial, sans-serif; color: #8e8e8e; }
}
@page :first { @bottom-right { content: none; } }

:root { --canvas: #fff; }
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; animation: none !important; transition: none !important; }
html, body { background: #fff !important; color: #393c41 !important; font-size: 10.5pt; overflow: visible !important; }
a { text-decoration: none; }

/* Interactive chrome never prints */
.topbar, .skip, .scrim, .drawer, .toast, .tooltip, .present-hud, .edit-banner, .lightbox, dialog, .modal,
.btn, .icon-btn, .seg, .cta-row, .chips, .cards, .inv-bar, .compare-bar, .strip-nav, .form-card, #contactForm,
.mp-3d, .mp-side, .mp-hud, .mp-note, .mp-filters, .loc-map, .maplibregl-control-container,
#tours, .docs .lock, .footer .btn, iframe, video { display: none !important; }

/* One section per page, natural height */
main > section { break-before: page; }
main > section#top, main > section[hidden] { break-before: auto; }
.section, .hero { padding: 0 0 8mm !important; min-height: 0 !important; height: auto !important; break-inside: auto; }
.reveal { opacity: 1 !important; transform: none !important; }
.wrap { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }
h2 { break-after: avoid; }
img, figure, .keyspec, .agent { break-inside: avoid; }

/* Intro: a single cover frame (the approved render with the title), no scroll scrub */
.intro { height: auto !important; background: none !important; }
.intro-stage { position: relative !important; top: auto !important; height: 175mm !important; overflow: hidden; border-radius: 12px; }
.intro-canvas, .intro-white, .intro-beat { display: none !important; }
.intro-poster { opacity: 1 !important; }
.intro-render { opacity: 1 !important; transform: none !important; }
.intro-shade { opacity: 1 !important; }
.intro-copy { display: grid !important; }
.intro-title { opacity: 1 !important; transform: none !important; font-size: 64pt !important; }

/* Story fallback (when the intro is not configured) prints as one cover page */
.story { height: auto !important; background: none; }
.story-stage { position: relative; height: 150mm; border-radius: 0; }
.story-stage::after, .story-dots, .story-ctas, .story-bar, .story-steps { display: none !important; }
.story-media img { opacity: 0 !important; transform: none !important; }
.story-media img[data-i="0"] { opacity: 1 !important; }
.beat { display: none; }
.beat[data-i="0"] { display: block; opacity: 1 !important; transform: none !important; }

/* Masterplan: the 2D site plan, fitted to the page width */
.mp { display: block !important; height: auto !important; min-height: 0 !important; }
.mp > .mp-stage, .mp-stage[hidden] { display: block !important; position: relative; height: auto !important; min-height: 0 !important; aspect-ratio: 16 / 10; overflow: hidden; background: #f4f4f2; border-radius: 12px; }
.mp-canvas { transform: none !important; width: 100% !important; height: 100% !important; }
.mp-unit.dim { opacity: 1 !important; }

/* Availability table prints in full */
.table-wrap { max-height: none !important; overflow: visible !important; display: block !important; }
table.inv { min-width: 0 !important; width: 100%; font-size: 8pt; }
table.inv th { position: static !important; background: #ebebe8; }
table.inv td, table.inv th { padding: 2.5pt 5pt; }
table.inv thead { display: table-header-group; }
table.inv tr { break-inside: avoid; }
table.inv .star { display: none; }

/* Gallery, construction and location as static grids */
.gallery-grid { grid-template-columns: 1fr 1fr !important; grid-auto-rows: 52mm; }
.strip { display: grid !important; grid-auto-flow: row !important; grid-template-columns: repeat(3, 1fr); overflow: visible !important; gap: 3mm; }
.loc { display: block !important; height: auto !important; }
.loc-side { background: none !important; }
.loc-list { max-height: none !important; overflow: visible !important; columns: 2; }
.loc-list button { break-inside: avoid; }

/* Placeholders print as quiet panels */
.slot { min-height: 50mm; background: #f4f4f2 !important; }
.slot::before { display: none; }

/* Footer keeps the address and disclaimers */
.footer { break-before: avoid; padding-top: 6mm !important; }
.footer ol { font-size: 8pt; }
