/* Print sheet (T-045 Q1). Loaded with media="print", so it costs nothing on screen.
   One file, identical on the three concepts and in the WordPress themes (express-group, express-core,
   express-acoustics): change it in sites/express-group/concept/assets/css/ and copy it to the others.
   A project, system, profile, product or service page prints as a short A4 sheet: the logo and company
   line, the title, the facts panel and one photo or render, then the scope or specification. Menus,
   "On this page", FAQs, call-to-action bands, related cards, galleries, films, forms and the footer are
   left out; the foot carries the contact block and the page address (no date). The sheet prints what the
   live view shows: TBC markers hidden on the live site stay hidden. */

@page { size: A4; margin: 14mm 14mm 16mm; }

html, body { background: #fff !important; color: #000 !important; }
html { font-size: 10pt; }
body { min-height: 0 !important; padding: 0 !important; }
*, *::before, *::after {
  box-shadow: none !important;
  text-shadow: none !important;
  animation: none !important;
  transition: none !important;
}

/* The defect this fixes: reveal-on-scroll blocks were invisible on paper. */
[data-reveal], .js [data-reveal], [data-reveal].is-visible {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* Left out of the sheet. `body [data-consent]`, not `[data-consent]`: consent.js also sets data-consent on
   <html>, and hiding <html> printed a blank page on every page of the three sites (fixed 15 Oct). */
.skip-link, .scroll-sentinel, .primary-nav, .site-header__actions, .menu, .menu-toggle, .mobile-bar,
.site-footer, .section-nav, .breadcrumb, .cta-section, .cta-band, #related, #faqs, .faq, .faqs,
.toast, dialog, .lightbox, .cookie-banner, .cookie-dialog, .consent, .consent-banner, .consent-dialog, body [data-consent], video, iframe,
.page-hero__actions, .print-action, .gallery, #gallery, .project-overview__zoom .gallery__zoom,
.gallery__zoom, .media-label__icon, form, .tender-form, .draft-note, .context-field, .home-hero,
#downloads, #buy, #colours, #build-up, #drawing, #projects, #flagship, #uses, #finishes, #samples, #enquire,
.why__grid, .why__list, .hero-quote, .other-products, .viewer, .buildup3d__controls,
.buildup3d__viewer, [data-viewer], [data-3d], .hero-reel, .video-dialog, .section-head__action,
.btn, .project-card__media, .related, .related-links, .group-companies, .map, [data-map],
.loop-toggle, .shortlist-toggle, [data-shortlist-row], .reel__toggle, .reel__steps {
  display: none !important;
}

/* The sheet's own head and foot (markup in the header and after <main>) */
.print-sheet { display: block !important; color: #000; }
.site-header {
  position: static !important;
  display: block !important;
  inset: auto !important;
  height: auto !important;
  margin: 0 0 4mm !important;
  padding: 0 0 3mm !important;
  border: 0 !important;
  border-bottom: 0.4pt solid #999 !important;
  background: none !important;
  transform: none !important;
}
.site-header__bar {
  display: block !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
}
.site-header .brand { color: #000 !important; }
.site-header .brand__mark img { width: 11mm !important; height: auto !important; }
.site-header .brand__logo { width: 52mm !important; height: auto !important; }
/* One photo or render: the hero's. Other photos in the body stay on screen only (drawings print). */
main .section figure:not(.drawing-sheet), .profile-section > :not(.drawing-sheet) img { display: none !important; }
.print-sheet--head { margin: 1.5mm 0 0; font-size: 8.5pt; color: #333 !important; }
.print-sheet--foot {
  margin-top: 8mm;
  padding-top: 3mm;
  border-top: 0.4pt solid #999;
  font-size: 8.5pt;
  line-height: 1.45;
  color: #333 !important;
  break-inside: avoid;
}
.print-sheet--foot p { margin: 0; }
.print-sheet__url { word-break: break-all; }

/* Layout: one column, no full-bleed spacing */
main { display: block !important; }
.container { max-width: none !important; padding: 0 !important; margin: 0 !important; }
.section, .page-hero, .section--tint, .section--flush-top {
  padding: 0 !important;
  margin: 0 0 5mm !important;
  background: none !important;
  min-height: 0 !important;
}
.section--tint, [class*="section--dark"], .section--dark { color: #000 !important; }
h1, .page-hero__title { font-size: 20pt !important; line-height: 1.15 !important; margin: 0 0 2mm !important; max-width: none !important; color: #000 !important; }
h2 { font-size: 13pt !important; line-height: 1.2 !important; margin: 4mm 0 2mm !important; color: #000 !important; break-after: avoid; }
h3 { font-size: 11pt !important; break-after: avoid; }
p, li, dd, dt { orphans: 3; widows: 3; }
.page-hero__subtitle, .page-hero__lead, .lead { font-size: 10.5pt !important; margin: 0 0 3mm !important; }
.section-head, .why__head, .split__content { margin-bottom: 2mm !important; }
.section-title em, .accent { font-style: normal !important; color: inherit !important; }
a { color: #000 !important; text-decoration: none !important; }
img { max-width: 100% !important; break-inside: avoid; }

/* Hero: the title block, then one photo or render at a sensible height */
.page-hero__body, .project-overview, .split, .section-split {
  display: block !important;
  min-height: 0 !important;
}
.page-hero__media, .project-overview__media, figure { margin: 0 0 3mm !important; break-inside: avoid; }
.page-hero__frame, .project-overview__frame {
  position: relative !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  border-radius: 0 !important;
  overflow: visible !important;
  background: none !important;
}
.page-hero__frame img, .project-overview__frame img, .page-hero__media img {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: 50mm !important;
  object-fit: cover !important;
  border-radius: 0 !important;
}
.page-hero__frame picture + picture, .page-hero__frame img + img { display: none !important; }
.caption, figcaption { font-size: 8pt !important; color: #333 !important; margin-top: 1mm !important; }
.media-placeholder { display: none !important; }

/* Facts panel and specification tables: plain, bordered, never dark */
.facts-panel, .spec-table, .spec-table__group, .test-card, .evidence, .stat-card, .why__grid > *, .scope-list {
  background: #fff !important;
  color: #000 !important;
  border-radius: 0 !important;
}
.facts-panel {
  border: 0.6pt solid #666 !important;
  padding: 3mm 4mm !important;
  margin: 0 0 4mm !important;
  break-inside: avoid;
}
.facts-panel *, .spec-table *, .test-card * { color: #000 !important; background: none !important; }
.facts-panel__grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 2mm 4mm !important; }
.facts-panel__title { font-size: 11pt !important; margin: 0 0 2mm !important; }
.status, .chip, .tag { border: 0.5pt solid #666 !important; background: none !important; color: #000 !important; }
.spec-table { border: 0.6pt solid #666 !important; break-inside: auto !important; }
.spec-table__group { break-inside: auto !important; }
.spec-table__row { break-inside: avoid; border-color: #bbb !important; padding-top: 1.2mm !important; padding-bottom: 1.2mm !important; }
.test-card, .tests__item, [class*="evidence"] {
  border: 0.6pt solid #666 !important;
  padding: 2.5mm 3mm !important;
  break-inside: avoid;
}
.prose, .prose p { max-width: none !important; }
.scope-list { display: block !important; columns: 2; column-gap: 6mm; }
.scope-list li { break-inside: avoid; }
.why__grid, .card-grid, .feature-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 3mm !important; }
.why__grid > *, .feature-grid > * { border: 0.5pt solid #bbb !important; padding: 2.5mm !important; break-inside: avoid; }
.drawing-sheet, .profile-section__paper { overflow: visible !important; break-inside: avoid; }
.drawing-sheet svg, .profile-section__paper svg { max-height: 70mm; width: 100% !important; }

/* Never dark panels or tinted paper on the sheet: black text on white, borders only */
main *:not(img):not(svg):not(svg *) {
  background-color: transparent !important;
  background-image: none !important;
  color: #000 !important;
  border-color: #999 !important;
}
.test-card__figure, [class*="__big"], [class*="figure__value"] { font-size: 16pt !important; }
.spec-table__row { padding-top: 0.8mm !important; padding-bottom: 0.8mm !important; font-size: 9pt !important; }
.print-sheet--foot { margin-top: 4mm; }

/* T-056 (pre-director sweep). Photo cards with their text over the photo (Group Home and Services: lead
   services, sectors) print the text on white, not black on a dark photo. Screen-only parts stay off the
   paper: the Group Home's project films (an empty frame and a caption on paper) with the showreel button,
   the Facades Home reel's slide list and pause button, the profile drawing's "scroll sideways" hint. A render
   (system and profile heroes) prints whole, not cropped to a strip. A team card without a portrait prints
   the name and role only, and a portrait prints small. The group companies' logo plates (light logos made
   for a dark plate, faint or white on paper) leave the cards to their names. */
.lead-service__img, .sector__img, .lead-service::after, .sector::after, [data-reel], .play-pill,
.hreel__index, .hreel__toggle, .profile-section__hint, .member__photo--empty, .group-card__plate {
  display: none !important;
}
.lead-service, .sector { display: block !important; min-height: 0 !important; overflow: visible !important; }
.page-hero__frame--render img { height: 70mm !important; object-fit: contain !important; }
.member__photo { width: 30mm !important; margin-bottom: 2mm !important; }
