.news-card__tag-row { gap: 10px; align-items: center; }
.news-card__date, .announcement-detail__meta, .job-row__summary, .job-row__dates { color: #666; font-size: 12px; }
.content-status, .jobs-empty { border: 1px solid #e8e8e8; border-radius: 12px; background: #fff; color: #444; padding: 28px; text-align: center; }
.content-status--loading { display: grid; gap: 9px; justify-items: stretch; overflow: hidden; }
.content-status__skeleton { animation: newsroom-pulse 1.3s ease-in-out infinite; background: #edf0f2; border-radius: 5px; display: block; height: 12px; width: 100%; }
.content-status__skeleton:nth-last-child(1) { width: 62%; }
@keyframes newsroom-pulse { 50% { opacity: .45; } }
.content-status__retry, .jobs-empty__clear { margin-inline-start: 12px; border: 1px solid #c62030; border-radius: 5px; background: #fff; color: #c62030; cursor: pointer; font: inherit; font-weight: 600; padding: 8px 14px; }
.content-status:focus, .jobs-empty__clear:focus-visible, .job-row__toggle:focus-visible, .job-filter select:focus-visible, .announcement-action:focus-visible, .announcement-back:focus-visible { outline: 3px solid rgba(198, 32, 48, .35); outline-offset: 3px; }
.jobs-region { margin-top: 28px; scroll-margin-top: 110px; }
.jobs-region__title { color: #1a1a1a; font-size: 22px; margin: 0 0 18px; text-align: center; }
.job-filters { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 14px; }
.job-filter { color: #444; display: grid; font-size: 12px; font-weight: 700; gap: 6px; text-align: start; }
.job-filter select { background: #fff; border: 1px solid #d7d7d7; border-radius: 6px; color: #222; font: inherit; padding: 10px; width: 100%; }
.job-result-count { color: #555; font-size: 13px; margin: 0 0 12px; min-height: 1.3em; text-align: start; }
.jobs-list { display: grid; gap: 10px; }
.job-row { background: #fff; border: 1px solid #e2e2e2; border-radius: 9px; overflow: hidden; }
.job-row__toggle { align-items: center; background: transparent; border: 0; color: #1a1a1a; cursor: pointer; display: flex; font: inherit; justify-content: space-between; padding: 18px 20px; text-align: start; width: 100%; }
.job-row__toggle::after { color: #c62030; content: '+'; font-size: 22px; font-weight: 400; margin-inline-start: 14px; }
.job-row__toggle[aria-expanded="true"]::after { content: '−'; }
.job-row__title { font-size: 16px; font-weight: 700; }
.job-row__summary { margin-inline-start: auto; padding-inline-start: 18px; }
.job-row__detail { border-top: 1px solid #ededed; color: #444; padding: 20px; }
.job-row__detail-title { color: #1a1a1a; font-size: 14px; margin: 16px 0 6px; }
.job-row__detail-title:first-child { margin-top: 0; }
.job-row__detail-copy { font-size: 13px; line-height: 1.65; white-space: pre-line; }
.job-row__apply, .announcement-action { background: #c62030; border-radius: 5px; color: #fff; display: inline-block; font-size: 13px; font-weight: 700; margin-top: 20px; padding: 10px 16px; text-decoration: none; }
.announcement-page { background: #f8fafb; min-height: 65vh; padding: 56px max(12px, calc((100% - 1100px) / 2)); }
.announcement-detail { background: #fff; border: 1px solid #e8e8e8; border-radius: 12px; margin-top: 18px; padding: clamp(24px, 5vw, 54px); }
.announcement-back { color: #c62030; font-size: 14px; font-weight: 700; text-decoration: none; }
.announcement-detail__title { color: #1a1a1a; font-size: clamp(25px, 4vw, 38px); line-height: 1.25; margin: 10px 0 24px; }
.announcement-body { color: #414141; font-size: 16px; line-height: 1.75; max-width: 790px; white-space: pre-wrap; }
.announcement-body p + p { margin-top: 18px; }
.announcement-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.announcement-actions .announcement-action { margin-top: 26px; }

@media (max-width: 699px) {
  .job-filters { grid-template-columns: 1fr; }
  .job-row__toggle { align-items: flex-start; flex-direction: column; gap: 7px; position: relative; }
  .job-row__toggle::after { position: absolute; inset-inline-end: 20px; top: 16px; }
  .job-row__summary { margin-inline-start: 0; padding-inline-start: 0; padding-inline-end: 28px; }
  .content-status__retry, .jobs-empty__clear { display: block; margin: 14px auto 0; }
}

@media (prefers-reduced-motion: reduce) {
  .content-status__skeleton { animation: none; }
}
