.publication-placement { margin:24px 0; border-block:1px solid var(--line); padding:12px 0; }
.publication-label { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; color:var(--muted); font-size:11px; line-height:1.6; margin-bottom:10px; }
.publication-label a { text-decoration:underline; min-height:24px; display:inline-flex; align-items:center; }
.publication-unit + .publication-unit { margin-top:24px; }
.publication-creative { display:block; padding:24px; background:var(--wash); border-radius:8px; }
.publication-creative strong { display:block; font-size:24px; }
.publication-artwork { padding:0; overflow:hidden; }
.publication-artwork > img { display:block; width:100%; height:auto; object-fit:contain; }
.publication-creative:focus-visible { outline:3px solid var(--red); outline-offset:4px; }
.timed-publication { position:fixed; z-index:60; inset:0; margin:auto; width:min(1000px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:20px; border:0; background:white; color:var(--ink); box-shadow:0 12px 48px #171b2440; border-radius:12px; overflow:auto; }
.timed-publication:not([open]) { display:none; }
.timed-publication::backdrop { background:rgb(23 27 36 / .65); }
.timed-publication .publication-placement { margin:0; padding:0; border:0; }
.timed-publication .publication-label { margin:0 0 8px; }
.timed-publication .publication-creative img { width:100%; max-height:65dvh; object-fit:contain; }
.timed-publication-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px; font-size:14px; color:var(--ink); }
.timed-publication-controls button { flex-shrink:0; min-height:44px; padding:10px 16px; color:white; border:0; border-radius:6px; background:var(--red); font:inherit; font-weight:650; }
.timed-publication-controls button:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
.article-photo img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.article-header .standfirst { font-family:var(--reading); font-weight:400; letter-spacing:normal; line-height:1.6; text-wrap:pretty; }
.article-gallery img { width:100%; aspect-ratio:4/3; object-fit:contain; background:var(--wash); }
.author-avatar { aspect-ratio:1; object-fit:cover; }
.lead-photo { aspect-ratio:16/9; }
.headline-slider .lead-photo { aspect-ratio:auto; }
.headline-slider .lead-photo img { object-fit:cover; }
.masthead-facts dd { margin:8px 0 0; overflow-wrap:anywhere; }
.external-notice { max-width:72ch; margin:48px auto 64px; }
.external-notice h1 { font-size:clamp(28px,5vw,44px); }
.external-notice p { margin:24px 0; line-height:1.8; overflow-wrap:anywhere; }
@media(max-width:760px) { .timed-publication { padding:12px; } .timed-publication-controls { align-items:flex-start; font-size:12px; } .timed-publication-controls button { padding:10px; font-size:13px; } }
@media print { .publication-placement,.timed-publication { display:none !important; } }
.privacy-banner { position:fixed; z-index:50; inset-inline:16px; bottom:16px; max-width:1000px; margin-inline:auto; padding:24px; background:var(--paper,white); color:var(--ink); border:1px solid var(--line); border-radius:12px; box-shadow:0 8px 32px #171b2426; display:flex; align-items:center; gap:24px; }
.privacy-banner[hidden] { display:none; }
.privacy-banner h2 { font-size:20px; margin:0 0 8px; }
.privacy-banner p { margin:0; font-size:14px; line-height:1.65; }
.privacy-banner a { text-decoration:underline; }
.privacy-banner .privacy-notice { margin-top:8px; }
.privacy-actions { flex:0 0 220px; display:grid; gap:8px; }
.privacy-actions button { min-height:44px; padding:10px 14px; border:1px solid var(--ink); background:white; color:var(--ink); font:inherit; font-size:14px; font-weight:650; border-radius:6px; }
.privacy-actions button:hover { background:var(--wash); }
.privacy-actions button:focus-visible { outline:3px solid var(--red); outline-offset:3px; }
.privacy-preferences { background:none; border:0; color:inherit; padding:8px 0; text-align:left; font:inherit; font-size:14px; cursor:pointer; }
@media(max-width:760px) { .privacy-banner { padding:16px; gap:16px; display:block; max-height:60dvh; overflow:auto; } .privacy-actions { margin-top:16px; grid-template-columns:1fr 1fr; } .privacy-actions button { font-size:13px; } }
@media print { .privacy-banner,.privacy-preferences { display:none !important; } }
