@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* =========================
   ヘッダー（corpサイトと同じデザイン）
   ========================= */
.l-header {
  background: #fff;
  border-bottom: 1px solid #e5e5e5;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.l-header__bar {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
}

.l-header__logo {
  flex: 0 0 auto;
}

.l-header__logo img {
  height: 40px;
  width: auto;
}

.c-gnav {
  flex: 1;
  display: flex !important;
  justify-content: flex-end;
}

.c-gnav__list {
  display: flex !important;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 30px;
}

.c-gnav__item {
  display: block;
}

.c-gnav__item a {
  color: #333;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  transition: color 0.3s;
}

.c-gnav__item a:hover {
  color: #04384c;
}

.l-header__menuBtn {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
}

.l-header__menuBtn span {
  display: block;
  width: 25px;
  height: 2px;
  background: #333;
  transition: all 0.3s;
}

/* ヘッダー分のスペースを確保 */
body {
  padding-top: 80px;
}

/* レスポンシブ */
@media screen and (max-width: 960px) {
  .c-gnav {
    display: none !important;
  }

  .l-header__menuBtn {
    display: flex !important;
  }
}

/* =========================
   Figmaデザイン - 記事一覧のスタイル適用
   注目記事・新規記事などの一覧表示
   ========================= */

/* === 記事一覧コンテナ === */
.post-list,
.article-list,
.entry-list,
.l-post-list,
.c-post-list,
.p-post-list,
.swell-block-postList,
.c-entryCard,
.p-entryCard {
  margin: 0;
  padding: 0;
}

.post-list ul,
.article-list ul,
.entry-list ul {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* === 記事一覧アイテム === */
.post-list .post-item,
.article-list .article-item,
.entry-list .entry-item,
.l-post-list .l-post-item,
.c-post-list .c-post-item,
.p-post-list .p-post-item,
.swell-block-postList .swell-block-postList__item,
.post-card,
.entry-card,
.article-card,
.c-entryCard,
.p-entryCard {
  display: flex;
  align-items: center;
  padding: 12px 16px 12px 26px !important;
  background: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
  margin-bottom: 6px !important;
  transition: all 0.2s ease !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: 45px !important;
  text-decoration: none !important;
}

/* === 記事一覧アイテムのリンク === */
.post-list .post-item a,
.article-list .article-item a,
.entry-list .entry-item a,
.l-post-list .l-post-item a,
.c-post-list .c-post-item a,
.p-post-list .p-post-item a,
.swell-block-postList .swell-block-postList__item a,
.post-card a,
.entry-card a,
.article-card a,
.c-entryCard a,
.p-entryCard a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  text-decoration: none !important;
  color: #374151 !important;
  font-weight: 400 !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  min-height: auto !important;
}

/* === ホバー効果 === */
.post-list .post-item:hover,
.article-list .article-item:hover,
.entry-list .entry-item:hover,
.l-post-list .l-post-item:hover,
.c-post-list .c-post-item:hover,
.p-post-list .p-post-item:hover,
.swell-block-postList .swell-block-postList__item:hover,
.post-card:hover,
.entry-card:hover,
.article-card:hover,
.c-entryCard:hover,
.p-entryCard:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08) !important;
  border-color: rgba(0, 0, 0, 0.12) !important;
  background: #fafafa !important;
}

/* === 左端の青色アクセントバー === */
.post-list .post-item::before,
.article-list .article-item::before,
.entry-list .entry-item::before,
.l-post-list .l-post-item::before,
.c-post-list .c-post-item::before,
.p-post-list .p-post-item::before,
.swell-block-postList .swell-block-postList__item::before,
.post-card::before,
.entry-card::before,
.article-card::before,
.c-entryCard::before,
.p-entryCard::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  height: 100% !important;
  width: 10px !important;
  background: #0057ac !important;
  display: block !important;
  z-index: 1 !important;
  transform: none !important;
  -webkit-transform: none !important;
}

/* === 右端矢印アイコン === */
.post-list .post-item::after,
.article-list .article-item::after,
.entry-list .entry-item::after,
.l-post-list .l-post-item::after,
.c-post-list .c-post-item::after,
.p-post-list .p-post-item::after,
.swell-block-postList .swell-block-postList__item::after,
.post-card::after,
.entry-card::after,
.article-card::after,
.c-entryCard::after,
.p-entryCard::after {
  content: "›" !important;
  position: absolute !important;
  right: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  color: #9ca3af !important;
  transition: all 0.2s ease !important;
  line-height: 1 !important;
  opacity: 0.7 !important;
  z-index: 2 !important;
}

.post-list .post-item:hover::after,
.article-list .article-item:hover::after,
.entry-list .entry-item:hover::after,
.l-post-list .l-post-item:hover::after,
.c-post-list .c-post-item:hover::after,
.p-post-list .p-post-item:hover::after,
.swell-block-postList .swell-block-postList__item:hover::after,
.post-card:hover::after,
.entry-card:hover::after,
.article-card:hover::after,
.c-entryCard:hover::after,
.p-entryCard:hover::after {
  transform: translateY(-50%) translateX(2px) !important;
  opacity: 1 !important;
  color: #6b7280 !important;
}

/* === 記事タイトル === */
.post-list .post-item .post-title,
.article-list .article-item .article-title,
.entry-list .entry-item .entry-title,
.l-post-list .l-post-item .post-title,
.c-post-list .c-post-item .post-title,
.p-post-list .p-post-item .post-title,
.swell-block-postList .swell-block-postList__item .post-title,
.post-card .post-title,
.entry-card .entry-title,
.article-card .article-title,
.c-entryCard .entry-title,
.p-entryCard .entry-title,
.entry-title,
.post-title {
  font-weight: 400 !important;
  font-size: 15px !important;
  color: #374151 !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  padding: 0 !important;
  text-decoration: none !important;
  flex: 1 !important;
  margin-right: 24px !important;
}

/* === 記事メタ情報 === */
.post-list .post-item .post-meta,
.article-list .article-item .article-meta,
.entry-list .entry-item .entry-meta,
.l-post-list .l-post-item .post-meta,
.c-post-list .c-post-item .post-meta,
.p-post-list .p-post-item .post-meta,
.swell-block-postList .swell-block-postList__item .post-meta,
.post-card .post-meta,
.entry-card .entry-meta,
.article-card .article-meta,
.c-entryCard .entry-meta,
.p-entryCard .entry-meta,
.entry-meta,
.post-meta {
  font-size: 12px !important;
  color: #9ca3af !important;
  margin: 2px 0 0 0 !important;
}

/* === 注目記事・人気記事の特別スタイル === */
.popular-posts .post-item,
.featured-posts .post-item,
.recommended-posts .post-item {
  background: linear-gradient(135deg, #fff9e6 0%, #ffffff 100%) !important;
  border-color: rgba(255, 193, 7, 0.2) !important;
}

.popular-posts .post-item::before,
.featured-posts .post-item::before,
.recommended-posts .post-item::before {
  background: linear-gradient(135deg, #ffc107 0%, #ff9800 100%) !important;
}

/* =========================
   WordPressカテゴリブロック/ウィジェットのFigmaデザイン適用
   ========================= */

/* === WordPressカテゴリブロック === */
.wp-block-categories,
.wp-block-categories-list,
.widget_categories,
.widget_archive,
.wp-block-archives {
  margin: 0;
  padding: 0;
}

.wp-block-categories ul,
.wp-block-categories-list,
.widget_categories ul,
.widget_archive ul,
.wp-block-archives ul {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.wp-block-categories li,
.wp-block-categories-list li,
.widget_categories li,
.widget_categories .cat-item,
.widget_archive li,
.wp-block-archives li {
  margin: 0;
  padding: 0;
}

.wp-block-categories a,
.wp-block-categories-list a,
.widget_categories a,
.widget_categories .cat-item a,
.widget_archive a,
.wp-block-archives a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px 12px 26px !important;
  background: #ffffff !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
  text-decoration: none !important;
  color: #374151 !important;
  font-weight: 400 !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  transition: all 0.2s ease !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: 45px !important;
  margin-bottom: 6px !important;
}

.wp-block-categories a:hover,
.wp-block-categories-list a:hover,
.widget_categories a:hover,
.widget_categories .cat-item a:hover,
.widget_archive a:hover,
.wp-block-archives a:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08) !important;
  text-decoration: none !important;
  color: #374151 !important;
  border-color: rgba(0, 0, 0, 0.12) !important;
  background: #fafafa !important;
}

/* === 左端の青色アクセントバー === */
.wp-block-categories a::before,
.wp-block-categories-list a::before,
.widget_categories a::before,
.widget_categories .cat-item a::before,
.widget_archive a::before,
.wp-block-archives a::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  height: 100% !important;
  width: 10px !important;
  background: #0057ac !important;
  display: block !important;
  z-index: 1 !important;
  transform: none !important;
  -webkit-transform: none !important;
}

/* === 右端矢印アイコン === */
.wp-block-categories a::after,
.wp-block-categories-list a::after,
.widget_categories a::after,
.widget_categories .cat-item a::after,
.widget_archive a::after,
.wp-block-archives a::after {
  content: "›" !important;
  position: absolute !important;
  right: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  color: #9ca3af !important;
  transition: all 0.2s ease !important;
  line-height: 1 !important;
  opacity: 0.7 !important;
  z-index: 2 !important;
  margin-left: auto !important;
}

.wp-block-categories a:hover::after,
.wp-block-categories-list a:hover::after,
.widget_categories a:hover::after,
.widget_categories .cat-item a:hover::after,
.widget_archive a:hover::after,
.wp-block-archives a:hover::after {
  transform: translateY(-50%) translateX(2px) !important;
  opacity: 1 !important;
  color: #6b7280 !important;
}

/* === カテゴリ名とカウント === */
.wp-block-categories a,
.wp-block-categories-list a,
.widget_categories a,
.widget_categories .cat-item a,
.widget_archive a,
.wp-block-archives a {
  flex: 1 !important;
  margin-right: 24px !important;
}

/* === 投稿数のスタイル === */
.wp-block-categories .wp-block-categories__post-count,
.widget_categories .post-count {
  font-size: 14px !important;
  color: #6b7280 !important;
  font-weight: normal !important;
  margin-left: 8px !important;
}

/* === カテゴリリスト用スタイル === */
.figma-category-list {
  margin: 0;
  padding: 0;
}

.figma-category-list__items {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.figma-category-list__item {
  margin: 0;
  padding: 0;
}

.figma-category-list__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px 12px 26px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  text-decoration: none;
  color: #374151;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0;
  transition: all 0.2s ease;
  position: relative;
  overflow: hidden;
  min-height: 45px;
  margin-bottom: 6px;
}

.figma-category-list__link:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: #374151;
  border-color: rgba(0, 0, 0, 0.12);
  background: #fafafa;
}

.figma-category-list__link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 10px;
  background: #667eea;
  display: block;
  transform: none;
  -webkit-transform: none;
}

.figma-category-list__link::after {
  content: "›";
  font-size: 16px;
  font-weight: 300;
  color: #9ca3af;
  margin-left: auto;
  transition: all 0.2s ease;
  line-height: 1;
  opacity: 0.7;
}

.figma-category-list__link:hover::after {
  transform: translateX(2px);
  opacity: 1;
  color: #6b7280;
}

.figma-category-list__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.figma-category-list__name {
  font-weight: 400;
  font-size: 15px;
  color: #374151;
  line-height: 1.5;
}

.figma-category-list__count {
  font-size: 14px;
  color: #6b7280;
  font-weight: normal;
  margin-left: 8px;
}

.figma-category-list__description {
  display: block;
  font-size: 13px;
  color: #9ca3af;
  font-weight: normal;
  margin-top: 2px;
  line-height: 1.3;
}

.figma-category-list__empty {
  text-align: center;
  padding: 40px 20px;
  color: #6b7280;
  font-style: italic;
  background: #f9fafb;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

/* === 記事リスト用スタイル === */
.figma-post-list {
  margin: 0;
  padding: 0;
}

.figma-post-list__items {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.figma-post-list__item {
  margin: 0;
  padding: 0;
  height: auto;
  min-height: auto;
}

.figma-post-list__link {
  display: flex;
  align-items: flex-start;
  padding: 16px 20px 16px 12px;
  background: #ffffff;
  text-decoration: none;
  color: #091142;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  margin-bottom: 0px;
  gap: 18px;
  box-sizing: border-box;
  border-radius: 8px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.figma-post-list__link::after {
  content: "▶";
  position: absolute;
  bottom: 12px;
  right: 16px;
  font-size: 14px;
  color: #007bff;
  opacity: 0.8;
  transition: all 0.3s ease;
  font-weight: bold;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.figma-post-list__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  text-decoration: none;
  color: #374151;
  border-color: rgba(0, 123, 255, 0.2);
  background: #ffffff;
}

.figma-post-list__link:hover::after {
  opacity: 1;
  transform: translateX(3px) scale(1.1);
  color: #0056b3;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* === サムネイル === */
.figma-post-list__thumbnail {
  flex-shrink: 0;
  width: 80px;
  height: 70px;
  overflow: hidden;
  background: #cfd8e2;
  border-radius: 0px;
}

.figma-post-list__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0px;
}

.figma-post-list__no-image {
  width: 100%;
  height: 100%;
  background: #cfd8e2;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0px;
}

.figma-post-list__no-image::before {
  content: "📷";
  font-size: 20px;
  opacity: 0.5;
}

/* === コンテンツエリア === */
.figma-post-list__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0px;
  padding-top: 0px;
  justify-content: space-between;
  height: 100%;
}

.figma-post-list__header {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 0px;
}

.figma-post-list__date {
  font-family: "Lato", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 16px;
  line-height: 36px;
  color: #091142;
}

.figma-post-list__badge-new {
  background: #0e76ff;
  color: #ffffff;
  padding: 0px;
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: 14px;
  line-height: 21px;
  text-align: center;
  border-radius: 3px;
  width: 70px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.figma-post-list__tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.figma-post-list__tag {
  background: transparent;
  color: #0e76ff;
  padding: 0px;
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: 14px;
  line-height: 21px;
  border: 1px solid #0e76ff;
  text-decoration: none;
  border-radius: 3px;
  width: 82px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.figma-post-list__title {
  font-family: "Hiragino Kaku Gothic ProN", sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: 20px;
  line-height: 1.8;
  color: #091142;
  margin: 4px 0;
  max-width: 416px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
}

.figma-post-list__title::before {
  display: none !important;
  content: none !important;
}

/* === IRBank Style === */
.irbank-container {
  position: relative;
  max-width: 800px;
  margin: 50px auto;
}

.irbank-container.no-logo {
  margin: 20px auto;
}

.irbank-circle-logo {
  position: absolute;
  top: -40px;
  right: -40px;
  width: 160px;
  height: 160px;
  z-index: 10;
  pointer-events: none;
}

.irbank-circle-logo .circle-text {
  width: 100%;
  height: 100%;
}

.irbank-circle-logo.animated .circle-text {
  animation: irbank-rotate 15s linear infinite;
}

.irbank-circle-logo .curved-text {
  fill: #007bff;
  font-size: 14px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 6px;
}

@keyframes irbank-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.irbank-post-list {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.irbank-post-item {
  display: flex;
  align-items: center;
  padding: 20px;
  border-bottom: 1px solid #e5e7eb;
  transition: background-color 0.3s ease;
  cursor: pointer;
}

.irbank-post-item:hover {
  background-color: #f9fafb;
}

.irbank-post-item:last-child {
  border-bottom: none;
}

.irbank-post-item .post-thumbnail {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  margin-right: 20px;
  border-radius: 4px;
  overflow: hidden;
  background: #e5e7eb;
}

.irbank-post-item .post-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.irbank-post-item .post-thumbnail-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.irbank-post-item .post-content {
  flex: 1;
  min-width: 0;
}

.irbank-post-item .post-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}

.irbank-post-item .post-date {
  font-size: 14px;
  color: #6b7280;
  font-weight: 500;
}

.irbank-post-item .post-tag {
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.irbank-post-item .post-tag.pickup {
  background: #3b82f6;
  color: white;
}

.irbank-post-item .post-tag.stock {
  background: white;
  color: #3b82f6;
  border: 1px solid #3b82f6;
}

.irbank-post-item .post-title {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}

.irbank-post-item .post-title a {
  color: #1f2937;
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.irbank-post-item .post-title a:hover {
  color: #3b82f6;
}

@media (max-width: 768px) {
  .irbank-container {
    margin: 40px 20px;
  }

  .irbank-container.no-logo {
    margin: 20px;
  }

  .irbank-circle-logo {
    width: 120px;
    height: 120px;
    top: -30px;
    right: -20px;
  }

  .irbank-circle-logo .curved-text {
    font-size: 11px;
    letter-spacing: 4px;
  }

  .irbank-post-item {
    padding: 15px;
  }

  .irbank-post-item .post-thumbnail {
    width: 60px;
    height: 60px;
    margin-right: 15px;
  }

  .irbank-post-item .post-title {
    font-size: 14px;
  }

  .irbank-post-item .post-meta {
    gap: 6px;
  }

  .irbank-post-item .post-tag {
    font-size: 11px;
    padding: 3px 8px;
  }
}

@media (max-width: 480px) {
  .irbank-circle-logo {
    width: 100px;
    height: 100px;
    top: -20px;
    right: -10px;
  }

  .irbank-circle-logo .curved-text {
    font-size: 10px;
    letter-spacing: 3px;
  }

  .irbank-post-item .post-thumbnail {
    width: 50px;
    height: 50px;
  }
}

.figma-post-list__excerpt {
  font-size: 14px;
  color: #6b7280;
  line-height: 1.4;
  margin-top: 4px;
}

.figma-post-list__empty {
  text-align: center;
  padding: 40px 20px;
  color: #6b7280;
  font-style: italic;
  background: #f9fafb;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

/* === レスポンシブ対応 === */
@media (max-width: 768px) {
  .post-list .post-item,
  .article-list .article-item,
  .entry-list .entry-item,
  .post-card,
  .entry-card,
  .article-card,
  .c-entryCard,
  .p-entryCard {
    padding: 11px 14px 11px 24px !important;
    font-size: 14px !important;
    min-height: 45px !important;
  }

  .figma-category-list__link {
    padding: 11px 14px 11px 24px;
    font-size: 14px;
    min-height: 45px;
  }
}

@media (max-width: 480px) {
  .post-list .post-item,
  .article-list .article-item,
  .entry-list .entry-item,
  .post-card,
  .entry-card,
  .article-card,
  .c-entryCard,
  .p-entryCard {
    padding: 10px 12px 10px 22px !important;
    font-size: 14px !important;
    min-height: 45px !important;
  }

  .figma-category-list__link {
    padding: 10px 12px 10px 22px;
    font-size: 14px;
    min-height: 45px;
  }

  .post-list .post-item::after,
  .article-list .article-item::after,
  .entry-list .entry-item::after,
  .post-card::after,
  .entry-card::after,
  .article-card::after,
  .c-entryCard::after,
  .p-entryCard::after,
  .figma-category-list__link::after {
    font-size: 14px !important;
  }
}

/* === サイドバーウィジェットのタイトルスタイル === */
.c-widget__title.-side {
  color: #0057ac !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  margin-bottom: 1rem !important;
}

.c-widget__title.-side::before,
.c-widget__title.-side::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* === 注意事項ウィジェット === */
.custom-notice-widget {
  background: transparent !important;
  padding: 30px 40px 60px 40px !important;
  margin: 0 !important;
}

.custom-notice-title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #000000 !important;
  text-align: center !important;
  margin: 0 0 30px 0 !important;
  padding: 0 0 10px 0 !important;
  position: relative !important;
  line-height: 1.4 !important;
  background: transparent !important;
}

.custom-notice-title::before {
  content: none !important;
  display: none !important;
}

.custom-notice-title::after {
  content: "" !important;
  display: block !important;
  width: 60px !important;
  height: 4px !important;
  background: #0066ff !important;
  margin: 10px auto 0 !important;
}

.custom-notice-content {
  font-size: 13px !important;
  line-height: 1.8 !important;
  color: #333333 !important;
  text-align: left !important;
  padding: 0 !important;
  margin: 0 !important;
}

.custom-notice-content p {
  margin: 0 0 1em 0 !important;
  padding: 0 !important;
  line-height: 1.8 !important;
}

.custom-notice-content p:last-child {
  margin-bottom: 0 !important;
}

/* === メディア画像ウィジェット === */
.widget_media_image {
  width: 100% !important;
  text-align: center !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.widget_media_image img {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
}

/* === カテゴリーページタイトルデザイン === */
.archive.category .cplb-post-list-title-container,
.archive.tax .cplb-post-list-title-container {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
  justify-content: space-between;
}

.archive.category .c-pageTitle,
.archive.tax .c-pageTitle {
  font-size: 6rem !important;
  font-weight: 800 !important;
  color: #0057ac !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  border: none !important;
  border-bottom: none !important;
  z-index: 2;
  position: relative;
}

.archive.category .c-pageTitle__inner,
.archive.tax .c-pageTitle__inner {
  border: none !important;
}

.archive.category .cplb-title-logo,
.archive.tax .cplb-title-logo {
  margin-top: 3rem;
  height: 14rem;
  width: auto;
  object-fit: contain;
  position: absolute;
  right: 0;
  top: 0;
  z-index: -1;
  opacity: 0.9;
}

/* 「記事一覧」部分のフォントサイズを小さく */
.archive.category .c-pageTitle__listText,
.archive.tax .c-pageTitle__listText {
  font-size: 1.25rem !important;
  font-weight: 400 !important;
  color: #666 !important;
}

/* サブタイトルを非表示 */
.archive.category .c-pageTitle__subTitle,
.archive.tax .c-pageTitle__subTitle {
  display: none !important;
}

/* タイトルの擬似要素を削除 */
.archive.category .c-pageTitle__inner::before,
.archive.category .c-pageTitle__inner::after,
.archive.tax .c-pageTitle__inner::before,
.archive.tax .c-pageTitle__inner::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* カテゴリーページのページネーション */
.archive.category .pagination,
.archive.tax .pagination {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.5rem !important;
  margin: 3rem 0 !important;
  list-style: none !important;
  padding: 0 !important;
}

.archive.category .page-numbers,
.archive.tax .page-numbers {
  display: inline-block !important;
  padding: 0.5rem 1rem !important;
  background: #fff !important;
  color: #1a1a1a !important;
  text-decoration: none !important;
  border: 2px solid #e8ecf0 !important;
  border-radius: 4px !important;
  transition: all 0.3s ease !important;
  font-weight: 600 !important;
}

.archive.category .page-numbers:hover,
.archive.tax .page-numbers:hover {
  background: #0066ff !important;
  color: #fff !important;
  border-color: #0066ff !important;
}

.archive.category .page-numbers.current,
.archive.tax .page-numbers.current {
  background: #0066ff !important;
  color: #fff !important;
  border-color: #0066ff !important;
}

.archive.category .page-numbers.dots,
.archive.tax .page-numbers.dots {
  border: none !important;
  background: transparent !important;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .archive.category .c-pageTitle,
  .archive.tax .c-pageTitle {
    font-size: 3rem !important;
  }

  .archive.category .c-pageTitle__listText,
  .archive.tax .c-pageTitle__listText {
    font-size: 0.875rem !important;
  }

  .archive.category .cplb-title-logo,
  .archive.tax .cplb-title-logo {
    height: 7rem !important;
    margin-top: 1.5rem !important;
  }

  .archive.category .c-pageTitle__subTitle,
  .archive.tax .c-pageTitle__subTitle {
    font-size: 0.875rem !important;
  }

  .archive.category .pagination,
  .archive.tax .pagination {
    margin: 2rem 0 !important;
  }

  .archive.category .page-numbers,
  .archive.tax .page-numbers {
    padding: 0.375rem 0.75rem !important;
    font-size: 0.875rem !important;
  }
}

/* =========================
   フロントページ用設定
   ========================= */
/* フロントページのl-contentは通常のSWELL設定を使用 */
/* max-width等はSWELLのデフォルト設定に従う */

/* news-cardリンクのホバー時アンダーライン削除 */
.news-card a,
.news-card a:hover,
.news-card a:focus,
.news-card a:visited {
  text-decoration: none !important;
  border-bottom: none !important;
}

/* コンテナの最大幅設定（トップページ用） */
.container {
  max-width: 900px;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* news-listコンテナの最大幅設定 */
.news-list {
  max-width: 100%;
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* カテゴリページのコンテンツは.l-containerで制御されるため、ここでは設定不要 */

/* カードレイアウト - スクリーンショット準拠 */
.news-card a {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 8px;
  padding: 16px 20px;
  margin-right: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.news-card a:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

.news-logo {
  width: 75px !important;
  height: 75px !important;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}

.news-card-meta {
  flex: 1;
  margin-left: 20px;
  margin-right: 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.news-meta-top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.news-date-full {
  font-size: 11px;
  font-weight: 600;
  color: #333;
}

.news-badge {
  display: inline-block;
  background: #0057ac;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 12px;
  border-radius: 4px;
  margin-left: 12px;
}

.news-tag {
  display: inline-block;
  background: #fff;
  color: #0057ac;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: 12px;
  text-decoration: none;
  transition: background 0.3s ease, color 0.3s ease;
  cursor: pointer;
  border: 1px solid #0057ac;
}

.news-tag:hover {
  background: #003d7a;
  color: #fff;
  text-decoration: none;
}

.news-content {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  line-height: 1.5;
  text-align: left;
}

.news-meta-top {
  justify-content: flex-start;
}

.news-badges-tags-wrapper {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

/* タイトルのbefore疑似要素を削除 */
.news-content::before {
  display: none !important;
  content: none !important;
}

.news-arrow {
  width: 40px !important;
  height: 40px !important;
  flex-shrink: 0;
}

/* セクションタイトル */
.news .section-title,
.pickup .section-title {
  color: #0057ac !important;
  font-family: "Hiragino Kaku Gothic StdN" !important;
  font-size: 60px !important;
  font-weight: 800 !important;
  margin: 0 !important;
  padding: 24px !important;
}

@media screen and (max-width: 768px) {
  .news .section-title,
  .pickup .section-title {
    font-size: 45px !important;
  }
}

/* 記事ページ内のPickupセクションタイトル - 記事見出しスタイルを上書き */
.single-pickup .section-title,
.post-content .news .section-title,
.post-content .pickup .section-title {
  color: #0057ac !important;
  font-family: "Hiragino Kaku Gothic StdN" !important;
  font-size: 80px !important;
  font-weight: 800 !important;
  margin: 0 !important;
  padding: 24px !important;
  background: none !important;
  border: none !important;
  position: static !important;
}

.single-pickup .section-title::before,
.post-content .news .section-title::before,
.post-content .pickup .section-title::before {
  display: none !important;
  content: none !important;
}

@media screen and (max-width: 768px) {
  .single-pickup .section-title,
  .post-content .news .section-title,
  .post-content .pickup .section-title {
    font-size: 60px !important;
  }
}

/* =========================
   目次デザインカスタマイズ
   ========================= */
.p-toc,
.post_toc_body {
  background: #fff !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 8px !important;
  padding: 30px !important;
  margin: 30px 0 !important;
}

/* 目次コンテナ */
.p-toc {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
}

/* 目次タイトル */
.p-toc__ttl {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #0057ac !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  margin: 0 0 20px 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  width: 100% !important;
}

.p-toc__ttl::before {
  display: none !important;
}

/* 目次開閉ボタン */
.p-toc__toggleBtn {
  background: #c9def4 !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  padding: 6px 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.3s ease !important;
  flex-shrink: 0 !important;
}

.p-toc__toggleBtn:hover {
  background: #c9def4 !important;
}

.p-toc__toggleBtn-text {
  color: #0057ac !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

/* 閉じた状態 */
.p-toc:not(.is-toc-open) .p-toc__list {
  display: none !important;
}

/* OPEN/CLOSEボタン */
.p-toc__expandBtn {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: #0057ac !important;
  color: #fff !important;
  border-radius: 4px !important;
  padding: 4px 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  position: absolute !important;
  top: 30px !important;
  right: 30px !important;
  border: none !important;
  cursor: pointer !important;
}

/* 目次リスト */
.p-toc__list {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  counter-reset: toc-counter !important;
  list-style: none !important;
  padding: 0 !important;
}

.p-toc__list > li {
  display: list-item !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  padding-left: 50px !important;
  margin-bottom: 15px !important;
  counter-increment: toc-counter !important;
}

.p-toc__list > li::before,
ol.is-style-index > li::before {
  content: counter(toc-counter, decimal-leading-zero) !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  color: #0057ac !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  border-right: none !important;
}

.p-toc__list > li::after {
  content: "" !important;
  position: absolute !important;
  left: 35px !important;
  top: 0 !important;
  width: 3px !important;
  height: 100% !important;
  background: #0057ac !important;
}

/* h2リンク */
.p-toc__list > li > a {
  display: inline !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #333 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

.p-toc__list > li > a:hover {
  color: #0057ac !important;
}

/* h3リスト */
.p-toc__childList {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin-top: 10px !important;
  padding-left: 0 !important;
  list-style: none !important;
}

.p-toc__childList > li {
  display: list-item !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  padding-left: 20px !important;
  margin-bottom: 8px !important;
}

.p-toc__childList > li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 8px !important;
  width: 8px !important;
  height: 8px !important;
  background: #0057ac !important;
  border-radius: 50% !important;
}

.p-toc__childList > li::after {
  display: none !important;
}

/* h3リンク */
.p-toc__childList > li > a {
  display: inline !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #0057ac !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  border-bottom: none !important;
}

.p-toc__childList > li > a:hover {
  text-decoration: underline !important;
}

/* =========================
   記事ページ h2 デザイン
   ========================= */
.post-content h2,
.p-postContent h2,
.swell-block-fullWide h2,
body.single .post_content h2,
body.single .e-content h2,
.l-mainContent h2:not(.section-title):not(.p-toc__ttl) {
  background: linear-gradient(to right, #091142, #0057ac) !important;
  color: #fff !important;
  padding: 20px 30px !important;
  margin: 40px 0 30px 0 !important;
  border: none !important;
  border-radius: 0 !important;
}

.post-content h2::before,
.p-postContent h2::before,
body.single .post_content h2::before,
body.single .e-content h2::before,
.l-mainContent h2:not(.section-title):not(.p-toc__ttl)::before {
  display: none !important;
}

/* =========================
   記事ページ h3 デザイン
   ========================= */
.post-content h3,
.p-postContent h3,
body.single .post_content h3,
body.single .e-content h3,
.l-mainContent h3 {
  background: #c9def4 !important;
  color: #0057ac !important;
  padding: 15px 20px 15px 50px !important;
  margin: 30px 0 20px 0 !important;
  border: none !important;
  border-radius: 0 !important;
  position: relative !important;
}

.post-content h3::before,
.p-postContent h3::before,
body.single .post_content h3::before,
body.single .e-content h3::before,
.l-mainContent h3::before {
  display: none !important;
}

/* スマートフォン表示時の h3 パディング調整 */
@media screen and (max-width: 768px) {
  .post-content h3,
  .p-postContent h3,
  body.single .post_content h3,
  body.single .e-content h3,
  .l-mainContent h3 {
    padding: 15px 20px 15px 20px !important;
  }
}

/* 記事ページ h4 デザイン */
.post-content h4,
.p-postContent h4,
body.single .post_content h4,
body.single .e-content h4,
.l-mainContent h4 {
  background: none !important;
  border-left: 8px solid #0057ac !important;
  padding-left: 15px !important;
  margin: 25px 0 15px 0 !important;
}

/* 記事ページ h5 デザイン（角括弧スタイル） */
.post-content h5,
.p-postContent h5,
body.single .post_content h5,
body.single .e-content h5,
.l-mainContent h5 {
  position: relative !important;
  color: #0057ac !important;
  font-size: 18px !important;
  padding: 15px 25px !important;
  margin: 20px 0 15px 0 !important;
  background: transparent !important;
  border: none !important;
}

.post-content h5::before,
.p-postContent h5::before,
body.single .post_content h5::before,
body.single .e-content h5::before,
.l-mainContent h5::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 20px !important;
  height: 100% !important;
  border-top: 3px solid #0057ac !important;
  border-left: 3px solid #0057ac !important;
  border-bottom: 3px solid #0057ac !important;
  border-right: none !important;
}

.post-content h5::after,
.p-postContent h5::after,
body.single .post_content h5::after,
body.single .e-content h5::after,
.l-mainContent h5::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 20px !important;
  height: 100% !important;
  border-top: 3px solid #0057ac !important;
  border-right: 3px solid #0057ac !important;
  border-bottom: 3px solid #0057ac !important;
  border-left: none !important;
}

/* =========================
   SWELL吹き出しブロック カスタマイズ
   アイコン枠と吹き出しを同色に設定
   ========================= */

/* アイコン枠の色（円形） - デフォルトはグレー */
.c-balloon .c-balloon__icon.-circle {
  border: none !important;
  background: none !important;
}

.c-balloon .c-balloon__icon.-circle .c-balloon__iconImg {
  border-radius: 50% !important;
  border: 3px solid #ccc !important;
}

/* カスタムカラー: 青系 - アイコン枠と吹き出しを同色に */
.c-balloon[data-col="blue"] .c-balloon__icon.-circle .c-balloon__iconImg {
  border-color: #0057ac !important;
}

.c-balloon[data-col="blue"] .c-balloon__body {
  border-color: #0057ac !important;
}

.c-balloon[data-col="blue"] .c-balloon__before {
  border-right-color: #0057ac !important;
}

.c-balloon[data-col="blue"] .c-balloon__after {
  border-right-color: #ebf4ff !important;
}

/* カスタムカラー: メインカラー（#0057AC）に統一 */
.c-balloon[data-col="main"] .c-balloon__icon.-circle .c-balloon__iconImg {
  border-color: #0057ac !important;
}

.c-balloon[data-col="main"] .c-balloon__body {
  color: #fff !important;
}

.c-balloon[data-col="main"] .c-balloon__before {
  border-right-color: #0057ac !important;
}

.c-balloon[data-col="main"] .c-balloon__after {
  border-right-color: #0057ac !important;
}

/* =========================
   カスタムテーブルウィジェット
   左側黒背景、右側グレー背景
   ========================= */
.custom-table-widget {
  margin-bottom: 20px;
}

.custom-table-title {
  margin-bottom: 15px;
  font-size: 18px;
  font-weight: 700;
}

.custom-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 10px;
}

.custom-table tr {
  background: transparent;
}

.custom-table th.custom-table-label {
  background: #333 !important;
  color: #fff !important;
  padding: 20px 25px !important;
  font-weight: 500 !important;
  text-align: center !important;
  width: 30% !important;
  vertical-align: middle !important;
  border: 2.5px solid white !important;
}

.custom-table td.custom-table-value {
  background: #f5f5f5 !important;
  color: #333 !important;
  padding: 20px 30px !important;
  vertical-align: middle !important;
  border: 2.5px solid white !important;
  line-height: 1.8 !important;
}

@media screen and (max-width: 768px) {
  .custom-table th.custom-table-label {
    width: 35% !important;
    padding: 15px 10px !important;
    font-size: 14px !important;
  }

  .custom-table td.custom-table-value {
    padding: 15px 15px !important;
    font-size: 14px !important;
  }
}

/* =========================
   比較テーブルウィジェット
   左上紺、ヘッダー青文字、左列薄青
   ========================= */
.comparison-table-widget {
  margin-bottom: 20px;
  overflow-x: auto;
}

.comparison-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

.comparison-table th,
.comparison-table td {
  padding: 15px 20px !important;
  text-align: center !important;
  vertical-align: middle !important;
  border: 3.5px solid #e0e0e0 !important;
}

/* 左上セル（紺色背景、白文字） */
.comparison-table thead th:first-child {
  background: #091142 !important;
  color: #fff !important;
  font-weight: 600 !important;
}

/* ヘッダー行（白背景、青文字） */
.comparison-table thead th {
  background: #fff !important;
  color: #0057ac !important;
  font-weight: 700 !important;
  font-size: 18px !important;
}

/* 左列（薄い青背景、紺文字） */
.comparison-table tbody th {
  background: #cfd8e2 !important;
  color: #091142 !important;
  font-weight: 500 !important;
}

/* データセル（白背景、紺文字） */
.comparison-table tbody td {
  background: #fff !important;
  color: #091142 !important;
}

@media screen and (max-width: 768px) {
  .comparison-table th,
  .comparison-table td {
    padding: 10px 12px !important;
    font-size: 13px !important;
  }

  .comparison-table thead th {
    font-size: 14px !important;
  }
}

/* =========================
   関連記事リンクボックス
   ========================= */
.related-article-box {
  display: flex;
  align-items: center;
  border-radius: 4px;
  overflow: hidden;
  margin: 20px 0;
  background: #fff;
}

.related-article-box a {
  display: flex;
  align-items: center;
  width: 100%;
  text-decoration: none;
  color: inherit;
}

.related-article-label {
  background: #0057ac;
  color: #fff;
  padding: 15px 20px;
  font-weight: 600;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 8px;
}

.related-article-label::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-1 7V3.5L18.5 9H13z'/%3E%3C/svg%3E")
    no-repeat center center;
  background-size: contain;
}

.related-article-title {
  flex: 1;
  padding: 15px 20px;
  font-size: 16px;
  color: #333;
}

.related-article-arrow {
  padding: 0;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  position: relative;
  overflow: visible;
}

.related-article-arrow img {
  width: 35px;
  height: 35px;
  max-width: 35px;
  max-height: 35px;
  display: block;
  object-fit: contain;
  position: relative;
}

.related-article-box:hover {
  border-color: #0057ac;
}

@media screen and (max-width: 768px) {
  .related-article-label {
    padding: 10px 15px;
    font-size: 14px;
  }

  .related-article-title {
    padding: 10px 15px;
    font-size: 14px;
  }

  .related-article-arrow {
    padding: 0;
  }
}

/* =========================
   チェックリストボックス
   ========================= */
.checklist-box {
  border: 3px solid #0057ac;
  border-radius: 4px;
  margin: 20px 0;
  overflow: hidden;
}

.checklist-box-header {
  background: #0057ac;
  color: #fff;
  padding: 12px 20px;
  font-size: 18px;
  font-weight: 600;
}

.checklist-box-content {
  background: #fff;
  padding: 20px 30px;
}

.checklist-box-content ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.checklist-box-content li {
  position: relative;
  padding-left: 35px;
  margin-bottom: 15px;
  font-size: 16px;
  color: #333;
  line-height: 1.6;
}

.checklist-box-content li:last-child {
  margin-bottom: 0;
}

.checklist-box-content li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 22px;
  height: 22px;
  background: url("data:image/svg+xml,%3Csvg width='29' height='29' viewBox='0 0 29 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.5 27.5C16.2075 27.5021 17.8986 27.1668 19.4761 26.5133C21.0536 25.8599 22.4864 24.9012 23.6923 23.6923C24.9012 22.4864 25.8599 21.0536 26.5133 19.4761C27.1668 17.8986 27.5021 16.2075 27.5 14.5C27.5021 12.7925 27.1668 11.1014 26.5133 9.52392C25.8599 7.94641 24.9012 6.51357 23.6923 5.30771C22.4864 4.09881 21.0536 3.1401 19.4761 2.48665C17.8986 1.83321 16.2075 1.4979 14.5 1.50001C12.7925 1.4979 11.1014 1.83321 9.52392 2.48665C7.94641 3.1401 6.51357 4.09881 5.30771 5.30771C4.09881 6.51357 3.1401 7.94641 2.48665 9.52392C1.83321 11.1014 1.4979 12.7925 1.50001 14.5C1.4979 16.2075 1.83321 17.8986 2.48665 19.4761C3.1401 21.0536 4.09881 22.4864 5.30771 23.6923C6.51357 24.9012 7.94641 25.8599 9.52392 26.5133C11.1014 27.1668 12.7925 27.5021 14.5 27.5Z' stroke='%230057AC' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M9.2998 14.5L13.1998 18.4L20.9998 10.6' stroke='%230057AC' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    no-repeat center center;
  background-size: contain;
}

@media screen and (max-width: 768px) {
  .checklist-box-header {
    padding: 10px 15px;
    font-size: 16px;
  }

  .checklist-box-content {
    padding: 15px 20px;
  }

  .checklist-box-content li {
    font-size: 14px;
    padding-left: 30px;
  }

  .checklist-box-content li::before {
    width: 18px;
    height: 18px;
  }
}

/* =========================
   チェックリストボックス2（角丸ヘッダー）
   ========================= */
.checklist-box-v2 {
  display: flex;
  border: 3px solid #0057ac;
  border-radius: 8px;
  margin: 20px 0;
  overflow: hidden;
  background: #fff;
}

.checklist-box-v2-header {
  background: #091142;
  color: #fff;
  padding: 20px 30px;
  font-size: 18px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  min-width: 180px;
}

.checklist-box-v2-content {
  flex: 1;
  padding: 20px 30px;
}

.checklist-box-v2-content ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.checklist-box-v2-content li {
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  font-size: 16px;
  color: #333;
  line-height: 1.6;
}

.checklist-box-v2-content li:last-child {
  margin-bottom: 0;
}

.checklist-box-v2-content li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 22px;
  height: 22px;
  background: url("data:image/svg+xml,%3Csvg width='29' height='29' viewBox='0 0 29 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.5 27.5C16.2075 27.5021 17.8986 27.1668 19.4761 26.5133C21.0536 25.8599 22.4864 24.9012 23.6923 23.6923C24.9012 22.4864 25.8599 21.0536 26.5133 19.4761C27.1668 17.8986 27.5021 16.2075 27.5 14.5C27.5021 12.7925 27.1668 11.1014 26.5133 9.52392C25.8599 7.94641 24.9012 6.51357 23.6923 5.30771C22.4864 4.09881 21.0536 3.1401 19.4761 2.48665C17.8986 1.83321 16.2075 1.4979 14.5 1.50001C12.7925 1.4979 11.1014 1.83321 9.52392 2.48665C7.94641 3.1401 6.51357 4.09881 5.30771 5.30771C4.09881 6.51357 3.1401 7.94641 2.48665 9.52392C1.83321 11.1014 1.4979 12.7925 1.50001 14.5C1.4979 16.2075 1.83321 17.8986 2.48665 19.4761C3.1401 21.0536 4.09881 22.4864 5.30771 23.6923C6.51357 24.9012 7.94641 25.8599 9.52392 26.5133C11.1014 27.1668 12.7925 27.5021 14.5 27.5Z' stroke='%230057AC' stroke-width='3' stroke-linejoin='round'/%3E%3Cpath d='M9.2998 14.5L13.1998 18.4L20.9998 10.6' stroke='%230057AC' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    no-repeat center center;
  background-size: contain;
}

@media screen and (max-width: 768px) {
  .checklist-box-v2 {
    flex-direction: column;
  }

  .checklist-box-v2-header {
    border-radius: 0;
    padding: 12px 20px;
    font-size: 16px;
  }

  .checklist-box-v2-content {
    padding: 15px 20px;
  }

  .checklist-box-v2-content li {
    font-size: 14px;
    padding-left: 30px;
  }
}

/* =========================
   チェックリストボックス3（シンプル青枠）
   ========================= */
.checklist-box-v3 {
  border: 3px solid #0057ac;
  border-radius: 20px;
  margin: 20px 0;
  padding: 25px 30px;
  background: #fff;
}

.checklist-box-v3-header {
  color: #0057ac;
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 20px;
}

.checklist-box-v3-content ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.checklist-box-v3-content li {
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  font-size: 16px;
  color: #333;
  line-height: 1.6;
}

.checklist-box-v3-content li:last-child {
  margin-bottom: 0;
}

.checklist-box-v3-content li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #0057ac;
  font-size: 20px;
  font-weight: 700;
}

@media screen and (max-width: 768px) {
  .checklist-box-v3 {
    padding: 20px 25px;
    border-radius: 15px;
  }

  .checklist-box-v3-header {
    font-size: 18px;
  }

  .checklist-box-v3-content li {
    font-size: 14px;
    padding-left: 30px;
  }
}

/* =========================
   カスタムボタン（青枠角丸リンク付き）
   ========================= */
.wp-block-swell-child-custom-button {
  text-align: center;
}

.custom-button {
  display: inline-block;
  margin: 20px 0;
}

.custom-button a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  padding: 18px 50px;
  border: 3px solid transparent;
  border-radius: 50px;
  background: linear-gradient(#fff, #fff) padding-box,
    linear-gradient(90deg, #0057ac 0%, #091142 100%) border-box;
  color: #0057ac;
  font-size: 20px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s ease;
}

.custom-button a::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230057AC' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

.custom-button a:hover {
  background: #0057ac;
  color: #fff;
}

/* =========================
   カスタムボタン2（白文字、グラデーション背景）
   ========================= */
.wp-block-swell-child-custom-button-2 {
  text-align: center;
}

.custom-button-2 {
  display: inline-block;
  margin: 20px 0;
}

.custom-button-2 a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  padding: 18px 50px;
  border: none;
  border-radius: 50px;
  background: linear-gradient(90deg, #0057ac 0%, #002346 100%);
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s ease;
}

.custom-button-2 a::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

.custom-button-2 a:hover {
  background: linear-gradient(90deg, #002346 0%, #0057ac 100%);
  opacity: 0.9;
}

.custom-button a:hover::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");
}

/* @media screen and (max-width: 768px) {
  .custom-button a {
    padding: 15px 35px;
    font-size: 16px;
  }

  .custom-button a::after {
    width: 20px;
    height: 20px;
  }
} */

/* カスタムアコーディオン */
.custom-accordion {
  margin: 20px 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  border-radius: 10px;
  background: #fff;
}

.custom-accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 25px;
  border-radius: 10px;
  color: #0057ac;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  transition: all 0.3s ease;
  border-bottom: 2px solid #e0e0e0;
}

.custom-accordion-header::-webkit-details-marker {
  display: none;
}

.custom-accordion-header::after {
  content: "+";
  font-size: 28px;
  font-weight: 400;
  color: #0057ac;
  line-height: 1;
}

.custom-accordion[open] .custom-accordion-header {
  border-radius: 10px 10px 0 0;
  border-bottom: 2px solid #e0e0e0;
}

.custom-accordion[open] .custom-accordion-header::after {
  content: "−";
}

.custom-accordion-header:hover {
  background: rgba(0, 87, 172, 0.05);
}

.custom-accordion-content {
  padding: 20px 25px;
  border-radius: 0 0 10px 10px;
}

.custom-accordion-content p {
  margin: 0 0 15px 0;
  color: #333;
  line-height: 1.8;
}

.custom-accordion-content p:last-child {
  margin-bottom: 0;
}

/* アコーディオン内SNSボタン */
.accordion-sns-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 15px;
  justify-content: flex-start;
}

.accordion-sns-buttons a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  background: #fff;
  border: none;
  border-radius: 25px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
}

.accordion-sns-buttons a.sns-mail {
  color: #fff;
  background: #0057ac;
  position: relative;
  padding-left: 40px;
}

.accordion-sns-buttons a.sns-mail::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background-image: url("assets/mail_normal.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.accordion-sns-buttons a.sns-mail:hover {
  background: #003d7a;
}

.accordion-sns-buttons a.sns-mail:hover::before {
  background-image: url("assets/mail_hover.png");
}

.accordion-sns-buttons a.sns-linkedin {
  color: #0077b5;
  background: #fff;
  position: relative;
  padding-left: 40px;
}

.accordion-sns-buttons a.sns-linkedin::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background-image: url("assets/linkedin_normal.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.accordion-sns-buttons a.sns-linkedin:hover {
  background: #0077b5;
  color: #fff;
}

.accordion-sns-buttons a.sns-linkedin:hover::before {
  background-image: url("assets/linkedin_hover.png");
}

.accordion-sns-buttons a.sns-x {
  color: #fff;
  background: #000;
  position: relative;
  padding-left: 40px;
}

.accordion-sns-buttons a.sns-x::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background-image: url("assets/x_normal.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.accordion-sns-buttons a.sns-x:hover {
  background: #333;
}

.accordion-sns-buttons a.sns-x:hover::before {
  background-image: url("assets/x_hover.png");
}

.accordion-sns-buttons a.sns-youtube {
  color: #ff0000;
  background: #fff;
  position: relative;
  padding-left: 40px;
}

.accordion-sns-buttons a.sns-youtube::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background-image: url("assets/youtube_normal.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.accordion-sns-buttons a.sns-youtube:hover {
  background: #ff0000;
  color: #fff;
}

.accordion-sns-buttons a.sns-youtube:hover::before {
  background-image: url("assets/youtube_hover.png");
}

/* Pickupセクションの回転スタンプ */
.pickup {
  position: relative;
}

.pickup-stamp {
  position: absolute;
  top: 30px;
  right: 30px;
  width: 200px;
  height: 200px;
  animation: rotate-stamp 20s linear infinite;
  opacity: 1;
  z-index: 0;
  pointer-events: none;
}

@keyframes rotate-stamp {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@media screen and (max-width: 768px) {
  .pickup-stamp {
    width: 130px;
    height: 130px;
    top: 20px;
    right: 10px;
  }
}

/* =========================
   ファーストビュー (common-fv) - corp.irbank.net準拠
   ========================= */
.recruit .common-fv {
  height: 600px !important;
  position: relative !important;
  background: url("/article/assets/media/2025/11/fv.png")
    no-repeat bottom center/cover !important;
}

.recruit .common-fv-box {
  position: absolute !important;
  left: 20% !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
}

.recruit .common-title {
  color: #fff !important;
  font-family: "Hiragino Kaku Gothic StdN" !important;
  font-size: 8.5vw !important;
  font-style: normal !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.recruit .common-subtitle {
  color: #fff !important;
  font-family: "Hiragino Kaku Gothic ProN" !important;
  font-size: 2.25vw !important;
  font-style: normal !important;
  font-weight: 600 !important;
  line-height: normal !important;
  letter-spacing: 6.4px !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media screen and (max-width: 768px) {
  .recruit .common-fv {
    background: url("/article/assets/media/2025/11/recruit_fv_sp.png")
      no-repeat bottom center/cover !important;
  }
}

@media screen and (max-width: 500px) {
  .recruit .common-fv {
    height: 350px !important;
  }
  .recruit .common-title {
    font-size: 60px !important;
  }
  .recruit .common-subtitle {
    font-size: 20px !important;
  }
  .recruit .common-fv-box {
    left: 5% !important;
    top: 65% !important;
  }
}

/* =========================
   パンくずリスト
   ========================= */
.breadcrumb {
  background: #FFFFFF;
  padding: 18px 0;
  width: 100%;
}

.breadcrumb .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
  box-sizing: border-box;
}

.breadcrumb__list {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
}

.breadcrumb__item {
  display: flex;
  align-items: center;
}

.breadcrumb__item:not(:last-child)::after {
  content: ">";
  margin: 0 10px;
  color: #666;
}

.breadcrumb__item a {
  color: #0057ac;
  text-decoration: none;
  transition: color 0.3s ease;
}

.breadcrumb__item a:hover {
  color: #003d7a;
  text-decoration: underline;
}

.breadcrumb__item--current {
  color: #333;
  font-weight: 500;
}

/* =========================
   パンくずリスト（SWELL実DOM対応）
   ========================= */

#breadcrumb.p-breadcrumb {
  background: #fff;          /* 背景を白 */
  padding: 20px 0 8px 0;
  width: 100%;
}

/* 中央1200px枠 */
#breadcrumb .l-container {
  max-width: 1200px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* リストを左寄せ */
.p-breadcrumb__list {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
}

/* 念のため container の auto margin を解除 */
.p-breadcrumb__list.l-container {
  margin-left: 0;
}

/* 区切り */
.p-breadcrumb__item:not(:last-child)::after {
  content: ">";
  margin: 0 10px;
  color: #666;
}

/* リンク */
.p-breadcrumb__item a {
  color: #0057ac;
  text-decoration: none;
}

.p-breadcrumb__item a:hover {
  text-decoration: underline;
}

/* 現在地 */
.p-breadcrumb__item--current {
  color: #333;
  font-weight: 500;
}

/* TOP以外はパンくずの影を消す */
body:not(.home) .p-breadcrumb.-bg-on {
    box-shadow: none;
}

/* TOPページだけ影を出す */
.home.-body-solid .p-breadcrumb.-bg-on {
    box-shadow: inset 0 -1px 8px rgba(0, 0, 0, .06);
}

/* スマホ版：パンくず調整 */
@media screen and (max-width: 768px) {

  #breadcrumb.p-breadcrumb {
    padding: 27px 0 8px 0;   /* SP用余白 */
  }

  .p-breadcrumb__list {
    font-size: 12px;       /* 1段階小さく */
  }

}

/* TOPページだけパンくず余白変更 */
.home #breadcrumb.p-breadcrumb {
    padding: 20px 0 20px 0;
}

/* =========================
   メイン + サイドバー レイアウト
   ========================= */
.site-content {
  padding: 40px 0;
  background: #fff;
}

.content-wrapper {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 40px;
  align-items: start;
}

.main-content {
  min-width: 0;
}

.sidebar {
  position: sticky;
  top: 20px;
}

/* SP: サイドバーを下に配置 */
@media screen and (max-width: 768px) {
  .content-wrapper {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .sidebar {
    position: static;
  }
}

/* =========================
   News/Pickup Section Overrides (for article.irbank.net layout)
   ========================= */
.site-content .news,
.site-content .pickup {
  padding: 0;
  background: none;
}

.site-content .news .section-title,
.site-content .pickup .section-title {
  color: #0057ac;
}

.news-more-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1a2744;
  color: #fff;
  text-decoration: none;
  padding: 16px 20px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  margin-top: 20px;
  transition: background 0.3s ease, transform 0.3s ease;
  position: relative;
}

.news-more-btn:hover {
  background: #0e76ff;
  color: #fff;
  text-decoration: none;
}

.news-more-arrow {
  position: absolute;
  right: 20px;
  font-size: 20px;
  font-weight: bold;
}

/* =========================
   SWELLデフォルトヘッダー・フッター非表示
   ========================= */
.l-header,
.l-fixHeader,
.p-footer {
  display: none !important;
}

/* =========================
   単一記事タイトルデザイン
   ========================= */

/* 記事ヘッダーコンテナ */
.single .l-mainContent__inner {
  padding-top: 0 !important;
}

.single .c-postTitle {
  margin-bottom: 0 !important;
}

/* メインタイトル */
.single .c-postTitle__ttl {
  color: #091142 !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* カテゴリー・タグのスタイル */
.single .p-articleMetas {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 10px !important;
}

/* カテゴリとタグを横並び */
.single .p-articleMetas > * {
  display: inline-flex !important;
  flex-shrink: 0 !important;
}

.single .c-postMeta__cat,
.single .c-postMeta__term {
  display: inline-block !important;
  padding: 4px 12px !important;
  border: 1px solid #0057ac !important;
  border-radius: 15px !important;
  color: #0057ac !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  background: transparent !important;
}

.single .c-postMeta__cat:hover,
.single .c-postMeta__term:hover {
  background: #0057ac !important;
  color: #fff !important;
}

/* 更新日・公開日 */
.single .c-postMeta__date {
  color: #666 !important;
  font-size: 13px !important;
}

/* 記事メタ情報ラッパー */
.article-meta-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0;
  padding: 0;
}

.article-meta-left {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

/* URLコピーボタン */
.article-url-copy-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  margin-top: 0;
  margin-bottom: 10px;
}

.article-url-copy-label {
  color: #0057ac;
  font-size: 12px;
  cursor: pointer;
  text-decoration: none;
  transition: opacity 0.3s ease;
  margin: 0;
  padding: 0;
  padding-bottom: 3px;
  line-height: 1;
}

.article-url-copy-label:hover {
  opacity: 0.7;
}

/* 広告についてポップアップ */
.ad-popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 99999;
}

.ad-popup-overlay.active {
  display: flex;
}

.ad-popup {
  background: #fff;
  border-radius: 12px;
  max-width: 550px;
  width: 90%;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  animation: popupFadeIn 0.3s ease;
  position: relative;
}

.ad-popup-header {
  padding: 25px 30px;
  border-bottom: 3px solid #0057ac;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ad-popup-title {
  color: #091142;
  font-size: 20px;
  font-weight: 700;
  margin: 0;
}

.ad-popup-close {
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 0;
  color: transparent;
  position: relative;
}

.ad-popup-close::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 24px;
  height: 3px;
  background: #999;
  border-radius: 2px;
}

.ad-popup-close:hover::before {
  background: #333;
}

.ad-popup-content {
  padding: 30px;
  color: #333;
  font-size: 15px;
  line-height: 1.9;
}

.ad-popup-buttons {
  display: flex;
  gap: 15px;
  padding: 0 30px 30px;
}

.ad-popup-btn {
  flex: 1;
  padding: 12px 20px;
  border: 2px solid #091142;
  border-radius: 8px;
  background: transparent;
  color: #091142;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ad-popup-btn:hover {
  background: #091142;
  color: #fff;
}

@media screen and (max-width: 768px) {
  .ad-popup-buttons {
    flex-direction: column;
    gap: 10px;
  }
}

.article-url-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border: none;
  border-radius: 4px;
  background: #0057ac;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s ease;
}

.article-url-copy-btn:hover {
  background: #003d7a;
  color: #fff;
}

.article-url-copy-btn::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

.article-url-copy-btn:hover::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");
}

.article-url-copy-btn.copied {
  background: #28a745;
  color: #fff;
}

.article-url-copy-btn.copied::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}

/* 記事本文のマージン調整 */
.single .post_content,
.single .e-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* 執筆者・監修者情報 */
.article-author-info {
  display: flex;
  align-items: center;
  gap: 40px;
  padding: 20px 0 0 0;
  position: relative;
  overflow: hidden;
}

.author-info-stamp {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  width: 100px;
  height: 100px;
  opacity: 0.15;
  animation: rotate-stamp 20s linear infinite;
  pointer-events: none;
  z-index: 0;
}

.wp-block-swell-child-author-profile {
  position: relative;
  overflow: visible;
  margin-top: 60px;
}

.wp-block-swell-child-author-profile::after {
  content: "";
  position: absolute;
  top: -80px;
  right: -40px;
  width: 220px;
  height: 220px;
  background: url("images/mission_stamp.png")
    no-repeat center center;
  background-size: contain;
  opacity: 1;
  animation: rotate-stamp 20s linear infinite;
  pointer-events: none;
  z-index: 0;
}

.author-info-item {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 1;
}

.author-info-label {
  color: #000;
  font-size: 14px;
  font-weight: 700;
}

.author-info-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  overflow: hidden;
}

.author-info-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.author-info-name {
  color: #333;
  font-size: 15px;
  font-weight: 500;
}

.author-info-logo {
  display: flex;
  align-items: center;
  gap: 10px;
}

.author-info-logo img {
  height: 36px;
  width: auto;
}

.author-info-logo-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background: #fff;
  border-radius: 50%;
  object-fit: cover;
}

.author-info-logo-text {
  color: #091142;
  font-size: 15px;
  font-weight: 600;
}

@media screen and (max-width: 768px) {
  .single .c-postTitle__ttl {
    font-size: 22px !important;
  }

  .article-url-copy-wrapper {
    justify-content: flex-start;
  }
}

/* 執筆者・監修者ポップアップ */
.author-info-item {
  cursor: pointer;
  transition: opacity 0.3s ease;
}

.author-info-item:hover {
  opacity: 0.7;
}

.author-popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 99999;
}

.author-popup-overlay.active {
  display: flex;
}

.author-popup {
  background: #fff;
  border-radius: 12px;
  max-width: 750px;
  width: 90%;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  animation: popupFadeIn 0.3s ease;
  position: relative;
}

@keyframes popupFadeIn {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.author-popup-header {
  padding: 50px 50px 30px;
  display: flex;
  align-items: center;
  gap: 30px;
  border-bottom: 1px solid #e0e0e0;
}

.author-popup-avatar {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  border: 3px solid #0057ac;
}

.author-popup-info {
  flex: 1;
  padding: 10px 0;
}

.author-popup-name {
  color: #0057ac;
  font-size: 32px;
  font-weight: 700;
  margin: 0 0 15px 0;
  padding-right: 50px;
}

.author-popup-email {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #666;
  font-size: 16px;
  padding-right: 50px;
}

.author-popup-email::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

.author-popup-bio {
  padding: 35px 50px 25px;
  color: #333;
  font-size: 17px;
  line-height: 2;
}

/* 丸枠（親）を中央揃えの器にする */
.author-popup-avatar{
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;       /* はみ出し防止 */
  border-radius: 50%;     /* 念のため */
}

/* 中の画像だけ小さく・切れずに */
.author-popup-avatar img{
  width: 80%;
  height: 80%;
  object-fit: contain;    /* coverだと切れやすい */
  display: block;
}

/* ソーシャルボタン - 完全に非表示 */
.author-popup-social {
  display: none !important;
  gap: 12px;
  padding: 0 50px 50px;
}

.author-popup-social-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.3s ease;
}

.author-popup-social-btn.mail {
  background: #0057ac !important;
  color: #fff !important;
  border: 2px solid #0057ac !important;
}

.author-popup-social-btn.mail:hover {
  background: #003d7a !important;
  border-color: #003d7a !important;
}

.author-popup-social-btn.linkedin {
  background: #fff !important;
  color: #0077b5 !important;
  border: 2px solid #0077b5 !important;
}

.author-popup-social-btn.linkedin:hover {
  background: #0077b5 !important;
  color: #fff !important;
}

.author-popup-social-btn.twitter {
  background: #000 !important;
  color: #fff !important;
  border: 2px solid #000 !important;
}

.author-popup-social-btn.twitter:hover {
  background: #333 !important;
  border-color: #333 !important;
}

.author-popup-social-btn.youtube {
  background: #fff !important;
  color: #ff0000 !important;
  border: 2px solid #ff0000 !important;
}

.author-popup-social-btn.youtube:hover {
  background: #ff0000 !important;
  color: #fff !important;
}

.author-popup-social-btn svg {
  width: 16px !important;
  height: 16px !important;
}

.author-popup-close {
  position: absolute;
  top: 30px;
  right: 30px;
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 0;
  color: transparent;
  transition: opacity 0.3s ease;
  z-index: 10;
}

.author-popup-close::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 28px;
  height: 3px;
  background: #999;
  border-radius: 2px;
}

.author-popup-close:hover {
  opacity: 0.7;
}

.author-popup-close:hover::before {
  background: #333;
}

.author-popup-wrapper {
  position: relative;
  margin: 0 auto;
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .author-popup {
    margin: 0 auto;
    width: 95%;
  }

  .author-popup-header {
    padding: 20px;
    gap: 15px;
  }

  .author-popup-avatar {
    width: 70px;
    height: 70px;
  }

  .author-popup-info {
    min-width: 0;
  }

  .author-popup-name {
    font-size: 20px;
    padding-right: 30px;
  }

  .author-popup-email {
    padding-right: 10px;
    font-size: 13px;
    word-break: break-all;
    overflow-wrap: break-word;
  }

  .author-popup-bio {
    padding: 20px;
    font-size: 14px;
  }

  .author-popup-close {
    top: 15px;
    right: 15px;
    width: 24px;
    height: 24px;
  }
}

/* =========================
   カスタムヘッダー
   ========================= */
.custom-header {
  background: #fff;
  border-bottom: 1px solid #e0e0e0;
  position: sticky;
  top: 0;
  z-index: 9999;
  padding: 10px 0;
}

.custom-header-inner {
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.custom-header-logo img {
  display: block;
}

.custom-header-menu {
  flex: 1;
  display: flex;
  justify-content: center;
}

.custom-header-menu .c-gnav {
  display: flex !important;
}

.custom-header-menu .c-gnav__list {
  display: flex !important;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 20px;
}

.custom-header-menu .c-gnav__item a {
  color: #333;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  transition: color 0.3s;
  white-space: nowrap;
}

.custom-header-menu .c-gnav__item a:hover {
  color: #04384c;
}

.custom-header-search form {
  display: flex;
  align-items: center;
  background: #f5f5f5;
  border-radius: 25px;
  overflow: hidden;
}

.custom-header-search input[type="text"] {
  border: none;
  background: transparent;
  padding: 10px 15px;
  font-size: 14px;
  width: 250px;
  outline: none;
}

.custom-header-search button {
  background: #0057ac;
  color: #fff;
  border: none;
  padding: 10px 15px;
  cursor: pointer;
  transition: background 0.3s ease;
}

.custom-header-search button:hover {
  background: #003d7a;
}

.custom-header-search button i {
  font-size: 14px;
}

@media screen and (max-width: 960px) {
  .custom-header-menu {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .custom-header-inner {
    flex-wrap: wrap;
  }

  .custom-header-search input[type="text"] {
    width: 180px;
  }
}

/* =========================
   カスタムフッター SNSリンク
   ========================= */
#footer .footer-heading-group h3 {
  color: #fff;
  font-size: 24px;
  margin: 0 0 16px 0;
}

/* .sns-links の flex/gap は削除。
   本体CSS (ib.min.v4.13.css) の footer .youtube-link { margin-right:1rem } で
   アイコン間隔が制御されるため、ここで追加すると二重になる。 */

/* =========================
   サイドバー カテゴリーウィジェット
   ========================= */
#sidebar .widget_categories,
#sidebar .c-listMenu.widget_categories {
  background: #e8ecf0 !important;
  padding: 25px 20px !important;
  border-radius: 0 !important;
  margin-bottom: 30px !important;
}

#sidebar .widget_categories .c-widget__title,
#sidebar .c-listMenu.widget_categories .c-widget__title {
  background: transparent !important;
  color: #0066ff !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  margin-bottom: 20px !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
  font-family: Arial, sans-serif !important;
}

#sidebar .widget_categories ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

#sidebar .widget_categories li {
  background: #fff !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
  position: relative !important;
  border: none !important;
  border-left: 6px solid #0066ff !important;
}

#sidebar .widget_categories li::before,
#sidebar .widget_categories li::after {
  content: none !important;
  display: none !important;
  border: none !important;
}

#sidebar .widget_categories li:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
  transform: translateY(-2px) !important;
}

#sidebar .widget_categories li a {
  display: block !important;
  padding: 12px 50px 12px 20px !important;
  margin: 0 !important;
  color: #333 !important;
  text-decoration: none !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  position: relative !important;
  border: none !important;
}

#sidebar .widget_categories li a::before {
  content: none !important;
  display: none !important;
  border: none !important;
}

#sidebar .widget_categories li a::after {
  content: "›" !important;
  position: absolute !important;
  right: 20px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: #0066ff !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  transition: transform 0.3s ease !important;
}

#sidebar .widget_categories li:hover a {
  color: #0066ff !important;
}

#sidebar .widget_categories li:hover a::after {
  transform: translateY(-50%) translateX(5px) !important;
}

/* =========================
   フッター レスポンシブ
   ========================= */
@media screen and (max-width: 768px) {
  #footer h3 {
    text-align: center !important;
    margin-top: 2.5rem !important;
    margin-bottom: 1rem !important;
  }

  #footer .irbank-icon {
    text-align: center !important;
  }

  #footer .footer-corp-info {
    display: table !important;
    margin: 0 auto !important;
  }

  #footer .list {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 !important;
    position: relative !important;
  }

  #footer .list details {
    border-top: 1px solid #00407f !important;
    border-right: 1px solid #00407f !important;
  }

  #footer .list details[open] {
    position: absolute !important;
    width: 100% !important;
    z-index: 100 !important;
  }

  #footer .about-accordion--pc {
    display: none !important;
  }

  #footer .about-accordion--sp {
    display: block !important;
  }

  #footer .about-accordion--sp summary,
  #footer .list details summary {
    display: flex !important;
    background-color: #0057ac !important;
    font-weight: 600 !important;
    color: #fff !important;
    padding: 1rem !important;
  }

  .cmn:has(ul.iv) {
    background: url("https://f.irbank.net/assets/cross.svg") center center no-repeat !important;
  }

  .cmn :not(:last-child),
  #footer .about-accordion--sp {
    border-bottom: 1px solid #00407f !important;
  }
}

/* アクティブなカテゴリー */
#sidebar .widget_categories li.current-cat,
#sidebar .widget_categories li.current-cat-parent {
  background: #fff !important;
  border: none !important;
  border-left: 6px solid #0066ff !important;
}

#sidebar .widget_categories li.current-cat::before,
#sidebar .widget_categories li.current-cat::after,
#sidebar .widget_categories li.current-cat-parent::before,
#sidebar .widget_categories li.current-cat-parent::after {
  content: none !important;
  display: none !important;
  border: none !important;
}

#sidebar .widget_categories li.current-cat a,
#sidebar .widget_categories li.current-cat-parent a {
  color: #0066ff !important;
  border: none !important;
}

#sidebar .widget_categories li.current-cat a::before,
#sidebar .widget_categories li.current-cat-parent a::before {
  content: none !important;
  display: none !important;
  border: none !important;
}

/* サイドバーのカテゴリーa:hoverを無効化 */
#sidebar .widget_categories a:hover,
#sidebar .widget_categories .cat-item a:hover {
  transform: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border-color: transparent !important;
}

#sidebar .widget_categories a:hover::after,
#sidebar .widget_categories .cat-item a:hover::after {
  transform: translateY(-50%) !important;
  opacity: 1 !important;
}

/* =========================
   ページネーション
   ========================= */
.pagination,
.navigation.pagination {
  padding: 20px;
  margin-top: 40px;
  text-align: center;
}

.pagination .nav-links,
.navigation.pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
  flex-wrap: wrap;
}

.pagination .nav-links a,
.pagination .nav-links .current,
.pagination .nav-links .dots,
.navigation.pagination .nav-links a,
.navigation.pagination .nav-links .current,
.navigation.pagination .nav-links .dots {
  padding: 5px 10px;
  text-decoration: none;
  color: #333;
  font-size: 18px;
  background: transparent;
  border: none;
}

.pagination .nav-links .prev,
.pagination .nav-links .next,
.navigation.pagination .nav-links .prev,
.navigation.pagination .nav-links .next {
  font-style: italic;
  font-weight: normal;
}

.pagination .nav-links .current,
.navigation.pagination .nav-links .current {
  color: #1e73be;
  border-bottom: 2px solid #1e73be;
  font-weight: normal;
}

.pagination .nav-links a:hover,
.navigation.pagination .nav-links a:hover {
  color: #1e73be;
}

.pagination .nav-links .dots,
.navigation.pagination .nav-links .dots {
  padding: 5px;
}

/* =========================
   記事ページ メタ情報
   ========================= */
/* デフォルトのメタ情報を非表示 */
.p-articleMetas.-top {
  display: none !important;
}

.article-meta-wrapper {
  display: flex;
  justify-content: space-between;
  padding: 0;
}

.article-meta-left {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: center;
}

.article-categories,
.article-tags {
  display: flex;
  gap: 12px;
}

.article-category-link,
.article-tag-link {
  color: #0057ac !important;
  text-decoration: none !important;
  font-size: 16px;
  font-weight: 300;
  background: #f5f5f5;
  padding: 6px 16px;
  border-radius: 4px;
  display: inline-block;
  transition: background 0.3s ease;
}

.article-category-link:hover,
.article-tag-link:hover {
  background: #e8e8e8;
  text-decoration: none !important;
}

.article-updated-date {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  color: #666;
  font-size: 14px;
  margin-top: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #ddd;
}

.article-meta-right {
  display: flex;
  gap: 20px;
  align-items: center;
  padding: 0;
}

.article-url-copy-label {
  color: #0057ac;
  cursor: pointer;
  font-size: 14px;
  text-decoration: none;
  padding: 0;
}

.article-url-copy-label:hover {
  text-decoration: underline;
}

.article-url-copy-btn {
  background: #fff;
  border: 1px solid #0057ac;
  color: #0057ac;
  padding: 10px 24px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 14px;
  font-weight: normal;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.article-url-copy-btn::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230057ac' stroke-width='2'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

.article-url-copy-btn:hover {
  background: #0057ac;
  border-color: #0057ac;
  color: #fff;
}

.article-url-copy-btn:hover::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");
}

.article-url-copy-btn.copied {
  background: #28a745;
  color: #fff;
}

/* 著者情報 */
.article-author-info {
  display: flex;
  gap: 20px;
  padding: 20px 0;
}

.author-info-item {
  display: flex;
  align-items: center;
  gap: 15px;
  cursor: pointer;
  flex: 1;
}

.author-info-label {
  font-size: 14px;
  color: #666;
  white-space: nowrap;
}

/* .author-info-avatar {
  flex-shrink: 0;
}

.author-info-avatar img {
  width: 48px;
  height: auto;
  border-radius: 50%;
} */

.author-info-name {
  font-size: 16px;
  font-weight: 600;
  color: #333;
}

.author-info-logo {
  display: flex;
  align-items: center;
  gap: 10px;
}

.author-info-logo-icon {
  width: 60px;
  height: 60px;
  background: #fff;
  border-radius: 50%;
  object-fit: cover;
}

.author-info-logo-text {
  font-size: 16px;
  font-weight: 600;
  color: #333;
}

/* サムネイル */
.article-thumbnail-wrapper {
  margin-bottom: 30px;
  border-radius: 20px;
  overflow: hidden;
}

.article-thumbnail-wrapper img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 20px;
}

/* レスポンシブ */
@media screen and (max-width: 768px) {
  .container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .news-card-link {
    margin-right: 0 !important;
    padding: 10px;
  }

  .news-meta-top {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }

  .news-badges-tags-wrapper {
    align-items: flex-start !important;
    gap: 1px !important;
  }

  .article-meta-wrapper {
    padding-top: 20px;
  }

  .article-author-info {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .author-info-item {
    height: 25px;
    gap: 8px;
  }
  .author-info-avatar {
    width: 25px;
    height: 25px;
    border-radius: 50%;
    overflow: hidden;
  }

  .author-info-avatar img {
    width: 25px;
    height: 25px;
  }

  .author-info-name {
    font-size: 12px;
  }

  .author-info-label {
    font-size: 11px;
  }

  .author-info-logo-icon {
    width: 20px;
    height: 20px;
  }

  .author-info-logo-text {
    font-size: 12px;
  }

  ol.is-style-index > li {
    margin-left: 0em !important;
  }

  .wp-block-swell-child-author-profile::after {
    width: 147px;
    height: 147px;
    top: -53px;
    right: -27px;
  }
}

/* モバイル対応 - SNSボタン */
@media (max-width: 599px) {
  .accordion-sns-buttons {
    gap: 6px;
    justify-content: flex-start;
  }

  .accordion-sns-buttons a {
    padding: 8px 10px;
    font-size: 10px;
    gap: 4px;
  }

  .accordion-sns-buttons a.sns-mail,
  .accordion-sns-buttons a.sns-linkedin,
  .accordion-sns-buttons a.sns-x,
  .accordion-sns-buttons a.sns-youtube {
    padding-left: 28px;
  }

  .accordion-sns-buttons a.sns-mail::before,
  .accordion-sns-buttons a.sns-linkedin::before,
  .accordion-sns-buttons a.sns-youtube::before {
    width: 16px;
    height: 16px;
    left: 6px;
  }

  .accordion-sns-buttons a.sns-x::before {
    width: 14px;
    height: 14px;
    left: 7px;
  }
}

/* p-termContentのマージン調整 */
.p-termContent.l-parent {
  margin-top: 0;
}

/* 表示件数スタイル */
.post-count-display {
  text-align: center;
  color: #666;
  font-size: 14px;
  font-weight: normal;
  margin-top: 24px;
  margin-bottom: 12px;
}

/* ページネーションスタイル */
.pagination,
.navigation.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
  background: none !important;
  font-size: 18px;
}

.pagination a,
.pagination span,
.navigation.pagination a,
.navigation.pagination span {
  display: inline-block !important;
  padding: 0 2px !important;
  margin: 0 !important;
  min-width: auto !important;
  width: auto !important;
  height: auto !important;
  line-height: 1.5 !important;
  color: #1a1a1a;
  text-decoration: none;
  transition: all 0.3s ease;
  border-bottom: 2px solid transparent;
  background: none !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  box-shadow: none !important;
  font-weight: normal;
  text-align: center;
}

/* SWELLデフォルトスタイルを上書き */
[class*="page-numbers"] {
  display: inline-block !important;
  min-width: auto !important;
  width: auto !important;
  height: auto !important;
  line-height: 1.5 !important;
  padding: 0 2px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* prev/nextをイタリック体に */
.pagination .prev,
.pagination .next,
.navigation.pagination .prev,
.navigation.pagination .next {
  font-style: italic;
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* 無効化されたprev/nextボタン */
.pagination .prev.disabled,
.pagination .next.disabled,
.navigation.pagination .prev.disabled,
.navigation.pagination .next.disabled {
  display: none !important;
  pointer-events: none !important;
  border-bottom-color: transparent !important;
}

/* prev/nextボタンにマージンを追加 */
.pagination .prev,
.navigation.pagination .prev {
  margin-right: 15px !important;
}

.pagination .next,
.navigation.pagination .next {
  margin-left: 15px !important;
}

.pagination a:hover,
.navigation.pagination a:hover {
  color: #0057ac;
  text-decoration: none;
  background: none !important;
}

.pagination .current,
.navigation.pagination .current {
  color: #0057ac;
  font-weight: normal;
  border-bottom: 2px solid #0057ac !important;
  background: none !important;
}

.pagination .dots,
.navigation.pagination .dots {
  color: #999;
  background: none !important;
  border: none !important;
  font-weight: bold;
}

/* WordPress標準アコーディオンの見出しを非表示 */
.wp-block-accordion .wp-block-accordion-heading {
  display: none;
}


/* ==== サブドメインのURLをサブディレクトリに変換 ==== */
.wp-block-swell-child-custom-accordion .accordion-sns-buttons a.sns-mail::before{
  background-image: url("assets/mail_normal.png?v=1766501931");
}

.wp-block-swell-child-custom-accordion .accordion-sns-buttons a.sns-mail:hover::before{
  background-image: url("assets/mail_hover.png?v=1766501931");
}

/* ==== マーカーのデザイン修正 ==== */
.mark_orange {
    background: linear-gradient(transparent 85%, var(--color_mark_orange) 0%);
    padding-bottom: 5px;
}

.mark_yellow {
    background: linear-gradient(transparent 85%, var(--color_mark_yellow) 0%);
    padding-bottom: 5px;
}

.mark_green {
    background: linear-gradient(transparent 85%, var(--color_mark_green) 0%);
    padding-bottom: 5px;
}

.mark_blue {
    background: linear-gradient(transparent 85%, var(--color_mark_blue) 0%);
    padding-bottom: 5px;
}

.wp-block-swell-child-executive-profile .executive-profile-image img {
    width: 100%;
    height: 100%;
}

/* =========================
   SWELL ベースCSS 干渉リセット
   本体 irbank.net/ と article ページのヘッダー・フッターを一致させる。
   SWELLが全要素に付与する box-sizing:border-box / padding / border 等を
   ヘッダー(.ch)とフッター(#footer)内で打ち消し、
   ib.min.v4.13.css 単独と同じ描画にする。
   ========================= */

/* --- ヘッダー: SWELLフォーム要素リセット ---
   SWELL: button,input,select,textarea { background:#f7f7f7; border:1px solid hsla(0,0%,78%,.5); padding:.25em .5em }
   SWELL: * { box-sizing:border-box }
   SWELL: img { max-width:100%; height:auto }
   SWELL: [type=submit],button { display:inline-block; -webkit-appearance:button }
   これらを irbank CSS の前提に戻す */
header .ch {
  box-sizing: content-box;
}

header .ch input[type="text"] {
  box-sizing: content-box;
  padding: 0 0 0 5px;
  border: none;
  border-bottom: 2px solid #e5e5e5;
  border-radius: 0;
  background-color: #fff;
  color: #333;
  outline: none;
  height: 28px;
  width: 99%;
}

header .ch button {
  box-sizing: content-box;
  padding: 0;
  border: none;
  border-radius: 0;
  background-color: #fff;
  -webkit-appearance: none;
  appearance: none;
  display: block;
  left: 4px;
}

header .ch img {
  max-width: none;
}

input[name="query"]::placeholder {
  position: relative;
  top: -1px;   /* 数値は好みで調整 */
}

/* --- フッター: SWELLリセット --- */
#footer img {
  max-width: none;
}

#footer .sns-links a {
  box-sizing: content-box;
}

a.nxq {
  padding: 0 .6em !important;
}
/* Sidebar: start at article content level on single posts */
.single .l-sidebar,
.home .l-sidebar {
    margin-top: 260px;
}
