/* Shared banner base. Type sizes scale with the banner width via --w (px); --h is the height. */
html, body { margin: 0; padding: 0; background: #fff; overflow: hidden; }
*, *::before, *::after { box-sizing: border-box; }
.ad { position: relative; overflow: hidden; -webkit-font-smoothing: antialiased; }
.ad { --u: calc(var(--w) * 1px / 100); --v: calc(var(--h) * 1px / 100); } /* 1u = 1% of width, 1v = 1% of height */

/* Line discipline: every copy block is .t with data-lines; lines break only where a <br> says so. */
.t { white-space: nowrap; }
.t.wrap { white-space: normal; text-wrap: balance; }
br.la, br.mr, br.st, br.po, br.sq { display: none; }
.ad[data-aspect="landscape"] br.la, .ad[data-aspect="mrec"] br.mr, .ad[data-aspect="story"] br.st,
.ad[data-aspect="portrait"] br.po, .ad[data-aspect="square"] br.sq { display: inline; }
.only-mrec { display: none; }
.ad[data-aspect="mrec"] .only-mrec { display: inline; }
.ad[data-aspect="mrec"] .not-mrec { display: none; }

.facts { font-size: calc(var(--u) * 2.4); line-height: 1.4; letter-spacing: 0.01em; }
.facts b { font-weight: 600; }
.ad[data-aspect="mrec"] .facts { font-size: calc(var(--u) * 3.6); }
.ad[data-aspect="landscape"] .facts { font-size: calc(var(--u) * 1.8); }
.sep { opacity: 0.55; margin: 0 0.35em; }

/* Third batch helpers: a break shown everywhere except landscape, and the separator that replaces it there. */
br.nl { display: inline; }
.ad[data-aspect="landscape"] br.nl { display: none; }
.sl { display: none; }
.ad[data-aspect="landscape"] .sl { display: inline; }
