@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
*/

/* 法改正一覧：タイトルリンク */
.legal-update-table__title-link {
  color: #0066cc;
  font-weight: 700;
  line-height: 1.65;
  text-decoration: underline;
}

.legal-update-table__title-link:hover {
  color: #004b99;
}


.legal-update-box {
  margin-top: 2em;
}

.legal-update-meta {
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  margin: 1em 0 2em;
}

.legal-update-meta div {
  display: flex;
  border-bottom: 1px solid #eee;
}

.legal-update-meta div:last-child {
  border-bottom: none;
}

.legal-update-meta dt {
  width: 180px;
  background: #f7f7f7;
  padding: 12px 16px;
  font-weight: 700;
}

.legal-update-meta dd {
  flex: 1;
  padding: 12px 16px;
  margin: 0;
}


/* 法改正一覧テーブルの横スクロール対応（サイドバーあり最適化版） */
.legal-update-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 2em;
}

.legal-update-table {
  width: 100%;
  min-width: 750px; /* PCサイドバーありの幅に収まるサイズに変更 */
  border-collapse: collapse;
}

/* セルの余白と枠線の調整 */
.legal-update-table th,
.legal-update-table td {
  padding: 10px 12px; /* PCで横幅に収まるよう余白を少し縮小 */
  border: 1px solid #ddd;
  font-size: 0.95em; /* 文字を少しだけ小さくしてスッキリ見せる */
}

.legal-update-table th {
  background-color: #f7f7f7;
  font-weight: bold;
}














/* 施行・適用年度リンク */
.legal-year-links {
  margin-top: 24px;
  padding: 20px;
  background: #f7f7f7;
  border-radius: 8px;
}

.legal-year-links__title {
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid #ddd;
  font-size: 1.1em;
}

.legal-year-links__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.legal-year-links__item {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #ddd;
}

.legal-year-links__item:last-child {
  border-bottom: none;
}

.legal-year-links__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 11px 4px;
  color: #333;
  text-decoration: none;
}

.legal-year-links__link:hover {
  color: #112a46;
  text-decoration: underline;
}

.legal-year-links__link.is-current {
  color: #112a46;
  font-weight: 700;
}

.legal-year-links__count {
  min-width: 28px;
  padding: 2px 7px;
  border-radius: 12px;
  background: #e5e7eb;
  font-size: 0.8em;
  text-align: center;
}

.legal-year-links__link.is-current .legal-year-links__count {
  background: #112a46;
  color: #fff;
}









/* ==================================================
   オウンドメディアRSS・無限横スクロール
================================================== */

.owned-rss-marquee {
  width: 100%;
  overflow: hidden;
  padding: 8px 0 28px;
}

/*
 * 左から右へ移動
 */
.owned-rss-marquee__track {
  display: flex;
  width: max-content;
  animation: owned-rss-scroll-right var(--owned-rss-speed, 45s) linear infinite;
  will-change: transform;
}

/* マウスを乗せたとき停止 */
.owned-rss-marquee:hover .owned-rss-marquee__track,
.owned-rss-marquee:focus-within .owned-rss-marquee__track {
  animation-play-state: paused;
}

.owned-rss-marquee__group {
  display: flex;
  flex-shrink: 0;
  gap: 20px;
  padding-right: 20px;
}

/* カード本体 */
.owned-rss-card {
  flex: 0 0 270px;
  width: 270px;
  margin: 0;
}

.owned-rss-card__link {
  display: block;
  height: 100%;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  color: #333;
  text-decoration: none;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.06);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.owned-rss-card__link:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
}

/* サムネイル */
.owned-rss-card__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #f3f4f6;
}

.owned-rss-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.owned-rss-card__link:hover .owned-rss-card__image img {
  transform: scale(1.04);
}

/* 画像がない場合 */
.owned-rss-card__no-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #f3f4f6;
  color: #9ca3af;
  font-size: 0.85em;
  letter-spacing: 0.05em;
}

/* テキスト部分 */
.owned-rss-card__body {
  padding: 10px 14px 14px;
}

.owned-rss-card__date {
  display: block;
  margin-bottom: 7px;
  color: #6b7280;
  font-size: 0.8em;
}

.owned-rss-card__title {
  margin: 0;
  color: #112a46;
  font-size: 0.88em;
  font-weight: 700;
  line-height: 1.55;

  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

/*
 * 同じ内容を2組並べているので、
 * ちょうど半分の位置から右へ移動させる
 */
@keyframes owned-rss-scroll-right {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

/* スマホ */
@media (max-width: 767px) {
  .owned-rss-marquee__group {
    gap: 14px;
    padding-right: 14px;
  }

  .owned-rss-card {
    flex-basis: 230px;
    width: 230px;
  }
}

/*
 * 動きが苦手なユーザーの設定に対応
 */
@media (prefers-reduced-motion: reduce) {
  .owned-rss-marquee {
    overflow-x: auto;
  }

  .owned-rss-marquee__track {
    animation: none;
  }

  .owned-rss-marquee__group[aria-hidden="true"] {
    display: none;
  }
}

/* RSSカード：タイトルと余白の最終調整 */
.owned-rss-marquee .owned-rss-card__body {
  padding: 10px 14px 14px !important;
}

.owned-rss-marquee .owned-rss-card__date {
  margin: 0 0 6px !important;
}

.owned-rss-marquee .owned-rss-card__title {
  margin: 0 !important;
  padding: 0 !important;
  color: #112a46;
  font-size: 15px !important;
  font-weight: 700;
  line-height: 1.5 !important;

  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
  max-height: calc(1.5em * 4);
}

/* RSSスライダーを常に自動で動かす */
.owned-rss-marquee {
  overflow: hidden !important;
}

.owned-rss-marquee__track {
  animation: owned-rss-scroll-right var(--owned-rss-speed, 45s) linear infinite !important;
}

.owned-rss-marquee__group[aria-hidden="true"] {
  display: flex !important;
}







/* ==================================================
   グローバルナビ：控えめな調整
================================================== */

@media screen and (min-width: 960px) {

  /* メニュー文字 */
  .l-header .c-gnav > li > a,
  .l-fixHeader .c-gnav > li > a {
    padding-left: 14px;
    padding-right: 14px;
    color: #333;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
  }

  /* 下線 */
  .l-header .c-gnav > li > a::after,
  .l-fixHeader .c-gnav > li > a::after {
    height: 3px;
    background: #04384c;
  }

  /* ホバー時 */
  .l-header .c-gnav > li:hover > a,
  .l-fixHeader .c-gnav > li:hover > a {
    color: #04384c;
  }

  /* 現在表示中 */
  .l-header .c-gnav > .current-menu-item > a,
  .l-header .c-gnav > .current_page_item > a,
  .l-fixHeader .c-gnav > .current-menu-item > a,
  .l-fixHeader .c-gnav > .current_page_item > a {
    color: #04384c;
    font-weight: 700;
  }


}



/* RSSスライダー：マウスを乗せたら停止 */
.owned-rss-marquee:hover .owned-rss-marquee__track,
.owned-rss-marquee:focus-within .owned-rss-marquee__track {
  animation-play-state: paused !important;
}