.kc-news-main,
.kc-news-main * { box-sizing: border-box; }

.kc-news-main {
  min-height: 62vh;
  overflow: clip;
  background: #fff;
  color: #132b50;
}

.kc-news-shell,
.kc-news-detail-shell {
  width: min(1180px, calc(100% - 64px));
  margin: 0 auto;
}

.kc-news-heading {
  padding: clamp(64px, 8vw, 108px) 0 clamp(56px, 6vw, 84px);
  background:
    radial-gradient(circle at 78% 20%, rgba(67, 162, 231, .25), transparent 30%),
    linear-gradient(135deg, #0b2d60, #0b4383 62%, #0a568f);
  color: #fff;
}

.kc-news-kicker {
  margin: 0 0 14px;
  color: #79d4f7;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .15em;
}

.kc-news-heading h1 {
  margin: 0;
  font-size: clamp(42px, 5.3vw, 72px);
  font-weight: 720;
  letter-spacing: -.04em;
  line-height: 1;
}

.kc-news-heading .kc-news-shell > p:last-child {
  max-width: 680px;
  margin: 20px 0 0;
  color: rgba(255, 255, 255, .8);
  font-size: clamp(15px, 1.35vw, 18px);
  line-height: 1.7;
}

.kc-news-list-section {
  padding: clamp(58px, 7vw, 92px) 0 clamp(72px, 8vw, 112px);
}

.kc-news-section-title {
  margin: 0 0 34px;
  color: #123663;
  font-size: clamp(30px, 3vw, 44px);
  letter-spacing: -.025em;
  line-height: 1.15;
}

.kc-news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 42px 26px;
}

.kc-news-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  color: #132b50;
}

.kc-news-card-media {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border: 0;
  background: #edf2f7;
}

.kc-news-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.kc-news-card:hover .kc-news-card-media img,
.kc-news-card:focus-within .kc-news-card-media img { transform: scale(1.025); }

.kc-news-card-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding-top: 20px;
}

.kc-news-card-meta,
.kc-news-detail-meta {
  margin: 0;
  color: #3473bd;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.kc-news-card-title {
  margin: 11px 0 0;
  font-size: clamp(19px, 1.7vw, 25px);
  line-height: 1.35;
}

.kc-news-card-excerpt {
  display: -webkit-box;
  margin: 12px 0 0;
  overflow: hidden;
  color: #5c708d;
  font-size: 14px;
  line-height: 1.7;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.kc-news-card-more {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 8px;
  margin-top: auto;
  padding-top: 18px;
  color: #175fac;
  font-size: 13px;
  font-weight: 750;
}

.kc-news-card-more::after { content: "→"; }

.kc-news-detail {
  padding: clamp(54px, 7vw, 92px) 0 clamp(78px, 9vw, 128px);
}

.kc-news-detail-shell { max-width: 860px; }

.kc-news-back {
  display: inline-flex;
  margin-bottom: 42px;
  color: #1d64b5;
  font-size: 14px;
  font-weight: 700;
}

.kc-news-detail h1 {
  margin: 14px 0 0;
  color: #112e58;
  font-size: clamp(32px, 4.3vw, 58px);
  letter-spacing: -.035em;
  line-height: 1.12;
  text-wrap: balance;
}

.kc-news-detail-excerpt {
  margin: 22px 0 0;
  color: #57708e;
  font-size: 18px;
  line-height: 1.75;
}

.kc-news-detail-cover {
  margin: 40px 0 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #edf2f7;
}

.kc-news-detail-cover img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kc-news-detail-content {
  margin-top: 46px;
  color: #405a78;
  font-size: 17px;
  line-height: 1.9;
}

.kc-news-detail-content h2,
.kc-news-detail-content h3,
.kc-news-detail-content h4 {
  margin: 38px 0 14px;
  color: #143665;
  line-height: 1.3;
}

.kc-news-detail-content h2 { font-size: 28px; }
.kc-news-detail-content h3 { font-size: 23px; }
.kc-news-detail-content h4 { font-size: 19px; }
.kc-news-detail-content p { margin: 0 0 18px; }
.kc-news-detail-content ul,
.kc-news-detail-content ol { margin: 0 0 24px; padding-left: 1.35em; }
.kc-news-detail-content li + li { margin-top: 8px; }
.kc-news-detail-content a { color: #165fac; text-decoration: underline; }
.kc-news-detail-content blockquote { margin: 24px 0; padding: 16px 20px; border-left: 3px solid #2b73c6; background: #f3f7fc; }
.kc-news-detail-content img { display: block; width: auto; max-width: 100%; height: auto; margin: 0 auto; }
.kc-news-detail-content .kc-news-content-figure { max-width: 100%; margin: 30px 0; }
.kc-news-detail-content .kc-news-content-figure figcaption { margin-top: 10px; color: #6d7f96; font-size: 13px; line-height: 1.55; text-align: center; }
.kc-news-detail-content .kc-news-content-figure.is-side { width: min(46%, 420px); margin: 8px 0 22px 28px; float: right; }
.kc-news-detail-content .kc-news-content-figure.is-table { overflow-x: auto; }
.kc-news-detail-content .kc-news-content-table-scroll { display: block; width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.kc-news-detail-content .kc-news-content-table-scroll:focus-visible { outline: 2px solid #2b73c6; outline-offset: 3px; }
.kc-news-detail-content table { width: 100%; min-width: 560px; border-collapse: collapse; background: #fff; }
.kc-news-detail-content th,
.kc-news-detail-content td { padding: 10px 12px; border: 1px solid #d8e1ed; text-align: left; vertical-align: top; }
.kc-news-detail-content th { background: #f2f6fb; color: #173b65; font-weight: 700; }
.kc-news-detail-content pre { max-width: 100%; overflow-x: auto; padding: 16px; background: #f3f6fa; }
.kc-news-detail-content hr { margin: 30px 0; border: 0; border-top: 1px solid #d8e1ed; }
.kc-news-detail-content::after { display: block; clear: both; content: ""; }

.kc-news-status {
  width: min(1180px, calc(100% - 64px));
  margin: 0 auto;
  padding: 54px 0 90px;
  color: #637892;
  font-size: 14px;
  text-align: center;
}

.kc-news-empty,
.kc-news-error {
  grid-column: 1 / -1;
  padding: 56px 24px;
  border: 1px solid #d7e2ef;
  background: #f6f8fb;
  color: #5f738c;
  text-align: center;
}

@media (max-width: 900px) {
  .kc-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .kc-news-shell,
  .kc-news-detail-shell,
  .kc-news-status { width: calc(100% - 32px); }
  .kc-news-grid { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .kc-news-heading { padding: 54px 0 50px; }
  .kc-news-list-section { padding: 48px 0 70px; }
  .kc-news-card-title { font-size: 21px; }
  .kc-news-detail { padding-top: 42px; }
  .kc-news-back { margin-bottom: 30px; }
  .kc-news-detail-excerpt { font-size: 16px; }
  .kc-news-detail-cover { margin-top: 30px; }
  .kc-news-detail-content { margin-top: 34px; font-size: 16px; line-height: 1.8; }
  .kc-news-detail-content .kc-news-content-figure.is-side { width: 100%; margin: 24px 0; float: none; }
  .kc-news-detail-content table { min-width: 480px; }
}
