/* Keep authored words intact; the shared fitter adapts oversized copy. */
body.public-invitation :is(h1,h2,h3,p,[data-invitation-fit],.invitation-prose){
  overflow-wrap:normal!important;
  word-break:normal!important;
  -webkit-hyphens:none!important;
  hyphens:none!important;
  min-width:0;
}
[data-invitation-fit="single"]{white-space:nowrap}

[data-invitation-fit]{display:block;max-width:100%}
.organic-gate-copy,.poster-gate>div:last-child,.calendar-gate>div:last-child,.album-gate>div:last-child,.scrap-gate>div:last-child,.dino-gate-card,.book-cover-copy,.poster-title,.calendar-hero>div:first-of-type,.album-hero>div:first-child,.scrap-note,.space-hero-copy,.space-photo-log-copy,.family-venue>div,.invitation-footer{min-width:0}
/* Long unbroken titles must not enlarge the centred cover's grid track. */
.warm-page .warm-hero{grid-template-columns:minmax(0,1fr)}
.warm-hero-paper{min-width:0;max-width:100%}
/* Responsive type is sized by the template, not mobile text inflation. */
body.public-invitation{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* Keep venue copy on one visual axis even when individual template rules
   centre a short field. The JS derives the intended axis from the container. */
body.public-invitation [data-invitation-copy-align] > :is(.eyebrow,.family-caption,.warm-kicker,h2,h3,p,a){
  text-align:inherit!important;
  text-align-last:auto!important;
}
body.public-invitation [data-invitation-copy-align="start"]{
  text-align:start!important;
}
body.public-invitation [data-invitation-copy-align="start"] > :is(h2,h3,p){
  margin-inline-start:0!important;
  margin-inline-end:0!important;
}
body.public-invitation [data-invitation-copy-align="center"]{
  text-align:center!important;
}
body.public-invitation [data-invitation-copy-align="center"] > :is(h2,h3,p){
  margin-inline-start:auto!important;
  margin-inline-end:auto!important;
}
body.public-invitation [data-invitation-copy-align="end"]{
  text-align:end!important;
}
body.public-invitation [data-invitation-copy-align="end"] > :is(h2,h3,p){
  margin-inline-start:0!important;
  margin-inline-end:0!important;
}
