/* Approved artwork keeps its natural ratio; native controls stay separate. */
.announcement-art.has-art { padding:0; aspect-ratio:auto; background:#243d78; }
.announcement-art.has-art::after { display:none; }
.announcement-art.has-art > :not(.announcement-image) { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.announcement-image { display:block; width:auto; max-width:100%; height:auto; max-height:calc(100vh - 124px); max-height:calc(100dvh - 124px); margin:0 auto; object-fit:contain; }

.announcement-dialog { border:0; padding:0; width:min(480px, calc(100vw - 32px)); max-width:none; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); border-radius:4px; background:#fff; color:#17233c; box-shadow:0 16px 48px #0004; overflow:auto; overscroll-behavior:contain; }
.announcement-dialog::backdrop { background:#0009; backdrop-filter:blur(2px); }
.announcement-toolbar { display:flex; justify-content:space-between; align-items:center; height:44px; background:#000; padding:0 8px; }
.announcement-toolbar button { min-height:44px; padding:0 12px; border:0; background:transparent; color:#fff; cursor:pointer; font:inherit; font-size:13px; }
.announcement-close { min-width:64px; }
.announcement-close span { margin-left:6px; font-size:18px; }
.announcement-art { aspect-ratio:1000 / 1200; padding:36px 28px; display:flex; flex-direction:column; justify-content:center; background:linear-gradient(150deg,#e9efff,#f5f7fc 65%,#dce6fa); text-align:center; overflow-wrap:anywhere; }
.announcement-art .announcement-eyebrow { margin:0 0 28px; color:#405691; font-weight:700; font-size:16px; letter-spacing:.03em; }
.announcement-art h2 { font-size:36px; line-height:1.3; letter-spacing:-.05em; margin:0 0 32px; color:#243d78; font-weight:800; }
.announcement-art p { font-size:18px; line-height:1.8; margin:0; word-break:keep-all; }
.announcement-art p + p { margin-top:14px; }
.announcement-art::after { content:""; width:48px; height:4px; border-radius:2px; background:#7185aa; margin:36px auto 0; }
.announcement-actions a { font:inherit; font-size:15px; min-height:48px; padding:0 16px; display:flex; align-items:center; justify-content:center; gap:12px; text-decoration:none; background:#000; color:#fff; font-weight:700; }
.announcement-actions a:hover { background:#000; }
.announcement-toolbar button:hover { color:#fff; background:#000; }
.announcement-dialog :focus-visible { outline:2px solid #d59100; outline-offset:-4px; }
.announcement-page main { background:#f5f6f8; padding-bottom:56px; }
.announcement-detail { max-width:880px; margin:32px auto 0; padding:32px 40px; background:#fff; border:1px solid #e1e4e9; border-radius:16px; box-shadow:0 4px 18px #17233c08; font-size:17px; line-height:1.85; word-break:keep-all; overflow-wrap:anywhere; }
.announcement-detail-header { margin-bottom:28px; padding-bottom:20px; border-bottom:1px solid #e5e7eb; }
.announcement-detail .announcement-detail-header h2 { margin:0 0 12px; font-size:28px; line-height:1.4; }
.announcement-detail .announcement-meta { display:flex; flex-wrap:wrap; gap:8px 24px; margin:0; font-size:14px; color:#626b78; }
.announcement-page .notice-section { max-width:1040px; margin:32px auto 0; padding:28px 32px; background:#fff; border:1px solid #e1e4e9; border-radius:16px; box-shadow:0 4px 18px #17233c08; }
@media (max-width:1104px) { .announcement-page .notice-section { margin-inline:24px; } }
@media (max-width:944px) { .announcement-detail { margin-inline:24px; } }
.announcement-detail p { margin:0 0 24px; }
.announcement-detail h2 { margin:40px 0 16px; font-size:24px; }
.announcement-detail ol { padding-left:26px; margin:0 0 28px; }
.announcement-detail li { margin:12px 0; }
.announcement-detail .primary { margin:20px 0 32px; display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:52px; padding:12px 28px; border-radius:999px; background:#111; color:#fff; text-decoration:none; font-weight:700; }
.announcement-detail .notice-return { display:block; width:fit-content; }
@media (max-height:520px) {
 .announcement-dialog { width:min(360px, calc(100vw - 32px)); }
 .announcement-art:not(.has-art) { aspect-ratio:auto; height:calc(100dvh - 124px); padding:12px 20px; overflow:auto; }
 .announcement-art:not(.has-art) .announcement-eyebrow { font-size:12px; margin-bottom:8px; }
 .announcement-art:not(.has-art) h2 { font-size:26px; margin-bottom:12px; }
 .announcement-art:not(.has-art) p { font-size:14px; line-height:1.5; }
 .announcement-art:not(.has-art) p + p { margin-top:8px; }
 .announcement-art:not(.has-art)::after { display:none; }
}
@media (max-width:560px) {
 .announcement-art { aspect-ratio:1000 / 1200; padding:26px 20px; }
 .announcement-art h2 { font-size:28px; margin-bottom:16px; }
 .announcement-art .announcement-eyebrow { font-size:12px; margin-bottom:12px; }
 .announcement-art p { font-size:14px; line-height:1.5; }
 .announcement-art p + p { margin-top:8px; }
 .announcement-art::after { display:none; }

 .announcement-page main { padding-bottom:32px; }
 .announcement-detail, .announcement-page .notice-section { margin:20px 16px 0; padding:24px 20px; border-radius:12px; }
 .announcement-detail { font-size:16px; }
 .announcement-detail .announcement-detail-header h2 { font-size:24px; }
 .announcement-detail-header { margin-bottom:24px; padding-bottom:16px; }
}
