@layer unit {

  /* 外部 URL が効かない環境向け data URI（マスク用） */
  :root {
    --unit-arrow-long-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2062.72%209.68%22%3E%3Cpolygon%20fill%3D%22%23171717%22%20fill-rule%3D%22evenodd%22%20points%3D%2256.56%208.37%2059.15%205.77%200%205.77%200%203.91%2059.15%203.91%2056.56%201.32%2057.88%200%2062.72%204.84%2057.88%209.68%2056.56%208.37%22/%3E%3C/svg%3E");
    /* Swiper ナビ矢印（左向き・次は scaleX(-1)）viewBox 0 0 12.72 9.68 */
    --unit-swiper-arrow-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2012.72%209.68%22%3E%3Cpolygon%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20points%3D%226.16%208.37%203.57%205.77%2012.72%205.77%2012.72%203.91%203.57%203.91%206.16%201.32%204.84%200%200%204.84%204.84%209.68%206.16%208.37%22/%3E%3C/svg%3E");
  }

  /* WIZWIG Style */
  .unit-ww-content {

    ul,
    ol {
      margin-bottom: 1em;
    }

    /* .unit-list と同じ見え方（「・」＋ハンギングインデント） */
    ul {
      list-style: none;
      margin-left: 0;
      padding-left: 0;
    }

    ul li {
      font-weight: var(--font-weight-light);
      text-indent: -21px;
      padding-left: 21px;

      &::before {
        content: "・";
      }
    }

    ul li:not(:first-child) {
      margin-top: 10px;
    }

    /* .unit-orderlist と同じ見え方（カウンタ＋「1.」形式） */
    ol {
      list-style: none;
      margin-left: 0.4em;
      padding-left: 0;
      counter-reset: ol;
    }

    ol ol {
      counter-reset: ol;
    }

    ol li {
      font-weight: var(--font-weight-light);
      text-indent: -1.6em;
      padding-left: 1.6em;
      counter-increment: ol;
    }

    ol li::before {
      content: counter(ol) ".";
      display: inline-block;
      width: 1.6em;
      text-indent: 0;
    }

    ol li:not(:first-child) {
      margin-top: 10px;
    }

    p {
      font-weight: var(--font-weight-light);
      margin-top: 0;
      margin-bottom: 1em;
    }

    p:last-child {
      margin-bottom: 0;
    }

    h1 {
      font-size: 3.5rem;
      margin-top: 0;
      margin-bottom: 0.3em
    }


    h2 {
      font-size: 3rem;
      margin-top: 0;
      margin-bottom: 0.3em
    }

    h3 {
      font-size: 2.4rem;
      margin-top: 0;
      margin-bottom: 0.5em
    }

    h5 {
      font-size: 1.6rem;
      margin-top: 0;
      margin-bottom: 0.5em
    }

    /* 本文リンクの基本色（アニメーションは base.css 側でサイト共通適用） */
    a {
      color: var(--color-link);
    }

    a:visited {
      color: var(--color-link-visited);
    }

    a:hover {
      color: var(--color-link-hover);
    }

    a:focus-visible {
      outline: 2px solid var(--color-link-focus);
      outline-offset: 2px;
    }

    /* ファイル拡張子リンクにアイコン（::after・.unit-icon と同じ SVG） */
    a[href*=".pdf" i]::after,
    a[href*=".xlsx" i]::after,
    a[href*=".docx" i]::after {
      content: "";
      display: inline-block;
      width: 24px;
      aspect-ratio: 1/1;
      margin-left: 0.35em;
      vertical-align: middle;
      background: no-repeat center/contain;
      flex-shrink: 0;
    }

    a[href*=".pdf" i]::after {
      background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='24' height='30.55' viewBox='0 0 24 30.55'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D.cls-2%7Bfill:%23c60932;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cg%3E%3Cpolygon class='cls-1' points='7 .53 .54 7 .54 30.02 23.47 30.02 23.47 .53 7 .53'/%3E%3Cpath class='cls-2' d='M23.46,0H7s-.05.01-.07.01c-.02,0-.05,0-.07.01-.09.02-.17.06-.24.13,0,0,0,0,0,0l-3.23,3.23L.16,6.62c-.07.07-.11.15-.13.24,0,.02,0,.04-.01.06,0,.02-.01.05-.01.07v23.02c0,.3.24.54.54.54h22.93c.3,0,.54-.24.54-.54V.54c0-.3-.24-.54-.54-.54ZM22.93,29.48H1.07V7.53h5.93c.3,0,.54-.24.54-.54V1.07h15.4v28.41Z'/%3E%3C/g%3E%3Cg%3E%3Cpath class='cls-2' d='M6.03,13.33h-2.63c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h1.7c.06,0,.11-.05.11-.11v-2.84h.81c1.75,0,2.79-1.07,2.79-2.87s-1.02-2.81-2.79-2.81ZM6.89,16.13c0,.86-.32,1.2-1.15,1.2h-.52v-2.33h.52c.81,0,1.15.34,1.15,1.13Z'/%3E%3Cpath class='cls-2' d='M12.21,13.33h-2.61c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h2.61c2.38,0,2.88-2.05,2.88-3.77v-1.1c0-2.5-.97-3.77-2.88-3.77ZM13.15,18.19c0,1.54-.25,2.09-.94,2.09h-.79v-5.27h.79c.71,0,.94.53.94,2.09v1.1Z'/%3E%3Cpath class='cls-2' d='M20.6,13.33h-4.43c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h1.7c.06,0,.11-.05.11-.11v-3.32h2.31c.06,0,.11-.05.11-.11v-1.44c0-.06-.05-.11-.11-.11h-2.31v-1.87h2.61c.06,0,.11-.05.11-.11v-1.44c0-.06-.05-.11-.11-.11Z'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }

    a[href*=".xlsx" i]::after {
      background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='24' height='30.55' viewBox='0 0 24 30.55'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D.cls-2%7Bfill:%23085b22;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cpolygon class='cls-1' points='7 .54 .54 7 .54 30.02 23.47 30.02 23.47 .54 7 .54'/%3E%3Cpath class='cls-2' d='M23.46,0H7s-.05.01-.07.01c-.02,0-.04,0-.06.01-.09.02-.18.06-.24.13,0,0,0,0,0,0l-3.23,3.23L.16,6.62c-.07.07-.11.15-.13.24,0,.02,0,.04-.01.06,0,.02-.01.05-.01.07v23.02c0,.3.24.54.54.54h22.93c.3,0,.54-.24.54-.54V.54c0-.3-.24-.54-.54-.54ZM22.93,29.48H1.07V7.53h5.93c.3,0,.54-.24.54-.54V1.07h15.4v28.41Z'/%3E%3Cpath class='cls-2' d='M13.98,17.69l2.98-5.93s0-.04,0-.06c-.01-.02-.03-.03-.06-.03h-3.2s-.05.01-.06.04l-1.65,3.48-1.65-3.48s-.03-.04-.06-.04h-3.2s-.04.01-.06.03c-.01.02-.01.04,0,.06l2.97,5.93-3.34,6.33s0,.04,0,.06c.01.02.03.03.06.03h3.2s.05-.01.06-.03l2.03-3.77,2.03,3.77s.03.03.06.03h3.2s.04-.01.06-.03c.01-.02.01-.04,0-.06l-3.36-6.33Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }

    a[href*=".docx" i]::after {
      background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='22' height='28.01' viewBox='0 0 22 28.01'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23082c7c;%7D.cls-2%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cpolygon class='cls-2' points='6.41 .49 .49 6.41 .49 27.51 21.51 27.51 21.51 .49 6.41 .49'/%3E%3Cpath class='cls-1' d='M21.51,0H6.41s-.04,0-.06.01c-.02,0-.04,0-.06.01-.08.02-.16.06-.22.12L.14,6.07c-.06.06-.1.14-.12.22,0,.02,0,.04-.01.06,0,.02-.01.04-.01.06v21.1c0,.27.22.49.49.49h21.02c.27,0,.49-.22.49-.49V.49c0-.27-.22-.49-.49-.49ZM21.02,27.02H.98V6.9h5.43c.27,0,.49-.22.49-.49V.98h14.11v26.04Z'/%3E%3Cpath class='cls-1' d='M16.93,11.42s-.04-.03-.07-.03h-2.34s-.08.03-.09.08l-.87,6.12-1.45-6.13s-.05-.07-.09-.07h-2.05s-.08.03-.09.07l-1.45,6.13-.87-6.12s-.04-.08-.09-.08h-2.34s-.05.01-.07.03c-.02.02-.02.05-.02.08l1.99,10.56s.05.07.09.07h2.04s.08-.03.09-.07l1.75-6.63,1.75,6.63s.05.07.09.07h2.04s.08-.03.09-.07l1.99-10.56s0-.05-.02-.08Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }
  }

  /* .unit-block 内の table th/td 内のリンクにもアイコンを反映 */
  .unit-block table th a[href*=".pdf" i]::after,
  .unit-block table th a[href*=".xlsx" i]::after,
  .unit-block table th a[href*=".docx" i]::after,
  .unit-block table td a[href*=".pdf" i]::after,
  .unit-block table td a[href*=".xlsx" i]::after,
  .unit-block table td a[href*=".docx" i]::after {
    content: "";
    display: inline-block;
    width: 24px;
    aspect-ratio: 1/1;
    margin-left: 0.35em;
    vertical-align: middle;
    background: no-repeat center/contain;
    flex-shrink: 0;
  }

  .unit-block table th a[href*=".pdf" i]::after,
  .unit-block table td a[href*=".pdf" i]::after {
    background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='24' height='30.55' viewBox='0 0 24 30.55'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D.cls-2%7Bfill:%23c60932;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cg%3E%3Cpolygon class='cls-1' points='7 .53 .54 7 .54 30.02 23.47 30.02 23.47 .53 7 .53'/%3E%3Cpath class='cls-2' d='M23.46,0H7s-.05.01-.07.01c-.02,0-.05,0-.07.01-.09.02-.17.06-.24.13,0,0,0,0,0,0l-3.23,3.23L.16,6.62c-.07.07-.11.15-.13.24,0,.02,0,.04-.01.06,0,.02-.01.05-.01.07v23.02c0,.3.24.54.54.54h22.93c.3,0,.54-.24.54-.54V.54c0-.3-.24-.54-.54-.54ZM22.93,29.48H1.07V7.53h5.93c.3,0,.54-.24.54-.54V1.07h15.4v28.41Z'/%3E%3C/g%3E%3Cg%3E%3Cpath class='cls-2' d='M6.03,13.33h-2.63c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h1.7c.06,0,.11-.05.11-.11v-2.84h.81c1.75,0,2.79-1.07,2.79-2.87s-1.02-2.81-2.79-2.81ZM6.89,16.13c0,.86-.32,1.2-1.15,1.2h-.52v-2.33h.52c.81,0,1.15.34,1.15,1.13Z'/%3E%3Cpath class='cls-2' d='M12.21,13.33h-2.61c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h2.61c2.38,0,2.88-2.05,2.88-3.77v-1.1c0-2.5-.97-3.77-2.88-3.77ZM13.15,18.19c0,1.54-.25,2.09-.94,2.09h-.79v-5.27h.79c.71,0,.94.53.94,2.09v1.1Z'/%3E%3Cpath class='cls-2' d='M20.6,13.33h-4.43c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h1.7c.06,0,.11-.05.11-.11v-3.32h2.31c.06,0,.11-.05.11-.11v-1.44c0-.06-.05-.11-.11-.11h-2.31v-1.87h2.61c.06,0,.11-.05.11-.11v-1.44c0-.06-.05-.11-.11-.11Z'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }

  .unit-block table th a[href*=".xlsx" i]::after,
  .unit-block table td a[href*=".xlsx" i]::after {
    background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='24' height='30.55' viewBox='0 0 24 30.55'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D.cls-2%7Bfill:%23085b22;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cpolygon class='cls-1' points='7 .54 .54 7 .54 30.02 23.47 30.02 23.47 .54 7 .54'/%3E%3Cpath class='cls-2' d='M23.46,0H7s-.05.01-.07.01c-.02,0-.04,0-.06.01-.09.02-.18.06-.24.13,0,0,0,0,0,0l-3.23,3.23L.16,6.62c-.07.07-.11.15-.13.24,0,.02,0,.04-.01.06,0,.02-.01.05-.01.07v23.02c0,.3.24.54.54.54h22.93c.3,0,.54-.24.54-.54V.54c0-.3-.24-.54-.54-.54ZM22.93,29.48H1.07V7.53h5.93c.3,0,.54-.24.54-.54V1.07h15.4v28.41Z'/%3E%3Cpath class='cls-2' d='M13.98,17.69l2.98-5.93s0-.04,0-.06c-.01-.02-.03-.03-.06-.03h-3.2s-.05.01-.06.04l-1.65,3.48-1.65-3.48s-.03-.04-.06-.04h-3.2s-.04.01-.06.03c-.01.02-.01.04,0,.06l2.97,5.93-3.34,6.33s0,.04,0,.06c.01.02.03.03.06.03h3.2s.05-.01.06-.03l2.03-3.77,2.03,3.77s.03.03.06.03h3.2s.04-.01.06-.03c.01-.02.01-.04,0-.06l-3.36-6.33Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }

  .unit-block table th a[href*=".docx" i]::after,
  .unit-block table td a[href*=".docx" i]::after {
    background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='22' height='28.01' viewBox='0 0 22 28.01'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23082c7c;%7D.cls-2%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cpolygon class='cls-2' points='6.41 .49 .49 6.41 .49 27.51 21.51 27.51 21.51 .49 6.41 .49'/%3E%3Cpath class='cls-1' d='M21.51,0H6.41s-.04,0-.06.01c-.02,0-.04,0-.06.01-.08.02-.16.06-.22.12L.14,6.07c-.06.06-.1.14-.12.22,0,.02,0,.04-.01.06,0,.02-.01.04-.01.06v21.1c0,.27.22.49.49.49h21.02c.27,0,.49-.22.49-.49V.49c0-.27-.22-.49-.49-.49ZM21.02,27.02H.98V6.9h5.43c.27,0,.49-.22.49-.49V.98h14.11v26.04Z'/%3E%3Cpath class='cls-1' d='M16.93,11.42s-.04-.03-.07-.03h-2.34s-.08.03-.09.08l-.87,6.12-1.45-6.13s-.05-.07-.09-.07h-2.05s-.08.03-.09.07l-1.45,6.13-.87-6.12s-.04-.08-.09-.08h-2.34s-.05.01-.07.03c-.02.02-.02.05-.02.08l1.99,10.56s.05.07.09.07h2.04s.08-.03.09-.07l1.75-6.63,1.75,6.63s.05.07.09.07h2.04s.08-.03.09-.07l1.99-10.56s0-.05-.02-.08Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }

/* WYSIWYG ラッパー（.unit-imgtxt の v-* と同系） */
.unit-ww-box {
  box-sizing: border-box;

  &.v-border {
    border: 1px solid #ccc;
    padding: 32px;
  }

  &.v-yellow {
    background: #fffff3;
    padding: 32px;
  }

  &.v-gray {
    background: #f6f6f8;
    padding: 32px;
  }

  &.v-grid2 .unit-txt__wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 5%;
    row-gap: 28px;
  }
}

@media screen and (max-width: 768px) {
  .unit-ww-box {
    &.v-border,
    &.v-yellow,
    &.v-gray {
      padding: 18px;
    }

    &.v-grid2 .unit-txt__wrap {
      grid-template-columns: 1fr;
    }
  }
}

/* ページヘッダー */
.unit-pagehead {
  background: #eee;
  padding: 10vh 0;
  font-weight: var(--font-weight-bold);
}

.unit-pagehead__subttl {
  color: var(--color-main);
  font-size: clamp(1.8rem, 3.8vw, 2.4rem);
  margin-bottom: 5px;
}

.unit-pagehead__ttl {
  font-size: clamp(2.6rem, 5.4vw, 4rem);
  line-height: 1.1;
}

/* パンくず */
.unit-breadcrumbs__list {
  font-size: 1.2rem;
  display: flex;
  flex-wrap: wrap;
  padding: 1em 0;
}

/* .unit-breadcrumbs__list a {
    color: #555;
  } */

.unit-breadcrumbs__list a:hover {
 /* text-decoration: underline;*/
  color: var(--color-link-hover) !important;
}

.unit-breadcrumbs__item:not(.is-current) a {
  color:  var(--color-link);
}

.unit-breadcrumbs__item:not(:first-child)::before {
  content: "/";
  margin: 0 5px;
}

/*記事ページタイトル*/

.unit-event-head {
  display: block;
  margin-bottom: 20px;
  margin-top: 30px;
}

.unit-event-head__date {
  line-height: 1;
  flex-shrink: 0;
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-top: 15px;
}

.unit-event-head__date .year {
  display: inline-block;
  font-size: 1.4rem;
  color: #333;
  font-weight: bold;
}

.unit-event-head__date .day {
  display: inline-block;
  font-size: 3.2rem;
  font-weight: normal;
}

.unit-event-head__date .day span {
  font-size: 1.8rem;
  margin-left: 5px;
}

.unit-event-head__title {
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 0;
  padding-bottom: 15px;
  border-bottom: 1px solid #333;
}

.unit-news-inc {
  border: 1px solid #ccc;
}

/* News Article Head（タイトル → 境界線 → 日付） */
.unit-news-head {
  margin-top: 30px;
  margin-bottom: 40px;
}

.unit-news-head__title {
  font-family: var(--font-family-base);
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.45;
  color: #252830;
  margin: 0;
  padding-bottom: 4px;
  border-bottom: 1px solid #b9c6d4;
  letter-spacing: 0.02em;
}

.unit-news-head__date {
  margin: 4px 0 0;
  ;
  line-height: 1.2;
}

.unit-news-head__date time {
  font-size: 1.4rem;
  font-weight: 500;
  color: #666;
}



 /* Responsive */
@media screen and (max-width: 768px) {


/* Event Head */
  .unit-event-head {
    display: block;
    margin-bottom: 10px;
    margin-top: 20px;
  }

  .unit-event-head__date {
    margin-top: 10px;
    margin-bottom: 0;
    display: flex;
    align-items: baseline;
    gap: 5px;
  }

  .unit-event-head__date .year {
    font-size: 1.2rem;
    margin-bottom: 0;
    display: inline-block;
  }

  .unit-event-head__date .day {
    font-size: 2.4rem;
    display: inline-block;
    vertical-align: baseline;
  }

  .unit-event-head__date .day span {
    font-size: 1.4rem;
  }

  .unit-event-head__title {
    display: block;
    font-size: 1.8rem;
    margin-left: 0;
    margin-bottom: 0;
    padding-bottom: 10px;
    border-bottom: 1px solid #333;
  }

  .unit-news-head {
    margin-top: 20px;
    margin-bottom: 30px;
  }

  .unit-news-head__title {
    font-size: 1.8rem;
    padding-bottom: 6px;
  }

  .unit-news-head__date time {
    font-size: 1.3rem;
  }

  .unit-news-head__date {
    margin-top: 6px;
  }

}

/* パーツ 全体レイアウト */
/*
.unit-block:not(:first-child) {
  margin-top: 52px;
}


*/
.unit-block{
  margin-bottom: 80px;
}
/*
[class^="unit-ttl"]+.unit-block {
  margin-bottom: 16px;
}*/

@media screen and (max-width: 480px) {
  /*
  .unit-block:not(:first-child) {
    margin-top: 48px;
  }

  [class^="unit-ttl"]+.unit-block {
    margin-top: 16px;
  }*/
  .unit-block{
    margin-bottom: 40px;
  }
/*
  [class^="unit-ttl"]+.unit-block {
    margin-bottom: 16px;
  }
*/
}

/* アイコン */
.unit-icon {
  display: inline-block;
  width: 24px;
  aspect-ratio: 1/1;
  background: no-repeat center/contain;
  flex-shrink: 0;

  &.v-pdf {
    background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='24' height='30.55' viewBox='0 0 24 30.55'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D.cls-2%7Bfill:%23c60932;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cg%3E%3Cpolygon class='cls-1' points='7 .53 .54 7 .54 30.02 23.47 30.02 23.47 .53 7 .53'/%3E%3Cpath class='cls-2' d='M23.46,0H7s-.05.01-.07.01c-.02,0-.05,0-.07.01-.09.02-.17.06-.24.13,0,0,0,0,0,0l-3.23,3.23L.16,6.62c-.07.07-.11.15-.13.24,0,.02,0,.04-.01.06,0,.02-.01.05-.01.07v23.02c0,.3.24.54.54.54h22.93c.3,0,.54-.24.54-.54V.54c0-.3-.24-.54-.54-.54ZM22.93,29.48H1.07V7.53h5.93c.3,0,.54-.24.54-.54V1.07h15.4v28.41Z'/%3E%3C/g%3E%3Cg%3E%3Cpath class='cls-2' d='M6.03,13.33h-2.63c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h1.7c.06,0,.11-.05.11-.11v-2.84h.81c1.75,0,2.79-1.07,2.79-2.87s-1.02-2.81-2.79-2.81ZM6.89,16.13c0,.86-.32,1.2-1.15,1.2h-.52v-2.33h.52c.81,0,1.15.34,1.15,1.13Z'/%3E%3Cpath class='cls-2' d='M12.21,13.33h-2.61c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h2.61c2.38,0,2.88-2.05,2.88-3.77v-1.1c0-2.5-.97-3.77-2.88-3.77ZM13.15,18.19c0,1.54-.25,2.09-.94,2.09h-.79v-5.27h.79c.71,0,.94.53.94,2.09v1.1Z'/%3E%3Cpath class='cls-2' d='M20.6,13.33h-4.43c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h1.7c.06,0,.11-.05.11-.11v-3.32h2.31c.06,0,.11-.05.11-.11v-1.44c0-.06-.05-.11-.11-.11h-2.31v-1.87h2.61c.06,0,.11-.05.11-.11v-1.44c0-.06-.05-.11-.11-.11Z'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }

  &.v-excel {
    background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='24' height='30.55' viewBox='0 0 24 30.55'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D.cls-2%7Bfill:%23085b22;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cpolygon class='cls-1' points='7 .54 .54 7 .54 30.02 23.47 30.02 23.47 .54 7 .54'/%3E%3Cpath class='cls-2' d='M23.46,0H7s-.05.01-.07.01c-.02,0-.04,0-.06.01-.09.02-.18.06-.24.13,0,0,0,0,0,0l-3.23,3.23L.16,6.62c-.07.07-.11.15-.13.24,0,.02,0,.04-.01.06,0,.02-.01.05-.01.07v23.02c0,.3.24.54.54.54h22.93c.3,0,.54-.24.54-.54V.54c0-.3-.24-.54-.54-.54ZM22.93,29.48H1.07V7.53h5.93c.3,0,.54-.24.54-.54V1.07h15.4v28.41Z'/%3E%3Cpath class='cls-2' d='M13.98,17.69l2.98-5.93s0-.04,0-.06c-.01-.02-.03-.03-.06-.03h-3.2s-.05.01-.06.04l-1.65,3.48-1.65-3.48s-.03-.04-.06-.04h-3.2s-.04.01-.06.03c-.01.02-.01.04,0,.06l2.97,5.93-3.34,6.33s0,.04,0,.06c.01.02.03.03.06.03h3.2s.05-.01.06-.03l2.03-3.77,2.03,3.77s.03.03.06.03h3.2s.04-.01.06-.03c.01-.02.01-.04,0-.06l-3.36-6.33Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }

  /* リンク（外部サイトと同じ SVG） */
  &.v-external,
  &.v-link {
    width: 18px;
    background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='20.83' height='21.12' viewBox='0 0 20.83 21.12'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%236f0689;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cpath class='cls-1' d='M19.55,11.04h-2c-.11,0-.2.09-.2.2v7.47H2.4V3.77h7.47c.11,0,.2-.09.2-.2V1.57c0-.11-.09-.2-.2-.2H.2c-.11,0-.2.09-.2.2v19.35c0,.11.09.2.2.2h19.35c.11,0,.2-.09.2-.2v-9.67c0-.11-.09-.2-.2-.2Z'/%3E%3Cpath class='cls-1' d='M20.73,0h-6.34c-.06,0-.1.04-.1.1v2c0,.06.04.1.1.1h2.68l-8.27,8.27s-.04.1,0,.14l1.41,1.41s.04.03.07.03.05,0,.07-.03L18.63,3.75v2.68c0,.06.04.1.1.1h2c.06,0,.1-.04.1-.1V.1c0-.06-.04-.1-.1-.1Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }

  &.v-word {
    background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='22' height='28.01' viewBox='0 0 22 28.01'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23082c7c;%7D.cls-2%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cpolygon class='cls-2' points='6.41 .49 .49 6.41 .49 27.51 21.51 27.51 21.51 .49 6.41 .49'/%3E%3Cpath class='cls-1' d='M21.51,0H6.41s-.04,0-.06.01c-.02,0-.04,0-.06.01-.08.02-.16.06-.22.12L.14,6.07c-.06.06-.1.14-.12.22,0,.02,0,.04-.01.06,0,.02-.01.04-.01.06v21.1c0,.27.22.49.49.49h21.02c.27,0,.49-.22.49-.49V.49c0-.27-.22-.49-.49-.49ZM21.02,27.02H.98V6.9h5.43c.27,0,.49-.22.49-.49V.98h14.11v26.04Z'/%3E%3Cpath class='cls-1' d='M16.93,11.42s-.04-.03-.07-.03h-2.34s-.08.03-.09.08l-.87,6.12-1.45-6.13s-.05-.07-.09-.07h-2.05s-.08.03-.09.07l-1.45,6.13-.87-6.12s-.04-.08-.09-.08h-2.34s-.05.01-.07.03c-.02.02-.02.05-.02.08l1.99,10.56s.05.07.09.07h2.04s.08-.03.09-.07l1.75-6.63,1.75,6.63s.05.07.09.07h2.04s.08-.03.09-.07l1.99-10.56s0-.05-.02-.08Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }



  /* 長矢印（画像付きテキスト内ボタンでは .unit-imgtxt__btn .unit-icon.v-arrow） */
  &.v-arrow {
    width: 64px;
    min-width: 64px;
    height: calc(64px * 9.68 / 62.72);
    aspect-ratio: auto;
    background: transparent;
    position: relative;
    vertical-align: middle;

    &::before {
      content: "";
      position: absolute;
      inset: 0;
      background-color: currentColor;
      -webkit-mask-image: var(--unit-arrow-long-mask);
      mask-image: var(--unit-arrow-long-mask);
      -webkit-mask-size: contain;
      mask-size: contain;
      -webkit-mask-repeat: no-repeat;
      mask-repeat: no-repeat;
      -webkit-mask-position: center;
      mask-position: center;
      pointer-events: none;
    }
  }
}

@media screen and (max-width: 480px) {
  .unit-icon {
    width: 20px;

    &.v-external,
    &.v-link {
      width: 18px;
    }

    &.v-arrow {
      width: 64px;
      min-width: 64px;
      height: calc(64px * 9.68 / 62.72);
    }
  }
}

/* v-arrow ホバーアニメーション（l-nav__arrow と同じ slideArw） */
@keyframes slideArw {
  0%    { opacity: 1; transform: translateX(0); }
  49.9% { opacity: 0; transform: translateX(10px); }
  50%   { opacity: 0; transform: translateX(-10px); }
  100%  { opacity: 1; transform: translateX(0); }
}

/* 矢印（--unit-arrow-long-mask）横幅 64px・viewBox 62.72×9.68 の比率 */
.unit-arrowbox {
  display: inline-block;
  width: 64px;
  height: calc(64px * 9.68 / 62.72);
  vertical-align: middle;
  background: var(--color-main);
  transition: 0.2s;
  position: relative;

  &::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #fff;
    -webkit-mask-image: var(--unit-arrow-long-mask);
    mask-image: var(--unit-arrow-long-mask);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    pointer-events: none;
  }
}

@media screen and (max-width: 480px) {
  .unit-arrowbox {
    width: 64px;
    height: calc(64px * 9.68 / 62.72);
  }
}

/* 見出し */
.unit-ttl {
  &.v-style1 {
    font-family: var(--font-family-mincho);
    font-weight: var(--font-weight-semibold);
    font-size: 2.8rem;
    color: var(--color-main);
    margin-bottom: 0.7em;
   /* letter-spacing: 0.05em;*/
  }

  &.v-style2 {
    font-family: var(--font-family-mincho);
    font-weight: var(--font-weight-semibold);
    font-size: 2.4rem;
    padding-bottom: 0.5em;
    padding-left: 0.5em;
    position: relative;
    margin-bottom: 30px;
  /*  letter-spacing: 0.05em;*/

    &::before {
      content: "";
      display: inline-block;
      width: 100%;
      border-bottom: 2px solid var(--color-mgray);
      position: absolute;
      left: 0;
      bottom: 0;
    }

    &::after {
      content: "";
      display: inline-block;
      width: 10%;
      border-bottom: 2px solid var(--color-main);
      position: absolute;
      left: 0;
      bottom: 0;
    }
  }

  &.v-style3 {
    font-weight: var(--font-weight-medium);
    font-size: 2.2rem;
    line-height: 1.4;
    color: var(--color-main);
    margin-bottom: 0.5em;
  }

  &.v-style4 {
    font-weight: var(--font-weight-medium);
    font-size: 2rem;
    line-height: 1.4;
    margin-bottom: 0.5em;
  }
}

@media screen and (max-width: 768px) {
  .unit-ttl.v-style1 {
    font-size: 2.2rem;
    line-height: 1.4;
  }

  .unit-ttl.v-style2 {
    font-size: 2rem;
    margin-bottom:25px;
  }

  .unit-ttl.v-style3 {
    font-size: 1.8rem;
  }

  .unit-ttl.v-style4 {
    font-size: 1.6rem;
  }
}



/* テキスト */
.unit-txt {
  &.v-center {
    text-align: center;
  }
}

/* 水平罫線 */
hr {
  border-color: #ccc;
  margin-top: 0;
  margin-bottom: 20px;
}

.unit-hr {
  border-color: #ccc;
  margin-top: 0;
  margin-bottom: 25px;
}

/* リスト用ラッパー（.unit-ww-box / .unit-imgtxt と同系の v-*） */
.unit-list-box {
  box-sizing: border-box;

  &.v-border {
    border: 1px solid #ccc;
    padding: 32px;
  }

  &.v-yellow {
    background: #fffff3;
    padding: 32px;
  }

  &.v-gray {
    background: #f6f6f8;
    padding: 32px;
  }
}

@media screen and (max-width: 768px) {
  .unit-list-box {

    &.v-border,
    &.v-yellow,
    &.v-gray {
      padding: 18px;
    }
  }
}

@media screen and (min-width: 769px) {
  .unit-list-box.v-col-medium-center {
    width: 700px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .unit-list-box.v-col-medium-left {
    width: 700px;
    max-width: 100%;
    margin-left: 0;
    margin-right: auto;
  }

  .unit-list-box.v-col-small-left {
    width: 48%;
    max-width: 100%;
    margin-left: 0;
    margin-right: auto;
  }

  .unit-list-box.v-grid2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 5%;
    row-gap: 28px;
  }

  .unit-list-box.v-grid2 > .unit-ttl {
    grid-column: 1 / -1;
    margin-bottom: 0;
  }
}

/* リスト */
.unit-list {
  list-style: none;
  margin-left: 1em;
  margin-bottom: 1em;
  padding-left: 0;
  font-weight: var(--font-weight-light);
}

.unit-list li:not(:first-child),
.unit-orderlist li:not(:first-child) {
  margin-top: 10px;
}

.unit-list li {
  text-indent: -21px;
  padding-left: 21px;

  &::before {
    content: "・";
  }
}

/* マーカーなしリスト */
.unit-list_none.unit-block {
  margin-left: 0;
  padding-left: 0;
  list-style: none;
}

.unit-list_none.unit-block li:not(:first-child) {
  margin-top: 10px;
}

.unit-orderlist {
  list-style: none;
  margin-left: 1.5em;
  margin-bottom: 1em;
  padding-left: 0;
  counter-reset: ol;

  ol {
    counter-reset: ol;
  }

  li {
    text-indent: -1.6em;
    padding-left: 1.6em;
    counter-increment: ol;
  }

  li::before {
    content: counter(ol) ".";
    display: inline-block;
    width: 1.6em;
    text-indent: 0;
  }
}

/* リストボックス内：左端を揃え（マージン無し）、li の行間・下マージンを調整 */
.unit-list-box__item .unit-list,
.unit-list-box__item .unit-orderlist {
  margin-left: 0;
}

.unit-list-box__item .unit-list li,
.unit-list-box__item .unit-orderlist li {
  line-height: 1.6;
  margin-top: 0;
  margin-bottom: 0.8em;
}

.unit-list li > strong:first-child,
.unit-orderlist li > strong:first-child,
.unit-ww-content li > strong:first-child {
  line-height: 2.4;
  font-weight: var(--font-weight-medium);
}

@media screen and (max-width: 480px) {

  .unit-list li,
  .unit-orderlist li {
    text-indent: -19px;
    padding-left: 19px;
  }

  .unit-orderlist li {
    text-indent: -1.6em;
    padding-left: 1.6em;
  }

  .unit-ww-content ul li {
    text-indent: -19px;
    padding-left: 19px;
  }

  .unit-ww-content ol li {
    text-indent: -1.6em;
    padding-left: 1.6em;
  }
}

/* 連番リスト */
.unit-serialnum__ttl {
  color: var(--color-main);
  font-size: clamp(1.8rem, 3.8vw, 2.4rem);
  border-bottom: 2px solid var(--color-main);
  padding-bottom: 6px;
}

.unit-serialnum__subttl {
  font-size: clamp(1.6rem, 3vw, 2rem);
  font-weight: var(--font-weight-bold);
  margin-top: 0.8em;
}

.unit-serialnum__circle {
  margin-top: 1em;
  counter-reset: circle;

  li {
    counter-increment: circle;
    padding-left: 26px;
    text-indent: -26px;
  }

  li:not(:first-child) {
    margin-top: 10px;
  }

  li::before {
    content: counter(circle);
    font-size: 1.2rem;
    text-indent: 0;
    display: inline-block;
    width: 16px;
    line-height: 16px;
    box-shadow: 0 0 0 1px var(--color-text);
    border-radius: 50%;
    text-align: center;
    margin-right: 10px;
  }
}

@media screen and (max-width: 480px) {
  .unit-serialnum__circle {
    li {
      padding-left: 21px;
      text-indent: -21px;
    }

    li::before {
      width: 14px;
      line-height: 14px;
      margin-right: 8px;
    }
  }
}

/* 注釈 */
.unit-annotation {
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  margin-top: 1em !important;
}

.unit-annotation li {
  padding-left: 20px;
  text-indent: -20px;
}

.unit-annotation li::before {
  content: "※";
}

.unit-annotation li:not(:first-child) {
  margin-top: 8px;
}

/* リスト・注釈内リンク（.unit-txtlinklist と同じメイン色・ホバー） */
.unit-list a,
.unit-orderlist a,
.unit-annotation a {
  color: var(--color-main);
  text-decoration: none;

  &:hover {
    opacity: 0.7;
   /* text-decoration: underline;*/
  }
}

/* リスト・注釈内：本文末尾と unit-icon の間隔 */
.unit-list a .unit-icon,
.unit-orderlist a .unit-icon,
.unit-annotation a .unit-icon {
  margin-left: 0.35em;
  vertical-align: middle;
}

/* ニュース */
.unit-newslist__link {
  display: grid;
  grid-template-columns: 100px auto;
  row-gap: 5px;
  padding: 0.7em 0;

  &:hover {
    color: var(--color-main);
  }
}

.unit-newslist__ttl {
  font-weight: var(--font-weight-normal);
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
}

@media screen and (max-width: 480px) {
  .unit-newslist__link {
    grid-template-columns: 1fr;
  }
}

/* 学科ページ ニュース一覧 */
.unit-thumbnews__link {
  display: grid;
  grid-template-columns: 30% auto;
  gap: 28px;
}

.unit-thumbnews__thumb {
  aspect-ratio: 3/2;
  background: #ccc;
}

.unit-thumbnews__summary {
  display: flex;
  flex-direction: column;
}

.unit-thumbnews__ttl {
  font-size: 21px;
}

.unit-thumbnews__date {
  margin-top: 8px;
}

.unit-thumbnews__tax {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.unit-thumbnews__tax span {
  display: inline-block;
  color: #fff;
  font-size: 14px;
  line-height: 1;
  background: var(--color-bungaku);
  padding: 5px 7px 7px 7px;
}

/* タブ */
.unit-tab {
  display: flex;
  user-select: none;
  border-bottom: 1px solid #cecece;
  overflow-x: auto; /* 横スクロールを許可してはみ出しを防止 */
  -webkit-overflow-scrolling: touch;

  li {
    flex: 1;
    min-width: 140px;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.1em;
    text-align: center;
    padding: 1em;
    cursor: pointer;

    &.is-current,
    &:hover {
      color: #fff;
      background: var(--color-main);
    }

    &:not(:first-child) {
      border-left: 1px solid #fff;
    }
  }

  .scroll-hint-icon {
    top: 0 !important;
    width: 40px !important;
    height: 40px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
  }

  .scroll-hint-icon::before {
    position: absolute;
    top: 6px;
    left: 50%;
    transform: translateX(-50%);
    width: 25px !important;
    height: 25px !important;
  }

  .scroll-hint-icon::after {
    display: none !important;
  }

  .scroll-hint-text {
    display: none;
  }
}

@media screen and (max-width: 480px) {
  .unit-tab {
    li {
      padding: 0.8em;
    }
  }
}


/* News Tabs */
.unit-news-tabs {
  display: flex;
  justify-content: flex-start;
  gap: 10px;
  margin-bottom: 40px;
  border-bottom: none;
  list-style: none;
  padding: 0;
}

.unit-news-tab {
  width: 120px;
  text-align: center;
  position: relative;
}

.unit-news-tab a {
  text-decoration: none;
  color: #333;
  font-size: 1.8rem;
  font-weight: normal;
  display: block;
  padding: 0 0 10px;
  /* aタグにパディングを移動 */
  transition: color 0.3s;
  position: relative;
}

.unit-news-tab a::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 50%;
  width: 0;
  height: 4px;
  background: var(--color-main);
  transition: all 0.3s ease;
  opacity: 0;
}

.unit-news-tab a:hover::after {
  width: 100%;
  left: 0;
  opacity: 0.5;
  /* 非active時は少し薄く */
}

.unit-news-tab.active a::after {
  width: 100%;
  left: 0;
  opacity: 1;
}

.unit-news-tab a:hover {
  color: #4cb0ed;
  /* 非active時は少し薄い青 */
}

.unit-news-tab.active a:hover {
  color: #333;
  /* active時は色を変えない */
}

.unit-news-tab.active a {
  color: #333;
}

/* Responsive */
@media screen and (max-width: 768px) {

   .unit-news-tabs {
    width: 100%;
    gap: 0;
    margin-bottom: 30px;
    justify-content: space-between;
    padding: 0;
  }

  .unit-news-tab {
    width: auto;
    flex: 1;
  }

  .unit-news-tab a {
    font-size: 1.4rem;
  }


}


/* TOP News List */
.unit-top-news-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  /* 1カラムに変更 */
  gap: 0;
}

.unit-top-news-item {
  border-bottom: 1px solid #ddd;
}

.unit-top-news-link {
  display: flex;
  /* 横並びに変更 */
  align-items: center;
  /* 縦中央揃え */
  gap: 15px;
  /* 隙間を調整 */
  padding: 15px 0;
}

.unit-top-news-link time {
  display: block;
  font-size: 1.4rem;
  font-family: "Jost", sans-serif;
  color: #666;
  flex-shrink: 0;
  margin-bottom: 0;
  /* マージンをゼロに */
}

.unit-top-news-sep {
  color: #008ee5;
  font-size: 1.4rem;
  flex-shrink: 0;
}

.unit-top-news-category {
  font-size: 1.4rem;
  color: #333;
  flex-shrink: 0;
  min-width: 4.5em;
  text-align: center;
}

.unit-top-news-ttl {
  flex: 1;
  font-size: 1.6rem;
  font-weight: normal;
  /* 太さを普通に変更 */
  line-height: 1.5;
  margin-bottom: 0;
  /* マージンをゼロに */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  /* PC版では1行で省略表示 */
}

.unit-top-news-ttl a {
  text-decoration: none;
  color: #333;
  transition: opacity 0.3s;
}

.unit-top-news-ttl a:hover {
  opacity: 0.7;
}

.unit-top-news-ttl a[href*=".pdf" i]::after,
.unit-top-news-ttl a[href*=".xlsx" i]::after,
.unit-top-news-ttl a[href*=".docx" i]::after {
  content: "";
  display: inline-block;
  width: 24px;
  aspect-ratio: 1/1;
  margin-left: 0.5em;
  /* テキストのすぐ右に配置 */
  background: no-repeat center/contain;
  vertical-align: middle;
  flex-shrink: 0;
}

.unit-top-news-ttl a[href*=".pdf" i]::after {
  background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='24' height='30.55' viewBox='0 0 24 30.55'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D.cls-2%7Bfill:%23c60932;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cg%3E%3Cpolygon class='cls-1' points='7 .53 .54 7 .54 30.02 23.47 30.02 23.47 .53 7 .53'/%3E%3Cpath class='cls-2' d='M23.46,0H7s-.05.01-.07.01c-.02,0-.05,0-.07.01-.09.02-.17.06-.24.13,0,0,0,0,0,0l-3.23,3.23L.16,6.62c-.07.07-.11.15-.13.24,0,.02,0,.04-.01.06,0,.02-.01.05-.01.07v23.02c0,.3.24.54.54.54h22.93c.3,0,.54-.24.54-.54V.54c0-.3-.24-.54-.54-.54ZM22.93,29.48H1.07V7.53h5.93c.3,0,.54-.24.54-.54V1.07h15.4v28.41Z'/%3E%3C/g%3E%3Cg%3E%3Cpath class='cls-2' d='M6.03,13.33h-2.63c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h1.7c.06,0,.11-.05.11-.11v-2.84h.81c1.75,0,2.79-1.07,2.79-2.87s-1.02-2.81-2.79-2.81ZM6.89,16.13c0,.86-.32,1.2-1.15,1.2h-.52v-2.33h.52c.81,0,1.15.34,1.15,1.13Z'/%3E%3Cpath class='cls-2' d='M12.21,13.33h-2.61c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h2.61c2.38,0,2.88-2.05,2.88-3.77v-1.1c0-2.5-.97-3.77-2.88-3.77ZM13.15,18.19c0,1.54-.25,2.09-.94,2.09h-.79v-5.27h.79c.71,0,.94.53.94,2.09v1.1Z'/%3E%3Cpath class='cls-2' d='M20.6,13.33h-4.43c-.06,0-.11.05-.11.11v8.4c0,.06.05.11.11.11h1.7c.06,0,.11-.05.11-.11v-3.32h2.31c.06,0,.11-.05.11-.11v-1.44c0-.06-.05-.11-.11-.11h-2.31v-1.87h2.61c.06,0,.11-.05.11-.11v-1.44c0-.06-.05-.11-.11-.11Z'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.unit-top-news-ttl a[href*=".xlsx" i]::after {
  background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='24' height='30.55' viewBox='0 0 24 30.55'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D.cls-2%7Bfill:%23085b22;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cpolygon class='cls-1' points='7 .54 .54 7 .54 30.02 23.47 30.02 23.47 .54 7 .54'/%3E%3Cpath class='cls-2' d='M23.46,0H7s-.05.01-.07.01c-.02,0-.04,0-.06.01-.09.02-.18.06-.24.13,0,0,0,0,0,0l-3.23,3.23L.16,6.62c-.07.07-.11.15-.13.24,0,.02,0,.04-.01.06,0,.02-.01.05-.01.07v23.02c0,.3.24.54.54.54h22.93c.3,0,.54-.24.54-.54V.54c0-.3-.24-.54-.54-.54ZM22.93,29.48H1.07V7.53h5.93c.3,0,.54-.24.54-.54V1.07h15.4v28.41Z'/%3E%3Cpath class='cls-2' d='M13.98,17.69l2.98-5.93s0-.04,0-.06c-.01-.02-.03-.03-.06-.03h-3.2s-.05.01-.06.04l-1.65,3.48-1.65-3.48s-.03-.04-.06-.04h-3.2s-.04.01-.06.03c-.01.02-.01.04,0,.06l2.97,5.93-3.34,6.33s0,.04,0,.06c.01.02.03.03.06.03h3.2s.05-.01.06-.03l2.03-3.77,2.03,3.77s.03.03.06.03h3.2s.04-.01.06-.03c.01-.02.01-.04,0-.06l-3.36-6.33Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.unit-top-news-ttl a[href*=".docx" i]::after {
  background-image: url("data:image/svg+xml,%3Csvg id='_レイヤー_2' data-name='レイヤー 2' xmlns='http://www.w3.org/2000/svg' width='22' height='28.01' viewBox='0 0 22 28.01'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23082c7c;%7D.cls-2%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cg id='_コンテンツ' data-name='コンテンツ'%3E%3Cg%3E%3Cpolygon class='cls-2' points='6.41 .49 .49 6.41 .49 27.51 21.51 27.51 21.51 .49 6.41 .49'/%3E%3Cpath class='cls-1' d='M21.51,0H6.41s-.04,0-.06.01c-.02,0-.04,0-.06.01-.08.02-.16.06-.22.12L.14,6.07c-.06.06-.1.14-.12.22,0,.02,0,.04-.01.06,0,.02-.01.04-.01.06v21.1c0,.27.22.49.49.49h21.02c.27,0,.49-.22.49-.49V.49c0-.27-.22-.49-.49-.49ZM21.02,27.02H.98V6.9h5.43c.27,0,.49-.22.49-.49V.98h14.11v26.04Z'/%3E%3Cpath class='cls-1' d='M16.93,11.42s-.04-.03-.07-.03h-2.34s-.08.03-.09.08l-.87,6.12-1.45-6.13s-.05-.07-.09-.07h-2.05s-.08.03-.09.07l-1.45,6.13-.87-6.12s-.04-.08-.09-.08h-2.34s-.05.01-.07.03c-.02.02-.02.05-.02.08l1.99,10.56s.05.07.09.07h2.04s.08-.03.09-.07l1.75-6.63,1.75,6.63s.05.07.09.07h2.04s.08-.03.09-.07l1.99-10.56s0-.05-.02-.08Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}


/* Responsive */
@media screen and (max-width: 768px) {
.p-top-news-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .p-top-news-link {
    gap: 10px;
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .p-top-news-sep {
    font-size: 1.2rem;
    margin-top: 2px;
  }

  .p-top-news-category {
    font-size: 1.2rem;
    min-width: 4em;
    margin-top: 2px;
  }

  .p-top-news-link time {
    font-size: 1.2rem;
    margin-bottom: 0;
  }

  .p-top-news-ttl {
    width: 100%;
    flex: none;
    font-size: 1.4rem;
    white-space: normal;
    /* SP版は複数行表示 */
    margin-top: -5px;
  }

  .p-top-news-ttl a[href*=".pdf" i]::after,
  .p-top-news-ttl a[href*=".xlsx" i]::after,
  .p-top-news-ttl a[href*=".docx" i]::after {
    width: 20px;
    /* SP版では少し小さく */
  }
}

/* ステップ */
.unit-step {
  counter-reset: step;
}

.unit-step__item {
  border: 1px solid var(--color-main);
  padding: 28px;
  counter-increment: step;
  position: relative;
  list-style: none;
  margin-left: 0;

  &:not(:first-child) {
    margin-top: 52px;
  }

  &:not(:first-child)::before {
    content: "";
    display: inline-block;
    border-top: 20px solid #eee;
    border-right: 40px solid transparent;
    border-left: 40px solid transparent;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -33px);
  }
}

.unit-step__ttl {
  color: var(--color-main);
  font-size: 1.7rem;
  display: flex;
  align-items: center;
  gap: 20px;

  &::before {
    content: "STEP " counter(step);
    color: #fff;
    background: var(--color-main);
    display: inline-block;
    padding: 3px 12px 6px 12px;
    flex-shrink: 0;
    font-family: var(--font-family-oswald);
    font-weight: var(--font-weight-normal);
    font-size: 1.9rem;
  }
}

.unit-step__subttl {
  color: var(--color-main);
  font-size: clamp(1.8rem, 3.8vw, 2.4rem);
  margin-top: 25px;
  padding-top: 20px;
  border-top: 1px solid #cecece;
}

.unit-step__txt {
  line-height: 1.45;
  margin-top: 14px;

  p+p {
    margin-top: 1em;
  }
}

.unit-step__inner {
  display: flex;
  gap: 20px;
}

.unit-step__img {
  width: 200px;
  flex-shrink: 0;

  img {
    aspect-ratio: 3/2;
    object-fit: cover;
    width: 100%;
    height: auto;
    vertical-align: bottom;
  }

  /* cover によるトリミングを外し、画像全体を表示 */
  &.v-trim-contain img {
    aspect-ratio: auto;
    object-fit: contain;
  }
}

@media screen and (max-width: 768px) {
  .unit-step__item {
    padding: 20px;
  }

  .unit-step__ttl {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    font-size: 1.6rem;

    &::before {
      transform: translateY(0);
      font-size: 1.7rem;
    }
  }

  .unit-step__inner {
    flex-direction: column;
  }

  .unit-step__img {
    width: 100%;
  }
}

/* 画像付きコンテンツ（カード） */
.unit-card {
  display: grid;
  column-gap: 40px;
  row-gap: 20px;

  .unit-ttl--type2 {
    font-size: clamp(1.8rem, 3.2vw, 2rem);
  }

  &.v-col2 {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  }

  &.v-col3 {
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));

    .unit-card__img img {
      aspect-ratio: 1/1;
    }
  }

  &.v-border .unit-card__item {
    border-color: #cecece;
    padding: 20px;
  }

  &.v-gray .unit-card__item {
    background: #f6f6f8;
    padding: 20px;
  }

  &.v-row .unit-card__item {
    grid-template-rows: none;
    grid-template-columns: 40% auto;
    gap: 24px;

    .unit-card__img img {
      aspect-ratio: 1/1;
    }
  }

  .unit-ttl.v-style2 {
    font-size: 2rem;
  }
}

.unit-card__item {
  border: 1px solid transparent;
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 12px;
  position: relative;
}

.unit-card__item:has(.unit-card__viewmore) {
  &:hover {
    opacity: 0.7;
  }
}

.unit-card__img {
  flex-shrink: 0;

  img {
    height: 100%;
    aspect-ratio: 3/2;
    object-fit: cover;
  }
}

.unit-card__content {
  display: flex;
  flex-direction: column;
  /* gap: 12px;*/
}

.unit-card__viewmore {
  align-self: flex-end;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  box-sizing: border-box;
  width: fit-content;
  max-width: min(350px, 100%);
  min-height: 48px;
  margin-top: auto;
  padding: 0 22px 0 26px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 9999px;
  color: #111;
  font-family: var(--font-family-oswald);
  font-size: 2.1rem;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;

  &:hover {
    color: #111;
    border-color: #ccc;
    opacity: 0.92;
  }

  &::after {
    content: "";
    display: block;
    position: absolute;
    inset: 0;
    z-index: 1;
  }

  .unit-link__in {
    flex: 0 1 auto;
    min-width: 0;
  }

  .unit-arrowbox {
    flex-shrink: 0;
    margin-left: 0;
    transform: none;
    background: transparent;
    width: 56px;
    min-width: 56px;
    height: calc(56px * 9.68 / 62.72);

    &::before {
      background-color: currentColor;
    }
  }
}

@media screen and (max-width: 768px) {

  .unit-card {
    display: grid;
    column-gap: 36px;
    row-gap: 13px;
  }

    &.has-border {
      padding: 18px;
    }

    &.is-row {
      grid-template-columns: 1fr;
      gap: 18px;

      .unit-card__img img {
        aspect-ratio: 3/2;
      }
    }
  }

  .unit-card {
    &.v-col3 .unit-card__img img {
      aspect-ratio: 3/2;
    }
  }
}

/* 画像付きコンテンツ（横並び） */
.unit-imgtxt {
  &.v-reverse .unit-imgtxt__flex {
    flex-direction: row-reverse;
  }

  &.v-border {
    border: 1px solid #ccc;
    padding: 32px;
  }

  &.v-yellow {
    background: #fffff3;
    padding: 32px;
  }

  &.v-gray {
    background: #f6f6f8;
    padding: 32px;
  }
}

.unit-imgtxt__flex {
  display: flex;
  justify-content: space-between;
  padding-top: 10px;
 /* row-gap: 16px;
  margin-top: 16px;*/
}

.unit-imgtxt__img {
  width: 48%;

  img {
    aspect-ratio: 3/2;
    object-fit: cover;
  }
}

/* キャプション（画像系で共通利用） */
.unit-caption {
  margin-top: 8px;
  font-size: 1.3rem;
  line-height: 1.6;
  color: #666;
}

.v-trim-contain {
  .unit-imgtxt__img {

    img {
      aspect-ratio: auto;
      object-fit: contain;
    }
  }

}

.v-trim-contain {
  .unit-card__img {

    img {
      aspect-ratio: auto;
      object-fit: contain;
    }
  }

}

.unit-imgtxt__content {
  width: 48%;
}

.v-size-min {
  .unit-imgtxt__img {
    width: 33%;
  }

  .unit-imgtxt__content {
    width: 63%;
  }
}

.v-size-xmin {
  .unit-imgtxt__img {
    width: 25%;
  }

  .unit-imgtxt__content {
    width: 70%;
  }
}

.v-size-large {
  .unit-imgtxt__img {
    width: 60%;
  }

  .unit-imgtxt__content {
    width: 56%;
  }
}

.v-noimage-true{
  .unit-imgtxt__content {
    width: 100%;
  }

}


.unit-imgtxt__content .unit-imgtxt__btn,
.unit-step__item .unit-imgtxt__btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
  margin-top: 15px;
}

.unit-imgtxt__content .unit-imgtxt__btn:first-of-type,
.unit-step__item .unit-imgtxt__btn:first-of-type {
  margin-top: 32px;
}

/* 画像付きテキスト内リンクボタン（ピル型・白背景・右は unit-icon v-arrow / v-link / v-pdf 等・短文時は幅フィット） */
.unit-imgtxt__content .unit-imgtxt__btn .unit-link,
.unit-step__item .unit-imgtxt__btn .unit-link {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  width: fit-content;
  max-width: min(350px, 100%);
  box-sizing: border-box;
  padding: 18px 22px 18px 26px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 9999px;
  color: var(--color-text);
  font-size: 1.5rem;
  font-weight: normal;
  line-height: 1.5;
  text-decoration: none;

  .unit-link__in {
    flex: 0 1 auto;
    min-width: 0;
  }

  &:hover {
    color: #111;
    border-color: #ccc;
    opacity: 0.92;
  }
}

.unit-imgtxt__content .unit-imgtxt__btn .unit-link .unit-icon,
.unit-step__item .unit-imgtxt__btn .unit-link .unit-icon {
  display: block;
  flex-shrink: 0;
  align-self: center;
  transition: transform 0.2s;
}

/* 従来の unit-arrowbox も互換のため維持 */
.unit-imgtxt__content .unit-imgtxt__btn .unit-arrowbox,
.unit-step__item .unit-imgtxt__btn .unit-arrowbox {
  display: block;
  flex-shrink: 0;
  align-self: center;
  width: 64px;
  min-width: 64px;
  height: calc(64px * 9.68 / 62.72);
  background: transparent;
  position: relative;
  transition: transform 0.2s;

  &::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: currentColor;
    -webkit-mask-image: var(--unit-arrow-long-mask);
    mask-image: var(--unit-arrow-long-mask);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    pointer-events: none;
  }
}

.unit-imgtxt__content .unit-imgtxt__btn .unit-link:hover .unit-arrowbox,
.unit-imgtxt__content .unit-imgtxt__btn .unit-link:hover .unit-icon:not(.v-arrow),
.unit-step__item .unit-imgtxt__btn .unit-link:hover .unit-arrowbox,
.unit-step__item .unit-imgtxt__btn .unit-link:hover .unit-icon:not(.v-arrow) {
  transform: translateX(3px);
}

.unit-imgtxt__content .unit-imgtxt__btn .unit-link:hover .unit-icon.v-arrow,
.unit-step__item .unit-imgtxt__btn .unit-link:hover .unit-icon.v-arrow {
  animation: slideArw 0.4s cubic-bezier(0.455, 0.03, 0.515, 0.955) both;
}

@media screen and (max-width: 768px) {
  .unit-imgtxt {
    &.v-reverse .unit-imgtxt__flex {
      flex-direction: column-reverse;
    }

    &.v-border {
      padding: 18px;
    }

    &.v-yellow {
      padding: 18px;
    }

    &.v-gray {
      padding: 18px;
    }
  }

  .unit-imgtxt__flex {
    flex-direction: column;
    gap: 20px;
    padding-top: 0;
  }

  .unit-imgtxt__img,
  .unit-imgtxt__content {
    width: 100%;
  }

  .v-size-min {

    .unit-imgtxt__img,
    .unit-imgtxt__content {
      width: 100%;
    }
  }

  .v-size-xmin {

    .unit-imgtxt__img,
    .unit-imgtxt__content {
      width: 100%;
    }
  }

  .v-size-large {

    .unit-imgtxt__img,
    .unit-imgtxt__content {
      width: 100%;
    }
  }

  .unit-imgtxt__content .unit-imgtxt__btn .unit-link,
  .unit-step__item .unit-imgtxt__btn .unit-link {
    max-width: min(350px, 100%);
    padding: 16px 18px 16px 22px;
    gap: 16px;
    font-size: 1.3rem;
  }
}

@media screen and (max-width: 480px) {
  .unit-imgtxt__content .unit-imgtxt__btn .unit-link,
  .unit-step__item .unit-imgtxt__btn .unit-link {
    padding: 14px 16px 14px 20px;
  }

  /* 本文ボタン内は通常サイズのまま（全体の .unit-icon 縮小を上書き） */
  .unit-imgtxt__content .unit-imgtxt__btn .unit-link .unit-icon.v-pdf,
  .unit-imgtxt__content .unit-imgtxt__btn .unit-link .unit-icon.v-excel,
  .unit-imgtxt__content .unit-imgtxt__btn .unit-link .unit-icon.v-word,
  .unit-step__item .unit-imgtxt__btn .unit-link .unit-icon.v-pdf,
  .unit-step__item .unit-imgtxt__btn .unit-link .unit-icon.v-excel,
  .unit-step__item .unit-imgtxt__btn .unit-link .unit-icon.v-word {
    width: 24px;
    min-width: 24px;
    height: auto;
    aspect-ratio: 1/1;
  }

  .unit-imgtxt__content .unit-imgtxt__btn .unit-link .unit-icon.v-link,
  .unit-imgtxt__content .unit-imgtxt__btn .unit-link .unit-icon.v-external,
  .unit-step__item .unit-imgtxt__btn .unit-link .unit-icon.v-link,
  .unit-step__item .unit-imgtxt__btn .unit-link .unit-icon.v-external {
    width: 18px;
    min-width: 18px;
  }
}

/* 画像のみ */
.unit-simpleimg {
  &.v-center img {
    display: block;
    margin: 0 auto;
  }

  &.v-thirty .unit-simpleimg__inner {
    width: 30%;
  }

  &.v-half .unit-simpleimg__inner {
    width: 50%;
  }

  &.v-seventy .unit-simpleimg__inner {
    width: 70%;
  }
}

.unit-simpleimg__inner {
  min-width: 150px;

  img {
    width: 100%;
  }
}

@media screen and (max-width: 768px) {
  .unit-simpleimg {
    &.v-seventy .unit-simpleimg__inner {
      width: 100%;
    }
  }
}

/* .unit-simpleimg：ラッパー(.unit-block)のクラスで画像の幅・配置を制御 */
.v-width-large.unit-block .unit-simpleimg__inner {
  width: 100%;
}

.v-width-midium.unit-block .unit-simpleimg__inner {
  width: 70%;
}

.v-width-small.unit-block .unit-simpleimg__inner {
  width: 50%;
}

.v-center.unit-block .unit-simpleimg__inner {
  margin-left: auto;
  margin-right: auto;
}

.v-left.unit-block .unit-simpleimg__inner {
  margin-left: 0;
  margin-right: auto;
}

.v-right.unit-block .unit-simpleimg__inner {
  margin-left: auto;
  margin-right: 0;
}

/* 動画ギャラリー（PC4カラム / SP1カラム・サムネ16:9） */
.unit-mov-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.unit-mov-gallery.v-col3 {
  grid-template-columns: repeat(3, 1fr);
}

.unit-mov-gallery.v-col2 {
  grid-template-columns: repeat(2, 1fr);
}

.unit-mov-gallery__link {
  display: block;
  text-decoration: none;
  color: var(--color-text);
}

.unit-mov-gallery__item__thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: opacity 0.3s;

  &::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 30%;
    aspect-ratio: 1 / 1;
    background: url("../../../img/_unit/icon_movie.svg") no-repeat center / contain;
  }
}

.unit-mov-gallery__link:hover .unit-mov-gallery__item__thumb {
  opacity: 0.8;
}

.unit-mov-gallery__ttl {
  display: block;
  margin-top: 12px;
  line-height: 1.5;
  font-weight: var(--font-weight-bold);
}

.unit-mov-gallery__description {
  margin-top: 8px;
  font-size: 1.4rem;
  line-height: 1.6;
}

@media screen and (max-width: 768px) {
  .unit-mov-gallery {
    grid-template-columns: 1fr;
  }
}

/* 画像 */
.unit-img {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 28px;

  &.v-col3 {
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  }
}

.unit-img__item {
  display: grid;
  gap: 14px;

  img {
    aspect-ratio: 3/2;
    object-fit: cover;
  }

  &:hover {
    opacity: 0.7;
  }
}

.unit-img .unit-arrowbox {
  width: 64px;
  height: calc(64px * 9.68 / 62.72);
  transform: translateY(2px);
  margin-left: 5px;
  background: transparent;

  &::before {
    background-color: currentColor;
  }
}

/* 画像拡大 */
.unit-zoomimg {
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  cursor: pointer;
  transition: 0.2s;

  &:hover {
    opacity: 0.7;

    .unit-zoomimg__btn {
      transform: scale(1.1);
    }
  }
}

.unit-zoomimg__btn {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 70px;
  height: 70px;
  padding: 0;
  border: none;
  cursor: pointer;
  background-color: var(--color-main);
  /*
   * 拡大アイコン矢印（背景は background-color: var(--color-main)）
   * <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 121 121" role="img" aria-hidden="true">
   *   <polygon fill="#fff" points="23.1 38.7 22.1 26.2 46.1 50.3 50.3 46.1 26.2 22.1 38.7 23.1 38.2 16.7 14.7 14.7 16.7 38.2 23.1 38.7"/>
   *   <polygon fill="#fff" points="79.1 25.1 91.7 24.1 67.6 48.1 71.7 52.3 95.8 28.2 94.7 40.7 101.1 40.2 103.1 16.7 79.7 18.7 79.1 25.1"/>
   *   <polygon fill="#fff" points="94.7 77.8 95.8 90.3 71.7 66.2 67.6 70.4 91.7 94.4 79.1 93.4 79.7 99.8 103.1 101.8 101.1 78.3 94.7 77.8"/>
   *   <polygon fill="#fff" points="43.1 93.4 30.6 94.4 54.6 70.4 50.5 66.2 26.4 90.3 27.5 77.8 21.1 78.3 19.1 101.8 42.6 99.8 43.1 93.4"/>
   * </svg>
   */
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20121%20121%22%20role%3D%22img%22%20aria-hidden%3D%22true%22%3E%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2223.1%2038.7%2022.1%2026.2%2046.1%2050.3%2050.3%2046.1%2026.2%2022.1%2038.7%2023.1%2038.2%2016.7%2014.7%2014.7%2016.7%2038.2%2023.1%2038.7%22%2F%3E%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2279.1%2025.1%2091.7%2024.1%2067.6%2048.1%2071.7%2052.3%2095.8%2028.2%2094.7%2040.7%20101.1%2040.2%20103.1%2016.7%2079.7%2018.7%2079.1%2025.1%22%2F%3E%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2294.7%2077.8%2095.8%2090.3%2071.7%2066.2%2067.6%2070.4%2091.7%2094.4%2079.1%2093.4%2079.7%2099.8%20103.1%20101.8%20101.1%2078.3%2094.7%2077.8%22%2F%3E%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2243.1%2093.4%2030.6%2094.4%2054.6%2070.4%2050.5%2066.2%2026.4%2090.3%2027.5%2077.8%2021.1%2078.3%2019.1%20101.8%2042.6%2099.8%2043.1%2093.4%22%2F%3E%20%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 72% 72%;
  transition: 0.2s;

  &:focus {
    outline: none;
  }

  &:focus-visible {
    outline: 2px solid var(--color-main);
    outline-offset: 2px;
  }
}

.unit-zoommodal {
  position: fixed;
  inset: 0;
  display: none;
  justify-content: center;
  align-items: center;
  background: rgba(0, 0, 0, 0.7);

  z-index: 100;
}

.unit-zoommodal__bg {
  position: absolute;
  inset: 0;
  cursor: pointer;
}

.unit-zoommodal__img {
  max-width: 90%;
  max-height: 90%;
  border-radius: 6px;
  z-index: 1;
}

/* 動画再生用モーダル */
.unit-movmodal {
  position: fixed;
  inset: 0;
  display: none;
  justify-content: center;
  align-items: center;
  background: rgba(0, 0, 0, 0.8);

  z-index: 100;
}

.unit-movmodal__bg {
  position: absolute;
  inset: 0;
  cursor: pointer;
}

.unit-movmodal__inner {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: 960px;
}

.unit-movmodal__frame {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000;
}

.unit-movmodal__frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.unit-movmodal__close {
  position: absolute;
  top: -40px;
  right: 0;
  width: 32px;
  height: 32px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}

.unit-movmodal__close::before,
.unit-movmodal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  border-top: 2px solid #fff;
}

.unit-movmodal__close::before {
  transform: rotate(45deg);
}

.unit-movmodal__close::after {
  transform: rotate(-45deg);
}

@media screen and (max-width: 480px) {
  .unit-zoomimg__btn {
    width: 50px;
    height: 50px;
  }
}

/* バナー */
.unit-banner {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;

  a {
    display: block;
    width: 100%;
  }

  img {
    display: block;
    width: 100%;
    height: auto;
  }

  /* 幅指定（標準1カラム時） */
  &.v-midium,
  &.v-medidm {
    width: 70%;
  }

  &.v-small {
    width: 50%;
  }

  /* 配置 */
  &.v-left {
    margin-left: 0;
    margin-right: auto;
  }

  &.v-right {
    margin-left: auto;
    margin-right: 0;
  }

  /* 2カラム（画像は各48%） */
  &.v-col2 {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;

    a {
      width: 48%;
    }

    &.v-midium,
    &.v-medidm {
      width: 70%;
    }

    &.v-small {
      width: 50%;
    }
  }
}

@media screen and (max-width: 768px) {
  .unit-banner,
  .unit-banner.v-midium,
  .unit-banner.v-medidm,
  .unit-banner.v-small,
  .unit-banner.v-col2,
  .unit-banner.v-col2.v-midium,
  .unit-banner.v-col2.v-medidm,
  .unit-banner.v-col2.v-small {
    width: 100%;
  }

  .unit-banner.v-col2 {
    flex-direction: column;

    a {
      width: 100%;
    }
  }
}

/* カルーセル */
.unit-carousel {
  position: relative;
}

.unit-carousel__link,
.unit-carousel__item {
  display: block;
  color: inherit;
  text-decoration: none;
}

/* Swiper内リンクはhover時の下線（通常・アニメーション）を出さない */
.unit-carousel a,
.unit-carousel a:hover,
.unit-carousel a:focus-visible {
  text-decoration: none;
  background-image: none;
}

.unit-carousel__link {
  &:hover {
    opacity: 0.7;
  }
}

.unit-carousel__thumb {
  img {
    aspect-ratio: 3/2;
    object-fit: cover;
  }
}

.unit-carousel__thumb.v-notrim {
  border: 1px solid #f0f0f0;

  img {
    aspect-ratio: 3/2;
    object-fit: contain;
  }
}

.unit-carousel__ttl {
  font-size: 1.6rem;
  font-weight: var(--font-weight-normal);
  line-height: 1.5;
  margin-top: 10px;
  margin-bottom: 0;
}

.unit-carousel__time {
  display: block;
  margin-top: 0.45em;
  font-family: var(--font-family-oswald);
  font-size: 1.6rem;
  font-weight: var(--font-weight-medium);
  line-height: 1.15;
}

.unit-carousel__cat {
  margin-top: 0.9em;
  font-size: 1.5rem;
  line-height: 1.3;

  span {
    display: inline-block;
    padding: 0 0.8em;
    border-left: 1px solid var(--color-main);
    border-right: 1px solid var(--color-main);
  }
}

/* スライダー直下：前後ナビ＋MORE を横並び */
.unit-carousel__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px 16px;
  margin-top: 20px;
}

.unit-carousel__footer .swiper-button-prev,
.unit-carousel__footer .swiper-button-next {
  position: static;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  margin: 0;
  flex-shrink: 0;
}

.unit-carousel__autoplay {
  position: relative;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid #ddd;
  border-radius: 2px;
  background: #f4f4f4;
  cursor: pointer;
  flex-shrink: 0;
  user-select: none;
  caret-color: transparent;
}

/* デフォルト（再生中）= pause */
.unit-carousel__autoplay::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-color: #637b92;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27.86 27.86'%3E%3Crect x='10.45' y='8.71' width='2.09' height='10.45' rx='.24' ry='.24'/%3E%3Crect x='16.02' y='8.71' width='2.09' height='10.45' rx='.24' ry='.24'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27.86 27.86'%3E%3Crect x='10.45' y='8.71' width='2.09' height='10.45' rx='.24' ry='.24'/%3E%3Crect x='16.02' y='8.71' width='2.09' height='10.45' rx='.24' ry='.24'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* 停止中 = play（--color-main 継承） */
.unit-carousel__autoplay.is-paused::before {
  background-color: var(--color-main);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M16.9,13.2l8.92,6.48c.22.16.22.49,0,.65l-8.92,6.48c-.26.19-.64,0-.64-.32v-12.95c0-.33.37-.52.64-.32Z'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M16.9,13.2l8.92,6.48c.22.16.22.49,0,.65l-8.92,6.48c-.26.19-.64,0-.64-.32v-12.95c0-.33.37-.52.64-.32Z'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}

.unit-carousel__footer .unit-carousel__viewmore {
  margin-top: 0;
  margin-right: 0;
}

.unit-carousel__viewmore {
  text-align: right;

  a {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    width: fit-content;
    max-width: min(350px, 100%);
    box-sizing: border-box;
    min-height: 40px;
    padding: 0 22px 0 26px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 9999px;
    color: #111;
    font-family: var(--font-family-oswald);
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;

    &:hover {
      color: #111;
      border-color: #ccc;
      opacity: 0.92;
    }
  }

  .unit-link__in {
    flex: 0 1 auto;
    min-width: 0;
  }

  .unit-arrowbox {
    flex-shrink: 0;
    margin-left: 0;
    transform: none;
    background: transparent;
    width: 56px;
    min-width: 56px;
    height: calc(56px * 9.68 / 62.72);

    &::before {
      background-color: currentColor;
    }
  }
}

/* swiper */
.swiper-wrapper {
  user-select: none;
}

.unit-swiper-base,
.swiper-banner,
.swiper-news,
.swiper-message {
  position: relative; /* swiper-pagination 等の絶対配置の基準にする */
  overflow: hidden; /* はみ出し防止 */
}

.unit-carousel .swiper-button-prev,
.unit-carousel .swiper-button-next {
  --swiper-navigation-size: 40px;
  width: 40px;
  height: 40px;
  margin-top: 0;
  top: auto;
  bottom: 0;
  left: auto;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 50%;
  color: var(--color-main);
  --swiper-navigation-color: var(--color-main);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  caret-color: transparent;

  &:focus {
    outline: none;
  }

  &:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
  }

  svg {
    display: none !important;
  }

  &::before {
    content: "";
    display: block;
    width: 15px;
    height: calc(15px * 9.68 / 12.72);
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask-image: var(--unit-swiper-arrow-mask);
    mask-image: var(--unit-swiper-arrow-mask);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
  }
}

.unit-carousel .swiper-button-next {
  right: 0;

  &::before {
    transform: scaleX(-1);
    transform-origin: center;
  }
}

.unit-carousel .swiper-button-prev {
  right: 48px;
}

.swiper-pagination {
  line-height: 1;
  user-select: none;
  -webkit-user-select: none;
  caret-color: transparent;
}

.swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  margin: 0 5px;
  background: #ccc;
  opacity: 1;
  user-select: none;
  -webkit-user-select: none;
  caret-color: transparent;
}

.swiper-pagination-bullet-active {
  background: var(--color-main);
}

.unit-carousel .unit-swiper-base .swiper-pagination {
  /* 見出し(unit-carousel__ttl)の有無で .unit-swiper-base の高さが変わり、
     bottom指定の絶対配置だと写真に重なることがあるため通常フローに乗せる */
  position: static;
  bottom: auto;
  left: auto;
  width: 100%;
  margin-top: 12px;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .unit-carousel.unit-block {
    width: calc(100% + 40px);
    margin-left: -20px;
    margin-right: -20px;
  }

  .unit-carousel .unit-swiper-base {
    padding: 0 16px;
    box-sizing: border-box;
  }

  /* ドットをスライド下の一段に、MORE・前後ナビはその下の段へ（重なり防止） */
  .unit-carousel .unit-swiper-base .swiper-pagination {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    width: 100%;
    margin-top: 0.75em;
    margin-bottom: 0;
    padding: 0 8px;
    box-sizing: border-box;
    text-align: center;
  }

  .unit-carousel__footer {
    margin-top: 14px;
  }

  .unit-carousel__ttl {
    font-size: 1.4rem;
  }

  .unit-carousel__time {
    font-size: 1.4rem;
  }

  .unit-carousel__cat {
    font-size: 1.2rem;
  }

  .unit-carousel__viewmore {
    flex-basis: 100%;
    display: flex;
    justify-content: flex-end;

    a {
      font-size: 1.7rem;
      min-height: 40px;
      padding: 0 18px 0 22px;
      gap: 14px;
      line-height: 1;
    }

    .unit-arrowbox {
      width: 52px;
      min-width: 52px;
      height: calc(52px * 9.68 / 62.72);
    }
  }

  .unit-carousel .swiper-button-prev,
  .unit-carousel .swiper-button-next {
    --swiper-navigation-size: 40px;
    width: 40px;
    height: 40px;

    &::before {
      width: 14px;
      height: calc(14px * 9.68 / 12.72);
    }
  }

  .unit-carousel .swiper-button-prev {
    right: 48px;
  }
}

/* 表（.unit-table は自動レイアウトで CMS のセル幅を尊重／.unit-ww-content は JS でラップして横スクロール） */
.unit-table,
.unit-ww-content {
  font-weight: var(--font-weight-light);

  table {
    width: 100%;
    margin-bottom: 10px;
  }

  th,
  td {
    padding: 6px;
    border: 1px solid #cecece;
    vertical-align: middle;
    /* CMS の width は中身の幅想定。border-box のままだと padding が width に含まれ、文字領域が 8em 未満になりやすい */
    box-sizing: content-box;
    /* reset の * { min-width: 0 } を打ち消し、セルが内容より狭まって日本語が改行されるのを防ぐ */
    min-width: auto;
  }

  th {
    color: var(--color-main);
    background: #eee;
    font-size: 1.4rem;
    text-align: center;
  }
  td{
    font-size: 1.4rem;
    text-align: left;
  }

  td.v-td-center {
    text-align: center;
  }

  td.v-td-right {
    text-align: right;
  }

  th p,td p{
    margin-bottom: 0;
  }
}

.unit-ww-content td {
  background-color: #fff;
}

/* 連絡先テーブル：th は背景なし・全幅・左寄せ */
.unit-table.unit-table__contact th {
  background: none;
  width: 100%;
  text-align: left;
  /* 前の td 行の罫線との間隔を確保 */
  padding-top: 42px;
}

/* 先頭の見出し行には上余白を付けない */
.unit-table.unit-table__contact tr:first-child th {
  padding-top: 6px;
}

/* 連絡先テーブル：罫線は td 行の下だけに引く */
.unit-table.unit-table__contact th,
.unit-table.unit-table__contact td {
  border: none;
}

.unit-table.unit-table__contact td {
  background: none;
  border-bottom: 1px solid #cecece;
  padding-bottom: 20px;
  font-size: 1.8rem;
}

.unit-table.unit-table__contact td.v-td1 {
  padding-left: 30px;
  /* td2・td3 は内容幅で確保し、残りを td1 が受ける */
  width: auto;
  font-weight: var(--font-weight-medium);
}

.unit-table.unit-table__contact td.v-td2 {
  padding-right: 30px;
  text-align: right;
  font-size: 1.6rem;
  white-space: nowrap;
  width: 1%;
}

.unit-table.unit-table__contact td.v-td3 {
  padding-right: 80px;
  text-align: right;
  font-size: 1.6rem;
  white-space: nowrap;
  width: 1%;
}

/* 連絡先テーブルの電話リンクは SP のみ有効 */
@media screen and (min-width: 769px) {
  .unit-table.unit-table__contact a[href^="tel:"] {
    pointer-events: none;
    cursor: default;
  }
}

/* 連絡先テーブル SP：th・td を縦積みに */
@media screen and (max-width: 768px) {
  .unit-table.unit-table__contact table,
  .unit-table.unit-table__contact tbody,
  .unit-table.unit-table__contact tr,
  .unit-table.unit-table__contact th,
  .unit-table.unit-table__contact td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  /* 罫線と次見出しの余白 */
  .unit-table.unit-table__contact th {
    padding-top: 25px;
  }

  .unit-table.unit-table__contact tr:first-child th {
    padding-top: 6px;
  }

  /* PC用の nth-child 指定（width:1%・右寄せ・右パディング）を同詳細度で打ち消す */
  .unit-table.unit-table__contact td.v-td1,
  .unit-table.unit-table__contact td.v-td2,
  .unit-table.unit-table__contact td.v-td3 {
    width: 100%;
    border-bottom: none;
    padding: 0 0 8px 20px;
    text-align: left;
    white-space: normal;
    font-size: 1.4rem;
  }

  .unit-table.unit-table__contact td.v-td1 {
    font-size: 1.6rem;
  }

  /* 罫線はデータ行の最後のセルの下だけに引く */
  .unit-table.unit-table__contact td.v-td3 {
    border-bottom: 1px solid #cecece;
    padding-bottom: 20px;
  }
}

/* th 表示バリエーション（ラッパーに付与。PC・SP共通） */
.v-th-bg-left.unit-block th {
  background: #eee;
  text-align: left;
}

.v-th-nobg-center.unit-block th {
  background: #fff;
  color: var(--color-text);
  text-align: center;
}

.v-th-nobg-left.unit-block th {
  background: #fff;
  color: var(--color-text);
  text-align: left;
}

.v-th-font-normal.unit-block th {
  font-weight: var(--font-weight-normal);
}

/* 表の左右（外側）の縦罫線を非表示 */
.v-no-sideborder.unit-block table tr > th:first-child,
.v-no-sideborder.unit-block table tr > td:first-child {
  border-left: none;
}

.v-no-sideborder.unit-block table tr > th:last-child,
.v-no-sideborder.unit-block table tr > td:last-child {
  border-right: none;
}

/* .v-layout-block：SP のみ th/td を縦積み（block・幅100%）にする（PC は通常の表レイアウト） */
@media screen and (max-width: 768px) {
  .v-layout-block.unit-block table,
  .v-layout-block.unit-block thead,
  .v-layout-block.unit-block tbody,
  .v-layout-block.unit-block tr,
  .v-layout-block.unit-block th,
  .v-layout-block.unit-block td {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
  }

  /* block 化で border-collapse が無効になり罫線が重なるため、セルを 1px 上に詰めて重ねる */
  .v-layout-block.unit-block th,
  .v-layout-block.unit-block td {
    margin-bottom: -1px;
  }

  /* block 化では全セルが全幅になるため、左右罫線は全セルで消す（:first/:last だけだと不揃いになる） */
  .v-layout-block.v-no-sideborder.unit-block th,
  .v-layout-block.v-no-sideborder.unit-block td {
    border-left: none;
    border-right: none;
  }
}

.unit-table {
  &.v-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    user-select: none;
    cursor: grab;

    &:active {
      cursor: grabbing;
    }
  }

  &:not(.v-scroll) {
    table {
      /* fixed だと列が均等化されやすく、CMS の th/td width が効きにくい */
      table-layout: auto;
    }
  }
}

/* .unit-ww-content 内 table は common.js で .unit-ww-content__table-wrap に包む */
.unit-ww-content .unit-ww-content__table-wrap {
  position: relative;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;

  &.v-scroll {
    user-select: none;
    cursor: grab;

    &:active {
      cursor: grabbing;
    }
  }

  table {
    width: 100%;
    min-width: 100%;
    table-layout: auto;
  }
}

/* PC：ラッパー・表をコンテナ幅いっぱいに */
@media screen and (min-width: 769px) {
  .unit-table {
    width: 100%;
    box-sizing: border-box;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .unit-table table {
    border-collapse: collapse;
  }

  .v-width-large .unit-table {
    width: 100%;
  }

  .v-width-midium .unit-table {
    width: 70%;
  }

  .v-width-small .unit-table {
    width: 50%;
  }

  .v-pos-center .unit-table {
    margin-left: auto;
    margin-right: auto;
  }

  .unit-ww-content .unit-ww-content__table-wrap {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .unit-ww-content .unit-ww-content__table-wrap table {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    border-collapse: collapse;
  }
}

/* CMS 由来の表セル（旧 HTML クラス） */
.align_ce {
  text-align: center;
}

@media screen and (max-width: 480px) {
  .unit-table,
  .unit-ww-content {
    th {
      font-size: 1.4rem;
    }

    th,
    td {
      padding: 16px;
    }
  }
}

@media screen and (max-width: 768px) {
  /* SP：セルに max-width を設けて折り返しを強制（横スクロールは維持） */
  .unit-ww-content .unit-ww-content__table-wrap {
    table {
      width: auto;
      min-width: 100%;
    }
  }

  .unit-block.v-scroll-none table {
    min-width: 100%;
  }

  .unit-block.v-scroll-small table {
    min-width: 120vw;
  }

  .unit-block.v-scroll-midium table {
    min-width: 140vw;
  }

  .unit-block.v-scroll-large table {
    min-width: 160vw;
  }

  .unit-table.v-scroll,
  .unit-ww-content .unit-ww-content__table-wrap.v-scroll {

    th,
    td {
    /* max-width: 28vw;
      min-width:  60vw;*/
    /*  white-space: normal;
      overflow-wrap: anywhere;
      word-break: break-word;*/
      padding: 10px 8px;
    }

    /* セル内の子要素（ul/li など）も折り返し継承 */
    th *,
    td * {
      white-space: inherit;
      overflow-wrap: inherit;
      word-break: inherit;
    }

    /* li のハンギングインデントを解除して狭いセルでも崩れないようにする */
    th ul, th ol,
    td ul, td ol {
      margin-left: 0;
      padding-left: 1.2em;
    }

    th li, td li {
      text-indent: 0;
      padding-left: 0;
    }
  }

  /* 連絡先テーブル（v-scroll共通padding上書き） */
  .unit-table.unit-table__contact .unit-ww-content__table-wrap.v-scroll th {
    padding-top: 25px;
  }

  .unit-table.unit-table__contact .unit-ww-content__table-wrap.v-scroll tr:first-child th {
    padding-top: 6px;
  }

  .unit-table.unit-table__contact .unit-ww-content__table-wrap.v-scroll td.v-td1,
  .unit-table.unit-table__contact .unit-ww-content__table-wrap.v-scroll td.v-td2,
  .unit-table.unit-table__contact .unit-ww-content__table-wrap.v-scroll td.v-td3 {
    width: 100%;
    border-bottom: none;
    padding: 0 0 8px 20px;
    text-align: left;
    white-space: normal;
    font-size: 1.4rem;
  }

  .unit-table.unit-table__contact .unit-ww-content__table-wrap.v-scroll td.v-td1 {
    font-size: 1.6rem;
  }

  .unit-table.unit-table__contact .unit-ww-content__table-wrap.v-scroll td.v-td3 {
    border-bottom: 1px solid #cecece;
    padding-bottom: 20px;
  }
}

/* 表キャプション */
.unit-table-caption {
  color: #999999;
}

.unit-ww-content.unit-table-caption p,
.unit-ww-content.unit-table-caption ul,
.unit-ww-content.unit-table-caption ol {
  font-size: 1.4rem;
  margin-bottom: 8px;
}

@media screen and (max-width: 768px) {
  .unit-ww-content.unit-table-caption p,
  .unit-ww-content.unit-table-caption ul,
  .unit-ww-content.unit-table-caption ol {
    font-size: 1.2rem;
  }
}

/* 表ラッパー（.unit-table を囲み v-border / v-gray を効かせる。横スクロールは内側 .unit-table に付与） */
.unit-table-wrap {
  box-sizing: border-box;

  &.unit-block {
   /* margin-bottom: 5px;*/
  }

  &.v-border {
    border: 1px solid #ccc;
    padding: 32px;
  }

  &.v-gray {
    background: #f6f6f8;
    padding: 32px;
  }
}

@media screen and (max-width: 768px) {
  .unit-table-wrap {

    &.v-border,
    &.v-gray {
      padding: 18px;
    }
  }
}

/* 詳細リスト */
.unit-detaillist {
  display: grid;
  grid-template-columns: 200px auto;
  border-bottom: 1px solid #ccc;

  dt,
  dd {
    padding: 24px 0;
    border-top: 1px solid #ccc;
  }

  dt {
    color: var(--color-main);
    padding-right: 32px;
  }

  p {
    line-height: 1.45;
  }

  &.v-grid2 {
    dd {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 24px;
    }

    p {
      margin-top: 0;
    }
  }
}

@media screen and (max-width: 480px) {
  .unit-detaillist {
    grid-template-columns: 1fr;

    dt,
    dd {
      padding: 18px 0;
    }

    dt {
      font-size: 1.8rem;
    }

    dd {
      border: none;
      padding-top: 0;
    }

    &.v-grid2 dd {
      grid-template-columns: 1fr;
      gap: 1em;
    }
  }
}

/* 開閉パネル */
.unit-accordion {
  border-bottom: 1px solid #ccc;

  details {
    border-top: 1px solid #ccc;

    &[open] summary::after {
      transform: rotate(0);
    }
  }

  summary {
    list-style: none;
    width: 100%;
    color: var(--color-main);
    font-size: 18px;
    font-weight: var(--font-weight-bold);
    padding: 20px 30px 20px 0;
    user-select: none;
    cursor: pointer;
    position: relative;

    &::before,
    &::after {
      content: "";
      display: inline-block;
      width: 16px;
      border-bottom: 2px solid var(--color-text);
      position: absolute;
      right: 0;
      top: 50%;
      transition: 0.2s;
    }

    &::after {
      transform: rotate(90deg);
    }

    &:hover {
      opacity: 0.7;
    }

    &::-webkit-details-marker {
      display: none;
      /* Chrome/Safari/Edge 対応 */
    }
  }

  .unit-accordion__content {
    margin-bottom: 25px;
  }

  /* 写真（__content_ph）があるときは2カラム */
  .unit-accordion__content:has(.unit-accordion__content_ph) {
    display: flex;
    gap: 24px;
    align-items: flex-start;
  }

  .unit-accordion__content_text {
    flex: 1 1 auto;
    min-width: 0;
  }

  .unit-accordion__content_ph {
    flex: 0 0 var(--accordion-ph-width, 48%);
    order: -1;
  }

  /* 写真の幅 */
  .unit-accordion__content.v-large .unit-accordion__content_ph {
    --accordion-ph-width: 48%;
  }

  .unit-accordion__content.v-medium .unit-accordion__content_ph {
    --accordion-ph-width: 33%;
  }

  .unit-accordion__content.v-small .unit-accordion__content_ph {
    --accordion-ph-width: 25%;
  }

  /* 右配置 */
  .unit-accordion__content.v-reverse .unit-accordion__content_ph {
    order: 0;
  }

  /* 写真トリミング（標準：4:3 カバー） */
  .unit-accordion__content_ph img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }

  /* トリミングなし */
  .unit-accordion__content.v-trim-contain .unit-accordion__content_ph img {
    aspect-ratio: auto;
    object-fit: contain;
  }
}

@media screen and (max-width: 768px) {
  .unit-accordion .unit-accordion__content:has(.unit-accordion__content_ph) {
    flex-direction: column;
  }

  .unit-accordion .unit-accordion__content_text,
  .unit-accordion .unit-accordion__content_ph {
    flex-basis: auto;
    width: 100%;
  }

  /* v-reverse：SP は文字が先（DOM 順） */
  .unit-accordion .unit-accordion__content.v-reverse .unit-accordion__content_ph {
    order: 0;
  }
}

@media screen and (max-width: 480px) {
  .unit-accordion {
    summary {
      font-size: 1.6rem;
      padding: 16px 30px 16px 0;
    }
  }
}

/* 続きを読む */
.unit-readmore {
  position: relative;
}

.unit-readmore.open {
  .unit-readmore__content {
    -webkit-line-clamp: unset;
    line-clamp: unset;
    overflow: visible;
  }

  .unit-readmore__btn {
    background: var(--color-main);
    border-color: transparent;
    color: #fff;
  }

  .unit-readmore__arrow {
    background-color: #fff;
    -webkit-mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9.89' height='13' viewBox='0 0 9.89 13'%3E%3Cpolygon points='8.55 6.29 5.9 3.65 5.9 13 3.99 13 3.99 3.65 1.35 6.29 0 4.95 4.95 0 9.89 4.95 8.55 6.29'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9.89' height='13' viewBox='0 0 9.89 13'%3E%3Cpolygon points='8.55 6.29 5.9 3.65 5.9 13 3.99 13 3.99 3.65 1.35 6.29 0 4.95 4.95 0 9.89 4.95 8.55 6.29'/%3E%3C/svg%3E");
  }
}

.unit-readmore__content {
  display: -webkit-box;
  line-height: 1.5em;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  transition: max-height 0.2s;
  margin-bottom: 16px;
}

.unit-readmore__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 150px;
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  background: transparent;
  border: 1px solid var(--color-text);
  border-radius: 30px;
  padding: 8px 12px;
  transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}

.unit-readmore__arrow {
  display: inline-block;
  width: 20px;
  aspect-ratio: 1/1;
  background-color: var(--color-text);
  -webkit-mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9.89' height='13' viewBox='0 0 9.89 13'%3E%3Cpolygon points='1.35 6.71 3.99 9.35 3.99 0 5.9 0 5.9 9.35 8.55 6.71 9.89 8.05 4.95 13 0 8.05 1.35 6.71'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9.89' height='13' viewBox='0 0 9.89 13'%3E%3Cpolygon points='1.35 6.71 3.99 9.35 3.99 0 5.9 0 5.9 9.35 8.55 6.71 9.89 8.05 4.95 13 0 8.05 1.35 6.71'/%3E%3C/svg%3E") no-repeat center / contain;
}

@media screen and (max-width: 480px) {}

/* ボタン用ラッパー .unit-btn-box-wrap（.unit-list-box / .unit-ww-box と同系の v-*） */
.unit-btn-box-wrap {
  box-sizing: border-box;

  &.v-border {
    border: 1px solid #ccc;
    padding: 32px;
  }

  &.v-yellow {
    background: #fffff3;
    padding: 32px;
  }

  &.v-gray {
    background: #f6f6f8;
    padding: 32px;
  }
}

@media screen and (max-width: 768px) {
  .unit-btn-box-wrap {

    &.v-border,
    &.v-yellow,
    &.v-gray {
      padding: 18px;
    }
  }
}

/* ボタン */
.unit-btnbox {
/*  padding-top: 10px;*/
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  column-gap: 40px;
  row-gap: 10px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;

  .unit-link {
    padding: 15px 22px 15px 44px;
    font-size: 1.5rem;
  }

  /* columns */
  &.v-col1 {
    flex-direction: column;
    align-items: center;

    .unit-link {
      width: 40%;
      min-width: 0;
      max-width: 100%;
    }

    &.v-left {
      align-items: flex-start;
    }

    &.v-right {
      align-items: flex-end;
    }

    &.v-center {
      margin-left: auto;
      margin-right: auto;
    }
    &.v-inner-pad{
      padding-bottom: 25px;
    }

  }

  /* column-gap 分を除いた幅（48%×2+gap で100%超えしないよう calc） */
  &.v-col2 {
    width: calc(80% + 40px);
    .unit-link {
      width: calc((100% - 40px) / 2);
      max-width: calc((100% - 40px) / 2);
      min-width: 0;
    }
  }

  &.v-col3 {
    .unit-link {
      width: calc((100% - 80px) / 3);
      max-width: calc((100% - 80px) / 3);
      min-width: 0;
    }
  }

  &.v-col4 {
    .unit-link {
      width: calc((100% - 120px) / 4);
      max-width: calc((100% - 120px) / 4);
      min-width: 0;
    }
  }

  &.v-col5 {
    column-gap: 24px;

    .unit-link {
      width: 180px;
    }
  }

  &.v-long .unit-link {
    width: 48%;
  }

  /* styles */
  &.v-transparent .unit-link {
    background: transparent;
  }

  &.v-simple .unit-link {
    border-top: 1px solid #cecece;
    border-bottom: 1px solid #cecece;
  }

  &.v-left {
    justify-content: left;
  }

  &.v-right {
    justify-content: right;
  }
  &.v-center {
    margin-left: auto;
    margin-right: auto;
  }
}

.unit-link {
  width: 220px;
  /* max-width: 48%; */
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: relative;
  font-weight: var(--font-weight-medium);
  padding: 22px;
  box-sizing: border-box;
  text-decoration: none;
  color: var(--color-text);

  &:hover {
    color: var(--color-main);
  }
}

.unit-btnbox:not(.v-simple) {
  .unit-arrowbox {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translate(50%, -50%);
  }

  .unit-link {
    background: #fff;
    border: 1px solid #d4d0de;
    border-radius: 9999px;
    transition:
      border-color 0.2s ease,
      color 0.2s ease;

    &:hover {
      border-color: var(--color-main);

      .unit-arrowbox {
        right: -5px;
      }

      .unit-icon.v-arrow {
        animation: slideArw 0.4s cubic-bezier(0.455, 0.03, 0.515, 0.955) both;
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .unit-btnbox {
    padding-top: 0px;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    column-gap: 6%;

    &.v-col5 {
      width: 90%;
    }

    .unit-link {
      padding: 15px 22px 15px 30px;
      font-size: 1.4rem;
      width: 100%;
      max-width: 100%;
    }
    &.v-inner-pad{
      padding-bottom: 20px;
    }
  }

  .unit-link {
   /* width: 47%;*/
    padding: 20px 14px;
  }

  /* SP：1カラム・ボタン幅100% */
  .unit-btnbox.v-col1 .unit-link,
  .unit-btnbox.v-col2 .unit-link,
  .unit-btnbox.v-col3 .unit-link,
  .unit-btnbox.v-col4 .unit-link {
    width: 100%;
    max-width: 100%;
  }

  /* v-col3：2列（column-gap 6% を1本分差し引き） */
 /* .unit-btnbox.v-col3 .unit-link {
    width: calc((100% - 6%) / 2);
    max-width: calc((100% - 6%) / 2);
  }*/
}

/* テキストリンク */
.unit-txtlinkgrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, auto));
  gap: 20px;
  color: var(--color-main);
  line-height: 1.2;

  a {
    display: flex;
    align-items: flex-start;
    gap: 5px;

    .unit-icon {
      margin-top: 0.35em;
      flex-shrink: 0;
    }

    &:hover {
      opacity: 0.7;
     /* text-decoration: underline;*/
    }
  }
}

/* テキストリンク */
.unit-txtlinklist {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1em;
  color: var(--color-main);

  a {
    display: flex;
    align-items: flex-start;
    gap: 8px;

    &::before {
      content: "";
      display: inline-block;
      width: 8px;
      aspect-ratio: 1/1;
      margin-top: 0.35em;
      border-top: 2px solid var(--color-main);
      border-right: 2px solid var(--color-main);
      transform: rotate(45deg);
      flex-shrink: 0;
    }

    &:hover {
      opacity: 0.7;
     /* text-decoration: underline;*/
    }
  }
}

/* アンカーリンク */
.unit-anchor {
  color: var(--color-main);
  display: flex;
  flex-wrap: wrap;
  column-gap: 28px;

  a {
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    padding: 1em;
    border-bottom: 1px solid #ccc;
    box-sizing: border-box;
    vertical-align: top;

    &::after {
      content: "";
      display: inline-block;
      width: 8px;
      aspect-ratio: 1/1;
      margin-left: 10px;
      vertical-align: middle;
      border-bottom: 2px solid var(--color-main);
      border-right: 2px solid var(--color-main);
      transform: translateY(-0.1em) rotate(45deg);
      transition: transform 0.22s ease;
    }

    &:hover::after {
      transform: translateY(0.06em) rotate(45deg);
    }
  }
}

@media screen and (max-width: 480px) {
  .unit-anchor a {
    padding: 0.8em;
  }
}

/* 強調ボタン */
.unit-cvbtn {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  column-gap: 32px;
  row-gap: 16px;
  font-size: 2rem;
}

.unit-cvbtn__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--color-main);
  color: #fff;
  padding: 1em;
  font-weight: var(--font-weight-bold);

  .unit-icon--doc {
    width: 28px;
  }

  .unit-icon--pc {
    width: 35px;
  }

  &:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 480px) {
  .unit-cvbtn {
    font-size: 1.8rem;
  }

  .unit-cvbtn__link {
    .unit-icon--doc {
      width: 24px;
    }

    .unit-icon--pc {
      width: 30px;
    }
  }
}

/* ボーダー */
.unit-border {
  width: 100%;
  border-top: 1px solid #cecece;
}

/* 強調ボックス */
.unit-collout {
  background: #eee;
  padding: 40px;

  &.v-yellow {
    background: #fffff3;
  }

  &.v-gray {
    background: #f6f6f8;
  }

  &.v-border {
    background: #fff;
    border: 1px solid #cecece;
  }
}

@media screen and (max-width: 480px) {
  .unit-collout {
    padding: 18px;
  }
}

/* GoogleMap/YouTube */
.unit-embed {
  &.v-width-large {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  &.v-width-midium {
    width: 70%;
    margin-left: auto;
    margin-right: auto;
  }

  &.v-width-small {
    width: 50%;
    margin-left: auto;
    margin-right: auto;
  }
}

.unit-embed__iframe {
  position: relative;
  aspect-ratio: 16 / 9;

  iframe {
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
  }
}

.unit-embed__ttl {
  display: block;
  margin-top: 12px;
  line-height: 1.5;
  font-weight: var(--font-weight-bold);
}

.unit-embed__description {
  margin-top: 8px;
  font-size: 1.4rem;
  line-height: 1.6;
}

@media screen and (max-width: 768px) {
  .unit-embed.v-width-large,
  .unit-embed.v-width-midium,
  .unit-embed.v-width-small {
    width: 100%;
  }
}