/* css/pages/news-v2.css
   お知らせ一覧ページ 2026-09-19リニューアル。
   基準: rebuild/staging/news_reference_20260919.png（1024x1536、PC1280換算 x1.25）
   対象: #nv2Page配下 + 新設 header(.nv2-site-header)のみ。既存共有CSS・既存news.cssは
   無変更。既存CMSテンプレート・admin.cgi・他ページは無変更。
   色はBLUE系（採用ページのGREEN主体とは区別）。Header/ロゴ/タイポ/余白/カード品質/
   Footer体系で和同会サイトとしての統一感を維持する。
*/

:root{
  --nv-blue: #0e5fac;
  --nv-blue-dark: #0a4a87;
  --nv-blue-pale: #eaf3fc;
  --nv-blue-softer: #dbeaf9;
  --nv-navy: #0f2f4d;
  --nv-ink: #1c3b57;
  --nv-text: #46617a;
  --nv-line: #e1eaf3;
  --nv-red: #e0483f;
}

/* ------------------------------------------------------------
   Header（新規、既存ページとの統一感を維持しつつ本ページ専用）
   ------------------------------------------------------------ */
.nv2-site-header{
  height: 70px;
  padding: 0 42px;
  display: flex;
  align-items: center;
  gap: 24px;
  background: #fff;
  border-bottom: 1px solid var(--nv-line);
  box-shadow: 0 2px 14px rgba(17,55,72,.05);
  position: relative;
  z-index: 30;
  font-family: "Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
}
.nv2-site-brand{ display:flex; align-items:center; gap:12px; flex:0 0 auto; color:var(--nv-navy); text-decoration:none; }
.nv2-site-brand img{ width:40px; height:40px; object-fit:contain; }
.nv2-site-brand-name{ display:flex; flex-direction:column; align-items:center; line-height:1; }
.nv2-site-brand-name strong{ font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:20px; font-weight:500; letter-spacing:.16em; white-space:nowrap; }
.nv2-site-brand-name small{ margin-top:5px; font-size:7px; letter-spacing:.22em; color:var(--nv-text); }
.nv2-site-brand-tagline{ margin-left:10px; font-size:11px; color:var(--nv-text); white-space:nowrap; }
.nv2-site-nav{ display:flex; align-items:center; justify-content:flex-end; gap:22px; flex:1; }
.nv2-site-nav a{ color:var(--nv-navy); font-size:13px; font-weight:700; white-space:nowrap; text-decoration:none; padding-bottom:4px; border-bottom:2px solid transparent; }
.nv2-site-nav a[aria-current="page"]{ color: var(--nv-blue); border-color: var(--nv-blue); }
.nv2-site-nav a:hover{ color: var(--nv-blue); }
.nv2-site-search{ font-size:18px; color: var(--nv-navy); cursor:default; }
.nv2-header-entry{
  height: 44px; padding: 0 20px; display:inline-flex; align-items:center; gap:8px;
  color:#fff; background: linear-gradient(90deg, var(--nv-blue), #1c79c9);
  border-radius: 3px; box-shadow: 0 7px 18px rgba(14,95,172,.22);
  font-size:13px; font-weight:700; white-space:nowrap; text-decoration:none;
}
.nv2-header-entry .material-icons{ font-size:17px; }
.nv2-site-header .nv2-header-entry,
.nv2-site-header .nv2-header-entry:link,
.nv2-site-header .nv2-header-entry:visited,
.nv2-site-header .nv2-header-entry:hover,
.nv2-site-header .nv2-header-entry:focus,
.nv2-site-header .nv2-header-entry:focus-visible{ color:#fff; }
/* Mobile390専用ハンバーガーメニュー要素。PC1280/Tablet834ではdisplay:noneのまま
   （新規追加要素のためベース状態を明示、両確定表示への影響はない）。 */
.nv2-menu-toggle, .nv2-menu-close, .nv2-menu-backdrop{ display:none; }

/* ------------------------------------------------------------
   base
   ------------------------------------------------------------ */
#nv2Page{
  color: var(--nv-ink);
  background: #fff;
  font-family: "Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  overflow: hidden;
  /* 既存共有CSS（css/base.css）の body{text-align:center} が明示的に上書きしていない
     要素すべてへ継承し、Footerブランドブロック等が意図せず中央寄せになっていた。
     共有CSSファイル自体は無変更のまま、本ページ内だけ左寄せへ戻す。 */
  text-align: left;
}
#nv2Page *, #nv2Page *::before, #nv2Page *::after{ box-sizing: border-box; }
#nv2Page img{ display:block; max-width:100%; }
#nv2Page a{ text-decoration:none; color: inherit; }
#nv2Page h1, #nv2Page h2, #nv2Page h3, #nv2Page p{ margin:0; }
#nv2Page ul{ margin:0; padding:0; list-style:none; }
#nv2Page svg{ display:block; }
.nv2-wrap{ width:min(1200px, calc(100% - 80px)); margin:0 auto; }
.nv2-photo-placeholder{
  width:100%; height:100%; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:6px; color: var(--nv-blue-dark); background-color: var(--nv-blue-softer);
  background-image: repeating-linear-gradient(135deg, rgba(14,95,172,.12) 0, rgba(14,95,172,.12) 6px, rgba(255,255,255,.5) 6px, rgba(255,255,255,.5) 12px);
  border: 1px solid #c3d9ef;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.6);
}
.nv2-photo-placeholder .material-icons{ font-size:30px; opacity:.8; }
.nv2-photo-placeholder span:last-child{ font-size:9px; font-weight:700; letter-spacing:.06em; }

/* ------------------------------------------------------------
   Hero
   ------------------------------------------------------------ */
.nv2-hero{
  position: relative;
  height: 470px;
  background: linear-gradient(100deg, #eef7fd 0%, #eaf5fc 35%, #eef8f2 100%);
  overflow: hidden;
}
.nv2-hero-inner{ width:100%; height:100%; position:relative; }
.nv2-hero-copy{
  position:absolute; z-index:4; left:max(48px, calc((100vw - 1200px)/4 + 8px)); top:100px; width:360px;
}
.nv2-eyebrow{ display:block; color: var(--nv-blue); font-size:12px; font-weight:700; letter-spacing:.12em; margin-bottom:12px; }
#nv2Page .nv2-hero-copy h1{
  color: var(--nv-navy); font-size:80px; font-weight:800; letter-spacing:.03em; line-height:1.15;
  margin-bottom: 22px;
}
#nv2Page .nv2-hero-lead{ color: var(--nv-navy); font-size:20px; font-weight:700; line-height:1.7; margin-bottom:16px; }
.nv2-hero-sub{ color: var(--nv-text); font-size:15.5px; line-height:1.8; }

.nv2-hero-visual{ position:absolute; inset:0 0 0 34%; overflow:hidden; }
.nv2-hero-visual.reveal{ opacity:1; transform:none; transition:none; }
.nv2-hero-photo{ position:absolute; inset:0; }
.nv2-hero-photo-img{ width:100%; height:100%; object-fit:cover; object-position:center top; }

.nv2-hero-badge{
  position:absolute; z-index:3; left:600px; top:290px; width:200px; height:200px;
  display:grid; place-items:center; text-align:center;
  color: var(--nv-blue-dark); background: rgba(255,255,255,.68); border-radius:50%;
  box-shadow: 0 6px 18px rgba(14,60,100,.1); font-size:15px; font-weight:700; letter-spacing:.05em;
}
.nv2-hero-badge span{ line-height:1.6; writing-mode: vertical-rl; text-orientation: upright; }

.nv2-hero-message{
  position:absolute; z-index:4; right:120px; top:30px; color: var(--nv-blue-dark);
  font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size:47px; font-style:italic;
  font-weight:600; line-height:1.5; letter-spacing:.05em; transform: rotate(-10deg); text-align:right;
  text-shadow:none;
}
.nv2-hero-message small{
  display:block; margin-top:10px; font-family: Arial, sans-serif; font-size:13px;
  font-style:normal; font-weight:500; letter-spacing:.06em; line-height:1.5;
}

/* ------------------------------------------------------------
   パンくず / カテゴリーフィルター
   ------------------------------------------------------------ */
.nv2-breadcrumb{
  padding: 18px 0 14px; display:flex; align-items:center; gap:8px; font-size:12px; color: var(--nv-text);
}
.nv2-breadcrumb a{ color: var(--nv-text); }
.nv2-breadcrumb a:hover{ color: var(--nv-blue); }
.nv2-breadcrumb span[aria-current]{ color: var(--nv-navy); font-weight:700; }

/* 既存共有CSS（css/vendor/normalize.css）のグローバル`ul{justify-content:space-evenly}`
   リセットが上書きされずに残っていたため、ピル間の余白が基準画像実測(15-20px)より
   大幅に広い(約80px)状態になっていた。normalize.css自体は無変更のまま、
   本ページ内だけjustify-content:flex-startで上書きする。 */
.nv2-filter{ display:flex; flex-wrap:nowrap; justify-content:flex-start; gap:16px; padding-bottom:26px; }
.nv2-filter button{
  height:38px; padding:0 14px; display:inline-flex; align-items:center; white-space:nowrap;
  color: var(--nv-blue-dark); background:#fff; border:1px solid #cfe0f2; border-radius:999px;
  font-size:12px; font-weight:700; font-family:inherit; cursor:pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.nv2-filter button:hover{ border-color: var(--nv-blue); }
.nv2-filter button.is-active{ color:#fff; background: var(--nv-blue); border-color: var(--nv-blue); }

/* ------------------------------------------------------------
   メイン2カラム
   ------------------------------------------------------------ */
.nv2-main-grid{ display:grid; grid-template-columns: minmax(0,748px) minmax(0,422px); gap:30px; padding-bottom: 44px; }
.nv2-list-col{ min-width:0; }

#newslist{ display:flex; flex-direction:column; }
/* 既存共有CSS（css/cms/cms-components.css）の `.linkwrapper li`（丸角20px・白背景・
   inset box-shadow・padding 1% 10%・margin 3% 0 のカード装飾）は #newslist に
   class="linkwrapper" が付与されているため無条件に適用される。基準画像は
   コンパクトな横長リスト（枠線カードではなく罫線区切り）のため、本ページ内だけ
   ID詳細度でリセットし、区切り線のみのフラットな行に上書きする
   （既存CSSファイル自体・class="linkwrapper"は無変更、見た目のみ上書き）。 */
#newslist > li{
  list-style:none; margin:0; padding:0; border-radius:0; background:none; box-shadow:none;
  border-bottom: 1px solid var(--nv-line);
}
#newslist > li:last-child{ border-bottom:0; }
#newslist > li.nv2-page-hidden{ display:none !important; }
#newslist > li:first-child > div{ padding-top:0; }
#newslist > li > div{
  padding: 18px 0; display:flex; align-items:center; gap:20px; position:relative;
}
#newslist .p-news-card-image{
  width:160px; height:120px; flex:0 0 160px; object-fit:cover; border-radius:6px; background: var(--nv-blue-pale);
}
/* 画像なしカード（p-news-card-imageが無い、またはonerrorで除去された場合）は
   淡いブルーのプレースホルダーで代替する（既存CSSの意図を踏襲、写真差し替え待ち） */
#newslist > li > div:not(:has(> .p-news-card-image))::before{
  content:""; width:160px; height:120px; flex:0 0 160px; border-radius:6px;
  background-color: var(--nv-blue-pale);
  background-image: repeating-linear-gradient(135deg, rgba(14,95,172,.06) 0, rgba(14,95,172,.06) 5px, rgba(255,255,255,.4) 5px, rgba(255,255,255,.4) 10px);
}
#newslist .project-newsitem{ flex:1; min-width:0; }
#newslist .c-cms-table{ width:100%; border-collapse:collapse; }
#newslist .c-cms-table tr, #newslist .c-cms-table td{ display:block; border:0; padding:0; }
/* 基準画像実測: 日付〜カテゴリタグ間の余白、日付〜タイトル間の余白を実測値へ調整 */
#newslist .project-newtd{
  display:inline-flex; align-items:center; gap:14px; margin:0 0 10px; color:#8299b0; font-size:12px;
}
/* 既存CMS共有CSS（css/cms/cms-components.css）の .project-inline-icon（幅60px固定・
   スプライト背景画像）を本カード内だけ無効化する（既存CSSファイル自体は無変更）。
   置き換えるのは見た目のみで、要素・クラス・DOM構造は既存のまま。 */
#newslist .project-newtd .project-inline-icon{
  width:auto; height:auto; background:none !important; display:inline-flex; margin-left:0;
}
#newslist .project-inline-icon.project-newfl{ order:-1; }
#newslist .project-newfl.project-new::before{
  content:"NEW"; display:inline-flex; align-items:center; padding:3px 9px; color:#fff;
  background: var(--nv-red); border-radius:3px; font-size:10px; font-weight:800; letter-spacing:.03em;
}
/* カテゴリータグ：既存CMS公式カテゴリ名をそのまま表示する（推測なし）。
   売店/薬局/給食部/企業/その他=青枠、採用情報=青塗り。参考画像の「法人/施設/メディア/
   イベント」という表記は現行CMSに対応カテゴリが存在しないため、既存タグには使用しない
   （差異として報告済み）。 */
/* 既存共有CSS（css/cms/cms-components.css）の `.c-cms-table td{display:contents}` は
   `.icontd`単体指定より詳細度が高く（.c-cms-table td = 0,1,1 > .icontd = 0,1,0）、
   このままでは icontd 内の旧アイコンスプライトが見えてしまう。本カード内だけ
   詳細度を上げて確実に無効化する（既存CSSファイル自体は無変更）。 */
#newslist .icontd{ display:none !important; }
#newslist .title.project-{ display:contents; }
#newslist .title{ display:block; }
/* タイトルはline-clamp用のoverflow:hiddenを維持する。右端の円形矢印は同じ
   CMS詳細URLを持つ独立リンクとして親要素へ絶対配置し、見た目を変えずに
   円全体をクリック可能にする。 */
#newslist .title > .title{ display:block; position:relative; }
#newslist .title a:not(.nv2-article-arrow){
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
  padding-right:36px; color: var(--nv-navy); font-size:15px; font-weight:700; line-height:1.5;
}
#newslist .nv2-article-arrow{
  position:absolute; right:0; top:16px; width:28px; height:28px;
  border:1.5px solid var(--nv-blue); border-radius:50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e5fac' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center/14px no-repeat;
}
.p-news-card-summary{
  margin-top:8px !important; color: var(--nv-text); font-size:12px; line-height:1.6; max-width: 560px;
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
}

/* カテゴリラベル（確定CMSカテゴリのみ、JSで自動付与） */
.nv2-cat-label{
  display:inline-block; margin-right:10px; padding:3px 10px; border-radius:3px; font-size:10.5px;
  font-weight:700; border:1px solid var(--nv-blue); color: var(--nv-blue-dark); background:#fff; vertical-align:middle;
}
.nv2-cat-label--saiyou{ color:#fff; background: var(--nv-blue); border-color: var(--nv-blue); }

/* ------------------------------------------------------------
   ページネーション
   ------------------------------------------------------------ */
/* 基準画像実測: pagination行は矢印/数字のみで高さ約40pxだが、CURRENTはpadding-topが
   過大で64pxになっていた（+24px）。実測差分に基づき縮小。 */
.nv2-pagination{ display:flex; align-items:center; justify-content:center; gap:12px; padding-top:10px; }
.nv2-page-arrow{
  width:30px; height:30px; display:flex; align-items:center; justify-content:center;
  color: var(--nv-blue); border-radius:50%; cursor:pointer; order:2;
}
.nv2-page-arrow.nv2-page-prev{ order:1; }
.nv2-page-arrow.nv2-page-next{ order:3; }
.nv2-page-arrow.is-disabled{ color:#cfe0f2; pointer-events:none; }
.nv2-page-arrow svg{ width:18px; height:18px; }
.nv2-page-num{
  order:2; min-width:30px; height:30px; padding:0 4px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; font-size:13px; font-weight:700; color: var(--nv-blue-dark); cursor:pointer;
}
.nv2-page-num--current{ color:#fff; background: var(--nv-blue); cursor:default; }
.nv2-page-ellipsis{ order:2; color:#9fb6cc; font-size:13px; }

/* ------------------------------------------------------------
   Sidebar
   ------------------------------------------------------------ */
.nv2-sidebar{ display:flex; flex-direction:column; gap:14px; }
/* 基準画像実測: カード内左右paddingが狭く、検索ボックスが端まで広がりすぎていたため拡大 */
.nv2-side-card{ background: var(--nv-blue-pale); border-radius:8px; padding:24px; }
.nv2-side-card h3{ color: var(--nv-navy); font-size:14px; font-weight:700; margin-bottom:14px; }
.nv2-search-form{ display:flex; align-items:center; background:#fff; border:1px solid #d3e3f4; border-radius:6px; padding:0 12px; height:42px; }
.nv2-search-form input{ flex:1; border:0; outline:0; font-size:13px; background:transparent; font-family:inherit; color: var(--nv-ink); }
.nv2-search-form button{ border:0; background:none; color: var(--nv-blue); display:flex; align-items:center; cursor:pointer; padding:0; }
.nv2-search-form svg{ width:18px; height:18px; }

/* 同じnormalize.css由来のjustify-content:space-evenly問題（詳細は.nv2-filterのコメント参照）
   がこのul要素にも影響し、カテゴリ各行の間隔が不均一に広がっていたため上書きする。 */
.nv2-category-list{ display:flex; flex-direction:column; justify-content:flex-start; }
.nv2-category-list li + li{ margin-top:2px; }
.nv2-category-list button{
  width:100%; height:42px; padding:0 8px; display:flex; align-items:center; gap:12px;
  background:none; border:0; border-top:1px solid #dceafb; font-family:inherit; font-size:13px;
  font-weight:600; color: var(--nv-ink); cursor:pointer; text-align:left;
}
.nv2-category-list li:first-child button{ border-top:0; }
.nv2-category-list .material-icons{ font-size:19px; color: var(--nv-blue); }
.nv2-chev{ margin-left:auto; color:#9fb6cc; font-size:18px; }
.nv2-category-list button:hover{ color: var(--nv-blue); }

.nv2-promo-card{
  position:relative; display:none; border-radius:10px; overflow:hidden; min-height:230px;
}
.nv2-promo-photo{ position:absolute; inset:0; }
.nv2-promo-copy{
  position:relative; z-index:2; height:100%; min-height:230px; padding:26px;
  display:flex; flex-direction:column; justify-content:flex-end; gap:6px;
  background: linear-gradient(180deg, rgba(10,74,135,.05) 0%, rgba(10,74,135,.72) 78%);
  color:#fff;
}
.nv2-promo-title{ font-family:"Yu Mincho",serif; font-size:22px; font-weight:600; line-height:1.5; }
.nv2-promo-sub{ font-size:11px; letter-spacing:.04em; opacity:.9; }
.nv2-promo-btn{
  margin-top:10px; display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
  padding:10px 18px; background:#fff; color: var(--nv-blue-dark); border-radius:999px; font-size:12px; font-weight:700;
}

/* ------------------------------------------------------------
   SITE MAP
   ------------------------------------------------------------ */
.nv2-sitemap{
  position:relative; overflow:hidden; padding:10px 0 4px; background: linear-gradient(180deg, #fff 0%, #f3f9fe 100%);
}
/* 基準画像実測: 左端で画面外へ切れた淡いブルーの半円が上下2つある。円自体は
   position:absolute + border-radius:50% + 負のleftで再現し、.nv2-sitemapの
   overflow:hiddenが左端を切り取ることで「半分だけ見えている」状態にしている。 */
.nv2-sm-edge-circle{ position:absolute; z-index:0; border-radius:50%; background: var(--nv-blue-softer); opacity:.5; pointer-events:none; }
.nv2-sm-edge-circle--top{ width:170px; height:170px; left:-95px; top:-10px; }
.nv2-sm-edge-circle--bottom{ width:110px; height:110px; left:-55px; top:290px; opacity:.4; }

/* 基準画像実測に基づく多層の波形背景（SVG）。上から: 円形写真の後ろを通る広い帯、
   写真の上を横断する細い波線、下部の大きな淡青カーブ、下部を横切る細いライン。
   単一のborder-radius図形の代用ではなく、複数レイヤーで構成している。 */
.nv2-sitemap-waves-svg{ position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.nv2-wv-bottom{ fill: var(--nv-blue-pale); opacity:.55; }
.nv2-wv-band{ fill: var(--nv-blue-softer); opacity:.5; }
.nv2-wv-line{ stroke: var(--nv-blue); stroke-width:2.5; opacity:.4; }
.nv2-wv-line--2{ stroke-width:1.5; opacity:.3; }

.nv2-sitemap-photos{ position:absolute; inset:0; pointer-events:none; z-index:2; }
.nv2-sitemap-waves-front-svg{ position:absolute; inset:0; width:100%; height:100%; z-index:3; pointer-events:none; }
.nv2-wv-front{ fill: var(--nv-blue-softer); opacity:.55; }
.nv2-sm-photo{ position:absolute; border-radius:50%; overflow:hidden; box-shadow:0 10px 24px rgba(14,60,100,.14); border:4px solid #fff; }
/* 2026-09-19 三度目の調整: 基準画像実測により「3円が横並びの独立カード」に見えないよう、
   人物写真を最も大きく中心的に、建物写真を波の谷へ大きく沈み込ませ、葉写真を人物より
   小さく後方に配置。写真素材そのものは無変更（前工程で確定済み）。 */
.nv2-sm-photo--building{ width:208px; height:208px; left:26%; top:54px; }
.nv2-sm-photo--person{ width:196px; height:196px; left:44%; top:0; }
.nv2-sm-photo--leaf{ width:128px; height:128px; left:62%; top:78px; }
.nv2-sm-placeholder{ font-size:0; }
.nv2-sm-placeholder .material-icons{ font-size:26px; opacity:.6; }
.nv2-sm-photo-img{ width:100%; height:100%; object-fit:cover; }
.nv2-sm-photo--person .nv2-sm-photo-img{
  object-position:center 42%;
  transform:scale(1.08);
  transform-origin:50% 42%;
}

.nv2-sitemap-circle{
  position:absolute; z-index:4; right:2%; top:8px; width:150px; height:150px; border-radius:50%;
  background: linear-gradient(135deg, var(--nv-blue), var(--nv-blue-dark)); color:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  font-size:13px; font-weight:700; line-height:1.5; gap:10px; box-shadow:0 14px 30px rgba(10,74,135,.28);
}
.nv2-sitemap-circle-arrow{
  width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center;
}

.nv2-sitemap-inner{ position:relative; z-index:4; }
.nv2-sitemap-head{ position:relative; z-index:3; padding-top:8px; padding-bottom:135px; max-width:300px; }
.nv2-sitemap-message{ font-family:"Yu Mincho",serif; font-size:26px; font-weight:600; color: var(--nv-blue-dark); line-height:1.5; margin-bottom:16px; }
.nv2-sitemap-en{ font-size:13px; font-weight:800; letter-spacing:.14em; color: var(--nv-navy); margin-bottom:8px; }
.nv2-sitemap-desc{ font-size:12.5px; color: var(--nv-text); line-height:1.8; }

.nv2-sitemap-nav{ display:grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap:16px; align-items:start; }
.nv2-sm-col{ text-align:center; }
.nv2-sm-icon{
  width:52px; height:52px; margin:0 auto 10px; display:flex; align-items:center; justify-content:center;
  background:#fff; border-radius:50%; box-shadow:0 6px 16px rgba(14,60,100,.12); color: var(--nv-blue);
  transition: transform .18s ease, box-shadow .18s ease;
}
.nv2-sm-icon .material-icons{ font-size:22px; }
.nv2-sm-icon:hover{ transform: translateY(-3px); box-shadow:0 10px 20px rgba(14,60,100,.18); }
.nv2-sm-label{ display:block; color: var(--nv-navy); font-size:13px; font-weight:700; margin-bottom:10px; }
/* 基準画像実測: サブメニューのリンク間ピッチは約30pxだが、CURRENTはリンクの
   line-heightが未指定のため共有CSS（css/base.css body{line-height:2}）を継承し、
   1リンクあたり約6px余分に高さを取っていた（4項目で約24px、SITE MAP全体高さ超過の
   主因）。line-height指定とgap再調整で基準画像のピッチへ合わせる。 */
.nv2-sm-col ul{ display:flex; flex-direction:column; gap:12px; }
.nv2-sm-col ul li{ line-height:1.5; font-size:11.5px; }
.nv2-sm-col ul li a{
  display:inline-flex; align-items:center; gap:2px; font-size:11.5px; line-height:1.5; color: var(--nv-text);
  transition: color .15s ease, transform .15s ease;
}
.nv2-sm-col ul li a::before{ content:"›"; color: var(--nv-blue); }
.nv2-sm-col ul li a:hover{ color: var(--nv-blue); transform: translateX(2px); }

/* ------------------------------------------------------------
   SITE MAP アニメーション（控えめ、静止状態のレイアウトは変えない）
   ------------------------------------------------------------ */
@keyframes nv2WaveDrift{ 0%{ transform:translateX(0);} 50%{ transform:translateX(14px);} 100%{ transform:translateX(0);} }
@keyframes nv2PhotoBob{ 0%{ transform:translateY(0);} 50%{ transform:translateY(-5px);} 100%{ transform:translateY(0);} }
@keyframes nv2CircleFloat{ 0%{ transform:translateY(0);} 50%{ transform:translateY(-4px);} 100%{ transform:translateY(0);} }

.nv2-wv-bottom, .nv2-wv-band, .nv2-wv-line{ animation: nv2WaveDrift 16s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.nv2-wv-band{ animation-duration: 20s; animation-direction: reverse; }
.nv2-wv-line--2{ animation-duration: 18s; }
.nv2-sm-edge-circle{ animation: nv2PhotoBob 9s ease-in-out infinite; }
.nv2-sm-edge-circle--bottom{ animation-duration: 11s; animation-delay: .5s; }
.nv2-sm-photo{ animation: nv2PhotoBob 6s ease-in-out infinite; }
.nv2-sm-photo--person{ animation-duration: 7s; animation-delay: .4s; }
.nv2-sm-photo--leaf{ animation-duration: 5s; animation-delay: .8s; }
.nv2-sitemap-circle{ animation: nv2CircleFloat 7s ease-in-out infinite; }

.reveal{ opacity:0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  .nv2-wv-bottom, .nv2-wv-band, .nv2-wv-line, .nv2-sm-edge-circle, .nv2-sm-photo, .nv2-sitemap-circle{ animation:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .nv2-sm-icon, .nv2-sm-col ul li a{ transition:none !important; }
}

/* ------------------------------------------------------------
   Footer
   ------------------------------------------------------------ */
/* 既存共有CSS（css/layout.css）の `footer, footer address, footer p, footer small{text-align:center}`
   はfooter要素自体への直接指定のため、#nv2Pageの継承によるtext-align:leftより優先されてしまう。
   共有CSSファイル自体は無変更のまま、.nv2-footerへ直接指定して打ち消す。 */
.nv2-footer{ border-top:1px solid var(--nv-line); background:#fff; text-align:left; }
.nv2-footer-inner{ display:grid; grid-template-columns:1fr; align-items:center; gap:0; min-height:96px; padding:20px 0; }
.nv2-footer-brand{ display:flex; align-items:flex-start; justify-content:flex-start; gap:12px; }
/* 既存共有CSS（css/layout.css）の `footer img{margin:0 auto}` が margin-right/left を
   autoのまま残しており、ロゴとテキストの間に大きな余白ができていた。共有CSSファイル
   自体は無変更のまま、本ページ内だけ4方向すべてを明示指定して打ち消す。 */
.nv2-footer-brand img{ width:34px; height:34px; object-fit:contain; margin:2px 0 0 0; }
.nv2-footer-brand-text strong{ display:block; font-family:"Yu Mincho",serif; font-size:16px; color: var(--nv-navy); }
.nv2-footer-brand-text span{ display:block; font-size:8px; letter-spacing:.2em; color: var(--nv-text); margin-bottom:6px; }
/* 既存共有CSS（css/layout.css）の `footer p{text-align:center}` がp要素へ直接指定されて
   いるため、.nv2-footer側のtext-align:leftが継承で伝わらない。ここでも明示的に上書きする。 */
.nv2-footer-brand-text p{ font-size:10.5px; color: var(--nv-text); line-height:1.6; text-align:left; }
.nv2-footer-links{ display:flex; gap:18px; }
.nv2-footer-links a{ font-size:11.5px; color: var(--nv-text); }
.nv2-footer-links a:hover{ color: var(--nv-blue); }
.nv2-footer-right{ display:flex; align-items:center; gap:14px; }
.nv2-footer-right img{ width:24px; height:24px; object-fit:contain; margin:0; }
.nv2-footer-pagetop{
  position:static !important; width:40px; height:40px; display:flex !important; align-items:center; justify-content:center;
  background: var(--nv-blue); color:#fff; border-radius:50%; opacity:1 !important; visibility:visible !important;
}
.nv2-footer-pagetop svg{ width:16px; height:16px; }

/* ------------------------------------------------------------
   Tablet834（PC1280確定デザインを基準に、834px専用に再配置。
   PC1280側のルール・確定した写真素材・SITE MAP構成要素は変更しない。
   Mobile390は次工程。
   ------------------------------------------------------------ */
@media (max-width: 900px){

  /* ---------- Header ---------- */
  .nv2-site-header{ height:auto; min-height:60px; padding:10px 20px; gap:10px; flex-wrap:wrap; }
  .nv2-site-brand img{ width:32px; height:32px; }
  .nv2-site-brand-name strong{ font-size:15px; letter-spacing:.1em; }
  .nv2-site-brand-name small{ font-size:6px; }
  .nv2-site-brand-tagline{ display:none; }
  .nv2-site-nav{ gap:10px; flex:1 1 auto; justify-content:flex-start; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .nv2-site-nav a{ font-size:11px; }
  .nv2-site-search{ display:none; }
  .nv2-header-entry{ height:36px; padding:0 12px; font-size:11px; gap:5px; }
  .nv2-header-entry .material-icons{ font-size:15px; }

  /* ---------- Hero ----------
     基準：PC1280確定版の見え方（写真そのまま、テキスト列との境界のぼかし、人物周辺の
     明るさ、右側への自然な広がり）を834幅へ比例縮小。人物写真・Hero素材自体は無変更。 */
  .nv2-hero{ height:320px; }
  .nv2-hero-copy{ left:20px; top:26px; width:185px; }
  .nv2-eyebrow{ font-size:9.5px; margin-bottom:7px; }
  #nv2Page .nv2-hero-copy h1{ font-size:26px; margin-bottom:9px; }
  #nv2Page .nv2-hero-lead{ font-size:11px; line-height:1.55; margin-bottom:9px; }
  .nv2-hero-sub{ font-size:10px; line-height:1.55; }
  /* hero-visualの左端(34%)は維持したまま、テキスト列幅を狭めてバッジ・写真との
     重なりを回避。写真自体のobject-position（center top）・フェード効果は無変更の
     ため、PC確定版と同じ「人物が自然に見える」トリミング印象を維持する。バッジは
     テキスト列の右側、写真の左端に寄せて配置し、テキストとは重ならせない。 */
  .nv2-hero-badge{ left:213px; top:100px; width:74px; height:74px; background:rgba(255,255,255,.88); font-size:8.5px; }
  .nv2-hero-message{ right:16px; top:22px; font-size:17px; transform:rotate(-3deg); }
  .nv2-hero-message small{ font-size:9px; margin-top:5px; }

  /* ---------- パンくず / フィルター ---------- */
  .nv2-breadcrumb{ padding:14px 0 10px; font-size:11px; }
  .nv2-filter{ flex-wrap:wrap; gap:8px; padding-bottom:18px; }
  .nv2-filter button{ height:34px; padding:0 12px; font-size:11px; }

  /* ---------- メイン: 834では1カラムへ（Sidebarは記事一覧の下）---------- */
  .nv2-main-grid{ grid-template-columns: 1fr; gap:28px; padding-bottom:32px; }

  /* 834幅を活かすため、サムネイル・タイトル・概要をPC1280寄りのサイズへ引き上げる
     （1件の高さは抑え、5件+Paginationが1画面の流れに自然に収まる構成を維持） */
  #newslist > li > div{ padding:17px 0; gap:16px; }
  #newslist .p-news-card-image{ width:140px; height:104px; flex:0 0 140px; }
  #newslist > li > div:not(:has(> .p-news-card-image))::before{ width:140px; height:104px; flex:0 0 140px; }
  #newslist .project-newtd{ font-size:12.5px; }
  .nv2-cat-label{ font-size:11px; }
  #newslist .title a:not(.nv2-article-arrow){ font-size:15.5px; padding-right:32px; }
  #newslist .nv2-article-arrow{ width:27px; height:27px; top:14px; }
  .p-news-card-summary{ font-size:12.5px; }

  .nv2-pagination{ gap:8px; }

  /* ---------- Sidebar（機能はすべて維持、幅のみ100%へ）
     検索欄・カテゴリーパネルは834幅を活かして横方向にも余裕を持たせ、PC Sidebarを
     そのまま縦積みしただけの印象を弱める。検索⇔カテゴリー間の余白も広げる。 ---------- */
  .nv2-sidebar{ gap:20px; }
  .nv2-side-card{ padding:22px; }
  .nv2-search-form{ height:46px; }
  /* カテゴリー一覧を2列グリッドにし、834幅を横方向にも使う（機能・項目は無変更） */
  .nv2-category-list{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px 14px; }
  .nv2-category-list li{ margin-top:0 !important; }
  .nv2-category-list button{
    border-top:0; background:#fff; border-radius:8px; height:46px; padding:0 12px;
    box-shadow:0 2px 6px rgba(14,60,100,.06);
  }

  /* 右側プロモーションカード: 位置・構造は維持したまま、横長カードとして
     画像・文字・ボタンの視認性を改善（縦の圧縮＋文字を縦中央寄せ、素材は無変更） */
  .nv2-promo-card{ min-height:168px; }
  .nv2-promo-copy{ min-height:168px; padding:22px; justify-content:center; gap:9px; }
  .nv2-promo-title{ font-size:20px; }
  .nv2-promo-sub{ font-size:11.5px; }
  .nv2-promo-btn{ font-size:12.5px; padding:11px 20px; }

  /* ---------- Footer: 1行に収まらないため折り返し（構造は維持） ---------- */
  .nv2-footer-inner{
    grid-template-columns: 1fr; row-gap:16px; padding:24px 0;
  }
  .nv2-footer-links{ flex-wrap:wrap; gap:12px 18px; }
  .nv2-footer-right{ gap:12px; }

  /* ---------- SITE MAP: 確定済みの波形・円形写真・人物写真・大型ブルー円・
     左端半円は維持。サイズ・位置のみ834へ比例調整する。 ---------- */
  .nv2-sitemap{ padding:8px 0 4px; }
  .nv2-sm-edge-circle--top{ width:120px; height:120px; left:-70px; top:-6px; }
  .nv2-sm-edge-circle--bottom{ width:80px; height:80px; left:-40px; top:220px; }

  .nv2-sm-photo--building{ width:150px; height:150px; left:20.5%; top:44px; }
  .nv2-sm-photo--person{ width:142px; height:142px; left:41%; top:0; }
  .nv2-sm-photo--leaf{ width:96px; height:96px; left:60%; top:58px; }

  .nv2-sitemap-circle{ width:110px; height:110px; font-size:11px; gap:6px; right:1%; top:6px; }
  .nv2-sitemap-circle-arrow{ width:24px; height:24px; }

  .nv2-sitemap-head{ max-width:230px; padding-top:6px; padding-bottom:95px; }
  .nv2-sitemap-message{ font-size:20px; margin-bottom:10px; }
  .nv2-sitemap-en{ font-size:11px; }
  .nv2-sitemap-desc{ font-size:11px; }

  /* 7カラム→4カラムで折り返す（項目・リンクは削除せず、レイアウトのみ再配置）。
     834pxではナビ文字が小さく読みにくいため、文字サイズ・行間を少し拡大する。 */
  .nv2-sitemap-nav{ grid-template-columns: repeat(4, minmax(0,1fr)); gap:22px 12px; }
  .nv2-sm-icon{ width:44px; height:44px; margin-bottom:9px; }
  .nv2-sm-icon .material-icons{ font-size:19px; }
  .nv2-sm-label{ font-size:12.5px; margin-bottom:9px; }
  .nv2-sm-col ul{ gap:11px; }
  .nv2-sm-col ul li{ font-size:11.5px; line-height:1.6; }
  .nv2-sm-col ul li a{ font-size:11.5px; }

  /* ---------- Footer: 文字が小さくなりすぎないよう微調整 ---------- */
  .nv2-footer-brand-text strong{ font-size:16.5px; }
  .nv2-footer-brand-text span{ font-size:9px; }
  .nv2-footer-brand-text p{ font-size:11.5px; }
  .nv2-footer-links a{ font-size:12.5px; }
}

/* ------------------------------------------------------------
   Mobile390（PC1280確定・Tablet834確定は変更しない。ここから下のみ新規）
   PC/Tabletの単純縮小ではなく、390px向けにスマートフォンレイアウトへ再配置する。
   人物写真・SITE MAP円形写真・コンテンツ・機能は維持し、配置とサイズのみ調整する。
   ------------------------------------------------------------ */
@media (max-width: 480px){

  .nv2-wrap{ width:calc(100% - 32px); }

  /* ---------- Header: ロゴ左 + ハンバーガー（+ お問い合わせアイコン）右。
     グローバルナビは既存の.nv2-site-nav自体をスライドパネル化して再利用する
     （リンクの二重管理を避ける）。 ---------- */
  .nv2-site-header{ padding:10px 16px; gap:8px; flex-wrap:nowrap; }
  .nv2-site-brand{ margin-right:auto; }
  .nv2-site-brand img{ width:28px; height:28px; }
  .nv2-site-brand-name strong{ font-size:13px; }
  .nv2-site-brand-name small{ display:none; }

  .nv2-menu-toggle{
    display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px;
    width:36px; height:36px; flex:0 0 36px; border:0; background:none; cursor:pointer; padding:0;
  }
  .nv2-menu-toggle span{ width:22px; height:2px; background:var(--nv-navy); border-radius:2px; }

  .nv2-header-entry{
    width:auto; height:36px; flex:0 0 auto; padding:0 12px; justify-content:center;
    font-size:11px; gap:5px; border-radius:3px;
  }
  .nv2-header-entry .material-icons{ font-size:17px; }

  .nv2-site-nav{
    position:fixed; top:0; right:-85%; width:82%; max-width:300px; height:100%;
    display:flex; flex-direction:column; align-items:flex-start; gap:0;
    background:#fff; padding:70px 24px 24px; overflow-y:auto; z-index:50;
    box-shadow:-10px 0 30px rgba(15,47,77,.18); transition:right .28s ease;
  }
  .nv2-site-nav.is-open{ right:0; }
  .nv2-site-nav a{ width:100%; padding:14px 0; border-bottom:1px solid var(--nv-line); font-size:15px; }
  .nv2-site-search{ display:none; }
  .nv2-menu-close{
    display:flex; align-items:center; justify-content:center; position:absolute; top:14px; right:14px;
    width:36px; height:36px; border:0; background:none; font-size:26px; line-height:1; color:var(--nv-navy);
    cursor:pointer;
  }
  .nv2-menu-backdrop{ position:fixed; inset:0; background:rgba(15,47,77,.42); z-index:45; }
  .nv2-menu-backdrop[hidden]{ display:none; }

  /* ---------- Hero: テキストを上段、写真を下段のフルワイド帯へ（人物写真は無変更）。
     余白を切り詰めてコンパクト化。バッジ・右側コピーは写真の上に重ね、顔（中央〜
     右寄り、object-position:center top）を避けて四隅へ配置する。 ---------- */
  .nv2-hero{ height:auto; }
  .nv2-hero-inner{ display:flex; flex-direction:column; height:auto; }
  .nv2-hero-copy{ position:static; width:100%; padding:14px 16px 10px; }
  .nv2-eyebrow{ font-size:9.5px; margin-bottom:5px; }
  #nv2Page .nv2-hero-copy h1{ font-size:24px; margin-bottom:6px; }
  #nv2Page .nv2-hero-lead{ font-size:11.5px; line-height:1.45; margin-bottom:6px; }
  .nv2-hero-sub{ font-size:10px; line-height:1.4; }
  .nv2-hero-visual{ position:relative; inset:auto; left:0; width:100%; height:170px; flex:none; }
  .nv2-hero-badge{
    left:10px; top:auto; bottom:10px; width:54px; height:54px; font-size:7.5px;
  }
  .nv2-hero-message{ right:10px; top:10px; font-size:13px; }
  .nv2-hero-message small{ font-size:7.5px; margin-top:3px; }

  /* ---------- パンくず / カテゴリーピル: ピルは横スクロール1列、縦スペースを圧縮 ---------- */
  .nv2-breadcrumb{ padding:10px 0 6px; font-size:10.5px; }
  .nv2-filter{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:10px; scrollbar-width:none; }
  .nv2-filter::-webkit-scrollbar{ display:none; }
  .nv2-filter button{ flex:0 0 auto; height:32px; padding:0 12px; font-size:11.5px; }

  /* ---------- 記事一覧【最優先】: 「PC版の縦積み」ではなく、サムネイルを左に置いた
     コンパクトな横型リストへ再構成。画像あり/なしでカード高さが変わらないよう、
     プレースホルダーも実画像と全く同じ寸法に固定する。CMS実データは無変更。 ---------- */
  .nv2-main-grid{ gap:20px; padding-bottom:18px; }
  #newslist > li > div{
    flex-direction:row; align-items:flex-start; gap:12px; padding:13px 0;
  }
  #newslist .p-news-card-image{
    width:88px; height:88px; flex:0 0 88px; aspect-ratio:1/1; border-radius:6px;
  }
  #newslist > li > div:not(:has(> .p-news-card-image))::before{
    width:88px; height:88px; flex:0 0 88px; aspect-ratio:1/1; border-radius:6px;
  }
  #newslist .project-newsitem{ min-width:0; }
  #newslist .project-newtd{ font-size:11px; margin-bottom:6px; gap:8px; }
  /* display:-webkit-box + line-clampの組み合わせは、幅を明示しないと
     "shrink-to-fit"（内容に応じた最小幅）で縮んでしまい、390px幅の狭い列では
     タイトルが不自然に折り返される不具合があった（PC/Tabletの広い列幅では
     目立たなかったため今回初めて顕在化）。モバイル専用にwidth:100%を明示して
     カラム幅いっぱいまで正しく使うようにする（PC1280/Tablet834には影響しない）。 */
  #newslist .title a:not(.nv2-article-arrow){
    width:100%; font-size:13.5px; line-height:1.4; padding-right:26px; -webkit-line-clamp:3;
  }
  #newslist .title > .title{ width:100%; }
  #newslist .nv2-article-arrow{ width:22px; height:22px; top:10px; }
  .p-news-card-summary{ font-size:11px; line-height:1.45; margin-top:5px !important; }

  .nv2-pagination{ gap:6px; padding-top:6px; }
  .nv2-page-arrow, .nv2-page-num{ width:28px; height:28px; }

  /* ---------- Sidebar: 検索は記事一覧の直後。カテゴリーは390pxでも2列を維持
     （読める幅のため）。上下の余白をコンパクト化。 ---------- */
  .nv2-sidebar{ gap:12px; }
  .nv2-side-card{ padding:16px; }
  .nv2-side-card h3{ margin-bottom:10px; }
  .nv2-search-form{ height:44px; }
  .nv2-search-form input{ font-size:13.5px; }
  .nv2-category-list{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px 10px; }
  .nv2-category-list button{
    height:44px; padding:0 8px; border-radius:8px; background:#fff; font-size:11px; gap:6px;
    box-shadow:0 2px 6px rgba(14,60,100,.06);
  }
  .nv2-category-list .material-icons{ font-size:15px; }
  .nv2-chev{ font-size:15px; margin-left:4px; }
  .nv2-promo-card{ min-height:118px; }
  .nv2-promo-copy{ min-height:118px; padding:16px; gap:5px; }
  .nv2-promo-title{ font-size:16px; }
  .nv2-promo-sub{ font-size:10px; }
  .nv2-promo-btn{ margin-top:6px; padding:8px 16px; font-size:11.5px; }

  /* ---------- Footer: 縦方向の余白を圧縮 ---------- */
  .nv2-footer-inner{ padding:16px 0; row-gap:10px; }
  .nv2-footer-brand-text p{ font-size:11px; }
  .nv2-footer-links{ gap:8px 14px; }

  /* ---------- SITE MAP: 波形・左端半円・大型ブルー円・3円形写真・人物/建物/葉写真・
     ナビゲーションはすべて維持。円形写真3点は縦にバラさず、コンパクトな
     ビジュアル群としてまとめて高さを圧縮する。 ---------- */
  .nv2-sitemap{ padding:4px 0 4px; }
  .nv2-sm-edge-circle--top{ width:80px; height:80px; left:-48px; top:-4px; }
  .nv2-sm-edge-circle--bottom{ width:52px; height:52px; left:-26px; top:230px; }

  /* 見出しテキストが円形写真・大型ブルー円と重ならないよう、幅を絞って右側に
     余白を確保する（Tablet同様の考え方を390px向けに再調整）。 */
  .nv2-sitemap-head{ max-width:220px; padding-top:2px; padding-bottom:114px; }
  .nv2-sitemap-message{ font-size:18px; margin-bottom:6px; }
  .nv2-sitemap-en{ font-size:10.5px; }
  .nv2-sitemap-desc{ font-size:10.5px; }

  /* 3円形写真: 見出しテキスト（高さ約110px）の下に、互いに近接させた
     コンパクトなビジュアル群として配置（写真素材・重なり順は無変更）。 */
  .nv2-sm-photo--building{ width:78px; height:78px; left:6%; top:126px; }
  .nv2-sm-photo--person{ width:88px; height:88px; left:31%; top:112px; }
  .nv2-sm-photo--leaf{ width:58px; height:58px; left:57%; top:132px; }

  .nv2-sitemap-circle{ width:66px; height:66px; font-size:7px; gap:3px; right:4%; top:4px; }
  .nv2-sitemap-circle-arrow{ width:15px; height:15px; }

  /* 7列→2列（項目・リンクは削除しない）。文字サイズは読める範囲で確保 */
  .nv2-sitemap-nav{ grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px 14px; margin-top:6px; }
  .nv2-sm-col{ text-align:left; padding-bottom:2px; }
  .nv2-sm-icon{ margin:0 0 4px; width:36px; height:36px; }
  .nv2-sm-icon .material-icons{ font-size:16px; }
  .nv2-sm-label{ font-size:12.5px; margin-bottom:4px; }
  .nv2-sm-col ul{ gap:4px; }
  .nv2-sm-col ul li{ font-size:11.5px; line-height:1.4; }
  .nv2-sm-col ul li a{ font-size:11.5px; line-height:1.4; }
}

/* 2026-09-25: 一覧は画像欄を使用せず、記事情報を横幅いっぱいに表示する。 */
#newslist > li > div{ gap:0; }
#newslist .p-news-card-image{ display:none; }
#newslist > li > div::before{ content:none !important; display:none !important; }
#newslist .project-newsitem{ width:100%; flex:1 1 100%; }
#newslist .p-news-card-summary{ max-width:none; }

/* 画像ファイルを加工せず、控えめな注記をHTML/CSSで重ねる。 */
.nv2-image-note{
  position:absolute; z-index:5; margin:0; padding:3px 7px; border-radius:3px;
  color:#fff; background:rgba(7,35,58,.58); font-size:9px; font-weight:600;
  line-height:1.35; letter-spacing:.02em; white-space:nowrap; text-shadow:0 1px 2px rgba(0,0,0,.35);
}
.nv2-hero-image-note{ right:18px; bottom:12px; }
.nv2-sitemap-person-note{ right:8px; bottom:18px; padding:2px 5px; font-size:7px; }

@media(max-width:900px){
  #newslist > li > div{ gap:0; }
  .nv2-hero-image-note{ right:10px; bottom:8px; font-size:8px; }
  .nv2-sitemap-person-note{ right:5px; bottom:12px; font-size:6px; }
}
@media(max-width:480px){
  #newslist > li > div{ gap:0; }
  .nv2-hero-image-note{ right:7px; bottom:6px; padding:2px 5px; font-size:7px; }
  .nv2-sitemap-person-note{ right:1px; bottom:8px; padding:1px 3px; font-size:5.5px; }
}
