body {
  font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", メイリオ, Meiryo, "ＭＳ Ｐゴシック", Arial, sans-serif;
  line-height: 1.8;
  padding-top: 80px;
}
header {
  position: fixed;
  top: 0; left: 0; width: 100%;
  background: #fff;
  z-index: 1000;
  border-bottom: 1px solid #ccc;
}
.lpimg {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1em auto;
}
.titleimg { display: block; margin: 1em 0; max-width: 100%; height: auto; }
@media (min-width: 768px) { .titleimg { max-width: 680px; } }
.left-align { text-align: left !important; margin-left: 0; }
.img-text-float { overflow: hidden; }
.img-text-float img { float: left; width: 55%; margin-right: 1rem; margin-bottom: 1rem; }
@media (max-width: 767.98px) {
  .img-text-float { padding: 0 !important; }
  .img-text-float img { float: none; width: 100%; margin: 0 0 1rem 0; }
}
footer { text-align: center; padding: 2em 0; background-color: #f8f9fa; }
.header-buttons { display: flex; justify-content: end; gap: 1rem; align-items: center; }
.header-buttons a { white-space: nowrap; }
.bottom-nav { display: none; }
@media (max-width: 767.98px) {
  .header-buttons { display: none; }
  .bottom-nav {
    display: flex; justify-content: space-around; position: fixed; bottom: 0; left: 0; width: 100%;
    background: #fff; border-top: 1px solid #ccc; padding: 0.5rem 0; z-index: 999;
  }
  .bottom-nav a { display: flex; flex-direction: column; align-items: center; font-size: 0.9rem; text-decoration: none; color: #000; }
  .bottom-nav i { font-size: 1.8rem; margin-bottom: 0.2rem; color: #007bff; }
}
.highlight-line { background: linear-gradient(transparent 60%, #ffeaa7 60%); display: inline; }
.img-text-float { max-width: 950px; margin: 0 auto; padding: 0 2rem; }
.img-text-float small { line-height: 1.3; display: block; }

/* ===== PC: 右下フロート（変更なし） ===== */

/* 表紙サムネの枠 */
.press-banner--pc .press-layout {
  display: grid;
  grid-template-columns: 74px 1fr; /* 左サムネ幅(64px + 余白) */
  gap: 4px;
  align-items: start;
}
.press-banner--pc .press-cover-wrap {
  width: 64px;
  aspect-ratio: 64 / 90;
  border: 1px solid #e6e6e6;
  border-radius: 6px;
  overflow: hidden;
  background: #fafafa;
  box-shadow: 0 3px 10px rgba(0,0,0,.06);
  flex: none;
}
.press-banner--pc .press-cover { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 基礎 */
.press-hidden { display: none !important; }
.press-reset  { font-family: inherit; line-height: 1.4; }

/* 本体 */
.press-banner--pc {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 360px;
  max-width: calc(100vw - 32px);
  background: #fff;
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  padding: 14px 16px;
  z-index: 4000;
  display: none; /* メディアクエリで表示切替 */
}
.press-banner--pc .press-title { margin: 0 28px 4px 0; font-weight: 700; font-size: 14px; color: #0b1e3b; }
.press-banner--pc .press-body  { margin: 0 0 8px 0; font-size: 13px; color: #333; }
.press-banner--pc .press-meta  { font-size: 12px; color: #666; }
.press-banner--pc .press-actions {
  margin-top: 10px; display: flex; gap: 8px; align-items: center; justify-content: flex-end; /* 右寄せ */
}
.press-banner--pc .press-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 2px 8px; border-radius: 8px; border: 1px solid #0b1e3b;
  background: #0b1e3b; color: #fff; font-weight: 200; font-size: 13px; text-decoration: none;
}
.press-banner--pc .press-link { font-size: 12px; color: #0b1e3b; text-decoration: underline; }
.press-banner--pc .press-close {
  position: absolute; top: 8px; right: 8px; width: 26px; height: 26px; border-radius: 50%;
  border: 1px solid #e5e5e5; background: #fff; color: #666; display: grid; place-items: center; cursor: pointer;
}

/* 小さいPC幅 */
@media (max-width: 991.98px) {
  .press-banner--pc { width: 320px; }
  .press-banner--pc .press-layout { grid-template-columns: 68px 1fr; gap: 10px; }
}

/* PCでのみ表示 */
@media (min-width: 768px) { .press-banner--pc { display: block; } }

/* ===== SP: ヘッダー右上“重ね”バナー ===== */

/* PCでは非表示 */
.press-overlay--sp { display: none; }

@media (max-width: 767.98px) {
  .press-overlay--sp {
    position: fixed;
    top: max(8px, env(safe-area-inset-top));
    right: max(8px, env(safe-area-inset-right));
    width: 185px;               /* 指定：幅 */
    height: 65px;               /* 指定：高さ（固定） */
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px 8px;               /* シンプルに少しだけ余白 */
    background: #fff;           /* 白ベース */
    border: 1px solid #ddd;     /* グレーの細枠 */
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,.08);
    z-index: 2000;              /* ヘッダー(1000)より上 */
    color: #111;                /* 文字色：黒寄り */
  }

  .press-overlay--sp .po-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: inherit;             /* 黒ベース */
    flex: 1 1 auto;
    min-width: 0;               /* テキストの折返しに必要 */
  }

  /* 表紙サムネ：高さ70pxに収まるサイズ感 */
  .press-overlay--sp .po-cover {
    object-fit: cover;
    background: #fafafa;
    border: 1px solid #e5e5e5;
    border-radius: 4px;
    flex: 0 0 auto;
  }

  .press-overlay--sp .po-text-wrap {
    min-width: 0;
    display: grid;
    gap: 2px;
  }

  /* シンプルなモノクロ・バッジ（任意で外してもOK） */
  .press-overlay--sp .po-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    color: #111;
    background: #f5f5f5;
    padding: 2px 6px;
    border-radius: 999px;
    line-height: 1;
  }

  /* 省略せず全文表示（改行で折り返し） */
  .press-overlay--sp .po-title {
    font-size: 11px;
    color: #111;
    line-height: 1.25;
    white-space: normal;        /* ← 改行を許可 */
    word-break: break-word;     /* 長い単語でも折返し */
    overflow: visible;          /* ← 省略しない */
    text-overflow: clip;        /* ← 省略記号を使わない */
    /* max-width/ellipsis は設定しない */
  }

  .press-overlay--sp .po-close {
    border: none;
    background: transparent;
    color: #666;
    font-size: 18px;
    line-height: 1;
    padding: 0 0 0 4px;
    flex: 0 0 auto;
  }
}