/* Shared screen layout contract for public, product and signed-in portal pages.
   Product pages using the shared layout and Bootstrap containers inherit this.
   Keep article/form measure limits and printed invoices independent of screens. */
@media screen and (min-width: 1440px) {
  .booknip-public { --max: min(1920px, 90vw); --booknip-content-width: min(1920px, 90vw); }
  .booknip-public .corporate-topbar > div,
  .booknip-public .corporate-preferences > div {
    max-width: none;
    padding-inline: max(24px, calc((100% - var(--max)) / 2));
  }
  .booknip-public .public-content :is(.container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl) {
    width: 100%;
    max-width: var(--booknip-content-width);
    margin-inline: auto;
  }
  .booknip-public .public-content :is(.container, .container-xl) :is(.container, .container-xl) {
    max-width: 100%;
  }
  .booknip-public .public-content :is(.pos-faq, .learn-faq) { max-width: 960px; }
  .booknip-public :is(.pos-hero, .learn-hero) { gap: clamp(36px, 4vw, 80px); }
  .booknip-public :is(.pos-hero, .learn-hero) > * { min-width: 0; }
  .booknip-public :is(.pos-hero, .learn-hero) h1 {
    font-size: clamp(3rem, 3.2vw, 4.75rem);
    line-height: 1.1;
  }
  .booknip-public :is(.pos-hero-copy, .learn-hero-copy) > p {
    max-width: 60ch;
    font-size: clamp(1rem, .85vw, 1.25rem);
  }
  .booknip-public :is(.pos-section-heading, .learn-section-heading) { max-width: 960px; }
  .portal-app .portal-content { padding: clamp(24px, 2vw, 48px); min-width: 0; }
  .portal-app .portal-content :is(.container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl) {
    width: 100%; max-width: none;
  }
}
/* Let grid/flex children shrink; wide data tables scroll within their own region. */
.booknip-public .public-content .row > *,
.portal-app .portal-content .row > * { min-width: 0; }
.booknip-public .public-content .table-responsive,
.portal-app .portal-content .table-responsive { max-width: 100%; overflow-x: auto; }
