/* Static sign shared by all public skins; numeric composition values are server validated. */
.public-menu .marquee { position: relative; isolation: isolate; display: grid; min-inline-size: 0; overflow: hidden; border: 1px solid var(--public-line); border-radius: var(--public-radius); background: var(--public-subtle-surface); margin-block: 1rem; }
.public-menu .marquee__image { position: relative; min-inline-size: 0; block-size: 12rem; background: var(--public-subtle-surface); }
.public-menu .marquee__image img { display: block; inline-size: 100%; block-size: 100%; object-fit: var(--marquee-fit, contain); object-position: 50% 50%; }
.public-menu .marquee[data-marquee-fit="cover"] .marquee__image img { object-position: var(--marquee-phone-x, 50%) var(--marquee-phone-y, 50%); }
.public-menu .marquee__copy { min-inline-size: 0; display: grid; align-content: center; gap: .5rem; padding: 1rem; overflow-wrap: anywhere; }
.public-menu .marquee__copy h2 { font-family: var(--public-heading-font); font-size: clamp(1.5rem, 3vw, 2.5rem); line-height: 1.18; }
.public-menu .marquee__copy p { font-size: .9375rem; line-height: 1.5; }
.public-menu .marquee--overlay { min-block-size: 13rem; align-items: center; }
.public-menu .marquee--overlay .marquee__image { position: absolute; inset: 0; block-size: 100%; }
/* A solid-enough local scrim guarantees white text contrast over any photograph. */
.public-menu .marquee--overlay .marquee__copy { z-index: 1; justify-self: start; inline-size: fit-content; max-inline-size: min(38rem, calc(100% - 2rem)); margin: 1rem; border-radius: var(--public-control-radius); background: rgb(0 0 0 / .82); color: #fff; }
.public-menu .marquee--text-only { min-block-size: 0; }
.public-menu .marquee--text-only .marquee__copy { color: var(--public-ink); background: transparent; margin: 0; max-inline-size: 100%; }
@media (min-width: 48rem) {
    .public-menu .marquee--image-left, .public-menu .marquee--image-right { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
    .public-menu .marquee--image-right .marquee__image { order: 2; }
    .public-menu .marquee--image-right .marquee__copy { order: 1; }
    .public-menu .marquee__image { block-size: clamp(15rem, 25vw, 22rem); }
    .public-menu .marquee[data-marquee-fit="cover"] .marquee__image img { object-position: var(--marquee-x, 50%) var(--marquee-y, 50%); }
    .public-menu .marquee__copy { padding: 2rem; }
    .public-menu .marquee--overlay { min-block-size: clamp(16rem, 28vw, 24rem); }
    .public-menu .marquee--overlay .marquee__copy { padding: 1.5rem; margin: 1.5rem; }
    .public-menu .marquee--text-only { display: block; min-block-size: 0; }
}
/* Image-only split signs use the full width without a vacant text column. */
.public-menu .marquee:not(:has(.marquee__copy)) { grid-template-columns: minmax(0, 1fr); }
.public-menu .marquee-preview-content { display: flow-root; }
