@charset "utf-8";
/* =============================================================================
 * お知らせ（一覧 /news/news_list.php・詳細 /news/news_post.php）  /css/news2.css　2026-10-16 作り直し
 *   上に見出しの帯、左に本文、右に「最新のお知らせ」と相談の枠。旧サイドバー（バナー列）は使わない。
 *   お知らせは G-Nexus の 設定 > HPのお知らせ で書く。本文の HTML は G-Nexus 側で作る（h3・h4・p・ul・strong・a・画像）。
 *   影・左だけ太い線は使わない。@media は最後。
 * ========================================================================== */
.nwp { color: #333; font-size: 15px; line-height: 1.8; }
.nwp *, .nwp *::before, .nwp *::after { box-sizing: border-box; }
.nwp p, .nwp h2, .nwp h3, .nwp h4, .nwp ul { margin: 0; padding: 0; }
.nwp ul { list-style: none; }
.nwp li::before { content: none; }
.nwp a { text-decoration: none; }
.nwp-in { max-width: 1140px; margin: 0 auto; padding: 0 20px; }

/* 見出しの帯 */
.nwp-hero { position: relative; overflow: hidden; padding: 26px 0 34px; background: linear-gradient(120deg, #e8f5ff 0%, #f4faff 60%, #fff 100%); }
.nwp-hero::before { content: ""; position: absolute; top: -70px; right: 6%; width: 220px; height: 220px; border-radius: 50%; background: #d4ecfd; }
.nwp-hero::after { content: ""; position: absolute; bottom: -50px; right: 22%; width: 110px; height: 110px; border-radius: 50%; background: #fff3c4; }
.nwp-hero .nwp-in { position: relative; z-index: 1; }
.nwp-hero--s { padding: 18px 0 22px; }
.nwp-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 12.5px; color: #667; }
.nwp-crumb a { color: #0065cc; }
.nwp-crumb a:hover { text-decoration: underline; }
.nwp-crumb span { color: #aab; }
.nwp .nwp-en { margin-top: 14px; font-size: 13px; font-weight: bold; letter-spacing: .28em; color: #32b7fc; }
.nwp-hero--s .nwp-en { margin-top: 8px; }
.nwp .nwp-ttl { margin-top: 2px; padding: 0; border: 0; background: none; font-size: 32px; font-weight: 900; line-height: 1.3; color: #0b2d4f; }
.nwp .nwp-ttl::before, .nwp .nwp-ttl::after { content: none; }
.nwp .nwp-lead { margin-top: 8px; font-size: 14.5px; color: #4a5a6a; }

/* 本文と右の列 */
.nwp-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 36px; align-items: start; padding-top: 30px; padding-bottom: 60px; }
.nwp-main { min-width: 0; }
.nw-empty { padding: 30px 16px; border-radius: 14px; background: #f4f8fb; text-align: center; color: #555; }

/* 一覧 */
.nw-list { display: flex; flex-direction: column; gap: 10px; }
.nw-list li { margin: 0; padding: 0; }
.nw-list a { display: grid; grid-template-columns: 128px minmax(0, 1fr) 26px; gap: 16px; align-items: center; padding: 16px 18px; border: 1px solid #e1eaf2; border-radius: 14px; background: #fff; color: #333; transition: border-color .15s, background .15s; }
.nw-list a:hover { border-color: #0065cc; background: #f6fbff; }
.nw-list__d { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 3px 12px; border-radius: 14px; background: #e6f6ff; color: #0065cc; font-size: 13px; font-weight: bold; white-space: nowrap; }
.nw-list__t .nw-new { margin-right: 8px; vertical-align: 2px; }
.nwp .nwp-ttl--s { font-size: 22px; }
.nw-new { padding: 0 6px; border-radius: 8px; background: #e00; color: #fff; font-size: 10px; font-style: normal; font-weight: bold; line-height: 1.6; }
.nw-list__b { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nw-list__t { font-size: 15.5px; font-weight: bold; line-height: 1.5; color: #0b2d4f; }
.nw-list a:hover .nw-list__t { color: #0065cc; }
.nw-list__x { font-size: 12.5px; line-height: 1.6; color: #6a7884; }
.nw-arrow { display: inline-flex; width: 26px; height: 26px; border-radius: 50%; background: #0065cc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M8 5l5 5-5 5' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat; }
.nw-arrow--l { transform: scaleX(-1); }
.nw-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 26px; }
.nw-pager a, .nw-pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 8px; border: 1px solid #cfe0ef; border-radius: 10px; background: #fff; color: #0065cc; font-weight: bold; }
.nw-pager span { border-color: #0065cc; background: #0065cc; color: #fff; }
.nw-pager a:hover { background: #eaf5ff; }

/* 詳細 */
.nw-post { padding: 34px 40px 30px; border: 1px solid #e1eaf2; border-radius: 20px; background: #fff; }
.nw-post__hd { margin-bottom: 26px; padding-bottom: 20px; border-bottom: 1px solid #e6eef5; }
.nw-post__d { display: flex; align-items: center; gap: 8px; }
.nw-post__d time { display: inline-block; padding: 3px 14px; border-radius: 14px; background: #e6f6ff; color: #0065cc; font-size: 13px; font-weight: bold; }
.nwp .nw-post__t { margin-top: 12px; padding: 0; border: 0; background: none; font-size: 27px; font-weight: 900; line-height: 1.45; color: #0b2d4f; }
.nwp .nw-post__t::before, .nwp .nw-post__t::after { content: none; }
.nw-body { font-size: 16px; line-height: 2; word-break: break-word; color: #333; }
.nwp .nw-body p { margin: 0 0 1.2em; }
.nwp .nw-body h3 { margin: 1.8em 0 .8em; padding: 12px 18px; border-radius: 12px; background: #eaf5ff; color: #0b5cad; font-size: 19px; font-weight: bold; line-height: 1.5; }
.nw-body h3::before, .nw-body h3::after { content: none; }
.nwp .nw-body h4 { margin: 1.5em 0 .6em; padding: 0 0 6px; border-bottom: 2px solid #e6eef5; color: #0b2d4f; font-size: 17px; font-weight: bold; }
.nwp .nw-body ul { margin: 0 0 1.2em; padding: 14px 18px 14px 36px; border-radius: 12px; background: #f6f9fb; list-style: disc; }
.nwp .nw-body li { margin: 0 0 .3em; padding: 0; list-style: disc; }
.nw-body strong { color: #0b2d4f; background: linear-gradient(transparent 62%, #fff1a8 62%); }
.nw-body a { color: #0065cc; text-decoration: underline; }
.nwp .nw-body .nw-img { margin: 0 0 1.4em; text-align: center; }
.nw-body img { display: inline-block; max-width: 100%; height: auto; border-radius: 12px; }
.nwp .nw-sign { margin-top: 26px; padding-top: 16px; border-top: 1px dashed #dbe5ee; font-size: 14px; font-weight: bold; color: #4a5a6a; text-align: right; }
.nw-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 22px; }
.nw-nav a { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid #e1eaf2; border-radius: 14px; background: #fff; color: #333; font-size: 14px; line-height: 1.5; }
.nw-nav a span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nw-nav a small { color: #0065cc; font-size: 12px; font-weight: bold; }
.nw-nav a:hover { border-color: #0065cc; background: #f6fbff; }
.nw-nav__n { justify-content: flex-end; text-align: right; }
.nw-nav .nw-arrow { flex: none; }
.nwp .nw-back { margin-top: 24px; text-align: center; }
.nw-back a { display: inline-flex; align-items: center; justify-content: center; min-width: 260px; padding: 13px 26px; border: 2px solid #0065cc; border-radius: 40px; background: #fff; color: #0065cc; font-weight: bold; }
.nw-back a:hover { background: #0065cc; color: #fff; }

/* 右の列 */
.nwp-side { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 16px; }
.nws-box { padding: 18px 18px 16px; border: 1px solid #e1eaf2; border-radius: 16px; background: #fff; }
.nwp .nws-h { margin-bottom: 8px; padding-bottom: 8px; border-bottom: 2px solid #e6f6ff; font-size: 15px; font-weight: bold; color: #0b2d4f; }
.nws-l li { border-bottom: 1px solid #eef3f7; }
.nws-l li:last-child { border-bottom: 0; }
.nws-l a { display: flex; flex-direction: column; padding: 9px 2px; color: #333; font-size: 13.5px; line-height: 1.5; }
.nws-l a small { color: #0065cc; font-size: 11.5px; font-weight: bold; }
.nws-l a:hover { color: #0065cc; }
.nws-all { display: block; margin-top: 8px; font-size: 13px; font-weight: bold; color: #0065cc; text-align: right; }
.nws-all:hover { text-decoration: underline; }
.nws-cta { padding: 20px 18px; border-radius: 16px; background: linear-gradient(140deg, #0b5cad 0%, #1a86de 100%); color: #fff; }
.nwp .nws-cta__h { font-size: 16px; font-weight: 900; line-height: 1.45; }
.nwp .nws-cta__d { margin-top: 8px; font-size: 12.5px; line-height: 1.7; color: rgba(255, 255, 255, .9); }
.nws-cta__m, .nws-cta__t { display: flex; flex-direction: column; align-items: center; margin-top: 12px; padding: 10px 8px; border-radius: 12px; font-weight: 900; line-height: 1.35; text-align: center; }
.nws-cta__m small, .nws-cta__t small { font-size: 11px; font-weight: bold; }
.nws-cta__m { background: #ff6a00; color: #fff !important; font-size: 16px; }
.nws-cta__m:hover { background: #f25f00; }
.nws-cta__t { background: #fff; color: #0b2d4f !important; font-size: 21px; letter-spacing: .02em; }
.nws-cta__t small { color: #0065cc; }

@media screen and (max-width: 959px) {
	.nwp-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
	.nwp-side { position: static; }
}
@media screen and (max-width: 767px) {
	/* スマホは上のヘッダー（固定62px）の下から始める。無いとパンくずが隠れる（2026-10-16） */
	.nwp { padding-top: var(--spn-hd-h, 62px); }
	.nwp-in { padding: 0 14px; }
	.nwp-hero { padding: 16px 0 22px; }
	.nwp .nwp-ttl { font-size: 24px; }
	.nwp-grid { padding-top: 20px; padding-bottom: 40px; }
	.nw-list a { grid-template-columns: minmax(0, 1fr) 24px; gap: 6px 10px; padding: 14px; }
	.nw-list__d { grid-column: 1 / -1; }
	.nw-post { padding: 22px 16px 20px; border-radius: 16px; }
	.nwp .nw-post__t { font-size: 21px; }
	.nw-body { font-size: 15px; line-height: 1.9; }
	.nwp .nw-body h3 { font-size: 17px; padding: 10px 14px; }
	.nw-nav { grid-template-columns: minmax(0, 1fr); }
}
