/* NEWS専用。既存のセクション・共通スタイルには適用しない。 */
.news-section {
  position:relative;
  isolation:isolate;
  overflow:clip;
  padding:104px 0 112px;
  background:#f5f7fa;
  color:#1f2937;
}
.home-section-backdrop {
  position:absolute;
  top:50px;
  left:max(48px,calc((100vw - 1200px)/2));
  color:var(--blue,#3154e8);
  font:700 clamp(42px,5.8vw,78px)/1 Arial,sans-serif;
  letter-spacing:-.045em;
  pointer-events:none;
  user-select:none;
  z-index:-1;
}
.news-section .news-section__inner { width:min(1200px,calc(100% - 96px));margin-inline:auto; }
.news-section .news-section__heading { margin-bottom:42px; }
.news-section .news-section__label { margin:0 0 16px;color:#3154e8;font:600 11px/1.5 Arial,sans-serif;letter-spacing:.18em; }
.news-section .news-section__title { margin:0;font-size:34px;line-height:1.6; }
.news-section .news-section__panel { padding:48px 56px 38px;border-radius:26px;background:#fff; }
.news-section .news-section__list { margin:0;padding:0;list-style:none; }
.news-section .news-section__row {
  display:grid;
  grid-template-columns:120px minmax(0,1fr) 24px;
  align-items:center;
  gap:28px;
  min-height:96px;
  padding:26px 0;
  border-bottom:1px solid #e5eaf1;
}
.news-section .news-section__row:first-child { border-top:1px solid #e5eaf1; }
.news-section .news-section__date { color:#64748b;font:500 12px/1.8 Arial,sans-serif;letter-spacing:.025em; }
.news-section .news-section__entry-title { margin:0;font-size:15px;line-height:1.9;overflow-wrap:anywhere; }
.news-section .news-section__row-arrow { width:20px;height:20px;color:#8291a9; }
.news-section svg { display:block;width:100%;height:100%; }
.news-section .news-section__footer { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:32px; }
.news-section .news-section__review-note { margin:0;font-size:10px;line-height:1.8;color:#64748b; }
.news-section .news-section__action { margin-left:auto;text-align:right; }
.news-section .news-section__cta {
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  min-height:48px;
  padding:0;
  color:#3154e8;
  background:none;
  border:0;
  font-size:14px;
  line-height:1.6;
  font-weight:600;
  white-space:nowrap;
  text-decoration:none;
  cursor:default;
}
.news-section .news-section__cta-circle { display:grid;place-items:center;flex:none;width:28px;height:28px;border:1px solid #3154e8;border-radius:50%; }
.news-section .news-section__cta-circle svg { width:16px;height:16px;transition:transform .2s ease; }
.news-section .news-section__cta:hover .news-section__cta-circle svg { transform:translateX(3px); }
.news-section .news-section__cta:focus-visible { outline:3px solid #3d91f5;outline-offset:6px;border-radius:2px; }
@media(prefers-reduced-motion:no-preference) {
  .news-section.news-section--animated [data-news-reveal] { transition:opacity .65s ease,translate .65s ease; }
  .news-section.news-section--pending [data-news-reveal] { opacity:0;translate:0 10px; }
  .news-section.news-section--animated [data-news-reveal="heading"] { transition-delay:.12s; }
  .news-section.news-section--animated [data-news-reveal="panel"] { transition-delay:.24s; }
  .news-section.news-section--animated [data-news-reveal="list"] { transition-delay:.36s; }
  .news-section.news-section--animated [data-news-reveal="cta"] { transition-delay:.5s; }
}
@media(min-width:768px) and (max-width:1023px) {
  .news-section .news-section__inner { width:calc(100% - 64px); }
  .news-section .news-section__panel { padding:36px; }
  .news-section .news-section__row { grid-template-columns:100px minmax(0,1fr) 20px;gap:20px; }
}
@media(max-width:767px) {
  .news-section { padding:64px 0 72px; }
  .news-section .news-section__inner { width:calc(100% - 40px); }
  .home-section-backdrop { left:20px;top:50px;font-size:42px; }
  .news-section .news-section__heading { margin-bottom:28px; }
  .news-section .news-section__label { font-size:10px;margin-bottom:12px; }
  .news-section .news-section__title { font-size:28px; }
  .news-section .news-section__panel { padding:28px 24px 24px;border-radius:20px; }
  .news-section .news-section__row { grid-template-columns:minmax(0,1fr) 18px;gap:8px 12px;padding:24px 0; }
  .news-section .news-section__date { grid-column:1;grid-row:1;font-size:12px; }
  .news-section .news-section__entry-title { grid-column:1;grid-row:2;font-size:14px;line-height:1.9; }
  .news-section .news-section__row-arrow { grid-column:2;grid-row:2;width:18px;height:18px; }
  .news-section .news-section__footer { flex-direction:column;align-items:stretch;gap:12px;margin-top:50px; }
  .news-section .news-section__action { order:0;margin-left:0;text-align:right; }
  .news-section .news-section__review-note { order:1;font-size:9px; }
  .news-section .news-section__cta { gap:12px;font-size:14px; }
}
@media(max-width:359px) {
  .news-section .news-section__inner { width:calc(100% - 32px); }
  .news-section .news-section__panel { padding-inline:20px; }
}
@media(prefers-reduced-motion:reduce) {
  .news-section [data-news-reveal] { opacity:1;translate:none;transition:none; }
  .news-section .news-section__cta-circle svg { transition:none;transform:none; }
}

/* 大きなNEWS文字の領域と白いパネルの間隔を20pxに統一。 */
.news-section{padding-top:calc(50px + clamp(42px,5.8vw,78px) + 20px)}
.news-section .news-section__heading{margin:0}
@media(max-width:767px){.news-section{padding-top:112px}}

/* HOMEの3セクションでNEWSの装飾見出しを共有。 */
:is(.about-section,.service-section){position:relative;isolation:isolate;overflow:clip;padding-top:calc(50px + clamp(42px,5.8vw,78px) + 20px)}
.home-section-backdrop{display:block;margin:0;white-space:nowrap}
@media(max-width:767px){:is(.about-section,.service-section){padding-top:112px}}

/* HOMEだけの独立したニュースカード。背景英字には触れない。 */
.news-home-cards .news-section__panel{padding:0;background:transparent;border-radius:0}
.news-home-cards .news-section__list{display:grid;gap:18px}
.news-home-cards .news-section__row{grid-template-columns:120px max-content minmax(0,1fr) auto;gap:24px;min-height:104px;padding:26px 32px;border:1px solid #dce4ef;border-radius:18px;background:#fff;transition:transform .2s ease,border-color .2s ease}
.news-home-cards .news-section__row:first-child{border-top:1px solid #dce4ef}
.news-home-cards .news-section__date{font-size:15px;font-weight:600;color:#153457;white-space:nowrap}
.news-home-cards .news-home-category{display:inline-flex;align-items:center;justify-content:center;padding:5px 17px;border:1px solid #cddcf0;border-radius:999px;background:#fff;color:#153457;font-size:13px;font-weight:500;line-height:1.6;white-space:nowrap}
.news-home-cards .news-section__entry-title{font-size:17px;font-weight:600;line-height:1.9;color:#153457;min-width:0}
/* 必要な記事にのみ<span class="news-home-badge">NEW</span>を追加できる。 */
.news-home-cards .news-home-badge{justify-self:start;border:1px solid #cc394c;color:#cc394c;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap}
@media(hover:hover){.news-home-cards .news-section__row:hover{transform:translateY(-2px);border-color:#9eb8dd}}
@media(prefers-reduced-motion:no-preference){.news-home-cards.news-section--animated [data-news-reveal="card"]{transition:opacity .6s ease var(--news-card-delay,0ms),translate .6s ease var(--news-card-delay,0ms),transform .2s ease,border-color .2s ease}}
@media(max-width:767px){
 .news-home-cards .news-section__row{grid-template-columns:max-content minmax(0,1fr);gap:16px 18px;padding:24px 22px;min-height:0}
 .news-home-cards .news-section__date{grid-column:1;grid-row:1;font-size:14px}
 .news-home-cards .news-home-category{grid-column:2;grid-row:1;justify-self:start;font-size:13px;padding:4px 14px}
 .news-home-cards .news-section__entry-title{grid-column:1/-1;grid-row:2;font-size:16px;line-height:1.9}
 .news-home-cards .news-home-badge{grid-column:1/-1;grid-row:3}
}
@media(prefers-reduced-motion:reduce){.news-home-cards .news-section__row{transform:none!important;translate:none!important;opacity:1!important;transition:none!important}}

/* 既存カードの外観を維持したまま全体をリンク化。 */
.news-home-cards .news-home-item{list-style:none;min-width:0}
.news-home-cards a.news-section__row{color:inherit;text-decoration:none;cursor:pointer}
.news-home-cards a.news-section__row:focus-visible{outline:3px solid #3154e8;outline-offset:4px}
