@charset "UTF-8";
/*====================================================================
base / font
====================================================================*/
@import url("https://fonts.googleapis.com/css2?family=Fustat:wght@200..800&family=Noto+Sans+JP:wght@100..900&family=Roboto+Condensed:ital,wght@0,300..700;1,300..700&display=swap");
@font-face {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}
/* デザインB（タブレット） */
@media screen and (min-width: 600px) {
  /* タブレット用レイアウト 600px以上の範囲に収めるデザインはこの中に記述 */
}
/* デザインC(PC) */
@media screen and (min-width: 1025px) {
  /* PC用レイアウト 1,025px以上の範囲に収めるデザインはこの中に記述 */
}
.sa {
  opacity: 0;
  transition: all 0.5s ease;
}

.sa.show {
  opacity: 1;
  transform: none;
}

.sa__up {
  transform: translate(0, 100px);
}

.sa__down {
  transform: translate(0, -100px);
}

.sa__scaleUp {
  transform: scale(0.5);
}

@keyframes anim_dian {
  0% {
    transform: translate(0, 0px);
  }
  100% {
    transform: translate(0, -35px);
  }
}
@keyframes dian-move {
  0% {
    top: 10%; /*スタート地点（サンプルは[class:cp_arrows]height300pxの35%）*/
    opacity: 0;
  }
  70% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes rotate-anime {
  0% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(45deg);
  }
  100% {
    transform: rotate(90deg);
  }
}
@keyframes fluffy {
  0% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(5deg);
  }
  50% {
    transform: rotate(0deg);
  }
  75% {
    transform: rotate(-5deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
@keyframes fluffyUp {
  0% {
    transform: translateY(0);
  }
  5% {
    transform: translateY(0);
  }
  10% {
    transform: translateY(0);
  }
  20% {
    transform: translateY(-15px);
  }
  25% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(-15px);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes rotateIn {
  from {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, 90deg);
  }
  to {
    transform-origin: center;
    transform: translate3d(0, 0, 0);
  }
}
.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn;
}

.visualEditArea {
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea {
  margin: 20px auto;
}
.visualEditArea * {
  margin-top: 1.75em;
}
.visualEditArea *:nth-child(1) {
  margin-top: 0;
}
.visualEditArea a {
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .visualEditArea a:hover {
    opacity: 0.6;
  }
}
.visualEditArea a {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea a {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea h1, .visualEditArea h2, .visualEditArea h3, .visualEditArea h4, .visualEditArea h5, .visualEditArea h6 {
  font-weight: bold;
}
.visualEditArea h1 {
  font-size: 32px;
  line-height: 1.4;
}
.visualEditArea h2 {
  margin-top: 2em;
  font-size: 27px;
  line-height: 1.6;
}
.visualEditArea h3 {
  font-size: 22px;
  line-height: 1.6;
}
.visualEditArea h4, .visualEditArea h5, .visualEditArea h6 {
  font-size: 16px;
  line-height: 1.6;
}
.visualEditArea h1 + h2,
.visualEditArea h2 + h3,
.visualEditArea h3 + h4,
.visualEditArea h4 + h5,
.visualEditArea h5 + h6 {
  margin-top: 0.5em;
}
.visualEditArea p {
  margin-top: 0.5em;
  font-size: 1.4rem;
  line-height: 1.6;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea p {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea p span {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea p span {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea p strong {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea p strong {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea p del {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea p del {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea strong {
  font-weight: bold;
}
.visualEditArea em {
  font-style: italic;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea em {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea ul {
  list-style-type: disc;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea ul {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea ol {
  list-style-type: decimal;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea ol {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea ul, .visualEditArea ol {
  margin-top: 1em;
  padding-left: 1.4em;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea ul, .visualEditArea ol {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea ul li, .visualEditArea ol li {
  margin-top: 0.6em;
  line-height: 1.5;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea ul li, .visualEditArea ol li {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea i {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea i {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea sup, .visualEditArea sub {
  font-size: 10px;
}
.visualEditArea table {
  margin-top: 3em;
  width: 100% !important;
  height: auto !important;
  border-collapse: collapse;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea table {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea table thead th, .visualEditArea table thead td {
  font-weight: bold;
  text-align: center;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea table thead th, .visualEditArea table thead td {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea table tr th, .visualEditArea table tr td {
  padding: 15px 20px;
  border: #333 1px solid;
  line-height: 1.5;
  text-align: left;
  vertical-align: middle;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .visualEditArea table tr th, .visualEditArea table tr td {
    font-size: 14px;
    line-height: 1.8;
  }
}
.visualEditArea table tr th {
  width: 25%;
  font-weight: bold;
  text-align: center;
}
.visualEditArea img {
  width: auto;
  max-width: 100%;
  height: auto;
  margin-top: 2em;
}
.visualEditArea img.alignnone, .visualEditArea img.alignleft {
  margin-top: 2em;
}
.visualEditArea img.aligncenter {
  display: block;
  margin: 2em auto 0;
}
.visualEditArea img.alignright {
  display: block;
  margin: 2em 0 0 auto;
}

/*====================================================================
Reset
====================================================================*/
html {
  color: #333;
  background: #fff;
}

html,
body,
div,
figure,
section,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 10px;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
  line-height: 100%;
  vertical-align: baseline;
  background: transparent;
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

b,
strong {
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", （何かしらのゴシック体）;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset,
img {
  border: 0;
}

/*
TODO think about hanlding inheritence differently, maybe letting IE6 fail a bit...
*/
address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
  font-weight: normal;
}

ol,
ul {
  list-style: none;
}

caption,
th {
  text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: normal;
}

q:before,
q:after {
  content: "";
}

abbr,
acronym {
  border: 0;
  font-variant: normal;
}

sup {
  font-size: 10px;
  vertical-align: text-top;
}

sub {
  font-size: 10px;
  vertical-align: baseline;
}

input,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

input,
textarea,
select {
  *font-size: 100%;
}

legend {
  color: #333;
}

ol,
ul {
  list-style: none;
}

a {
  color: #333;
  text-decoration: none;
}

input,
button,
textarea,
select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  line-height: 100%;
  box-sizing: border-box;
}

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

.img-container {
  overflow: hidden;
  position: relative;
}

.img-container__img {
  display: block;
  opacity: 0;
  position: relative;
  transition: all 0.5s 0.3s ease;
  z-index: 0;
}

.img-container:before {
  background: #333;
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  transform: translateX(-100%);
  transition: all 0.8s 0s ease;
  width: 100%;
  z-index: 1;
}

.text-container {
  opacity: 0;
  padding: 0 60px;
  transition: all 0.8s 0.5s ease;
}

/*アニメーションするプロパティを設定します*/
.img-container.active img {
  opacity: 1;
}

.img-container.active:before {
  transform: translateX(100%);
}

.text-container.active {
  opacity: 1;
}

/*====================================================================
COMMON LAYOUT
====================================================================*/
body {
  background: #fff;
  color: #333;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "palt" 1;
}
body.js-noScroll {
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  body {
    min-width: inherit;
  }
}
body {
  transition: 0.6s;
}

main,
header {
  transition: 0.6s;
}

/*-----------------------------------------------
PC/SP 出し分け
------------------------------------------------*/
.u-pcDb {
  display: block;
}

.u-pcDib {
  display: inline-block;
}

.u-pcDin {
  display: inline;
}

.u-pcDf {
  display: flex;
}

.u-pcDt {
  display: table;
}

.u-pcDtc {
  display: table-cell;
}

.u-spDb,
.u-spDib,
.u-spDin,
.u-spDf,
.u-spDt,
.u-spDtc {
  display: none;
}

@media screen and (max-width: 768px) {
  .u-pcDb,
  .u-pcDib,
  .u-pcDin,
  .u-pcDf,
  .u-pcDt,
  .u-pcDtc {
    display: none;
  }
  .u-spDb {
    display: block;
  }
  .u-spDib {
    display: inline-block;
  }
  .u-spDin {
    display: inline;
  }
  .u-spDf {
    display: flex;
  }
  .u-spDt {
    display: table;
  }
  .u-spDtc {
    display: table-cell;
  }
}
/*-----------------------------------------------
サイトコンテンツ
------------------------------------------------*/
.mainContent {
  margin-top: 100px;
}
@media screen and (max-width: 999px) {
  .mainContent {
    margin-top: 56px;
  }
}

/*-----------------------------------------------
文字フェードイン（CSSアニメーション）
------------------------------------------------*/
@keyframes mask_fadeIn {
  0% {
    /* x方向の倍率を0に */
    transform: scaleX(0);
    /* 変換の原点を(0, 0)に指定 */
    transform-origin: 0 0;
  }
  45% {
    /* x方向の倍率を初期値(1倍)に */
    transform: none;
    transform-origin: 0 0;
  }
  50% {
    transform: none;
    transform-origin: 100% 0;
  }
  100% {
    transform: scaleX(0);
    transform-origin: 100% 0;
  }
}
a[href^="tel:"] {
  pointer-events: none;
}

@media screen and (max-width: 768px) {
  a[href^="tel:"] {
    pointer-events: auto;
  }
}
.pageTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pageTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pageTitle {
  text-align: center;
  font-size: 1.8rem;
  letter-spacing: 0.5em;
  position: relative;
  padding-bottom: 12px;
}
.pageTitle::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  top: 100%;
  left: 49.5%;
  transform: translate(-50%, -50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/common/title_icon.png");
}
@media screen and (max-width: 768px) {
  .pageTitle {
    font-size: 1.8rem;
  }
  .pageTitle::after {
    left: 49%;
  }
}

.pageTitleBig {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pageTitleBig {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pageTitleBig {
  text-align: center;
  font-size: 2.4rem;
  letter-spacing: 0.5em;
  position: relative;
  padding-bottom: 40px;
  font-weight: 600;
}
.pageTitleBig::after {
  content: "";
  position: absolute;
  width: 17px;
  height: 17px;
  top: 80%;
  left: 49.5%;
  transform: translate(-50%, -50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/common/title_icon.png");
}
@media screen and (max-width: 768px) {
  .pageTitleBig {
    font-size: 1.8rem;
    padding-bottom: 30px;
  }
}

.lowerPageTitleArea {
  padding: 120px 0 90px;
}
@media screen and (max-width: 768px) {
  .lowerPageTitleArea {
    padding: 46px 0;
  }
}

.lowerPageThumbTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .lowerPageThumbTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.lowerPageThumbTitle {
  text-align: center;
  font-size: 1.2rem;
  letter-spacing: 0.5em;
}
@media screen and (max-width: 768px) {
  .lowerPageThumbTitle {
    font-size: 1.2rem;
    padding-bottom: 10px;
  }
}

.lowerPageTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .lowerPageTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.lowerPageTitle {
  text-align: center;
  font-size: 2rem;
  letter-spacing: 0.5em;
  position: relative;
  padding-bottom: 18px;
}
.lowerPageTitle::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  background-color: #002F7B;
  width: 72px;
  height: 2px;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 768px) {
  .lowerPageTitle {
    font-size: 2rem;
  }
}

main.mainContent {
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  main.mainContent {
    margin-top: 55px;
  }
}

.is_home .mainContent {
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .is_home .mainContent {
    margin-top: 55px;
  }
  .is_home .mainContent.navOpened {
    margin-top: 0;
  }
}

.cantScroll {
  overflow: hidden;
  transition: 0.6s;
}

.navOpened {
  transform: translate(-67vw);
}

/*====================================================================
Header
====================================================================*/
.siteHeader {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 200;
  width: 100%;
  background-color: #fff;
  border-bottom: 1px solid #ccc;
  min-height: 90px;
}
@media screen and (max-width: 1000px) {
  .siteHeader {
    min-height: auto;
  }
}
body.admin-bar .siteHeader {
  top: 32px;
}
@media screen and (max-width: 768px) {
  body.admin-bar .siteHeader {
    top: 46px;
  }
}
.siteHeader__wrap {
  max-width: 1280px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .siteHeader__wrap {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.siteHeader__wrap {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 24px;
  padding: 8px 20px;
}
.siteHeader__logoArea {
  flex-shrink: 0;
}
.siteHeader__logoLink {
  display: block;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteHeader__logoLink:hover {
    opacity: 0.6;
  }
}
.siteHeader__logoImg {
  width: 200px;
  height: auto;
  display: block;
}
@media screen and (min-width: 1001px) and (max-width: 1200px) {
  .siteHeader__logoImg {
    width: 12.29vw;
  }
}
.siteHeader__navArea {
  flex: 1 1 auto;
}
.siteHeader {
  /* 上段：お取引先の皆様へ / JP / EN / 検索 */
}
.siteHeader__navList {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.siteHeader__navListItem {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
}
.siteHeader__navListItem--external {
  margin-right: 10px;
}
.siteHeader__navListItem--insta {
  width: 30px;
}
.siteHeader__navListItem--youtube {
  width: 54px;
  margin-left: -2px;
}
.siteHeader__navListItem--lang + .siteHeader__navListItem--lang {
  position: relative;
  padding-left: 8px;
}
.siteHeader__navListItem--lang + .siteHeader__navListItem--lang::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 1px;
  height: 12px;
  background-color: #333;
  transform: translateY(-50%);
}
.siteHeader__navListItem--search {
  margin-left: 4px;
}
.siteHeader__navListLink {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteHeader__navListLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteHeader__navListLink {
  font-size: 14px;
  transition: 0.6s;
  /* お取引先の皆様へ・言語切替: hover で不透明度約70% */
}
@media screen and (min-width: 769px) {
  .siteHeader__navListLink:hover {
    opacity: 0.7;
  }
}
.siteHeader__navListLink {
  font-weight: 600;
  display: flex;
  align-items: center;
}
.siteHeader__navListLink::before {
  display: block;
  content: "";
  width: 18px;
  height: 18px;
  background: url(../images/common/user-icon.svg) center center/contain;
  background-repeat: no-repeat;
  margin-right: 3px;
  margin-top: 2px;
}
.siteHeader__navListLink--lang {
  font-size: 13px;
  letter-spacing: 0.05em;
}
.siteHeader__navListLink--lang.is-current {
  color: #333;
  font-weight: 700;
}
.siteHeader__navListLink--lang::before {
  display: none;
}
.siteHeader__navSearchBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: 0.6s;
}
.siteHeader__navSearchBtn:hover .siteHeader__navSearchImg, .siteHeader__navSearchBtn.is-active .siteHeader__navSearchImg {
  opacity: 1;
  /* monochromeアイコンを $blue01 (#002F7B) に近い色へ */
  filter: brightness(0) saturate(100%) invert(15%) sepia(85%) saturate(4500%) hue-rotate(210deg) brightness(0.94) contrast(1.02);
}
.siteHeader__navSearchImg {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.siteHeader {
  /* 下段：ナビ + ボタン群 */
}
.siteHeader__navBottom {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  width: 100%;
}
@media screen and (min-width: 1001px) and (max-width: 1200px) {
  .siteHeader__navBottom {
    flex-wrap: wrap;
    gap: 4px;
  }
}
.siteHeader__navTwoList {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
}
@media screen and (min-width: 1001px) and (max-width: 1200px) {
  .siteHeader__navTwoList {
    gap: 6px;
  }
}
.siteHeader__navTwoLink {
  position: relative;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteHeader__navTwoLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteHeader__navTwoLink {
  font-size: 14px;
  color: #333;
  font-weight: 700;
  gap: 4px;
  padding: 10px 0;
  transition: 0.6s;
}
@media screen and (min-width: 1001px) and (max-width: 1200px) {
  .siteHeader__navTwoLink {
    font-size: 12px;
  }
}
.siteHeader__navTwoLink::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -9px;
  height: 2px;
  background-color: #002F7B;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
}
.siteHeader__navTwoLink--external::before {
  content: "";
  display: inline-block;
  order: 2;
  width: 12px;
  height: 12px;
  margin-left: 4px;
  background-image: url("../images/common/icon_link.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.siteHeader__navTwoLink--external::after {
  right: 18px;
}
.siteHeader {
  /* メガメニューなし: hover で青のみ（下線なし） */
}
.siteHeader__navTwoListItem:hover > .siteHeader__navTwoLink, .siteHeader__navTwoListItem:focus-within > .siteHeader__navTwoLink {
  color: #002F7B;
}
.siteHeader__navTwoListItem--hasMega:hover > .siteHeader__navTwoLink, .siteHeader__navTwoListItem--hasMega:focus-within > .siteHeader__navTwoLink {
  color: #333;
}
.siteHeader__navTwoListItem--hasMega:hover > .siteHeader__navTwoLink::after, .siteHeader__navTwoListItem--hasMega:focus-within > .siteHeader__navTwoLink::after {
  transform: scaleX(1);
}
.siteHeader__navTwoListItem--megaTech.siteHeader__navTwoListItem--hasMega:hover > .siteHeader__navTwoLink::after, .siteHeader__navTwoListItem--megaTech.siteHeader__navTwoListItem--hasMega:focus-within > .siteHeader__navTwoLink::after {
  background-color: #5FA6EB;
}
.siteHeader__navTwoLinkIcon {
  display: none;
}
.siteHeader {
  /* メガメニュー */
}
.siteHeader__megaMenu {
  position: absolute;
  top: calc(100% + 1px);
  left: 0;
  right: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.3s ease, visibility 0s linear 0.3s, transform 0.3s ease;
  z-index: 10;
  background-color: #fff;
}
.siteHeader__megaMenu--tech {
  left: 50%;
  right: auto;
  width: 100%;
  padding: 0;
  transform: translate(-50%, -8px);
  background-color: #fff;
}
.siteHeader__navTwoListItem--hasMega:not(.siteHeader__navTwoListItem--megaTech):hover .siteHeader__megaMenu, .siteHeader__navTwoListItem--hasMega:not(.siteHeader__navTwoListItem--megaTech):focus-within .siteHeader__megaMenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  /* 開く時: 即visibleにしてフェードイン */
  transition: opacity 0.3s ease, visibility 0s linear 0s, transform 0.3s ease;
}
.siteHeader__navTwoListItem--megaTech.siteHeader__navTwoListItem--hasMega:hover .siteHeader__megaMenu--tech, .siteHeader__navTwoListItem--megaTech.siteHeader__navTwoListItem--hasMega:focus-within .siteHeader__megaMenu--tech {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
  transition: opacity 0.3s ease, visibility 0s linear 0s, transform 0.3s ease;
}
.siteHeader__megaMenuInner {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
  gap: 40px;
  padding: 30px 50px 40px;
  max-width: 1280px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .siteHeader__megaMenuInner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.siteHeader__megaMenuInner--tech {
  max-width: 1120px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .siteHeader__megaMenuInner--tech {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.siteHeader__megaMenuInner--tech {
  display: block;
  gap: 0;
  padding: 30px 20px 40px;
}
.siteHeader__megaMenuImgArea {
  flex-shrink: 0;
  width: 260px;
  height: 173px;
  border-radius: 8px;
  overflow: hidden;
  background-color: #E8E8E8;
}
.siteHeader__megaMenuImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.siteHeader {
  /* 企業情報メガメニュー：企業情報トップカード（FVカードと同じホバー挙動） */
}
.siteHeader__megaMenuRing {
  position: relative;
  display: block;
  flex-shrink: 0;
  width: 320px;
  height: 213.33px;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  align-self: center;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteHeader__megaMenuRing:hover .siteHeader__megaMenuRingImgArea .siteHeader__megaMenuImg {
    transform: scale(1.05);
  }
  .siteHeader__megaMenuRing:hover .siteHeader__megaMenuRingArrow {
    background-color: #fff;
    border-color: #fff;
  }
  .siteHeader__megaMenuRing:hover .siteHeader__megaMenuRingArrow::before, .siteHeader__megaMenuRing:hover .siteHeader__megaMenuRingArrow::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .siteHeader__megaMenuRing:hover .siteHeader__megaMenuRingArrow::before {
    left: 150%;
  }
  .siteHeader__megaMenuRing:hover .siteHeader__megaMenuRingArrow::after {
    left: 50%;
  }
}
.siteHeader__megaMenuRing:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 3px;
}
.siteHeader__megaMenuRing:focus-visible .siteHeader__megaMenuRingImgArea .siteHeader__megaMenuImg {
  transform: scale(1.05);
}
.siteHeader__megaMenuRing:focus-visible .siteHeader__megaMenuRingArrow {
  background-color: #fff;
  border-color: #fff;
}
.siteHeader__megaMenuRing:focus-visible .siteHeader__megaMenuRingArrow::before, .siteHeader__megaMenuRing:focus-visible .siteHeader__megaMenuRingArrow::after {
  background-image: url("../images/common/arr-icon.png");
}
.siteHeader__megaMenuRing:focus-visible .siteHeader__megaMenuRingArrow::before {
  left: 150%;
}
.siteHeader__megaMenuRing:focus-visible .siteHeader__megaMenuRingArrow::after {
  left: 50%;
}
.siteHeader__megaMenuRingImgArea {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.siteHeader__megaMenuRingImgArea .siteHeader__megaMenuImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.siteHeader__megaMenuRingTextArea {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 20px 24px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);
  z-index: 1;
}
.siteHeader__megaMenuRingLabel {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #fff;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteHeader__megaMenuRingLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteHeader__megaMenuRingLabel {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.siteHeader__megaMenuRingArrow {
  flex-shrink: 0;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.9);
  background-color: transparent;
  position: relative;
  transition: 0.6s;
}
.siteHeader__megaMenuRingArrow::before, .siteHeader__megaMenuRingArrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.siteHeader__megaMenuRingArrow::after {
  left: -50%;
}
.siteHeader__megaMenuBody {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
}
.siteHeader__megaMenuHeading {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 20px;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteHeader__megaMenuHeading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteHeader__megaMenuHeading {
  color: #333;
  font-weight: 700;
  padding-bottom: 6px;
  margin-bottom: 18px;
  align-self: flex-start;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteHeader__megaMenuHeading:hover {
    color: #002F7B;
  }
}
.siteHeader__megaMenuHeading::after {
  content: "→";
  display: inline-block;
  font-size: 18px;
  font-weight: 500;
}
.siteHeader__megaMenuList {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 40px;
}
.siteHeader__megaMenuItem {
  border-bottom: 1px solid #E8E8E8;
}
.siteHeader__megaMenuLink {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 6px 16px 8px;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteHeader__megaMenuLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteHeader__megaMenuLink {
  font-weight: 500;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteHeader__megaMenuLink:hover {
    color: #002F7B;
  }
}
.siteHeader__megaMenuLink::after {
  content: "→";
  font-size: 16px;
  font-weight: 500;
  color: #333;
  transition: 0.6s;
}
.siteHeader__megaMenuLink:hover::after {
  color: #002F7B;
  transform: translateX(4px);
}
.siteHeader__megaMenuGrid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 40px;
  row-gap: 0;
}
.siteHeader__megaMenuGridItem {
  margin: 0;
  border-bottom: 1px solid #ccc;
}
.siteHeader__megaMenuGridLink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  padding: 22px 4px 22px 2px;
  text-decoration: none;
  color: #002f7b;
  transition: color 0.25s ease;
}
@media screen and (min-width: 769px) {
  .siteHeader__megaMenuGridLink:hover {
    color: #002F7B;
  }
  .siteHeader__megaMenuGridLink:hover .siteHeader__megaMenuGridLinkArrow::before {
    left: 150%;
  }
  .siteHeader__megaMenuGridLink:hover .siteHeader__megaMenuGridLinkArrow::after {
    left: 50%;
  }
}
.siteHeader__megaMenuGridLink:focus-visible {
  color: #002F7B;
  outline: 2px solid #002F7B;
  outline-offset: 2px;
}
.siteHeader__megaMenuGridLink:focus-visible .siteHeader__megaMenuGridLinkArrow::before {
  left: 150%;
}
.siteHeader__megaMenuGridLink:focus-visible .siteHeader__megaMenuGridLinkArrow::after {
  left: 50%;
}
.siteHeader__megaMenuGridLinkText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteHeader__megaMenuGridLinkText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteHeader__megaMenuGridLinkText {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.siteHeader__megaMenuGridLinkArrow {
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.siteHeader__megaMenuGridLinkArrow::before, .siteHeader__megaMenuGridLinkArrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon02.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.siteHeader__megaMenuGridLinkArrow::after {
  left: -50%;
}
.siteHeader__megaMenuCards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media screen and (min-width: 1001px) and (max-width: 1200px) {
  .siteHeader__megaMenuCards {
    grid-template-columns: 1fr;
  }
}
.siteHeader__megaMenuCardsItem {
  margin: 0;
}
.siteHeader__megaMenuCard {
  display: flex;
  align-items: center;
  gap: 20px;
  width: 100%;
  padding: 28px;
  border-radius: 12px;
  background-color: #fff;
  border: 1px solid #ccc;
  box-sizing: border-box;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
@media screen and (min-width: 769px) {
  .siteHeader__megaMenuCard:hover .siteHeader__megaMenuCardArrow::before {
    left: 150%;
  }
  .siteHeader__megaMenuCard:hover .siteHeader__megaMenuCardArrow::after {
    left: 50%;
  }
}
.siteHeader__megaMenuCard:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 3px;
}
.siteHeader__megaMenuCard:focus-visible .siteHeader__megaMenuCardArrow::before {
  left: 150%;
}
.siteHeader__megaMenuCard:focus-visible .siteHeader__megaMenuCardArrow::after {
  left: 50%;
}
.siteHeader__megaMenuCardIcon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  overflow: hidden;
}
.siteHeader__megaMenuCardIconImg {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.siteHeader__megaMenuCardBody {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.siteHeader__megaMenuCardTitle {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.siteHeader__megaMenuCardDesc {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.03em;
  color: #555;
}
.siteHeader__megaMenuCardArrow {
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
}
.siteHeader__megaMenuCardArrow::before, .siteHeader__megaMenuCardArrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon02.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.siteHeader__megaMenuCardArrow::after {
  left: -50%;
}
.siteHeader__navBtnList {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
@media screen and (min-width: 1001px) and (max-width: 1200px) {
  .siteHeader__navBtnList {
    gap: 2px;
  }
}
.siteHeader__navBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 120px;
  padding: 9px 14px;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteHeader__navBtn {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteHeader__navBtn {
  font-weight: bold;
  border-radius: 30px;
  color: #002F7B;
  border: 1px solid #002F7B;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteHeader__navBtn:hover {
    color: #fff;
    background-color: #002F7B;
    border: 1px solid #002F7B;
  }
}
.siteHeader__navBtn--contact {
  color: #fff;
  border: 1px solid #ED6D46;
  background-color: #ED6D46;
}
@media screen and (min-width: 769px) {
  .siteHeader__navBtn--contact:hover {
    color: #ED6D46;
    background-color: #fff;
    border: 1px solid #ED6D46;
  }
}
@media screen and (min-width: 1001px) and (max-width: 1200px) {
  .siteHeader__navBtn {
    max-width: 100px;
    padding: 9px 5px;
    font-size: 12px;
  }
}
.siteHeader {
  /* サイト内検索パネル */
}
.siteHeader__searchPanel {
  width: 100%;
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  visibility: hidden;
  background-color: #fff;
  transition: max-height 0.35s ease, opacity 0.28s ease, visibility 0s linear 0.35s;
}
.siteHeader__searchPanel.is-open {
  max-height: 260px;
  opacity: 1;
  visibility: visible;
  transition: max-height 0.35s ease, opacity 0.28s ease, visibility 0s linear 0s;
}
@media screen and (max-width: 1000px) {
  .siteHeader__searchPanel {
    display: none;
  }
}
.siteHeader__searchPanelInner {
  position: relative;
  max-width: 1280px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .siteHeader__searchPanelInner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.siteHeader__searchPanelInner {
  padding: 74px 20px 80px;
}
.siteHeader__searchClose {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  background: transparent;
  color: #cccccc;
  cursor: pointer;
  transition: 0.6s;
}
.siteHeader__searchClose:hover {
  color: #666666;
}
.siteHeader__searchCloseSvg {
  display: block;
}
.siteHeader__searchForm {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 0;
  max-width: 960px;
  margin: 0 auto;
}
.siteHeader__searchLabel {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.siteHeader__searchField {
  flex: 1 1 200px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 14px 20px 40px;
  border: 1px solid #cccccc;
  border-right: none;
  border-radius: 4px 0 0 4px;
  background-color: #fff;
}
.siteHeader__searchFieldIcon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.siteHeader__searchFieldIcon img {
  width: 18px;
  height: 18px;
  display: block;
  object-fit: contain;
}
.siteHeader__searchInput {
  flex: 1 1 auto;
  background: transparent;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteHeader__searchInput {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteHeader__searchInput {
  color: #666;
  outline: none;
}
.siteHeader__searchInput::placeholder {
  color: #666666;
}
.siteHeader__searchSubmit {
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteHeader__searchSubmit {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteHeader__searchSubmit {
  flex-shrink: 0;
  padding: 12px 28px;
  border: none;
  border-radius: 0 4px 4px 0;
  background-color: #002F7B;
  color: #fff;
  font-weight: bold;
  cursor: pointer;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteHeader__searchSubmit:hover {
    opacity: 0.6;
  }
}
.siteHeader__menuToggle {
  display: none;
}
@media screen and (max-width: 1000px) {
  .siteHeader__menuToggle {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
}
.siteHeader__menuToggleBar {
  display: block;
  width: 32px;
  height: 1px;
  border-radius: 1px;
  background-color: #002F7B;
}
.siteHeader__drawer {
  display: none;
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawer {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    max-width: 100vw;
    height: 100%;
    min-height: 100dvh;
    z-index: 240;
    background-color: #fff;
    overflow-y: auto;
    overscroll-behavior: contain;
    transform: translateX(100%);
    visibility: hidden;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.35s;
  }
  .siteHeader__drawer.is-open {
    transform: translateX(0);
    visibility: visible;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0s;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerHead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 16px 12px;
    border-bottom: 1px solid #e0e4e8;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerLogoLink {
    display: block;
    flex: 1;
    transition: 0.6s;
  }
}
@media screen and (max-width: 1000px) and (min-width: 769px) {
  .siteHeader__drawerLogoLink:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerLogoImg {
    width: auto;
    max-width: 100%;
    height: 44px;
    object-fit: contain;
    object-position: left center;
    display: block;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerClose {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: #002F7B;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: 0.6s;
  }
  .siteHeader__drawerClose:hover {
    opacity: 0.75;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerCloseImg {
    display: block;
    width: 32px;
    height: 32px;
    object-fit: contain;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSearch {
    padding: 40px 20px 20px;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSearchLabel {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSearchField {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 16px;
    border: 1px solid #cfd6db;
    border-radius: 8px;
    background-color: #fff;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSearchIcon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .siteHeader__drawerSearchIcon img {
    width: 14px;
    height: 14px;
    display: block;
    object-fit: contain;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSearchInput {
    flex: 1 1 auto;
    border: none;
    background: transparent;
    font-size: 15px;
    line-height: 1.4;
    letter-spacing: 0.05em;
    text-align: left;
    color: #333;
    font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
    font-weight: 500;
    outline: none;
  }
}
@media screen and (max-width: 1000px) and (max-width: 768px) {
  .siteHeader__drawerSearchInput {
    font-size: 14px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSearchInput::placeholder {
    color: #888;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerNav {
    margin: 0;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerList {
    margin: 0;
    padding: 0 20px;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerItem {
    border-bottom: 1px solid #dde2e6;
  }
}
.siteHeader__drawerItem--accordion {
  padding: 0;
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerLink {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 16px 20px 0;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.5;
  }
  .siteHeader__drawerLink:active {
    opacity: 0.85;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerLink--external {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
  }
}
.siteHeader__drawerLink--external img {
  flex-shrink: 0;
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerChevron {
    flex-shrink: 0;
    align-self: center;
    position: relative;
    display: block;
    width: 22px;
    height: 22px;
    margin: 0;
    box-sizing: border-box;
  }
  .siteHeader__drawerChevron::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 12px;
    transform: translate(-50%, -50%);
    background-image: url("../images/common/sp_icon02.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerExternalIcon {
    display: block;
    align-self: center;
    flex: 0 0 12px;
    width: 12px;
    height: 12px;
    object-fit: contain;
    object-position: center;
  }
}
.siteHeader__drawerAccordionLabel {
  color: #333;
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerAccordionLabel {
    flex: 1;
    text-align: left;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: #333;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerAccordionBtn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 16px 20px 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.4;
    -webkit-tap-highlight-color: transparent;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerAccordionIcon {
    position: relative;
    flex-shrink: 0;
    align-self: center;
    width: 22px;
    height: 22px;
  }
  .siteHeader__drawerAccordionIcon::before, .siteHeader__drawerAccordionIcon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background-color: #002F7B;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  .siteHeader__drawerAccordionIcon::before {
    width: 12px;
    height: 2px;
    transform: translate(-50%, -50%);
  }
  .siteHeader__drawerAccordionIcon::after {
    width: 2px;
    height: 12px;
    transform: translate(-50%, -50%);
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerAccordionBtn.is-open .siteHeader__drawerAccordionIcon::after {
    transform: translate(-50%, -50%) scaleY(0);
    opacity: 0;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSub {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.35s ease;
  }
  .siteHeader__drawerSub.is-open {
    padding-bottom: 20px;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSubList {
    background-color: #EDF3F7;
    border-radius: 10px;
    padding: 4px 0;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSubItem {
    padding: 0 20px;
  }
  .siteHeader__drawerSubItem:last-child .siteHeader__drawerSubLink {
    border-bottom: none;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerSubLink {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #ccc;
    gap: 10px;
    padding: 16px 0 16px 0;
    font-size: 14px;
    text-decoration: none;
    transition: 0.6s;
  }
  .siteHeader__drawerSubLink:active {
    opacity: 0.85;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerActions {
    padding: 20px 16px 28px;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerActionsRow {
    display: flex;
    gap: 10px;
    margin-bottom: 12px;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 14px 12px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-align: center;
    text-decoration: none;
    transition: 0.6s;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerBtn--outline {
    flex: 1;
    border: 1px solid #002F7B;
    background: #fff;
    color: #002F7B;
  }
  .siteHeader__drawerBtn--outline:active {
    opacity: 0.9;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerBtn--primary {
    width: 100%;
    border: 1px solid #ed6d46;
    background-color: #ed6d46;
    color: #fff;
  }
  .siteHeader__drawerBtn--primary:active {
    opacity: 0.92;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerLang {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 16px 20px;
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-align: left;
    color: #333;
    font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
    font-weight: 500;
    font-size: 14px;
    color: #666666;
  }
}
@media screen and (max-width: 1000px) and (max-width: 768px) {
  .siteHeader__drawerLang {
    font-size: 14px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerLangLink {
    color: inherit;
    font-size: 12px;
    font-weight: 500;
    transition: 0.6s;
  }
  .siteHeader__drawerLangLink.is-current {
    font-weight: bold;
  }
  .siteHeader__drawerLangLink:not(.is-current):active {
    opacity: 0.7;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__drawerLangSep {
    color: #ccc;
    user-select: none;
  }
}
@media screen and (max-width: 1000px) {
  .siteHeader__wrap {
    padding: 8px 16px;
  }
  .siteHeader__logoImg {
    width: auto;
    max-height: 40px;
  }
  .siteHeader__navArea {
    display: none;
  }
}

/*====================================================================
siteFooter
====================================================================*/
.siteFooter {
  width: 100%;
  /*-----------------------------------------------
           上部 CTA お問い合わせ / お取引先の皆様へ
  ------------------------------------------------*/
}
.siteFooter__wrap {
  position: relative;
  padding: 100px 40px;
  background-image: url("../images/common/footer_haike.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrap {
    padding: 64px 20px;
    background-image: url("../images/common/footer_haike_sp.jpg");
  }
}
.siteFooter__wrapInner {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 0;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapInner {
    flex-direction: column;
    gap: 80px;
    position: relative;
  }
  .siteFooter__wrapInner::after {
    content: "";
    position: absolute;
    top: 264px;
    right: 0;
    width: 100%;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.2);
  }
}
.siteFooter__wrapBlock {
  flex: 1;
  padding: 0 40px;
  text-align: center;
  position: relative;
}
.siteFooter__wrapBlock:first-child::after {
  content: "";
  position: absolute;
  top: -30%;
  right: 0;
  width: 1px;
  height: 375px;
  background-color: rgba(255, 255, 255, 0.2);
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBlock:first-child::after {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBlock {
    padding: 0;
    max-width: 295px;
    margin: 0 auto;
  }
}
.siteFooter__wrapBlockTitleEn {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.1em;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBlockTitleEn {
    font-size: 14px;
  }
}
.siteFooter__wrapBlockTitle {
  font-size: 28px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: center;
  color: #fff;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBlockTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteFooter__wrapBlockTitle {
  font-weight: bold;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBlockTitle {
    font-size: 24px;
    margin-bottom: 24px;
  }
}
.siteFooter__wrapBlockText {
  font-size: 14px;
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: left;
  color: #fff;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBlockText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteFooter__wrapBlockText {
  max-width: 340px;
  margin: 0 auto 56px;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBlockText {
    font-size: 14px;
    margin-bottom: 32px;
  }
}
.siteFooter__wrapBtn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 330px;
  padding: 10px 16px 12px 32px;
  border-radius: 999px;
  letter-spacing: 0.05em;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBtn {
    max-width: 100%;
    padding: 11px 12px 11px 20px;
  }
}
.siteFooter__wrapBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBtnText {
    font-size: 16px;
  }
}
.siteFooter__wrapBtnIcon {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #fff;
  flex-shrink: 0;
  margin-left: 16px;
  transition: 0.6s;
}
.siteFooter__wrapBtnIconSvg {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 16px;
  height: 16px;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.siteFooter__wrapBtnIconSvg:nth-child(2) {
  left: -50%;
}
.siteFooter__wrapBtn--orange {
  background-color: #ed6d46;
  color: #fff;
  border: 1px solid transparent;
}
@media screen and (min-width: 769px) {
  .siteFooter__wrapBtn--orange:hover {
    color: #ed6d46;
    background-color: #fff;
    border: 1px solid #ed6d46;
  }
  .siteFooter__wrapBtn--orange:hover .siteFooter__wrapBtnIcon {
    background-color: #ed6d46;
  }
  .siteFooter__wrapBtn--orange:hover .siteFooter__wrapBtnIconSvg path {
    stroke: #fff;
  }
  .siteFooter__wrapBtn--orange:hover .siteFooter__wrapBtnIconSvg:first-child {
    left: 150%;
  }
  .siteFooter__wrapBtn--orange:hover .siteFooter__wrapBtnIconSvg:nth-child(2) {
    left: 50%;
  }
}
.siteFooter__wrapBtn--orange:focus-visible {
  color: #ed6d46;
  background-color: #fff;
  border: 1px solid #ed6d46;
}
.siteFooter__wrapBtn--orange:focus-visible .siteFooter__wrapBtnIcon {
  background-color: #ed6d46;
}
.siteFooter__wrapBtn--orange:focus-visible .siteFooter__wrapBtnIconSvg path {
  stroke: #fff;
}
.siteFooter__wrapBtn--orange:focus-visible .siteFooter__wrapBtnIconSvg:first-child {
  left: 150%;
}
.siteFooter__wrapBtn--orange:focus-visible .siteFooter__wrapBtnIconSvg:nth-child(2) {
  left: 50%;
}
.siteFooter__wrapBtn--white {
  background-color: #fff;
  color: #002f7b;
  border: 1px solid #fff;
}
.siteFooter__wrapBtn--white .siteFooter__wrapBtnIcon {
  background-color: #002f7b;
}
@media screen and (min-width: 769px) {
  .siteFooter__wrapBtn--white:hover {
    background-color: transparent;
    color: #fff;
    border: 1px solid #fff;
  }
  .siteFooter__wrapBtn--white:hover .siteFooter__wrapBtnIcon {
    background-color: #fff;
  }
  .siteFooter__wrapBtn--white:hover .siteFooter__wrapBtnIconSvg path {
    stroke: #002f7b;
  }
  .siteFooter__wrapBtn--white:hover .siteFooter__wrapBtnIconSvg:first-child {
    left: 150%;
  }
  .siteFooter__wrapBtn--white:hover .siteFooter__wrapBtnIconSvg:nth-child(2) {
    left: 50%;
  }
}
.siteFooter__wrapBtn--white:focus-visible {
  background-color: transparent;
  color: #fff;
  border: 1px solid #fff;
}
.siteFooter__wrapBtn--white:focus-visible .siteFooter__wrapBtnIcon {
  background-color: #fff;
}
.siteFooter__wrapBtn--white:focus-visible .siteFooter__wrapBtnIconSvg path {
  stroke: #002f7b;
}
.siteFooter__wrapBtn--white:focus-visible .siteFooter__wrapBtnIconSvg:first-child {
  left: 150%;
}
.siteFooter__wrapBtn--white:focus-visible .siteFooter__wrapBtnIconSvg:nth-child(2) {
  left: 50%;
}
.siteFooter__wrapBtn--sm {
  width: auto;
  max-width: none;
  padding: 6px 12px 6px 20px;
}
.siteFooter__wrapBtn--sm .siteFooter__wrapBtnText {
  font-size: 13px;
}
@media screen and (max-width: 768px) {
  .siteFooter__wrapBtn--sm .siteFooter__wrapBtnText {
    font-size: 12px;
  }
}
.siteFooter__wrapBtn--sm .siteFooter__wrapBtnIcon {
  width: 26px;
  height: 26px;
  margin-left: 10px;
}
.siteFooter__wrapBtn--sm .siteFooter__wrapBtnIconSvg {
  width: 12px;
  height: 12px;
}
.siteFooter {
  /*-----------------------------------------------
  ロゴ / ナビ4列＋バナー
  ------------------------------------------------*/
}
.siteFooter__contArea {
  background-color: #f0f4f8;
  padding: 64px 0 40px;
}
@media screen and (max-width: 768px) {
  .siteFooter__contArea {
    padding: 64px 20px 40px;
  }
}
.siteFooter__contInner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .siteFooter__contInner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.siteFooter__contInner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .siteFooter__contInner {
    gap: 24px;
    padding: 0;
  }
}
.siteFooter__lower {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
  width: 100%;
}
@media screen and (max-width: 1000px) {
  .siteFooter__lower {
    flex-direction: column;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__lower {
    flex-direction: column;
    gap: 0;
    border-top: 1px solid #cfd6db;
  }
}
.siteFooter__logoArea {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .siteFooter__logoArea {
    padding-left: 4px;
  }
}
.siteFooter__logoLink {
  display: inline-block;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteFooter__logoLink:hover {
    opacity: 0.7;
  }
}
.siteFooter__logoImg {
  width: 260px;
  height: auto;
}
@media screen and (max-width: 768px) {
  .siteFooter__logoImg {
    width: 180px;
  }
}
.siteFooter__nav {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  border-top: none;
  flex: 1;
  gap: clamp(32px, 7vw, 100px);
  flex-wrap: nowrap;
}
@media screen and (max-width: 768px) {
  .siteFooter__nav {
    display: contents;
  }
}
.siteFooter__navCol {
  flex: 0 1 auto;
}
.siteFooter__navCol--single {
  min-width: 140px;
}
.siteFooter__navCol--policy {
  flex: 0 0 auto;
  min-width: fit-content;
}
@media screen and (max-width: 768px) {
  .siteFooter__navCol--policy {
    display: block;
    width: 100%;
    padding: 20px 0 8px;
    border-top: 1px solid #e2e8ee;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__navCol {
    display: contents;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__navGroup {
    width: 100%;
    border-bottom: 1px solid #cfd6db;
  }
}
.siteFooter__navColTitle {
  margin-bottom: 12px;
  display: block;
}
.siteFooter__navColTitle--second {
  margin-top: 24px;
}
@media screen and (max-width: 768px) {
  .siteFooter__navColTitle {
    margin-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
  }
  .siteFooter__navColTitle--second {
    margin-top: 0;
  }
}
.siteFooter__navColTitleText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteFooter__navColTitleText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteFooter__navColTitleText {
  font-weight: bold;
  text-decoration: none;
  display: inline-block;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteFooter__navColTitleText:hover {
    color: #002F7B;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__navColTitleText {
    flex: 1;
    font-size: 16px;
    padding: 18px 4px;
  }
}
.siteFooter__navColTitleIcon {
  display: none;
}
@media screen and (max-width: 768px) {
  .siteFooter__navColTitleIcon {
    display: inline-block;
    position: relative;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    padding: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
  }
  .siteFooter__navColTitleIcon::before, .siteFooter__navColTitleIcon::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 4px;
    background-color: #002F7B;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  .siteFooter__navColTitleIcon::before {
    width: 14px;
    height: 2px;
    transform: translateY(-50%);
  }
  .siteFooter__navColTitleIcon::after {
    width: 2px;
    height: 14px;
    right: 10px;
    transform: translateY(-50%);
  }
  .siteFooter__navColTitleIcon.is-open::after {
    transform: translateY(-50%) scaleY(0);
    opacity: 0;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__navColTitle--noToggle {
    display: flex;
    width: 100%;
    align-items: center;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__navColTitle--noToggle .siteFooter__navColTitleText {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    box-sizing: border-box;
    padding: 18px 4px;
  }
  .siteFooter__navColTitle--noToggle .siteFooter__navColTitleText::after {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23002F7B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='2' y1='8' x2='14' y2='8'/><polyline points='9,3 14,8 9,13'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }
}
.siteFooter__navList {
  list-style: none;
  padding: 0;
  margin: 0;
}
.siteFooter__navList--single .siteFooter__navItem {
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .siteFooter__navList--single {
    display: contents;
  }
  .siteFooter__navList--single .siteFooter__navItem {
    width: 100%;
    margin-bottom: 0;
    border-bottom: 1px solid #cfd6db;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__navList {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.35s ease;
  }
  .siteFooter__navList.is-open {
    padding-bottom: 10px;
  }
}
.siteFooter__navItem {
  margin-bottom: 8px;
}
.siteFooter__navItem:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .siteFooter__navItem {
    margin-bottom: 0;
  }
}
.siteFooter__navLink {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteFooter__navLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteFooter__navLink {
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteFooter__navLink:hover {
    opacity: 0.6;
  }
}
.siteFooter__navLink {
  color: #666;
}
.siteFooter__navLink--bold {
  font-weight: bold;
  font-size: 16px;
  color: #333;
}
@media screen and (max-width: 768px) {
  .siteFooter__navLink--bold {
    font-size: 14px;
  }
}
.siteFooter__navLink--external {
  gap: 6px;
}
@media screen and (max-width: 768px) {
  .siteFooter__navLink {
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 4px;
    gap: 12px;
  }
  .siteFooter__navLink--bold:not(.siteFooter__navLink--external)::after {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23002F7B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='2' y1='8' x2='14' y2='8'/><polyline points='9,3 14,8 9,13'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__navGroup .siteFooter__navLink {
    padding: 8px 4px 8px 8px;
    display: flex;
    justify-content: flex-start;
    color: #6b6b6b;
    font-size: 14px;
    font-weight: 500;
  }
}
.siteFooter__navLinkIcon {
  width: 14px;
  height: auto;
  margin-left: 4px;
  margin-bottom: 5px;
}
@media screen and (max-width: 768px) {
  .siteFooter__navLinkIcon {
    width: 14px;
    margin-left: 0;
    flex-shrink: 0;
  }
}
.siteFooter__policyList {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@media screen and (max-width: 768px) {
  .siteFooter__policyList {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-top: 32px;
  }
}
.siteFooter__policyItem {
  display: block;
  margin: 0;
  padding: 0;
}
.siteFooter__policyLink {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #666666;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteFooter__policyLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteFooter__policyLink {
  font-weight: 500;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteFooter__policyLink:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__policyLink {
    font-size: 12px;
    color: #666;
  }
}
.siteFooter__contBanners {
  flex: 0 0 auto;
  width: 260px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .siteFooter__contBanners {
    width: 100%;
    max-width: 400px;
    margin: 32px auto 0;
    gap: 16px;
  }
}
.siteFooter__contBanner {
  display: block;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteFooter__contBanner:hover {
    opacity: 0.8;
  }
}
.siteFooter__contBannerImg {
  width: 100%;
  height: auto;
  display: block;
}
.siteFooter {
  /*-----------------------------------------------
  コピーライト
  ------------------------------------------------*/
}
.siteFooter__copyArea {
  background-color: #f0f4f8;
  border-top: 1px solid #cfd6db;
  padding: 16px 40px 24px;
}
@media screen and (max-width: 768px) {
  .siteFooter__copyArea {
    padding: 20px 20px;
  }
}
.siteFooter__copyInner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.siteFooter__copyInner:not(:has(.siteFooter__copyList)) {
  justify-content: center;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .siteFooter__copyInner {
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
  }
  .siteFooter__copyInner:not(:has(.siteFooter__copyList)) {
    align-items: center;
  }
}
.siteFooter__copyList {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 30px;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .siteFooter__copyList {
    gap: 16px;
  }
}
.siteFooter__copyItem {
  display: inline-block;
}
.siteFooter__copyLink {
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: left;
  color: #666;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .siteFooter__copyLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.siteFooter__copyLink {
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .siteFooter__copyLink:hover {
    color: #002F7B;
  }
}
@media screen and (max-width: 768px) {
  .siteFooter__copyLink {
    font-size: 12px;
  }
}
.siteFooter__copyText {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.05em;
  color: #666;
}
@media screen and (max-width: 768px) {
  .siteFooter__copyText {
    font-size: 12px;
  }
}

/*====================================================================
breadArea
====================================================================*/
.breadArea {
  max-width: 1080px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .breadArea {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media screen and (max-width: 768px) {
  .breadArea {
    display: none;
  }
}
.breadArea__innerArea {
  padding: 30px 0 14px;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea {
    padding: 10px 15px;
    background-color: #002F7B;
  }
}
.breadArea__innerArea__pageList {
  display: flex;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea__pageList {
    flex-wrap: wrap;
  }
}
.lang-en .breadArea__innerArea__pageList {
  flex-wrap: wrap;
}
.breadArea__innerArea__pageList__item__link, .breadArea__innerArea__pageList__item {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea__pageList__item__link, .breadArea__innerArea__pageList__item {
    font-size: 14px;
    line-height: 1.8;
  }
}
.breadArea__innerArea__pageList__item__link, .breadArea__innerArea__pageList__item {
  position: relative;
}
.breadArea__innerArea__pageList__item__link::before, .breadArea__innerArea__pageList__item::before {
  content: "";
  width: 10px;
  height: 10px;
  content: "";
  width: 7px;
  height: 7px;
  display: block;
  border-right: 1px solid #333;
  border-bottom: 1px solid #333;
  display: block;
  position: absolute;
  top: 31%;
  left: -22px;
  border-right: 1px solid #cccccc;
  border-bottom: 1px solid #cccccc;
  transform: translate(-100%, -50%);
  transform: rotate(-44deg);
}
.breadArea__innerArea__pageList__item__link:nth-child(1), .breadArea__innerArea__pageList__item:nth-child(1) {
  margin-left: 0;
}
.breadArea__innerArea__pageList__item__link:nth-child(1)::before, .breadArea__innerArea__pageList__item:nth-child(1)::before {
  display: none;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea__pageList__item__link, .breadArea__innerArea__pageList__item {
    color: #fff;
  }
  .breadArea__innerArea__pageList__item__link::before, .breadArea__innerArea__pageList__item::before {
    width: 5px;
    height: 5px;
    top: 5px;
    left: -14px;
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
  }
}
.breadArea__innerArea__pageList__item__link {
  display: block;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .breadArea__innerArea__pageList__item__link:hover {
    color: #002F7B;
  }
}
.breadArea__innerArea__pageList__item {
  margin-left: 30px;
}
.breadArea__innerArea__pageList__item br {
  display: none;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea__pageList__item {
    margin-left: 18px;
  }
}

.breadArea__innerArea__pageList {
  font-size: 15px;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea__pageList {
    color: #fff;
  }
}
.breadArea__innerArea__pageList span a span {
  display: block;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea__pageList span a span {
    font-size: 14px;
    line-height: 1.8;
  }
}
.breadArea__innerArea__pageList span a span {
  position: relative;
  padding: 0 10px;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .breadArea__innerArea__pageList span a span:hover {
    color: #002F7B;
  }
}
.breadArea__innerArea__pageList span a span {
  cursor: pointer;
}
.breadArea__innerArea__pageList span a span::before {
  content: "";
  width: 10px;
  height: 10px;
  content: "";
  width: 7px;
  height: 7px;
  display: block;
  border-right: 1px solid #333;
  border-bottom: 1px solid #333;
  display: block;
  position: absolute;
  top: 31%;
  left: -22px;
  border-right: 1px solid #cccccc;
  border-bottom: 1px solid #cccccc;
  transform: translate(-100%, -50%);
  transform: rotate(-44deg);
}
.breadArea__innerArea__pageList span a span:nth-child(1) {
  margin-left: 0;
}
.breadArea__innerArea__pageList span a span:nth-child(1)::before {
  display: none;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea__pageList span a span {
    color: #fff;
  }
  .breadArea__innerArea__pageList span a span::before {
    width: 5px;
    height: 5px;
    top: 5px;
    left: -14px;
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
  }
}

.breadArea__innerArea__pageList span span {
  display: block;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea__pageList span span {
    font-size: 14px;
    line-height: 1.8;
  }
}
.breadArea__innerArea__pageList span span {
  position: relative;
  padding: 0 10px;
}
.breadArea__innerArea__pageList span span::before {
  content: "";
  width: 10px;
  height: 10px;
  content: "";
  width: 7px;
  height: 7px;
  display: block;
  border-right: 1px solid #333;
  border-bottom: 1px solid #333;
  display: block;
  position: absolute;
  top: 31%;
  left: -22px;
  border-right: 1px solid #cccccc;
  border-bottom: 1px solid #cccccc;
  transform: translate(-100%, -50%);
  transform: rotate(-44deg);
}
.breadArea__innerArea__pageList span span:nth-child(1) {
  margin-left: 0;
}
.breadArea__innerArea__pageList span span:nth-child(1)::before {
  display: none;
}
@media screen and (max-width: 768px) {
  .breadArea__innerArea__pageList span span {
    color: #fff;
  }
  .breadArea__innerArea__pageList span span::before {
    width: 5px;
    height: 5px;
    top: 5px;
    left: -14px;
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
  }
}

/*====================================================================
.lowerBoxSec
====================================================================*/
.lowerBoxSec {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/lower/network/network-thumb01.jpg");
}
.lowerBoxSec__wrap {
  max-width: 1080px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__wrap {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.lowerBoxSec__wrap {
  padding: 160px 20px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__wrap {
    padding: 120px 20px 100px;
  }
}
.lowerBoxSec__textAreaTitle {
  font-size: 6rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__textAreaTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.lowerBoxSec__textAreaTitle {
  color: #fff;
  line-height: 1;
  margin-bottom: 10px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__textAreaTitle {
    line-height: 1;
    margin-bottom: 10px;
    font-weight: 500;
  }
}
.lowerBoxSec__textAreaText {
  font-size: 2.4rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__textAreaText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.lowerBoxSec__textAreaText {
  color: #fff;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__textAreaText {
    font-size: 1.8rem;
  }
}

/*====================================================================
.lowerThirdBoxSec
====================================================================*/
.lowerThirdBoxSec {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/lower/network/network-thumb01.jpg");
  margin-top: 110px;
}
@media screen and (max-width: 768px) {
  .lowerThirdBoxSec {
    margin-top: 0;
  }
}
.lowerThirdBoxSec__wrap {
  max-width: 1100px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .lowerThirdBoxSec__wrap {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.lowerThirdBoxSec__wrap {
  padding: 160px 20px;
}
@media screen and (max-width: 768px) {
  .lowerThirdBoxSec__wrap {
    padding: 70px 20px;
  }
}
.lowerThirdBoxSec__textAreaTitle {
  font-size: 3.6rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .lowerThirdBoxSec__textAreaTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.lowerThirdBoxSec__textAreaTitle {
  color: #fff;
  line-height: 1.4;
  font-weight: bold;
}
.lowerThirdBoxSec__textAreaText {
  font-size: 2.4rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .lowerThirdBoxSec__textAreaText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.lowerThirdBoxSec__textAreaText {
  color: #fff;
  font-weight: bold;
}

/*====================================================================
.errorPageSec — 404ページ コンテンツエリア
====================================================================*/
.errorPageSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .errorPageSec {
    padding: 60px 0 80px;
  }
}
.errorPageSec__inner {
  max-width: 1080px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .errorPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.errorPageSec__inner {
  text-align: center;
}
.errorPageSec__text {
  font-size: 20px;
  font-weight: bold;
  color: #333;
  line-height: 1.8;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .errorPageSec__text {
    font-size: 16px;
  }
}
.errorPageSec__subtext {
  font-size: 15px;
  color: #666666;
  line-height: 2;
  margin-bottom: 48px;
}
@media screen and (max-width: 768px) {
  .errorPageSec__subtext {
    font-size: 14px;
    margin-bottom: 40px;
  }
  .errorPageSec__subtext br {
    display: none;
  }
}
.errorPageSec__btnWrap {
  display: flex;
  justify-content: center;
}
.errorPageSec__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 240px;
  padding: 10px 10px 10px 20px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  background-color: #002F7B;
  text-decoration: none;
  isolation: isolate;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .errorPageSec__btn:hover .errorPageSec__btnIcon::before {
    left: 150%;
  }
  .errorPageSec__btn:hover .errorPageSec__btnIcon::after {
    left: 50%;
  }
}
.errorPageSec__btnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .errorPageSec__btnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.errorPageSec__btnText {
  font-size: 16px;
  color: #fff;
  position: relative;
  z-index: 1;
}
.errorPageSec__btnIcon {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #fff;
  flex-shrink: 0;
  z-index: 1;
}
.errorPageSec__btnIcon::before, .errorPageSec__btnIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-image: url("../images/common/arr-icon.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.errorPageSec__btnIcon::after {
  left: -50%;
}

/*====================================================================
errorPageContentSec
====================================================================*/
.errorPageContentSec {
  padding: 100px 0 30px;
}
@media screen and (max-width: 768px) {
  .errorPageContentSec {
    padding: 100px 0 50px;
  }
}
.errorPageContentSec {
  max-width: 1080px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .errorPageContentSec {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.errorPageContentSec__innerArea__text {
  font-size: 20px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .errorPageContentSec__innerArea__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.errorPageContentSec__innerArea__bnrArea {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: stretch;
  margin-top: 40px;
}
.errorPageContentSec__innerArea__bnrArea__bnr {
  width: 300px;
}
@media screen and (max-width: 768px) {
  .errorPageContentSec__innerArea__bnrArea__bnr {
    width: 100%;
  }
}

/*====================================================================
visionPageSec
====================================================================*/
.visionPageSec strong, .visionPageSec strong * {
  font-weight: bold;
}
.visionPageSec em, .visionPageSec em * {
  font-style: italic;
}
.visionPageSec ul {
  list-style-type: disc;
  padding-left: 20px;
}
.visionPageSec ol {
  list-style-type: decimal;
  padding-left: 20px;
}
.visionPageSec hr {
  width: 100%;
  height: 1px;
  display: block;
  background: #333;
}
.visionPageSec h1, .visionPageSec h2, .visionPageSec h3, .visionPageSec h4, .visionPageSec h5, .visionPageSec h6 {
  font-weight: bold;
}
.visionPageSec h1 {
  font-size: 32px;
  line-height: 1.4;
}
.visionPageSec h2 {
  margin-top: 2em;
  font-size: 27px;
  line-height: 1.6;
}
.visionPageSec h3 {
  font-size: 22px;
  line-height: 1.6;
}
.visionPageSec h4, .visionPageSec h5, .visionPageSec h6 {
  font-size: 16px;
  line-height: 1.6;
}
.visionPageSec h1 + h2,
.visionPageSec h2 + h3,
.visionPageSec h3 + h4,
.visionPageSec h4 + h5,
.visionPageSec h5 + h6 {
  margin-top: 0.5em;
}
.visionPageSec img {
  max-width: 100%;
  height: auto;
  width: 100%;
}
.visionPageSec img.alignnone, .visionPageSec img.alignleft {
  margin-top: 2em;
}
.visionPageSec img.aligncenter {
  display: block;
  margin: 2em auto 0;
}
.visionPageSec img.alignright {
  display: block;
  margin: 2em 0 0 auto;
}

blockquote {
  color: #191919;
  background-color: #f2f2f2;
  position: relative;
  margin-top: 2rem;
  padding: 20px 20px 20px 70px;
}
@media screen and (max-width: 768px) {
  blockquote {
    padding: 20px 40px 20px 50px;
  }
}

blockquote::before {
  color: #C8C8C8;
  content: "“";
  font-family: serif;
  font-size: 600%;
  left: 0;
  line-height: 1em;
  position: absolute;
  top: 0;
}

blockquote:after {
  color: #C8C8C8;
  content: "”";
  font-family: serif;
  font-size: 600%;
  line-height: 0;
  position: absolute;
  right: 0;
  bottom: -10px;
}

/*====================================================================
pagerAreaSec
====================================================================*/
.pagerAreaSec {
  padding-top: 10px;
  margin: 0px auto 20px;
}
.pagerAreaSec__list {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
  justify-content: center;
  align-items: center;
}
.pagerAreaSec__list__item {
  padding: 0 5px;
}
.pagerAreaSec__list__itemLink {
  display: block;
  text-align: center;
  width: 33px;
  padding: 4px 2px 4px 3px;
  color: #333;
  border: 1px solid #333;
  font-size: 2rem;
  line-height: 1;
}
.pagerAreaSec__list__itemLink.is-here {
  background-color: #E4E4E4;
}
@media screen and (min-width: 769px) {
  .pagerAreaSec__list__itemLink.is-here:hover {
    opacity: 0.6;
  }
}
.pagerAreaSec__list__itemLink {
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .pagerAreaSec__list__itemLink:hover {
    background-color: #E4E4E4;
  }
}

/*====================================================================
loadedArea
====================================================================*/
#loading {
  width: 100vw;
  height: 100vh;
  background-color: #383434;
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 400;
}

#loading img {
  width: 50vw;
  max-width: 928px;
}
@media screen and (max-width: 768px) {
  #loading img {
    width: 188px;
  }
}

/********************
loading effects
********************/
.loadingAnim {
  position: fixed;
  z-index: 600;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
}

.loadingAnim:before,
.loadingAnim:after {
  line-height: 1;
  position: fixed;
  z-index: 99;
  right: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 50%;
  margin-right: auto;
  margin-left: auto;
  content: " ";
  transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86) 0s;
  transition-delay: 0.3s;
  background-color: #383434;
}

.loadingAnim:before {
  top: 0;
}

.loadingAnim:after {
  bottom: 0;
}

.loaded .loadingAnim:before {
  height: 0;
  -webkit-transform: translateY(-1%);
  -ms-transform: translateY(-1%);
  transform: translateY(-1%);
}

.loaded .loadingAnim:after {
  height: 0;
  -webkit-transform: translateY(1%);
  -ms-transform: translateY(1%);
  transform: translateY(1%);
}

.loadingAnim_line {
  line-height: 1;
  position: fixed;
  z-index: 100;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: inline-block;
  overflow: hidden;
  width: 420px;
  height: 1.25em;
  margin: auto;
  transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86) 0s;
  transition-delay: 0.6s;
  text-align: center;
}

.loadingAnim_line:after {
  position: absolute;
  z-index: 100;
  top: 0;
  bottom: 0;
  left: 0;
  display: block;
  width: 0;
  height: 100%;
  margin: auto auto auto 0;
  content: " ";
  animation: loadingAnim 2s ease-in-out 0.1s infinite normal backwards;
  background-color: #fff;
  will-change: transform, width;
}

.loadingAnim_line:before {
  font-family: "Poppins", sans-serif;
  font-size: 1.25em;
  font-weight: bold;
  font-style: normal;
  line-height: 1;
  display: block;
  content: "";
  animation: loadingAnim_text 1s ease 0.1s infinite alternate both;
  letter-spacing: 0.5em;
  color: #fff;
  will-change: opacity;
}

.loaded .loadingAnim_line {
  overflow: hidden;
  height: 0;
}

.loaded .loadingAnim_line:after,
.loaded .loadingAnim_line:before {
  -webkit-animation: none;
  animation: none;
}

.loaded .loadingAnim_line:before {
  content: "";
}

/********************
animation setting
********************/
@-webkit-keyframes loadingAnim {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
    -webkit-transform: translate(100%);
    transform: translate(100%);
  }
}
@keyframes loadingAnim {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
    -webkit-transform: translate(100%);
    transform: translate(100%);
  }
}
@-webkit-keyframes loadingAnim_text {
  0% {
    opacity: 1;
    color: #cba166;
  }
  50% {
    color: #333;
  }
  100% {
    opacity: 0.5;
    color: #fff;
  }
}
@keyframes loadingAnim_text {
  0% {
    opacity: 1;
    color: #cba166;
  }
  50% {
    color: #333;
  }
  100% {
    opacity: 0.5;
    color: #fff;
  }
}
/* Loading背景画面設定　*/
#splash {
  /*fixedで全面に固定*/
  position: fixed;
  width: 100vw;
  height: 100vh;
  z-index: 999;
  top: 0;
  left: 0;
  background: #333;
  text-align: center;
  color: #fff;
  display: none;
}

/* Loading画像中央配置　*/
#splash_logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Loading アイコンの大きさ設定　*/
#splash_logo img {
  max-width: 888px;
  width: 42vw;
}

/* Loading画像中央配置　*/
#splash_text {
  position: absolute;
  top: 54%;
  left: 44%;
  transform: translate(-50%, -50%);
}

/* Loading アイコンの大きさ設定　*/
#splash_text img {
  max-width: 240px;
  width: 38vw;
}

.loading__warpText {
  z-index: 333;
}

/*====================================================================
tagArea
====================================================================*/
.tagArea__wrap {
  max-width: 1080px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .tagArea__wrap {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.tagArea__wrap {
  padding: 30px 35px;
}
.tagArea__list {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
  flex-wrap: wrap;
}
.tagArea__item {
  margin-right: 15px;
  margin-bottom: 5px;
}
.tagArea__link {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .tagArea__link {
    font-size: 14px;
    line-height: 1.8;
  }
}
.tagArea__link {
  transition: 0.6s;
  color: #273232;
}
@media screen and (min-width: 769px) {
  .tagArea__link:hover {
    color: #002F7B;
    border-bottom: 1px solid #002F7B;
  }
}

/*====================================================================
.sectionBlockTitle … ページセクション見出し（上ライン＋左アクセント）
他ページでも .sectionBlockTitle をそのまま利用可能
====================================================================*/
.sectionBlockTitle {
  position: relative;
  padding-top: 20px;
  border-top: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .sectionBlockTitle {
    padding-top: 16px;
  }
}
.sectionBlockTitle::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 40px;
  height: 3px;
  background-color: #002F7B;
}
.sectionBlockTitle__heading {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sectionBlockTitle__heading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sectionBlockTitle__heading {
  font-size: 32px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .sectionBlockTitle__heading {
    font-size: 24px;
    line-height: 1.5;
  }
}

/*====================================================================
.sectionCategoryHeading … カテゴリ帯見出し（左ライン＋淡色背景）
====================================================================*/
.sectionCategoryHeading {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sectionCategoryHeading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sectionCategoryHeading {
  padding: 8px 20px;
  background-color: #EDF3F7;
  border-left: 4px solid #00AB84;
  font-size: 28px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .sectionCategoryHeading {
    padding: 10px 16px;
    font-size: 20px;
  }
}

/*===================
シングルページネーション
===================*/
.singlePagination {
  width: 100%;
  padding: 0 0 120px;
  margin: 0 auto 0;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .singlePagination {
    padding-bottom: 64px;
  }
}
.singlePagination ul {
  width: calc(100% - 40px);
  max-width: 356px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.singlePagination ul li.back {
  width: 182px;
}
@media screen and (max-width: 768px) {
  .singlePagination ul li.back {
    width: 149px;
  }
}
@media screen and (max-width: 350px) {
  .singlePagination ul li.back {
    width: 120px;
  }
}
.singlePagination ul li.back a {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #002F7B;
  position: relative;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .singlePagination ul li.back a:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 768px) {
  .singlePagination ul li.back a {
    font-size: 14px;
  }
}
.singlePagination ul li.prev, .singlePagination ul li.next {
  position: relative;
}
.singlePagination ul li.prev a, .singlePagination ul li.next a {
  width: 100%;
  height: 100%;
  position: relative;
  transition: all 0.3s;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #002F7B;
  text-decoration: underline;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .singlePagination ul li.prev a:hover, .singlePagination ul li.next a:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 768px) {
  .singlePagination ul li.prev a, .singlePagination ul li.next a {
    font-size: 14px;
  }
}
.singlePagination ul li .btn {
  padding: 12px 0 12px 12px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
}
@media screen and (max-width: 768px) {
  .singlePagination ul li .btn {
    gap: 16px;
  }
}
@media screen and (max-width: 350px) {
  .singlePagination ul li .btn {
    gap: 9px;
    padding-left: 4px;
  }
}
.singlePagination ul li .back--icon {
  display: block;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #002F7B;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .singlePagination ul li .back--icon {
    width: 28px;
    height: 28px;
  }
}
.singlePagination ul li .back--icon span {
  display: block;
  width: 12px;
}
@media screen and (max-width: 768px) {
  .singlePagination ul li .back--icon span {
    width: 8px;
  }
}

/*====================================================================
.sectionList
====================================================================*/
.sectionList {
  list-style-type: disc;
  padding-left: 1.4em;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .sectionList {
    font-size: 14px;
  }
}
.sectionList__item {
  margin-top: 0.6em;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .sectionList__item {
    font-size: 14px;
  }
}
.sectionList__item::marker {
  color: #ED6D46;
}

/*====================================================================
topPageFvSec
====================================================================*/
.topPageFvSec {
  position: relative;
  overflow-x: hidden;
}
@media screen and (min-width: 769px) {
  .topPageFvSec {
    block-size: 100vh;
  }
}
.topPageFvSec__media {
  inline-size: 100%;
  display: grid;
  grid-template-columns: 2fr 1.1fr;
  gap: 6px;
  position: relative;
  opacity: 0;
  filter: brightness(1.25);
  transition: opacity 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), filter 1.8s 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
@media screen and (min-width: 769px) {
  .topPageFvSec__media {
    block-size: 100vh;
  }
}
@media screen and (max-width: 768px) {
  .topPageFvSec__media {
    block-size: auto;
    grid-template-columns: 1fr;
    grid-template-rows: auto 17vh;
  }
}
.topPageFvSec__media::before {
  content: "";
  inline-size: 100%;
  block-size: 100%;
  background: rgba(0, 0, 0, 0.1);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .topPageFvSec__media::before {
    background: rgba(0, 0, 0, 0.25);
  }
}
.topPageFvSec__media.is-visible {
  opacity: 1;
  filter: brightness(1);
}
.topPageFvSec__swiperFade {
  block-size: 100%;
  inline-size: 100%;
  position: relative;
  background-color: #000;
}
@media screen and (max-width: 768px) {
  .topPageFvSec__swiperFade {
    aspect-ratio: 750/736;
    block-size: auto;
  }
}
.topPageFvSec__swiperFade .swiper-wrapper p + p {
  margin-top: 0;
}
.topPageFvSec__swiperFade .swiper-slide {
  height: 100%;
}
.topPageFvSec__swiperFade .swiper-slide picture {
  display: block;
  width: 100%;
  height: 100%;
}
.topPageFvSec__swiperFade .swiper-slide img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  display: block;
}
.topPageFvSec__swiperSlide {
  block-size: 100%;
  inline-size: 100%;
  position: relative;
}
.topPageFvSec__swiperSlide .swiper-wrapper {
  transition-timing-function: linear;
}
.topPageFvSec__swiperSlide .swiper-slide {
  height: auto !important;
}
.topPageFvSec__swiperSlide .swiper-slide img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: center top;
}
@media screen and (max-width: 768px) {
  .topPageFvSec__swiperSlide .swiper-slide {
    width: 50.7% !important;
  }
}
.topPageFvSec__copy {
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  gap: clamp(1.6rem, 1.021rem + 2.47vw, 3.8rem);
  align-items: flex-start;
  position: absolute;
  bottom: 15.4%;
  left: max(48px, 4.75vw);
  z-index: 20;
}
@media screen and (max-width: 1079px) {
  .topPageFvSec__copy {
    inline-size: 36%;
  }
}
@media screen and (max-width: 768px) {
  .topPageFvSec__copy {
    inline-size: 85%;
    left: 1.6rem;
    bottom: calc(17vh + 6px + 1.6rem);
  }
}
.topPageFvSec__copyInner {
  display: flex;
  flex-direction: column;
  gap: clamp(1.4rem, 0.926rem + 2.021vw, 3.2rem);
  align-items: flex-start;
}
.topPageFvSec__copySub {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
  color: #fff;
  font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2.2rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.topPageFvSec__copySub.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.topPageFvSec__copyMain {
  font-size: clamp(3rem, 1.8rem + 4.8vw, 4.8rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  display: flex;
  flex-direction: column;
  gap: 0.28em;
  align-items: flex-start;
}
.topPageFvSec__copyLine {
  display: block;
  position: relative;
  width: fit-content;
}
.topPageFvSec__copyLine__band {
  position: absolute;
  inset: 0;
  background-color: #ed6d46;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.78s cubic-bezier(0.77, 0, 0.175, 1);
  z-index: 0;
}
.topPageFvSec__copyLine__text {
  display: block;
  position: relative;
  z-index: 1;
  font-size: 5rem;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  padding: 0.12em 0.48em 0.16em 0.36em;
  opacity: 0;
  transition: opacity 0.01s 0.48s;
}
@media screen and (max-width: 768px) {
  .topPageFvSec__copyLine__text {
    font-size: clamp(2.4rem, 6.5vw, 3.4rem);
    padding: 0.1em 0.4em 0.14em 0.3em;
  }
}
.topPageFvSec__copyLine.is-visible .topPageFvSec__copyLine__band {
  transform: scaleX(1);
}
.topPageFvSec__copyLine.is-visible .topPageFvSec__copyLine__text {
  opacity: 1;
}
.topPageFvSec__copyBand {
  display: inline-block;
  padding: 10px 20px 12px 16px;
  border-radius: 2px;
}
@media screen and (max-width: 768px) {
  .topPageFvSec__copyBand {
    padding: 8px 14px 10px 12px;
  }
}
.topPageFvSec__copyBand--orange {
  background-color: rgba(237, 109, 70, 0.85);
}
.topPageFvSec__copyBand--blue {
  background-color: rgba(0, 47, 123, 0.8);
}
.topPageFvSec__copyBand--green {
  background-color: rgba(0, 171, 132, 0.8);
}
.topPageFvSec__copyBand--none {
  background: none;
  padding: 0;
}
.topPageFvSec__copyBand .topPageFvSec__copyMain {
  text-shadow: none;
}
.topPageFvSec__copyText {
  font-size: clamp(0.9rem, 0.742rem + 0.674vw, 1.5rem);
  line-height: 1.8;
  color: #fff;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.topPageFvSec__copyText.is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media screen and (max-width: 768px) {
  .topPageFvSec__copyText {
    font-size: 1rem;
    text-shadow: 0 2.42px 12.08px rgba(0, 0, 0, 0.3);
  }
}
.topPageFvSec__bn {
  display: grid;
  grid-template-columns: 1fr 1.32fr;
  gap: 0;
  inline-size: clamp(20rem, 14.053rem + 25.375vw, 42.6rem);
  background: #fff;
  box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.14);
  border-radius: 6px;
  overflow: hidden;
  border: none;
  cursor: pointer;
  text-align: left;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.8s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.3s ease-out;
  padding: 10px;
}
@media screen and (min-width: 769px) {
  .topPageFvSec__bn {
    position: absolute;
    bottom: 4%;
    right: max(22px, 1vw);
    z-index: 20;
  }
}
@media screen and (max-width: 768px) {
  .topPageFvSec__bn {
    position: relative;
    inline-size: calc(100% - 3.2rem);
    margin: 1.6rem auto;
    border-radius: 8px;
  }
}
.topPageFvSec__bn.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.topPageFvSec__bn:hover {
  box-shadow: 0 6px 28px 0 rgba(0, 0, 0, 0.2);
}
.topPageFvSec__bn:hover .topPageFvSec__bnThumb {
  transform: scale(1.06);
}
.topPageFvSec__bn:hover .topPageFvSec__bnPlay {
  background-color: #fff;
}
.topPageFvSec__bn:hover .topPageFvSec__bnPlayTriangle {
  border-left-color: #333;
}
.topPageFvSec__bnMedia {
  position: relative;
  inline-size: 100%;
  aspect-ratio: 16/11;
  overflow: hidden;
}
.topPageFvSec__bnThumb {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.topPageFvSec__bnPlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, 0.8);
  background: rgba(0, 0, 0, 0.2);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(4px);
  transition: background 0.3s ease;
}
.topPageFvSec__bnPlayTriangle {
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 7px 0 7px 13px;
  border-color: transparent transparent transparent #fff;
  margin-left: 3px;
  transition: border-color 0.3s;
}
.topPageFvSec__bnTxt {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  justify-content: center;
  padding: 1.2rem 1.6rem;
}
.topPageFvSec__bnPic {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  color: #002F7B;
  letter-spacing: 0.06em;
}
.topPageFvSec__bnTitle {
  font-size: clamp(1.2rem, 0.9rem + 1.2vw, 1.8rem);
  font-weight: 700;
  line-height: 1.5;
  color: #333;
}
.topPageFvSec__modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 9999;
  display: none;
  opacity: 0;
  transition: opacity 0.3s;
}
.topPageFvSec__modal.is-active {
  display: block;
  opacity: 1;
}
.topPageFvSec__modalBg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  cursor: pointer;
}
.topPageFvSec__modalContent {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  max-width: 960px;
  z-index: 10;
}
.topPageFvSec__modalBox {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}
.topPageFvSec__modalBox iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.topPageFvSec__modalClose {
  position: absolute;
  top: -40px;
  right: 0;
  background: none;
  border: none;
  color: #fff;
  font-size: 3rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: opacity 0.2s;
}
.topPageFvSec__modalClose:hover {
  opacity: 0.7;
}
@media screen and (max-width: 768px) {
  .topPageFvSec__modalClose {
    top: -3.5rem;
    right: -1rem;
  }
}

/*====================================================================
topPagePickUpSec
====================================================================*/
.topPagePickUpSec {
  padding: 40px 0 96px 9.72vw;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .topPagePickUpSec {
    padding: 60px 0 60px 20px;
  }
}
.topPagePickUpSec__wrap {
  display: flex;
  align-items: flex-start;
  gap: 56px;
}
@media screen and (max-width: 768px) {
  .topPagePickUpSec__wrap {
    display: block;
  }
}
.topPagePickUpSec__head {
  flex-shrink: 0;
  padding-top: 10px;
}
@media screen and (max-width: 768px) {
  .topPagePickUpSec__head {
    width: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-right: 5%;
    margin-bottom: 30px;
  }
}
.topPagePickUpSec__wrapTitle {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 40px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .topPagePickUpSec__wrapTitle {
    font-size: 30px;
    margin-bottom: 0;
  }
}
.topPagePickUpSec__nav {
  display: flex;
  align-items: center;
  gap: 16px;
}
.topPagePickUpSec__navBtn {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1.5px solid #002F7B;
  background-color: #fff;
  cursor: pointer;
  position: relative;
  padding: 0;
  transition: 0.6s;
}
.topPagePickUpSec__navBtn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 12px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transform: translate(-50%, -50%);
  transition: 0.6s;
}
.topPagePickUpSec__navBtn--prev::before {
  transform: translate(-50%, -50%) rotate(180deg);
}
@media screen and (min-width: 769px) {
  .topPagePickUpSec__navBtn:hover {
    background-color: #002F7B;
  }
  .topPagePickUpSec__navBtn:hover::before {
    background-color: #fff;
  }
}
.topPagePickUpSec__navBtn.is-disabled {
  border-color: #E8E8E8;
  cursor: default;
  pointer-events: none;
}
.topPagePickUpSec__navBtn.is-disabled::before {
  background-color: #E8E8E8;
}
.topPagePickUpSec__sliderArea {
  flex: 1;
  min-width: 0;
}
.topPagePickUpSec__swiper {
  width: 100%;
}
.topPagePickUpSec__wrapInnerItem {
  width: 260px;
  height: auto;
  flex-shrink: 0;
}
.topPagePickUpSec__wrapInnerLink {
  display: block;
  text-decoration: none;
  color: #333;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .topPagePickUpSec__wrapInnerLink:hover .topPagePickUpSec__wrapInnerImg {
    transform: scale(1.05);
  }
}
.topPagePickUpSec__wrapInnerImgWrap {
  display: block;
  width: 260px;
  height: 173px;
  overflow: hidden;
  border-radius: 16px;
}
.topPagePickUpSec__wrapInnerImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: 0.6s;
}
.topPagePickUpSec__wrapInnerLinkTitle {
  margin-top: 16px;
  margin-left: 10px;
  font-size: 17px;
  line-height: 1.6;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPagePickUpSec__wrapInnerLinkTitle {
    font-size: 1.5rem;
    margin-top: 12px;
  }
}
.topPagePickUpSec__wrapInnerIcon {
  display: inline-flex;
  vertical-align: middle;
  margin-left: 6px;
}
.topPagePickUpSec__wrapInnerIcon img {
  width: 16px;
  height: 12px;
  object-fit: contain;
}

/*====================================================================
topPageNewsSec
====================================================================*/
.topPageNewsSec__wrap {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__wrap {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.topPageNewsSec__wrap {
  display: flex;
  align-items: flex-start;
  gap: 80px;
  margin-bottom: 96px;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__wrap {
    display: block;
    gap: 0;
    margin-bottom: 64px;
  }
}
.topPageNewsSec__head {
  flex-shrink: 0;
  width: 240px;
  padding-top: 10px;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__head {
    width: auto;
    margin-bottom: 30px;
  }
}
.topPageNewsSec__wrapTitleEn {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1;
  color: #002F7B;
  margin-bottom: 16px;
  position: relative;
  padding-left: 20px;
}
.topPageNewsSec__wrapTitleEn::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 14px;
  height: 14px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/common/news-icon.png");
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__wrapTitleEn {
    font-size: 12px;
    margin-bottom: 0px;
  }
}
.topPageNewsSec__wrapTitle {
  font-size: 36px;
  font-weight: bold;
  color: #002F7B;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__wrapTitle {
    font-size: 28px;
    margin-bottom: 32px;
  }
}
.topPageNewsSec__moreBtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 240px;
  padding: 10px 10px 10px 20px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  position: relative;
  background-color: #002F7B;
  text-decoration: none;
  isolation: isolate;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .topPageNewsSec__moreBtn:hover .topPageNewsSec__moreBtnIcon::before {
    left: 150%;
  }
  .topPageNewsSec__moreBtn:hover .topPageNewsSec__moreBtnIcon::after {
    left: 50%;
  }
}
.topPageNewsSec__moreBtn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__moreBtn {
    margin: 40px auto;
  }
}
.topPageNewsSec__moreBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__moreBtnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageNewsSec__moreBtnText {
  font-size: 16px;
  color: #fff;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__moreBtnText {
    font-size: 16px;
  }
}
.topPageNewsSec {
  /* 白い正円内で矢印2枚を左右スライド（矢印は arr-icon.png） */
}
.topPageNewsSec__moreBtnIcon {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #fff;
  flex-shrink: 0;
  z-index: 1;
}
.topPageNewsSec__moreBtnIcon::before, .topPageNewsSec__moreBtnIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.topPageNewsSec__moreBtnIcon::after {
  left: -50%;
}
.topPageNewsSec__body {
  flex: 1;
}
.topPageNewsSec__tabs {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #E8E8E8;
  margin-bottom: 8px;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .topPageNewsSec__tabs::-webkit-scrollbar {
    display: none;
  }
}
.topPageNewsSec__tab {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__tab {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageNewsSec__tab {
  flex: 1;
  padding: 18px 8px 16px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  color: #333;
  cursor: pointer;
  text-align: center;
  position: relative;
  margin-bottom: -1px;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__tab {
    flex: 0 0 auto;
    min-width: auto;
    font-size: 14px;
    padding: 4px 12px 12px;
  }
}
@media screen and (min-width: 769px) {
  .topPageNewsSec__tab--all:hover {
    color: #002F7B;
    font-weight: bold;
    border-bottom-color: #002F7B;
  }
}
.topPageNewsSec__tab--all.is-active {
  color: #002F7B;
  border-bottom-color: #002F7B;
  font-weight: bold;
}
@media screen and (min-width: 769px) {
  .topPageNewsSec__tab--news:hover {
    color: #2B8BB8;
    font-weight: bold;
    border-bottom-color: #2B8BB8;
  }
}
.topPageNewsSec__tab--news.is-active {
  color: #2B8BB8;
  border-bottom-color: #2B8BB8;
  font-weight: bold;
}
@media screen and (min-width: 769px) {
  .topPageNewsSec__tab--release:hover {
    color: #D15A5A;
    font-weight: bold;
    border-bottom-color: #D15A5A;
  }
}
.topPageNewsSec__tab--release.is-active {
  color: #D15A5A;
  border-bottom-color: #D15A5A;
  font-weight: bold;
}
@media screen and (min-width: 769px) {
  .topPageNewsSec__tab--ir:hover {
    color: #2FA37A;
    font-weight: bold;
    border-bottom-color: #2FA37A;
  }
}
.topPageNewsSec__tab--ir.is-active {
  color: #2FA37A;
  border-bottom-color: #2FA37A;
  font-weight: bold;
}
@media screen and (min-width: 769px) {
  .topPageNewsSec__tab--tech:hover {
    color: #D18A3E;
    font-weight: bold;
    border-bottom-color: #D18A3E;
  }
}
.topPageNewsSec__tab--tech.is-active {
  color: #D18A3E;
  border-bottom-color: #D18A3E;
  font-weight: bold;
}
.topPageNewsSec__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.topPageNewsSec__item {
  border-bottom: 1px solid #E8E8E8;
}
.topPageNewsSec__item.is-hidden {
  display: none;
}
.topPageNewsSec__itemLink {
  display: grid;
  grid-template-columns: 70px 85px 1fr 10px;
  align-items: center;
  gap: 24px;
  padding: 22px 0px;
  text-decoration: none;
  color: #333;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .topPageNewsSec__itemLink:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__itemLink {
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "date tag ." "text text arrow";
    column-gap: 12px;
    row-gap: 12px;
    padding: 18px 4px;
  }
}
.topPageNewsSec__itemDate {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 14px;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__itemDate {
    font-size: 11px;
    grid-area: date;
  }
}
.topPageNewsSec__itemTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 26px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__itemTag {
    width: 70px;
    height: 22px;
    font-size: 10px;
    grid-area: tag;
    justify-self: start;
  }
}
.topPageNewsSec__itemTag--news {
  background-color: #E3F3F7;
  color: #208AA7;
}
.topPageNewsSec__itemTag--release {
  background-color: #FCEDE9;
  color: #E06640;
}
.topPageNewsSec__itemTag--ir {
  background-color: #E4F8F3;
  color: #27846F;
}
.topPageNewsSec__itemTag--tech {
  background-color: #FBF4DA;
  color: #DB8A32;
}
.topPageNewsSec__itemText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__itemText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageNewsSec__itemText {
  font-size: 16px;
  line-height: 1.75;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__itemText {
    font-size: 12px;
    grid-area: text;
  }
}
.topPageNewsSec__itemNew {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 13px;
  font-weight: 700;
  color: #DB2C30;
  margin-left: 8px;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__itemNew {
    font-size: 11px;
    margin-left: 6px;
  }
}
.topPageNewsSec__itemIcon {
  justify-self: end;
  align-self: center;
  display: flex;
}
.topPageNewsSec__itemIcon img {
  width: 20px;
  height: 14px;
  object-fit: contain;
}
.topPageNewsSec__itemIcon--pdfIcon img {
  width: 30px;
  min-width: 30px;
  height: auto;
}
.topPageNewsSec__itemArrow {
  width: 20px;
  height: 10px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  justify-self: end;
}
@media screen and (max-width: 768px) {
  .topPageNewsSec__itemArrow {
    grid-area: arrow;
    align-self: center;
  }
}

/*====================================================================
topPageBusinessSec
====================================================================*/
.topPageBusinessSec {
  background: linear-gradient(to bottom, #EDF3F7 0%, rgba(237, 243, 247, 0) 100%);
  padding: 120px 0 0px;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec {
    padding: 64px 0 64px;
  }
}
.topPageBusinessSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.topPageBusinessSec__wrap {
  display: flex;
  align-items: flex-start;
  gap: 240px;
  margin-bottom: 56px;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__wrap {
    display: block;
    gap: 0;
    margin-bottom: 40px;
  }
}
.topPageBusinessSec__head {
  width: 170px;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__head {
    width: auto;
    margin-bottom: 24px;
  }
}
.topPageBusinessSec__wrapTitleEn {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1;
  color: #002F7B;
  margin-bottom: 4px;
  position: relative;
  padding-left: 20px;
}
.topPageBusinessSec__wrapTitleEn::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 14px;
  height: 14px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/common/news-icon.png");
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__wrapTitleEn {
    font-size: 12px;
    margin-bottom: 12px;
  }
}
.topPageBusinessSec__wrapTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__wrapTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageBusinessSec__wrapTitle {
  font-size: 36px;
  font-weight: bold;
  color: #002F7B;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__wrapTitle {
    font-size: 28px;
  }
}
.topPageBusinessSec__wrapText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__wrapText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageBusinessSec__wrapText {
  flex: 1;
  font-size: 16px;
  line-height: 1.75;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__wrapText {
    font-size: 16px;
    line-height: 1.75;
  }
}
.topPageBusinessSec__Inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__Inner {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-bottom: 16px;
  }
}
.topPageBusinessSec__InnerItem {
  position: relative;
  display: block;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  aspect-ratio: 360/360;
  transition: 0.6s;
}
.topPageBusinessSec__InnerItem::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.55) 100%);
  pointer-events: none;
  z-index: 1;
}
@media screen and (min-width: 769px) {
  .topPageBusinessSec__InnerItem:hover .topPageBusinessSec__InnerItemImg {
    transform: scale(1.05);
  }
  .topPageBusinessSec__InnerItem:hover .topPageBusinessSec__arrow {
    background-color: #fff;
    border-color: #fff;
  }
  .topPageBusinessSec__InnerItem:hover .topPageBusinessSec__arrow::before, .topPageBusinessSec__InnerItem:hover .topPageBusinessSec__arrow::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .topPageBusinessSec__InnerItem:hover .topPageBusinessSec__arrow::before {
    left: 150%;
  }
  .topPageBusinessSec__InnerItem:hover .topPageBusinessSec__arrow::after {
    left: 50%;
  }
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__InnerItem {
    aspect-ratio: 335/180;
    border-radius: 10px;
  }
}
.topPageBusinessSec__InnerItemImgArea {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.topPageBusinessSec__InnerItemImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: 0.6s;
}
.topPageBusinessSec__InnerItemBody {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 20px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__InnerItemBody {
    left: 20px;
    right: 20px;
    bottom: 16px;
  }
}
.topPageBusinessSec__InnerItemTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #fff;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__InnerItemTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageBusinessSec__InnerItemTitle {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__InnerItemTitle {
    font-size: 18px;
  }
}
.topPageBusinessSec__cont4Area {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__cont4Area {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 20px;
    column-gap: 15px;
  }
}
.topPageBusinessSec__cont4Item {
  position: relative;
  display: block;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  aspect-ratio: 260/260;
  transition: 0.6s;
}
.topPageBusinessSec__cont4Item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.55) 100%);
  pointer-events: none;
  z-index: 1;
}
@media screen and (min-width: 769px) {
  .topPageBusinessSec__cont4Item:hover .topPageBusinessSec__cont4ItemImg {
    transform: scale(1.05);
  }
  .topPageBusinessSec__cont4Item:hover .topPageBusinessSec__arrow {
    background-color: #fff;
    border-color: #fff;
  }
  .topPageBusinessSec__cont4Item:hover .topPageBusinessSec__arrow::before, .topPageBusinessSec__cont4Item:hover .topPageBusinessSec__arrow::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .topPageBusinessSec__cont4Item:hover .topPageBusinessSec__arrow::before {
    left: 150%;
  }
  .topPageBusinessSec__cont4Item:hover .topPageBusinessSec__arrow::after {
    left: 50%;
  }
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__cont4Item {
    aspect-ratio: 160/160;
    border-radius: 10px;
  }
}
.topPageBusinessSec__cont4ItemImgArea {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.topPageBusinessSec__cont4ItemImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: 0.6s;
}
.topPageBusinessSec__cont4ItemBody {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 18px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__cont4ItemBody {
    left: 10px;
    right: 10px;
    bottom: 12px;
    gap: 8px;
  }
}
.topPageBusinessSec__cont4ItemTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #fff;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__cont4ItemTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageBusinessSec__cont4ItemTitle {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__cont4ItemTitle {
    font-size: 14px;
    letter-spacing: 0;
  }
}
.topPageBusinessSec {
  /* 通常: 白矢印画像／hover: 白円 + 紺矢印画像（スライドは共通） */
}
.topPageBusinessSec__arrow {
  flex-shrink: 0;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.9);
  background-color: transparent;
  position: relative;
  transition: 0.6s;
}
.topPageBusinessSec__arrow::before, .topPageBusinessSec__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.topPageBusinessSec__arrow::after {
  left: -50%;
}
@media screen and (max-width: 768px) {
  .topPageBusinessSec__arrow {
    width: 30px;
    height: 30px;
  }
  .topPageBusinessSec__arrow::before, .topPageBusinessSec__arrow::after {
    width: 11px;
    height: 11px;
  }
  .topPageBusinessSec__arrow.u-4v {
    width: 18px;
    height: 18px;
  }
  .topPageBusinessSec__arrow.u-4v::before, .topPageBusinessSec__arrow.u-4v::after {
    width: 9px;
    height: 9px;
  }
}

/*====================================================================
topPageFacilitySec
====================================================================*/
.topPageFacilitySec {
  overflow: hidden;
}
.topPageFacilitySec__inner {
  position: relative;
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.topPageFacilitySec__inner {
  height: 620px;
  display: flex;
  align-items: center;
  gap: 60px;
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__inner {
    display: block;
    gap: 0;
    height: auto;
  }
}
.topPageFacilitySec__map {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.topPageFacilitySec__map svg {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__map {
    display: none;
  }
}
.topPageFacilitySec__markerHit {
  pointer-events: auto;
  cursor: pointer;
  outline: none;
}
@media (hover: hover) {
  .topPageFacilitySec__markerHit:hover .topPageFacilitySec__markerPin {
    transform: scale(1.18);
  }
}
.topPageFacilitySec__markerHit:focus-visible {
  outline: 2px solid #002f7b;
  outline-offset: 3px;
}
.topPageFacilitySec__marker {
  pointer-events: auto;
}
.topPageFacilitySec__markerPin {
  transform-origin: center;
  transform-box: fill-box;
  transition: transform 0.28s ease;
}
.topPageFacilitySec__body {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: 460px;
  padding-bottom: 90px;
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__body {
    width: auto;
    padding-bottom: 64px;
  }
}
.topPageFacilitySec__wrapTitle {
  font-size: 28px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__wrapTitle {
    font-size: 24px;
    margin-bottom: 24px;
  }
}
.topPageFacilitySec__wrapText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__wrapText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageFacilitySec__wrapText {
  font-size: 16px;
  line-height: 1.75;
  margin-bottom: 56px;
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__wrapText {
    font-size: 16px;
    line-height: 1.75;
    margin-bottom: 40px;
  }
}
.topPageFacilitySec__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 240px;
  padding: 10px 10px 10px 28px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  background-color: #fff;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .topPageFacilitySec__btn:hover {
    background-color: #002F7B;
  }
  .topPageFacilitySec__btn:hover .topPageFacilitySec__btnText {
    color: #fff;
  }
  .topPageFacilitySec__btn:hover .topPageFacilitySec__btnIcon {
    background-color: #fff;
  }
  .topPageFacilitySec__btn:hover .topPageFacilitySec__btnIcon::before, .topPageFacilitySec__btn:hover .topPageFacilitySec__btnIcon::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .topPageFacilitySec__btn:hover .topPageFacilitySec__btnIcon::before {
    left: 150%;
  }
  .topPageFacilitySec__btn:hover .topPageFacilitySec__btnIcon::after {
    left: 50%;
  }
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__btn {
    width: 240px;
    padding: 10px 10px 10px 24px;
    margin: 0 auto;
  }
}
.topPageFacilitySec__btnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__btnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageFacilitySec__btnText {
  font-size: 16px;
  color: #002F7B;
  font-weight: 500;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .topPageFacilitySec__btnText {
    font-size: 14px;
  }
}
.topPageFacilitySec__btnIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #002F7B;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  transition: background-color 0.3s ease;
}
.topPageFacilitySec__btnIcon::before, .topPageFacilitySec__btnIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.topPageFacilitySec__btnIcon::after {
  left: -50%;
}

/*====================================================================
topPageDatabaseSec
====================================================================*/
.topPageDatabaseSec {
  padding-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec {
    margin-bottom: 64px;
  }
}
.topPageDatabaseSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.topPageDatabaseSec__body {
  background-color: #EDF3F7;
  border-radius: 16px;
  padding: 80px 100px;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__body {
    padding: 40px 20px;
    border-radius: 0;
  }
}
.topPageDatabaseSec__head {
  text-align: center;
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__head {
    margin-bottom: 32px;
  }
}
.topPageDatabaseSec__wrapTitleEn {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.1em;
  color: #002F7B;
  margin-bottom: 4px;
  position: relative;
  display: inline-block;
  padding-left: 20px;
}
.topPageDatabaseSec__wrapTitleEn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/common/news-icon.png");
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__wrapTitleEn {
    font-size: 12px;
    margin-bottom: 0;
  }
}
.topPageDatabaseSec__wrapTitle {
  font-size: 36px;
  font-weight: bold;
  color: #002F7B;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__wrapTitle {
    font-size: 28px;
  }
}
.topPageDatabaseSec__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__cards {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 24px;
  }
}
.topPageDatabaseSec__card {
  display: flex;
  align-items: center;
  gap: 20px;
  background-color: #fff;
  border-radius: 12px;
  padding: 28px;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
@media screen and (min-width: 769px) {
  .topPageDatabaseSec__card:hover .topPageDatabaseSec__cardArrow::before {
    left: 150%;
  }
  .topPageDatabaseSec__card:hover .topPageDatabaseSec__cardArrow::after {
    left: 50%;
  }
}
.topPageDatabaseSec__card:focus-visible .topPageDatabaseSec__cardArrow::before {
  left: 150%;
}
.topPageDatabaseSec__card:focus-visible .topPageDatabaseSec__cardArrow::after {
  left: 50%;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__card {
    gap: 12px;
    padding: 14px;
  }
}
.topPageDatabaseSec__cardIcon {
  flex-shrink: 0;
  width: 60px;
  height: 60px;
  border-radius: 50%;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__cardIcon {
    width: 40px;
    height: 40px;
  }
}
.topPageDatabaseSec__cardBody {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.topPageDatabaseSec__cardTitle {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__cardTitle {
    font-size: 16px;
  }
}
.topPageDatabaseSec__cardDesc {
  font-size: 13px;
  color: #555;
  line-height: 1.5;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__cardDesc {
    font-size: 12px;
  }
}
.topPageDatabaseSec__cardArrow {
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.topPageDatabaseSec__cardArrow::before, .topPageDatabaseSec__cardArrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon02.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.topPageDatabaseSec__cardArrow::after {
  left: -50%;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__cardArrow {
    width: 20px;
    height: 20px;
  }
  .topPageDatabaseSec__cardArrow::before, .topPageDatabaseSec__cardArrow::after {
    width: 12px;
    height: 12px;
  }
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__search {
    margin-top: 0;
  }
}
.topPageDatabaseSec__searchLabel {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__searchLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageDatabaseSec__searchLabel {
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.05em;
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__searchLabel {
    font-size: 16px;
    margin-bottom: 10px;
  }
}
.topPageDatabaseSec__searchForm {
  display: flex;
  align-items: stretch;
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 18px;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__searchForm {
    border-radius: 6px;
  }
}
.topPageDatabaseSec__searchInputWrap {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
}
.topPageDatabaseSec__searchIcon {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  pointer-events: none;
}
.topPageDatabaseSec__searchIcon svg {
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__searchIcon {
    left: 14px;
    width: 18px;
    height: 18px;
  }
}
.topPageDatabaseSec__searchInput {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__searchInput {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageDatabaseSec__searchInput {
  width: 100%;
  background: transparent;
  padding: 20px 20px 20px 50px;
  font-size: 16px;
  color: #666666;
  letter-spacing: 0.02em;
  font-family: inherit;
}
.topPageDatabaseSec__searchInput::placeholder {
  color: #666666;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__searchInput {
    padding: 14px 14px 14px 40px;
    font-size: 14px;
  }
}
.topPageDatabaseSec__searchBtn {
  flex-shrink: 0;
  cursor: pointer;
  background-color: #002F7B;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.1em;
  padding: 0 25px;
  transition: background-color 0.25s ease;
  font-family: inherit;
}
@media screen and (min-width: 769px) {
  .topPageDatabaseSec__searchBtn:hover {
    background-color: #002F7B;
  }
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__searchBtn {
    display: none;
  }
}
.topPageDatabaseSec__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.topPageDatabaseSec__tag {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__tag {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageDatabaseSec__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 16px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  font-size: 14px;
  color: #002F7B;
  background-color: #fff;
  letter-spacing: 0.03em;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .topPageDatabaseSec__tag:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 768px) {
  .topPageDatabaseSec__tag {
    font-size: 12px;
    padding: 5px 14px;
  }
}

/*====================================================================
topPageNetworkSec
====================================================================*/
.topPageNetworkSec {
  padding: 100px 0 0;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec {
    padding: 64px 0 0;
  }
}
.topPageNetworkSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.topPageNetworkSec__wrap {
  display: flex;
  justify-content: space-between;
  gap: 110px;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__wrap {
    display: block;
    gap: 0;
  }
}
.topPageNetworkSec__body {
  flex: 1;
  max-width: 560px;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__body {
    max-width: 100%;
    margin-bottom: 32px;
  }
}
.topPageNetworkSec__wrapTitleEn {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1;
  color: #002F7B;
  margin-bottom: 4px;
  position: relative;
  padding-left: 20px;
}
.topPageNetworkSec__wrapTitleEn::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 14px;
  height: 14px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/common/news-icon.png");
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__wrapTitleEn {
    font-size: 12px;
    margin-bottom: 12px;
  }
}
.topPageNetworkSec__wrapTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__wrapTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageNetworkSec__wrapTitle {
  font-size: 36px;
  font-weight: bold;
  color: #002F7B;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__wrapTitle {
    font-size: 26px;
    margin-bottom: 20px;
  }
}
.topPageNetworkSec__text {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageNetworkSec__text {
  font-size: 16px;
  line-height: 1.75;
  margin-bottom: 56px;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__text {
    font-size: 14px;
    margin-bottom: 28px;
  }
}
.topPageNetworkSec__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 40px;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__list {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 20px;
    row-gap: 0;
  }
}
.topPageNetworkSec__listItem {
  border-bottom: 1px solid #ccc;
}
.topPageNetworkSec__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  padding: 24px 0;
  text-decoration: none;
  color: #002F7B;
  transition: color 0.25s ease;
}
@media screen and (min-width: 769px) {
  .topPageNetworkSec__link:hover {
    color: #002F7B;
  }
  .topPageNetworkSec__link:hover .topPageNetworkSec__linkArrow::before {
    left: 150%;
  }
  .topPageNetworkSec__link:hover .topPageNetworkSec__linkArrow::after {
    left: 50%;
  }
}
.topPageNetworkSec__link:focus-visible {
  color: #002F7B;
}
.topPageNetworkSec__link:focus-visible .topPageNetworkSec__linkArrow::before {
  left: 150%;
}
.topPageNetworkSec__link:focus-visible .topPageNetworkSec__linkArrow::after {
  left: 50%;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__link {
    padding: 16px 4px;
  }
}
.topPageNetworkSec__linkText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__linkText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageNetworkSec__linkText {
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__linkText {
    font-size: 15px;
  }
}
.topPageNetworkSec__linkArrow {
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.topPageNetworkSec__linkArrow::before, .topPageNetworkSec__linkArrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon02.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.topPageNetworkSec__linkArrow::after {
  left: -50%;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__linkArrow {
    width: 20px;
    height: 20px;
  }
  .topPageNetworkSec__linkArrow::before, .topPageNetworkSec__linkArrow::after {
    width: 12px;
    height: 12px;
  }
}
.topPageNetworkSec__imgArea {
  flex-shrink: 0;
  width: 480px;
  border-radius: 16px;
  overflow: hidden;
  line-height: 0;
}
@media screen and (max-width: 768px) {
  .topPageNetworkSec__imgArea {
    width: 100%;
    border-radius: 12px;
  }
}
.topPageNetworkSec__img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/*====================================================================
topPageRecruitSec
====================================================================*/
.topPageRecruitSec {
  position: relative;
  background: #D3E4F6;
  padding: 110px 0 120px;
  overflow: hidden;
  isolation: isolate;
}
.topPageRecruitSec::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 64%;
  width: 563px;
  height: 240px;
  transform: translateX(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/toppage/toppage-img34.png");
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec {
    padding: 40px 0;
  }
  .topPageRecruitSec::before {
    width: 375px;
    height: 596px;
    left: 0;
    bottom: 0;
    transform: translateX(0%);
    background-image: url("../images/toppage/toppage-img34_sp.png");
  }
  .topPageRecruitSec::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 680px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-image: url("../images/toppage/toppage-img34_sp02.png");
    z-index: 1;
  }
}
.topPageRecruitSec__bgText {
  position: absolute;
  bottom: -30px;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 238px;
  letter-spacing: 0;
  color: rgba(255, 255, 255, 0.3);
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__bgText {
    font-size: 128px;
    bottom: 170px;
  }
}
.topPageRecruitSec__slider {
  position: absolute;
  top: 0;
  width: 280px;
  height: 100%;
  overflow: hidden;
  z-index: 2;
}
.topPageRecruitSec__slider--left {
  left: 7.5%;
}
.topPageRecruitSec__slider--right {
  right: 7.5%;
}
@media screen and (max-width: 1350px) {
  .topPageRecruitSec__slider {
    width: 200px;
  }
  .topPageRecruitSec__slider--left {
    left: 2.5%;
  }
  .topPageRecruitSec__slider--right {
    right: 2.5%;
  }
}
@media screen and (max-width: 1000px) {
  .topPageRecruitSec__slider {
    width: 160px;
  }
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__slider {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    height: auto;
  }
  .topPageRecruitSec__slider--left {
    left: 0;
  }
  .topPageRecruitSec__slider--right {
    right: 0;
  }
}
.topPageRecruitSec__sliderLists {
  display: flex;
  flex-direction: column;
  row-gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0;
  height: fit-content;
  width: fit-content;
}
.topPageRecruitSec__sliderLists.animating {
  will-change: transform;
}
.js-recruitSliderDown .topPageRecruitSec__sliderLists.animating {
  animation: topPageRecruitSliderDown 28s linear infinite;
}
.js-recruitSliderUp .topPageRecruitSec__sliderLists.animating {
  animation: topPageRecruitSliderUp 28s linear infinite;
}
.topPageRecruitSec__sliderLists:hover {
  animation-play-state: paused;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__sliderLists {
    flex-direction: row;
    row-gap: 0;
    column-gap: 12px;
  }
  .js-recruitSliderDown .topPageRecruitSec__sliderLists.animating {
    animation-name: topPageRecruitSliderLeft;
  }
  .js-recruitSliderUp .topPageRecruitSec__sliderLists.animating {
    animation-name: topPageRecruitSliderRight;
  }
}
.topPageRecruitSec__sliderItem {
  width: 100%;
  border-radius: 14px;
  overflow: hidden;
  line-height: 0;
  box-shadow: 0 10px 30px rgba(10, 40, 90, 0.08);
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__sliderItem {
    flex-shrink: 0;
    width: 160px;
    border-radius: 10px;
  }
}
.topPageRecruitSec__sliderImg {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.topPageRecruitSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.topPageRecruitSec__inner {
  position: relative;
  z-index: 2;
}
.topPageRecruitSec__body {
  max-width: 520px;
  margin: 0 auto;
  text-align: center;
  padding: 20px 0;
}
@media screen and (max-width: 1000px) {
  .topPageRecruitSec__body {
    max-width: 370px;
  }
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__body {
    max-width: none;
    padding: 64px 0 68px;
  }
}
.topPageRecruitSec__wrapTitleEn {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1;
  color: #002F7B;
  margin-bottom: 4px;
  position: relative;
  display: inline-block;
  padding-left: 20px;
}
.topPageRecruitSec__wrapTitleEn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url("../images/common/news-icon.png");
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__wrapTitleEn {
    font-size: 12px;
    margin-bottom: 6px;
  }
}
.topPageRecruitSec__wrapTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__wrapTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageRecruitSec__wrapTitle {
  font-size: 36px;
  font-weight: bold;
  color: #002F7B;
  line-height: 1.2;
  letter-spacing: 0.05em;
  margin-bottom: 30px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__wrapTitle {
    font-size: 26px;
    margin-bottom: 24px;
    text-align: center;
  }
}
.topPageRecruitSec .fv-section__txt-handwriting {
  max-width: 300px;
  margin-top: 10px;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec .fv-section__txt-handwriting {
    max-width: 240px;
  }
}
.topPageRecruitSec__text {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageRecruitSec__text {
  font-size: 16px;
  text-align: center;
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__text {
    font-size: 16px;
    line-height: 1.75;
    margin-bottom: 40px;
  }
}
.topPageRecruitSec__btn {
  display: flex;
  justify-content: center;
}
.topPageRecruitSec__btnLink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  width: 240px;
  padding: 14px 20px;
  background-color: #fff;
  border-radius: 999px;
  border: 1px solid #002F7B;
  letter-spacing: 0.05em;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .topPageRecruitSec__btnLink:hover {
    background-color: #002F7B;
  }
  .topPageRecruitSec__btnLink:hover .topPageRecruitSec__btnText {
    color: #fff;
  }
  .topPageRecruitSec__btnLink:hover .topPageRecruitSec__btnIcon {
    background-color: #fff;
  }
  .topPageRecruitSec__btnLink:hover .topPageRecruitSec__btnIcon img {
    filter: none;
  }
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__btnLink {
    gap: 40px;
  }
}
.topPageRecruitSec__btnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__btnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageRecruitSec__btnText {
  font-size: 16px;
  color: #002F7B;
  font-weight: 500;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .topPageRecruitSec__btnText {
    font-size: 16px;
  }
}
.topPageRecruitSec__btnIcon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #002F7B;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.25s ease;
}
.topPageRecruitSec__btnIcon img {
  width: 12px;
  height: 12px;
  display: block;
  filter: brightness(0) invert(1);
  transition: filter 0.25s ease;
}

@keyframes topPageRecruitSliderDown {
  0% {
    transform: translateY(-50%);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes topPageRecruitSliderUp {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-50%);
  }
}
@keyframes topPageRecruitSliderLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
@keyframes topPageRecruitSliderRight {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(0);
  }
}
/*====================================================================
topPageCompanySec
====================================================================*/
.topPageCompanySec {
  padding: 140px 0;
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  .topPageCompanySec {
    padding: 64px 0;
  }
}
.topPageCompanySec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .topPageCompanySec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.topPageCompanySec__lists {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .topPageCompanySec__lists {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.topPageCompanySec__item {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 560/315;
}
@media screen and (max-width: 768px) {
  .topPageCompanySec__item {
    border-radius: 10px;
    aspect-ratio: 335/188;
  }
}
.topPageCompanySec__link {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  color: #fff;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .topPageCompanySec__link:hover .topPageCompanySec__img {
    transform: scale(1.05);
  }
  .topPageCompanySec__link:hover .topPageCompanySec__arrow {
    background-color: #fff;
    border-color: #fff;
  }
  .topPageCompanySec__link:hover .topPageCompanySec__arrow::before, .topPageCompanySec__link:hover .topPageCompanySec__arrow::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .topPageCompanySec__link:hover .topPageCompanySec__arrow::before {
    left: 150%;
  }
  .topPageCompanySec__link:hover .topPageCompanySec__arrow::after {
    left: 50%;
  }
}
.topPageCompanySec__imgArea {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.topPageCompanySec__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.topPageCompanySec__textArea {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 28px 32px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 100%);
}
@media screen and (max-width: 768px) {
  .topPageCompanySec__textArea {
    padding: 18px 20px;
  }
}
.topPageCompanySec__title {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #fff;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .topPageCompanySec__title {
    font-size: 14px;
    line-height: 1.8;
  }
}
.topPageCompanySec__title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .topPageCompanySec__title {
    font-size: 18px;
  }
}
.topPageCompanySec__arrow {
  flex-shrink: 0;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.9);
  background-color: transparent;
  position: relative;
  transition: 0.6s;
}
.topPageCompanySec__arrow::before, .topPageCompanySec__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.topPageCompanySec__arrow::after {
  left: -50%;
}
@media screen and (max-width: 768px) {
  .topPageCompanySec__arrow {
    width: 30px;
    height: 30px;
  }
  .topPageCompanySec__arrow::before, .topPageCompanySec__arrow::after {
    width: 11px;
    height: 11px;
  }
}

/*====================================================================
KV 比較パターン
====================================================================*/
@keyframes kvRevealTop {
  from {
    clip-path: inset(0 0 100% 0);
  }
  to {
    clip-path: inset(0 0 0% 0);
  }
}
@keyframes kvRevealBottom {
  from {
    clip-path: inset(100% 0 0 0);
  }
  to {
    clip-path: inset(0% 0 0 0);
  }
}
@keyframes kvRevealFromLeft {
  from {
    clip-path: inset(0 100% 0 0);
  }
  to {
    clip-path: inset(0 0% 0 0);
  }
}
@keyframes kvRevealFromRight {
  from {
    clip-path: inset(0 0 0 100%);
  }
  to {
    clip-path: inset(0 0% 0 0);
  }
}
@keyframes kvZoom {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.08);
  }
}
@media screen and (min-width: 769px) {
  .topPageFvSec--patternB {
    block-size: min(100vh, 720px);
  }
}
@media screen and (max-width: 768px) {
  .topPageFvSec--patternB {
    block-size: calc(100svh - 55px);
  }
}
.topPageFvSec--patternB .topPageFvSec__media {
  gap: 6px;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
}
@media screen and (min-width: 769px) {
  .topPageFvSec--patternB .topPageFvSec__media {
    block-size: min(100vh, 720px);
  }
}
@media screen and (max-width: 768px) {
  .topPageFvSec--patternB .topPageFvSec__media {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
    block-size: calc(100svh - 55px);
  }
}
.topPageFvSec--patternB .topPageFvSec__splitLeft,
.topPageFvSec--patternB .topPageFvSec__splitRight {
  position: relative;
  overflow: hidden;
  block-size: 100%;
}
.topPageFvSec--patternB .topPageFvSec__splitSlide {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.topPageFvSec--patternB .topPageFvSec__splitSlide picture {
  display: block;
  width: 100%;
  height: 100%;
}
.topPageFvSec--patternB .topPageFvSec__splitSlide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center;
}
.topPageFvSec--patternB .topPageFvSec__splitSlide.is-active {
  z-index: 1;
}
.topPageFvSec--patternB .topPageFvSec__splitSlide.is-active img {
  animation: kvZoom 5.5s ease-in-out forwards;
}
.topPageFvSec--patternB .topPageFvSec__splitRight .topPageFvSec__splitSlide.is-entering-top {
  z-index: 2;
  animation: kvRevealTop 1.4s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}
.topPageFvSec--patternB .topPageFvSec__splitLeft .topPageFvSec__splitSlide.is-entering-bottom {
  z-index: 2;
  animation: kvRevealBottom 1.4s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}
@media screen and (max-width: 768px) {
  .topPageFvSec--patternB .topPageFvSec__splitLeft .topPageFvSec__splitSlide.is-entering-bottom {
    animation: kvRevealFromRight 1.4s cubic-bezier(0.65, 0, 0.35, 1) forwards;
  }
  .topPageFvSec--patternB .topPageFvSec__splitRight .topPageFvSec__splitSlide.is-entering-top {
    animation: kvRevealFromLeft 1.4s cubic-bezier(0.65, 0, 0.35, 1) forwards;
  }
}
.topPageFvSec--patternB .topPageFvSec__okiBg {
  position: absolute;
  bottom: 0;
  left: 30px;
  width: 3.6vw;
  height: clamp(28rem, 32vw, 34rem);
  background-color: #ed6d46;
  z-index: 10;
  clip-path: inset(100% 0 0 0);
  transition: clip-path 1.35s cubic-bezier(0.5, 0, 0, 1);
}
@media screen and (max-width: 768px) {
  .topPageFvSec--patternB .topPageFvSec__okiBg {
    display: none;
  }
}
.topPageFvSec--patternB.is-kv-bg .topPageFvSec__okiBg {
  clip-path: inset(0% 0 0 0);
}
.topPageFvSec--patternB .topPageFvSec__copy {
  bottom: 0;
  left: 0;
  gap: 0;
  inline-size: auto;
}
@media screen and (max-width: 768px) {
  .topPageFvSec--patternB .topPageFvSec__copy {
    left: 0;
    bottom: 50%;
  }
}
.topPageFvSec--patternB .topPageFvSec__okiCopies {
  position: relative;
}
.topPageFvSec--patternB .topPageFvSec__okiH1 {
  position: relative;
  z-index: 11;
  padding-bottom: clamp(1.5rem, 3vh, 3rem);
  margin: 0;
  font-weight: 900;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .topPageFvSec--patternB .topPageFvSec__okiH1 {
    padding-left: 24px;
  }
}
.topPageFvSec--patternB .topPageFvSec__okiInner {
  padding-left: 0.05em;
  overflow: hidden;
}
.topPageFvSec--patternB .topPageFvSec__okiInner > span {
  display: block;
  font-size: clamp(3.2rem, 4.8vw, 6.4rem);
  line-height: 1.5;
  font-weight: 800;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition-delay: calc(var(--index, 0) * 75ms);
}
@media screen and (max-width: 768px) {
  .topPageFvSec--patternB .topPageFvSec__okiInner > span {
    font-size: clamp(2rem, 6.5vw, 3rem);
    white-space: normal;
  }
}
.topPageFvSec--patternB.is-kv-text .topPageFvSec__okiInner > span {
  transform: translateX(0);
  opacity: 1;
}

@media screen and (min-width: 769px) {
  .topPageFvSec--patternC {
    block-size: min(740px, 100vh - 100px);
  }
}
@media screen and (min-width: 769px) {
  .topPageFvSec--patternC .topPageFvSec__media {
    block-size: min(740px, 100vh - 100px);
  }
}
.topPageFvSec--patternC .topPageFvSec__swiperSlide .swiper-slide img {
  object-position: center 15%;
}
.topPageFvSec--patternC .topPageFvSec__copy {
  left: max(36px, 3.5vw);
}
.topPageFvSec--patternC .topPageFvSec__copyLine__band {
  background: linear-gradient(to bottom, rgba(237, 109, 70, 0.65) 0%, #ed6d46 100%);
}

.topPageFvSec--greenBand .topPageFvSec__copyLine__band {
  background: linear-gradient(to bottom, rgba(0, 171, 132, 0.65) 0%, #00AB84 100%);
}

@media screen and (min-width: 769px) {
  .topPageFvSec--okiText .topPageFvSec__copy {
    bottom: 0;
  }
}
.topPageFvSec--okiText .topPageFvSec__okiBg {
  position: absolute;
  bottom: 0;
  left: 30px;
  width: 3.6vw;
  height: clamp(28rem, 32vw, 34rem);
  background-color: #ed6d46;
  z-index: 10;
  clip-path: inset(100% 0 0 0);
  transition: clip-path 1.35s cubic-bezier(0.5, 0, 0, 1);
}
@media screen and (max-width: 768px) {
  .topPageFvSec--okiText .topPageFvSec__okiBg {
    left: 3rem;
    width: 1.5rem;
    bottom: calc(17vh + 6px);
    height: 18rem;
  }
}
.topPageFvSec--okiText.is-kv-bg .topPageFvSec__okiBg {
  clip-path: inset(0% 0 0 0);
}
.topPageFvSec--okiText .topPageFvSec__okiCopies {
  position: relative;
}
.topPageFvSec--okiText .topPageFvSec__okiH1 {
  position: relative;
  z-index: 11;
  padding-left: 0;
  padding-bottom: clamp(1.5rem, 3vh, 3rem);
  margin: 0;
  font-weight: 900;
  color: #fff;
}
.topPageFvSec--okiText .topPageFvSec__okiInner {
  padding-left: 0.05em;
  overflow: hidden;
}
.topPageFvSec--okiText .topPageFvSec__okiInner > span {
  display: block;
  font-size: clamp(3.2rem, 4.8vw, 6.4rem);
  line-height: 1.5;
  font-weight: 800;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition-delay: calc(var(--index, 0) * 75ms);
}
@media screen and (max-width: 768px) {
  .topPageFvSec--okiText .topPageFvSec__okiInner > span {
    font-size: clamp(2rem, 6.5vw, 3rem);
    white-space: normal;
  }
}
.topPageFvSec--okiText.is-kv-text .topPageFvSec__okiInner > span {
  transform: translateX(0);
  opacity: 1;
}

/*====================================================================
.technicalinfoSec
====================================================================*/
.technicalinfoSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .technicalinfoSec {
    padding: 40px 0 68px;
  }
}

/*====================================================================
.lowerBoxSec
====================================================================*/
.lowerBoxSec {
  position: relative;
  min-height: 170px;
  background-image: url("../images/common/low-kv.jpg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  display: flex;
  flex-direction: column;
  padding: 12px 0 0;
}
.lowerBoxSec.u-pink {
  background-image: url("../images/common/low-kv02.jpg");
}
.lowerBoxSec.u-blue {
  background-image: url("../images/common/low-kv05.jpg");
}
.lowerBoxSec.u-orange {
  background-image: url("../images/common/low-kv04.jpg");
}
.lowerBoxSec.u-green {
  background-image: url("../images/common/low-kv03.jpg");
}
@media screen and (max-width: 768px) {
  .lowerBoxSec {
    min-height: 140px;
    background-image: url("../images/common/low-kv_sp.jpg");
  }
  .lowerBoxSec.u-pink {
    background-image: url("../images/common/low-kv02_sp.jpg");
  }
  .lowerBoxSec.u-blue {
    background-image: url("../images/common/low-kv05_sp.jpg");
  }
  .lowerBoxSec.u-orange {
    background-image: url("../images/common/low-kv04_sp.jpg");
  }
  .lowerBoxSec.u-green {
    background-image: url("../images/common/low-kv03_sp.jpg");
  }
}
.lowerBoxSec__inner {
  max-width: 1320px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.lowerBoxSec__inner {
  flex: 1;
  display: flex;
  align-items: center;
}
.lowerBoxSec__body {
  width: 100%;
}
.lowerBoxSec__head {
  display: flex;
  align-items: center;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__head {
    gap: 10px;
  }
}
.lowerBoxSec__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 36px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__icon {
    width: 28px;
  }
}
.lowerBoxSec__iconImg {
  width: 100%;
  height: auto;
  display: block;
}
.lowerBoxSec__wrapTitle {
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__wrapTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.lowerBoxSec__wrapTitle {
  font-weight: bold;
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__wrapTitle {
    font-size: 28px;
    line-height: 1.3;
  }
}
.lowerBoxSec__breadcrumbs {
  padding-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__breadcrumbs {
    padding-bottom: 8px;
  }
}
.lowerBoxSec__breadcrumbsInner {
  max-width: 1320px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__breadcrumbsInner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.lowerBoxSec__breadcrumbsInner {
  padding-left: 77px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__breadcrumbsInner {
    padding-left: 20px;
  }
}
.lowerBoxSec__breadcrumbsBody {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
}
.lowerBoxSec__breadcrumbsBody br {
  display: none;
}
.lowerBoxSec__breadcrumbsItem {
  color: #8E8E8E;
  line-height: 1;
  display: inline-flex;
  align-items: center;
}
.lowerBoxSec__breadcrumbsItem:not(:last-child)::after {
  content: "・";
  margin: 0 8px;
  color: #BBBDC1;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__breadcrumbsItem:not(:last-child)::after {
    margin: 0 6px;
  }
}
.lowerBoxSec__breadcrumbsItem--current {
  color: #333;
  font-weight: bold;
}
.lowerBoxSec__breadcrumbsLink {
  transition: 0.6s;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__breadcrumbsLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.lowerBoxSec__breadcrumbsLink {
  color: #8E8E8E;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__breadcrumbsLink {
    font-size: 10px;
  }
}
.lowerBoxSec__breadcrumbsLink br {
  display: none;
}
@media screen and (min-width: 769px) {
  .lowerBoxSec__breadcrumbsLink:hover {
    opacity: 0.7;
  }
}
.lowerBoxSec__breadcrumbsText {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__breadcrumbsText {
    font-size: 14px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 768px) {
  .lowerBoxSec__breadcrumbsText {
    font-size: 10px;
  }
}
.lowerBoxSec__breadcrumbsText br {
  display: none;
}

/*====================================================================
.messagePageSec
====================================================================*/
.messagePageSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .messagePageSec {
    padding: 40px 0 64px;
  }
}
.messagePageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .messagePageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.messagePageSec__title {
  font-size: 28px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: center;
  color: #002F7B;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .messagePageSec__title {
    font-size: 14px;
    line-height: 1.8;
  }
}
.messagePageSec__title {
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .messagePageSec__title {
    font-size: 20px;
    line-height: 1.5;
    text-align: center;
  }
}
.messagePageSec__cont {
  margin-top: 100px;
  display: flex;
  align-items: flex-start;
  gap: 80px;
}
@media screen and (max-width: 768px) {
  .messagePageSec__cont {
    margin-top: 40px;
    display: block;
  }
}
.messagePageSec__imgArea {
  flex-shrink: 0;
  width: 370px;
}
@media screen and (max-width: 768px) {
  .messagePageSec__imgArea {
    width: 100%;
    max-width: 335px;
    margin: 0 auto;
  }
}
.messagePageSec__picture {
  display: block;
}
.messagePageSec__img {
  width: 100%;
  height: auto;
  display: block;
}
.messagePageSec__body {
  flex: 1;
  padding-top: 8px;
}
@media screen and (max-width: 768px) {
  .messagePageSec__body {
    margin-top: 24px;
    padding-top: 0;
  }
}
.messagePageSec__textArea {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.messagePageSec__text {
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: 0.08em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .messagePageSec__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.messagePageSec__text {
  text-indent: 1em;
}
@media screen and (max-width: 768px) {
  .messagePageSec__text {
    font-size: 13px;
    letter-spacing: 0.04em;
  }
}
.messagePageSec__sign {
  margin-top: 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
@media screen and (max-width: 768px) {
  .messagePageSec__sign {
    margin-top: 28px;
  }
}
.messagePageSec__signLabel {
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .messagePageSec__signLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 768px) {
  .messagePageSec__signLabel {
    font-size: 12px;
  }
}
.messagePageSec__signImg {
  margin-top: 8px;
  width: 190px;
  height: auto;
  display: block;
}
@media screen and (max-width: 768px) {
  .messagePageSec__signImg {
    margin-top: 0;
    width: 150px;
  }
}

/*====================================================================
.financialPageSec
====================================================================*/
.financialPageSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .financialPageSec {
    padding: 40px 0 68px;
  }
}
.financialPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .financialPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.financialPageSec__title {
  position: relative;
  padding-top: 20px;
  border-top: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .financialPageSec__title {
    padding-top: 16px;
  }
}
.financialPageSec__title::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 40px;
  height: 3px;
  background-color: #002F7B;
}
.financialPageSec__titleHeading {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .financialPageSec__titleHeading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.financialPageSec__titleHeading {
  font-size: 32px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .financialPageSec__titleHeading {
    font-size: 24px;
    line-height: 1.5;
  }
}
.financialPageSec__block {
  margin-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .financialPageSec__block {
    margin-bottom: 64px;
  }
}
.financialPageSec__block:last-child {
  margin-bottom: 0;
}
.financialPageSec__tableWrap {
  margin: 40px auto 0;
}
@media screen and (max-width: 768px) {
  .financialPageSec__tableWrap {
    margin-top: 28px;
  }
}
.financialPageSec__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: 1px solid #ccc;
  font-size: 15px;
  line-height: 1.75;
  color: #333;
}
@media screen and (max-width: 768px) {
  .financialPageSec__table {
    font-size: 14px;
    line-height: 1.65;
  }
}
.financialPageSec__table th,
.financialPageSec__table td {
  border: 1px solid #ccc;
  padding: 20px 24px;
  vertical-align: top;
}
@media screen and (max-width: 768px) {
  .financialPageSec__table th,
  .financialPageSec__table td {
    padding: 14px 16px;
  }
}
.financialPageSec__table th {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .financialPageSec__table th {
    font-size: 14px;
    line-height: 1.8;
  }
}
.financialPageSec__table th {
  background: #f8f7f5;
  text-align: left;
  font-weight: bold;
}
@media screen and (min-width: 769px) {
  .financialPageSec__table th {
    width: 26%;
  }
}
@media screen and (max-width: 768px) {
  .financialPageSec__table th {
    width: 30%;
    font-size: 14px;
    vertical-align: middle;
  }
}
.financialPageSec__table td {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .financialPageSec__table td {
    font-size: 14px;
    line-height: 1.8;
  }
}
.financialPageSec__table td {
  background: #fff;
  word-break: break-word;
}
.financialPageSec__tableLink {
  color: #002F7B;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  font-size: 16px;
}
@media screen and (min-width: 769px) {
  .financialPageSec__tableLink:hover {
    text-decoration: none;
  }
}
@media screen and (max-width: 768px) {
  .financialPageSec__tableLink {
    font-size: 14px;
  }
}

/*====================================================================
.compliancePageSec
====================================================================*/
.compliancePageSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .compliancePageSec {
    padding: 40px 0 68px;
  }
}
.compliancePageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.compliancePageSec .sectionBlockTitle {
  margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
  .compliancePageSec .sectionBlockTitle {
    margin-bottom: 32px;
  }
}
.compliancePageSec .sectionCategoryHeading {
  margin-top: 60px;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .compliancePageSec .sectionCategoryHeading {
    margin-top: 40px;
    margin-bottom: 20px;
  }
}
.compliancePageSec .sectionBlockTitle + .sectionCategoryHeading {
  margin-top: 0;
}
.compliancePageSec__block {
  margin-bottom: 8px;
}
.compliancePageSec__block .compliancePageSec__itemHeading:first-child {
  margin-top: 0;
}
.compliancePageSec__text {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.compliancePageSec__text {
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: 0.05em;
  margin: 0 0 1.25em;
}
.compliancePageSec__text:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__text {
    font-size: 14px;
  }
}
.compliancePageSec__label {
  font-weight: bold;
}
.compliancePageSec__list {
  margin: 0 0 1.25em;
  padding-left: 1.5em;
  list-style: disc;
}
.compliancePageSec__listItem {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__listItem {
    font-size: 14px;
    line-height: 1.8;
  }
}
.compliancePageSec__listItem {
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
.compliancePageSec__itemHeading {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__itemHeading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.compliancePageSec__itemHeading {
  margin: 32px 0 12px;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
  scroll-margin-top: 108px;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__itemHeading {
    margin-top: 24px;
    font-size: 18px;
    scroll-margin-top: 90px;
  }
}
.compliancePageSec__mail {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__mail {
    font-size: 14px;
    line-height: 1.8;
  }
}
.compliancePageSec__mail {
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: 0.05em;
  color: #002F7B;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .compliancePageSec__mail:hover {
    text-decoration: none;
  }
}
@media screen and (max-width: 768px) {
  .compliancePageSec__mail {
    font-size: 14px;
  }
}
.compliancePageSec__note {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__note {
    font-size: 14px;
    line-height: 1.8;
  }
}
.compliancePageSec__note {
  margin: 1.5em 0 0;
  font-size: 14px;
  line-height: 1.75;
  letter-spacing: 0.05em;
  color: #666666;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__note {
    font-size: 13px;
  }
}
.compliancePageSec__note--panel {
  margin: 1em 0 0;
}
.compliancePageSec__contactGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__contactGrid {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 20px;
  }
}
.compliancePageSec__contactCard {
  padding: 24px 26px 28px;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 10px;
  scroll-margin-top: 84px;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__contactCard {
    padding: 20px 18px 22px;
    scroll-margin-top: 70px;
  }
}
.compliancePageSec__contactTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__contactTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.compliancePageSec__contactTitle {
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__contactTitle {
    font-size: 18px;
    margin-bottom: 10px;
  }
}
.compliancePageSec__contactLead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__contactLead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.compliancePageSec__contactLead {
  margin: 0 0 18px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.05em;
  color: #333;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__contactLead {
    font-size: 14px;
    margin-bottom: 14px;
    line-height: 1.7;
  }
}
.compliancePageSec__contactPanel {
  padding: 18px 20px 20px;
  background-color: #EDF3F7;
  scroll-margin-top: 108px;
}
@media screen and (max-width: 768px) {
  .compliancePageSec__contactPanel {
    padding: 16px 14px 18px;
    scroll-margin-top: 90px;
  }
}
.compliancePageSec__contactPanel .compliancePageSec__text {
  margin-bottom: 1.1em;
}
.compliancePageSec__contactPanel .compliancePageSec__text:last-of-type {
  margin-bottom: 0;
}
.compliancePageSec__contactPanel .compliancePageSec__note {
  margin-top: 1.1em;
}

/*====================================================================
.archiveNewsPageSec
====================================================================*/
.archiveNewsPageSec {
  padding: 80px 0 200px;
  position: relative;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec {
    padding: 40px 0 64px;
  }
}
.archiveNewsPageSec__cont {
  max-width: 1320px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__cont {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.archiveNewsPageSec__cont {
  display: flex;
  align-items: flex-start;
  gap: 68px;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__cont {
    display: block;
    gap: 0;
    padding: 0;
  }
}
.archiveNewsPageSec {
  /*--------------------------------------------------------
  Left side (filter sidebar)
  --------------------------------------------------------*/
}
.archiveNewsPageSec__contLeft {
  flex-shrink: 0;
  width: 275px;
  position: sticky;
  top: 110px;
  align-self: flex-start;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__contLeft {
    position: static;
    width: auto;
    margin-bottom: 48px;
    padding: 0 20px;
  }
}
.archiveNewsPageSec__side {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__side {
    gap: 24px;
  }
}
.archiveNewsPageSec__sideFilter {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideFilter {
    gap: 24px;
  }
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideFilter:not(.is-open) .archiveNewsPageSec__sideBlock:not(:first-child) {
    display: none;
  }
  .archiveNewsPageSec__sideFilter:not(.is-open) .archiveNewsPageSec__sideBlock:first-child .archiveNewsPageSec__sideItem:nth-child(n+3) {
    display: none;
  }
}
.archiveNewsPageSec__sideBlock {
  display: flex;
  flex-direction: column;
}
.archiveNewsPageSec__sideTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.archiveNewsPageSec__sideTitle {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid #C8D5DE;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideTitle {
    font-size: 15px;
    padding-bottom: 12px;
    margin-bottom: 16px;
  }
}
.archiveNewsPageSec__sideList {
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.archiveNewsPageSec__sideItem {
  width: 100%;
}
.archiveNewsPageSec__sideLink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 11px 16px;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
  text-decoration: none;
  color: #333;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .archiveNewsPageSec__sideLink:hover {
    background-color: #002F7B;
    border-color: #002F7B;
  }
  .archiveNewsPageSec__sideLink:hover .archiveNewsPageSec__sideName,
  .archiveNewsPageSec__sideLink:hover .archiveNewsPageSec__sideCount {
    color: #fff;
  }
}
.archiveNewsPageSec__sideLink.is-active {
  background-color: #002F7B;
  border-color: #002F7B;
}
.archiveNewsPageSec__sideLink.is-active .archiveNewsPageSec__sideName,
.archiveNewsPageSec__sideLink.is-active .archiveNewsPageSec__sideCount {
  color: #fff;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideLink {
    padding: 11px 14px;
  }
}
.archiveNewsPageSec__sideName {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideName {
    font-size: 14px;
    line-height: 1.8;
  }
}
.archiveNewsPageSec__sideName {
  font-size: 16px;
  color: #333;
  letter-spacing: 0.04em;
  line-height: 1.5;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideName {
    font-size: 14px;
  }
}
.archiveNewsPageSec__sideCount {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 12px;
  color: #666;
  letter-spacing: 0.02em;
  flex-shrink: 0;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideCount {
    font-size: 12px;
  }
}
.archiveNewsPageSec {
  /*--------------------------------------------------------
  Right side (news list card)
  --------------------------------------------------------*/
}
.archiveNewsPageSec__contRight {
  flex: 1;
  background-color: #fff;
  border-radius: 16px;
  padding: 8px 40px;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__contRight {
    padding: 0 20px 20px;
    border-radius: 0;
  }
}
.archiveNewsPageSec__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.archiveNewsPageSec__item {
  border-bottom: 1px solid #E8E8E8;
}
.archiveNewsPageSec__item:last-child {
  border-bottom: none;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__item:last-child {
    border-bottom: 1px solid #E8E8E8;
  }
}
.archiveNewsPageSec__itemLink {
  display: grid;
  grid-template-columns: 80px 80px 1fr 24px;
  align-items: baseline;
  padding: 30px 8px;
  text-decoration: none;
  color: #333;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .archiveNewsPageSec__itemLink:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__itemLink {
    grid-template-columns: auto auto 1fr auto;
    grid-template-areas: "date tag tag icon" "text text text icon";
    align-items: center;
    column-gap: 0;
    row-gap: 10px;
    padding: 20px 0;
  }
}
.archiveNewsPageSec__itemDate {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 14px;
  color: #666;
  letter-spacing: 0;
  margin-right: 16px;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__itemDate {
    font-size: 14px;
    grid-area: date;
  }
}
.archiveNewsPageSec__itemTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 0;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__itemTag {
    width: 70px;
    height: 22px;
    font-size: 12px;
    grid-area: tag;
    justify-self: start;
  }
}
.archiveNewsPageSec__itemTag--news {
  background-color: #E3F3F7;
  color: #208AA7;
}
.archiveNewsPageSec__itemTag--release {
  background-color: #FCEDE9;
  color: #E06640;
}
.archiveNewsPageSec__itemTag--ir {
  background-color: #E4F8F3;
  color: #27846F;
}
.archiveNewsPageSec__itemTag--tech {
  background-color: #FBF4DA;
  color: #DB8A32;
}
.archiveNewsPageSec__itemText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__itemText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.archiveNewsPageSec__itemText {
  font-size: 15px;
  line-height: 1.75;
  color: #333;
  letter-spacing: 0.04em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-left: 25px;
  margin-right: 20px;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__itemText {
    font-size: 16px;
    grid-area: text;
    margin: 0;
    margin-right: 20px;
  }
}
.archiveNewsPageSec__itemNew {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 13px;
  font-weight: 700;
  color: #DB2C30;
  margin-left: 8px;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__itemNew {
    font-size: 11px;
    margin-left: 6px;
  }
}
.archiveNewsPageSec__itemIcon {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__itemIcon {
    grid-area: icon;
    align-self: center;
    justify-self: end;
  }
}
.archiveNewsPageSec__itemIcon img {
  width: 20px;
  height: 14px;
  object-fit: contain;
}
.archiveNewsPageSec__itemIcon--pdfIcon img {
  min-width: 30px;
  width: 30px;
  height: auto;
}
.archiveNewsPageSec__itemIcon--arrow {
  width: 22px;
  height: 12px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.archiveNewsPageSec__itemIcon--ext {
  width: 18px;
  height: 18px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M14 4h6v6M20 4l-9 9M19 14v5a1 1 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M14 4h6v6M20 4l-9 9M19 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.archiveNewsPageSec__itemIcon--pdf {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  padding: 3px 6px;
  border: 2px solid #002F7B;
  border-radius: 2px;
  font-size: 12px;
  font-weight: bold;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1;
}
.archiveNewsPageSec {
  /*--------------------------------------------------------
  Sidebar foot (SPのみ表示・絞り込み操作系)
  --------------------------------------------------------*/
}
.archiveNewsPageSec__sideFoot {
  flex-direction: column;
  align-items: center;
}
.archiveNewsPageSec__sideToggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 4px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #333;
  font-size: 13px;
  letter-spacing: 0.04em;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideToggle {
    font-size: 14px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideToggleText {
    font-size: 12px;
    color: #666;
  }
}
.archiveNewsPageSec__sideToggleIcon {
  width: 12px;
  height: 8px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'><path d='M1 6.5L6 1.5L11 6.5' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'><path d='M1 6.5L6 1.5L11 6.5' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transition: 0.6s;
}
.archiveNewsPageSec__sideToggle[aria-expanded=false] .archiveNewsPageSec__sideToggleIcon {
  transform: rotate(180deg);
}
.archiveNewsPageSec__sideClear {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideClear {
    font-size: 14px;
    line-height: 1.8;
  }
}
.archiveNewsPageSec__sideClear {
  font-size: 13px;
  color: #333;
  text-decoration: underline;
  text-underline-offset: 4px;
  letter-spacing: 0.04em;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .archiveNewsPageSec__sideClear:hover {
    color: #002F7B;
  }
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__sideClear {
    margin-top: 20px;
  }
}
.archiveNewsPageSec {
  /*--------------------------------------------------------
  Pagination (WP the_posts_pagination output)
  --------------------------------------------------------*/
}
.archiveNewsPageSec__pagination {
  position: absolute;
  left: 50%;
  transform: translateY(-50%);
  bottom: 100px;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__pagination {
    margin-top: 24px;
    position: static;
    left: auto;
    transform: none;
  }
}
.archiveNewsPageSec__pagination .nav-links,
.archiveNewsPageSec__pagination ul.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}
.archiveNewsPageSec__pagination ul.page-numbers > li {
  display: inline-flex;
}
.archiveNewsPageSec__pagination .page-numbers {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border-radius: 4px;
  background-color: #fff;
  font-size: 14px;
  line-height: 1;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .archiveNewsPageSec__pagination .page-numbers:hover {
    background-color: #002F7B;
    border-color: #002F7B;
    color: #fff;
  }
}
.archiveNewsPageSec__pagination .page-numbers.current {
  background-color: #002F7B;
  border-color: #002F7B;
  color: #fff;
  font-weight: bold;
  pointer-events: none;
}
.archiveNewsPageSec__pagination .page-numbers.dots {
  background: transparent;
  border-color: transparent;
  padding: 0 4px;
  pointer-events: none;
}
@media screen and (min-width: 769px) {
  .archiveNewsPageSec__pagination .page-numbers.dots:hover {
    background: transparent;
    border-color: transparent;
    color: #333;
  }
}
.archiveNewsPageSec__pagination .page-numbers.prev, .archiveNewsPageSec__pagination .page-numbers.next {
  background: transparent;
  border-color: transparent;
  color: #002F7B;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
  min-width: auto;
}
@media screen and (min-width: 769px) {
  .archiveNewsPageSec__pagination .page-numbers.prev:hover, .archiveNewsPageSec__pagination .page-numbers.next:hover {
    background: transparent;
    border-color: transparent;
    opacity: 0.7;
  }
}
.archiveNewsPageSec__pagination .page-numbers.prev {
  margin-right: 10px;
}
.archiveNewsPageSec__pagination .page-numbers.next {
  margin-left: 10px;
}
@media screen and (max-width: 768px) {
  .archiveNewsPageSec__pagination .page-numbers {
    min-width: 36px;
    height: 36px;
    font-size: 13px;
  }
  .archiveNewsPageSec__pagination .page-numbers.prev {
    margin-right: 0;
  }
  .archiveNewsPageSec__pagination .page-numbers.next {
    margin-left: 0;
  }
}

/*====================================================================
singleArticlePageSec
====================================================================*/
/*====================================================================
.objectivePageSec
====================================================================*/
.objectivePageSec {
  position: relative;
  background-color: #EDF3F7;
  padding: 80px 0 200px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec {
    padding: 0 0 80px;
  }
}
.objectivePageSec__inner {
  max-width: 1320px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.objectivePageSec__inner {
  display: grid;
  grid-template-columns: 275px 1fr;
  grid-template-rows: auto 1fr;
  column-gap: 68px;
  row-gap: 24px;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__inner {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 0;
    background-color: #fff;
  }
}
.objectivePageSec__inner:has(.objectivePageSec__searchHeading) {
  grid-template-rows: auto auto 1fr;
}
.objectivePageSec__inner:has(.objectivePageSec__searchHeading) .objectivePageSec__searchHeading {
  grid-column: 1/-1;
  grid-row: 1;
}
.objectivePageSec__inner:has(.objectivePageSec__searchHeading) .objectivePageSec__head {
  grid-row: 2;
}
.objectivePageSec__inner:has(.objectivePageSec__searchHeading) .objectivePageSec__leftSearchName {
  grid-row: 2/span 2;
}
.objectivePageSec__inner:has(.objectivePageSec__searchHeading) .objectivePageSec__right {
  grid-row: 3;
}
.objectivePageSec {
  /* ---------- search heading (search-name page) ---------- */
}
.objectivePageSec__searchHeading {
  max-width: 1320px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__searchHeading {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__searchHeading {
    display: none;
  }
}
.objectivePageSec__searchHeadingText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__searchHeadingText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__searchHeadingText {
  font-size: 28px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  padding-bottom: 20px;
  border-bottom: 1px solid #ccc;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__searchHeadingText {
    font-size: 18px;
  }
}
.objectivePageSec__searchHeadingKw {
  color: #333;
  font-weight: bold;
}
.objectivePageSec {
  /* ---------- head (検索結果 + 並び替え) ---------- */
}
.objectivePageSec__head {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__head {
    order: 2;
    width: 100%;
    padding: 0 20px;
  }
}
.objectivePageSec__count {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__count {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__count {
  font-weight: bold;
  color: #333;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__count {
    font-size: 14px;
  }
}
.objectivePageSec__countNum {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 28px;
  font-weight: bold;
  color: #002F7B;
  margin: 0 3px 0 1px;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__countNum {
    font-size: 24px;
    margin: 0;
  }
}
.objectivePageSec__countUnit {
  font-size: 12px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__countUnit {
    font-size: 11px;
  }
}
.objectivePageSec__sort {
  position: relative;
}
.objectivePageSec__sort::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  width: 10px;
  height: 6px;
  background-color: #002F7B;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform: translateY(-50%);
  pointer-events: none;
}
.objectivePageSec__sortSelect {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #fff;
  border: 1px solid #D6E2EE;
  border-radius: 6px;
  padding: 10px 36px 10px 16px;
  font-size: 14px;
  line-height: 1.4;
  font-family: inherit;
  cursor: pointer;
  min-width: 130px;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__sortSelect:hover {
    border-color: #002F7B;
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__sortSelect {
    font-size: 13px;
    padding: 8px 32px 8px 14px;
    min-width: 110px;
  }
}
.objectivePageSec {
  /* ---------- body wrapper ---------- */
}
.objectivePageSec__body {
  display: contents;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__body {
    display: contents;
  }
}
.objectivePageSec {
  /* ---------- left (sidebar) ---------- */
}
.objectivePageSec__left {
  grid-column: 1;
  grid-row: 1/span 2;
  display: flex;
  flex-direction: column;
  margin-top: 65px;
  width: 275px;
  position: sticky;
  top: 110px;
  align-self: start;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__left {
    position: static;
    display: block;
    width: 100%;
    margin-top: 0;
    padding: 40px 20px 50px;
    background-color: #EDF3F7;
  }
}
.objectivePageSec__nameSearch {
  display: flex;
  align-items: center;
  gap: 12px;
  background-color: #fff;
  border: 1px solid #fff;
  border-radius: 12px;
  padding: 16px;
  color: inherit;
  transition: 0.6s;
  margin-bottom: 40px;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__nameSearch:hover {
    border-color: #002F7B;
    box-shadow: 0 6px 18px rgba(0, 47, 123, 0.1);
  }
  .objectivePageSec__nameSearch:hover .objectivePageSec__nameSearchArrow {
    transform: translateX(4px);
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__nameSearch {
    margin-bottom: 28px;
  }
}
.objectivePageSec__nameSearchIcon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #EDF3F7;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.objectivePageSec__nameSearchIconImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.objectivePageSec__nameSearchBody {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.objectivePageSec__nameSearchTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__nameSearchTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__nameSearchTitle {
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__nameSearchTitle {
    font-size: 16px;
  }
}
.objectivePageSec__nameSearchDesc {
  font-size: 12px;
  color: #666;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.objectivePageSec__nameSearchArrow {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  transition: 0.6s;
}
.objectivePageSec__nameSearchArrow svg {
  width: 100%;
  height: 100%;
  display: block;
}
.objectivePageSec {
  /* ---------- filters ---------- */
}
.objectivePageSec__filterLabelRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid #ccc;
  margin-bottom: 16px;
}
.objectivePageSec__filterLabel {
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__filterLabel {
  font-weight: 700;
  color: #333;
  letter-spacing: 0.05em;
  flex: 1;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterLabel {
    font-size: 16px;
  }
}
.objectivePageSec__filterBox {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterBox {
    gap: 24px;
  }
}
.objectivePageSec__filterInner {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.objectivePageSec__filterToggle {
  display: none;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterToggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    cursor: pointer;
    color: #666;
  }
  .objectivePageSec__filterToggle span {
    font-size: 12px;
  }
  .objectivePageSec__filterToggle::after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-right: 1.5px solid #002F7B;
    border-bottom: 1.5px solid #002F7B;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: 0.6s;
  }
  .objectivePageSec__filterToggle[aria-expanded=true]::after {
    transform: rotate(-135deg) translate(-2px, -2px);
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterBox:not(.is-open) .objectivePageSec__filterGroup:not(:first-child) {
    display: none;
  }
  .objectivePageSec__filterBox:not(.is-open) .objectivePageSec__filterGroup:first-child .objectivePageSec__filterTagItem:nth-child(n+6) {
    display: none;
  }
}
.objectivePageSec__filterGroup {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.objectivePageSec__filterGroupTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterGroupTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__filterGroupTitle {
  font-size: 14px;
  font-weight: bold;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1;
  padding-left: 8px;
  border-left: 3px solid #002F7B;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterGroupTitle {
    font-size: 12px;
  }
}
.objectivePageSec__filterTags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.objectivePageSec__filterTagItem {
  display: inline-block;
}
.objectivePageSec__filterTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 16px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  background-color: #fff;
  cursor: pointer;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__filterTag:hover {
    background-color: #002F7B;
    border-color: #002F7B;
  }
  .objectivePageSec__filterTag:hover .objectivePageSec__filterTagText {
    color: #fff;
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterTag {
    font-size: 11px;
    padding: 5px 12px;
  }
}
.objectivePageSec__filterTagInput {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}
.objectivePageSec__filterTag:has(.objectivePageSec__filterTagInput:checked) {
  background-color: #002F7B;
  border-color: #002F7B;
  color: #fff;
}
.objectivePageSec__filterTag:has(.objectivePageSec__filterTagInput:checked) .objectivePageSec__filterTagText {
  color: #fff;
}
.objectivePageSec__filterTagText {
  pointer-events: none;
  font-size: 14px;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1.2;
  transition: 0.6s;
}
.objectivePageSec__filterRadio {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 2px;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterRadio {
    padding: 5px 2px;
  }
}
.objectivePageSec__filterRadioInput {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
  border: 1.5px solid #002F7B;
  border-radius: 50%;
  position: relative;
  cursor: pointer;
  transition: 0.6s;
}
.objectivePageSec__filterRadioInput:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #002F7B;
  transform: translate(-50%, -50%);
}
.objectivePageSec__filterRadioText {
  font-size: 14px;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__filterRadioText {
    font-size: 11px;
  }
}
.objectivePageSec__filterActions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: 28px;
}
.objectivePageSec__filterClear {
  display: block;
  width: 100%;
  background-color: #002F7B;
  color: #fff;
  border: 1px solid #002F7B;
  border-radius: 6px;
  padding: 14px 12px;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.05em;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__filterClear:hover {
    background-color: #5FA6EB;
    border-color: #5FA6EB;
  }
}
.objectivePageSec {
  /* ---------- right (results list) ---------- */
}
.objectivePageSec__right {
  grid-column: 2;
  grid-row: 2;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  padding: 0px 40px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__right {
    order: 3;
    width: 100%;
    padding: 0 20px 20px;
    box-shadow: none;
    border-radius: 0;
  }
}
.objectivePageSec__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__list {
    gap: 0;
  }
}
.objectivePageSec__item {
  border-bottom: 1px solid #D6E2EE;
}
.objectivePageSec__item:last-child {
  border-bottom: none;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__item {
    overflow: hidden;
  }
}
.objectivePageSec__noResult {
  list-style: none;
  padding: 60px 0;
  text-align: center;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__noResult {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__noResult {
  color: #333;
}
.objectivePageSec__noResult p {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__noResult p {
    font-size: 14px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__noResult {
    padding: 40px 0;
    font-size: 13px;
  }
}
.objectivePageSec__itemLink {
  display: flex;
  gap: 24px;
  padding: 40px 0;
  text-decoration: none;
  position: relative;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__itemLink:hover .objectivePageSec__itemTitle {
    color: #002F7B;
  }
  .objectivePageSec__itemLink:hover .objectivePageSec__itemArrow {
    background-color: #5FA6EB;
    transform: translateX(4px);
  }
  .objectivePageSec__itemLink:hover .objectivePageSec__itemThumbImg {
    transform: scale(1.05);
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemLink {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 24px 0;
  }
}
.objectivePageSec__itemThumb {
  flex-shrink: 0;
  width: 240px;
  height: 150px;
  border-radius: 8px;
  overflow: hidden;
  background-color: #EDF3F7;
  position: relative;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemThumb {
    width: 100%;
    height: 0;
    padding-bottom: 66.87%;
  }
}
.objectivePageSec__itemThumbImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemThumbImg {
    position: absolute;
    top: 0;
    left: 0;
  }
}
.objectivePageSec__itemTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__itemTitle {
  font-size: 20px;
  font-weight: bold;
  color: #333;
  line-height: 1.5;
  letter-spacing: 0.05em;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemTitle {
    font-size: 18px;
    margin-top: 16px;
    margin-bottom: 4px;
  }
}
.objectivePageSec__itemSubtitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemSubtitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__itemSubtitle {
  font-size: 14px;
  color: #666;
  line-height: 1.5;
  letter-spacing: 0.03em;
  margin: 10px 0;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemSubtitle {
    font-size: 12px;
    margin: 6px 0;
  }
}
.objectivePageSec__itemSubtitleVal {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemSubtitleVal {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__itemSubtitleVal {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1;
  margin-left: 4px;
  color: #333;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemSubtitleVal {
    font-size: 12px;
  }
}
.objectivePageSec__itemTags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 14px 0;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemTags {
    margin: 12px 0;
  }
}
.objectivePageSec__itemTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 14px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  font-size: 12px;
  color: #002F7B;
  background-color: #fff;
  letter-spacing: 0.03em;
  line-height: 1.3;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemTag {
    font-size: 12px;
    padding: 8px 11px;
  }
}
.objectivePageSec__itemText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__itemText {
  font-size: 14px;
  color: #666;
  line-height: 1.5;
  letter-spacing: 0.05em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemText {
    font-size: 14px;
    line-height: 1.5;
  }
}
.objectivePageSec__itemArrow {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #002F7B;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.6s;
}
.objectivePageSec__itemArrow svg {
  width: 14px;
  height: 14px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__itemArrow {
    display: none;
  }
}
.objectivePageSec {
  /* ---------- left sidebar (search-name page) ---------- */
}
.objectivePageSec__leftSearchName {
  grid-column: 1;
  grid-row: 1/span 2;
  display: flex;
  flex-direction: column;
  margin-top: 68px;
  width: 275px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__leftSearchName {
    display: block;
    width: 100%;
    margin-top: 0;
    padding: 40px 20px 50px;
    background-color: #EDF3F7;
  }
}
.objectivePageSec {
  /* ---------- keyword search ---------- */
}
.objectivePageSec__keyword {
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__keyword {
    margin-bottom: 28px;
  }
}
.objectivePageSec__keywordLabel {
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__keywordLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__keywordLabel {
  font-weight: 700;
  color: #333;
  letter-spacing: 0.05em;
  padding-bottom: 12px;
  border-bottom: 1px solid #ccc;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__keywordLabel {
    font-size: 16px;
  }
}
.objectivePageSec__keywordField {
  display: flex;
  align-items: center;
  gap: 8px;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
  padding: 14px 14px;
  transition: 0.6s;
}
.objectivePageSec__keywordField:focus-within {
  border-color: #002F7B;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__keywordField {
    padding: 17px 14px;
    border: none;
  }
}
.objectivePageSec__keywordIcon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.objectivePageSec__keywordIcon svg {
  width: 100%;
  height: 100%;
}
.objectivePageSec__keywordInput {
  flex: 1;
  font-size: 14px;
  color: #666;
  letter-spacing: 0.05em;
  line-height: 1.4;
  padding: 0;
}
.objectivePageSec__keywordInput::placeholder {
  color: #9AA3AD;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__keywordInput {
    font-size: 14px;
  }
}
.objectivePageSec {
  /* ---------- alphabet search ---------- */
}
.objectivePageSec__alpha {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.objectivePageSec__alphaInner {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.objectivePageSec__alphaLabel {
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__alphaLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__alphaLabel {
  font-weight: 700;
  color: #333;
  letter-spacing: 0.05em;
  padding-bottom: 12px;
  border-bottom: 1px solid #ccc;
  margin-bottom: 4px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__alphaLabel {
    font-size: 16px;
  }
}
.objectivePageSec__alphaGroup {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.objectivePageSec__alphaGroupTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__alphaGroupTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.objectivePageSec__alphaGroupTitle {
  font-size: 14px;
  font-weight: bold;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1;
  padding-left: 8px;
  border-left: 3px solid #002F7B;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__alphaGroupTitle {
    font-size: 13px;
  }
}
.objectivePageSec__alphaGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__alphaGrid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.objectivePageSec__alphaItem {
  display: block;
}
.objectivePageSec__alphaBtn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 40px;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 16px;
  letter-spacing: 0.05em;
  color: #333;
  line-height: 1;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__alphaBtn:hover {
    background-color: #002F7B;
    border-color: #002F7B;
    color: #fff;
  }
}
.objectivePageSec__alphaBtn--active {
  background-color: #002F7B;
  border-color: #002F7B;
  color: #fff;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__alphaBtn--active:hover {
    background-color: #5FA6EB;
    border-color: #5FA6EB;
    color: #fff;
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__alphaBtn {
    height: 44px;
    font-size: 15px;
  }
}
.objectivePageSec__alphaToggle {
  display: none;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__alphaToggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    cursor: pointer;
    color: #666;
    background: none;
    border: none;
    padding: 12px 0 0;
    margin-top: 4px;
  }
  .objectivePageSec__alphaToggle span {
    font-size: 12px;
  }
  .objectivePageSec__alphaToggle::after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-right: 1.5px solid #002F7B;
    border-bottom: 1.5px solid #002F7B;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: 0.6s;
  }
  .objectivePageSec__alphaToggle[aria-expanded=true]::after {
    transform: rotate(-135deg) translate(-2px, -2px);
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__alpha:not(.is-open) .objectivePageSec__alphaGroup:not(:first-child) {
    display: none;
  }
  .objectivePageSec__alpha:not(.is-open) .objectivePageSec__alphaGroup:first-child .objectivePageSec__alphaItem:nth-child(n+5) {
    display: none;
  }
}
.objectivePageSec__pagination {
  position: absolute;
  left: 50%;
  transform: translateY(-50%);
  bottom: 100px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__pagination {
    margin-top: 24px;
    position: static;
    left: auto;
    transform: none;
  }
}
.objectivePageSec__pagination .nav-links,
.objectivePageSec__pagination .page-numbersList {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}
.objectivePageSec__pagination .page-numbers {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1;
  font-weight: bold;
  transition: 0.6s;
  background-color: #fff;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__pagination .page-numbers:hover {
    background-color: #002F7B;
    color: #fff;
  }
}
.objectivePageSec__pagination .page-numbers.current {
  background-color: #002F7B;
  color: #fff;
}
.objectivePageSec__pagination .page-numbers.dots {
  padding: 0 4px;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__pagination .page-numbers.dots:hover {
    background-color: #fff;
    color: #002F7B;
  }
}
.objectivePageSec__pagination .page-numbers.prev, .objectivePageSec__pagination .page-numbers.next {
  color: #002F7B;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
  min-width: auto;
  background-color: #EDF3F7;
  border-radius: 0;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .objectivePageSec__pagination .page-numbers.prev:hover, .objectivePageSec__pagination .page-numbers.next:hover {
    color: #5FA6EB;
    text-decoration: none;
  }
}
@media screen and (max-width: 768px) {
  .objectivePageSec__pagination .page-numbers.prev, .objectivePageSec__pagination .page-numbers.next {
    background-color: #fff;
  }
}
.objectivePageSec__pagination .page-numbers.prev {
  margin-right: 10px;
}
.objectivePageSec__pagination .page-numbers.next {
  margin-left: 10px;
}
@media screen and (max-width: 768px) {
  .objectivePageSec__pagination .page-numbers {
    min-width: 36px;
    height: 36px;
  }
  .objectivePageSec__pagination .page-numbers.prev {
    margin-right: 0;
  }
  .objectivePageSec__pagination .page-numbers.next {
    margin-left: 0;
  }
}

/*====================================================================
.worksPageSec
====================================================================*/
.worksPageSec {
  background-color: #EDF3F7;
  /*--------------------------------------------------------
  最近の実績 (Recent works) slider
  --------------------------------------------------------*/
}
.worksPageSec__wrap {
  background-color: #fff;
  padding: 80px 0 80px 9.72vw;
  overflow: hidden;
  position: relative;
}
.worksPageSec__wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 9.72vw;
  height: 100%;
  background-color: #fff;
  z-index: 2;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .worksPageSec__wrap {
    padding: 40px 0 40px 20px;
  }
  .worksPageSec__wrap::before {
    width: 20px;
  }
}
.worksPageSec__wrapInner {
  display: block;
}
.worksPageSec__wrapHead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-right: 9.72vw;
  margin-bottom: 28px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__wrapHead {
    padding-right: 20px;
    margin-bottom: 20px;
  }
}
.worksPageSec__wrapTitle {
  font-size: 32px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__wrapTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__wrapTitle {
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .worksPageSec__wrapTitle {
    font-size: 20px;
  }
}
.worksPageSec__wrapNav {
  display: flex;
  align-items: center;
  gap: 12px;
}
.worksPageSec__wrapNavBtn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid #002F7B;
  background-color: #fff;
  cursor: pointer;
  position: relative;
  padding: 0;
  transition: 0.6s;
}
.worksPageSec__wrapNavBtn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 11px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transform: translate(-50%, -50%);
  transition: 0.6s;
}
.worksPageSec__wrapNavBtn--prev::before {
  transform: translate(-50%, -50%) rotate(180deg);
}
@media screen and (min-width: 769px) {
  .worksPageSec__wrapNavBtn:hover {
    background-color: #002F7B;
  }
  .worksPageSec__wrapNavBtn:hover::before {
    background-color: #fff;
  }
}
.worksPageSec__wrapNavBtn.is-disabled {
  border-color: #E8E8E8;
  cursor: default;
  pointer-events: none;
}
.worksPageSec__wrapNavBtn.is-disabled::before {
  background-color: #E8E8E8;
}
.worksPageSec__wrapSliderArea {
  width: 100%;
}
.worksPageSec__swiper {
  width: 100%;
  overflow: hidden;
}
.worksPageSec__swiperItem {
  width: 280px;
  height: auto;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .worksPageSec__swiperItem {
    width: 200px;
  }
}
.worksPageSec__swiperLink {
  display: flex;
  flex-direction: column;
  color: #333;
}
.worksPageSec__swiperImgWrap {
  display: block;
  width: 100%;
  aspect-ratio: 280/173;
  overflow: hidden;
  border-radius: 8px;
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__swiperImgWrap {
    margin-bottom: 12px;
  }
}
.worksPageSec__swiperImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.worksPageSec__swiperTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__swiperTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__swiperTitle {
  font-weight: bold;
  color: #002F7B;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .worksPageSec__swiperTitle {
    font-size: 14px;
    line-height: 1.5;
  }
}
.worksPageSec__swiperMeta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin-top: 4px;
}
.worksPageSec__swiperMetaItem {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.03em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__swiperMetaItem {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__swiperMetaItem {
  color: #666;
}
@media screen and (max-width: 768px) {
  .worksPageSec__swiperMetaItem {
    font-size: 12px;
  }
}
.worksPageSec__swiperTags {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__swiperTags {
    margin-top: 12px;
  }
}
.worksPageSec__swiperTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 14px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  font-size: 11px;
  color: #002F7B;
  line-height: 1.4;
  letter-spacing: 0.04em;
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  .worksPageSec__swiperTag {
    font-size: 12px;
    padding: 3px 12px;
  }
}
.worksPageSec {
  /*--------------------------------------------------------
  Inner / head
  --------------------------------------------------------*/
}
.worksPageSec__inner {
  max-width: 1320px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.worksPageSec__inner {
  display: grid;
  grid-template-columns: 275px 1fr;
  grid-template-rows: auto 1fr;
  column-gap: 68px;
  row-gap: 20px;
  padding-top: 80px;
  padding-bottom: 200px;
  position: relative;
}
@media screen and (max-width: 1100px) {
  .worksPageSec__inner {
    grid-template-columns: 230px 1fr;
    column-gap: 32px;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__inner {
    display: flex;
    flex-direction: column;
    gap: 0px;
    padding: 40px 0 64px;
  }
}
.worksPageSec__head {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 8px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__head {
    order: 2;
    padding: 30px 20px 20px;
    background-color: #fff;
  }
}
.worksPageSec__count {
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__count {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__count {
  font-weight: bold;
  color: #333;
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__count {
    font-size: 14px;
  }
}
.worksPageSec__countNum {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 26px;
  font-weight: 700;
  color: #002F7B;
  margin: 0 4px;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .worksPageSec__countNum {
    font-size: 22px;
  }
}
.worksPageSec__countUnit {
  font-size: 14px;
  font-weight: bold;
  color: #333;
}
.worksPageSec__sort {
  position: relative;
}
.worksPageSec__sortSelect {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #fff;
  border: 1px solid #C8D5DE;
  border-radius: 6px;
  padding: 10px 40px 10px 18px;
  font-size: 14px;
  color: #333;
  letter-spacing: 0.05em;
  line-height: 1.4;
  cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%23002F7B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  min-width: 140px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__sortSelect {
    font-size: 13px;
    padding: 8px 32px 8px 14px;
    min-width: 120px;
  }
}
.worksPageSec {
  /*--------------------------------------------------------
  Body (left filter + right list)
  --------------------------------------------------------*/
}
.worksPageSec__body {
  display: contents;
}
@media screen and (max-width: 768px) {
  .worksPageSec__body {
    display: contents;
  }
}
.worksPageSec {
  /*--------------------------------------------------------
  Left side (filter sidebar)
  --------------------------------------------------------*/
}
.worksPageSec__left {
  grid-column: 1;
  grid-row: 1/span 2;
  width: 275px;
  margin-top: 61px;
  position: sticky;
  top: 110px;
  align-self: start;
}
@media screen and (max-width: 1100px) {
  .worksPageSec__left {
    width: 230px;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__left {
    position: static;
    order: 1;
    width: 100%;
    margin-top: 0;
    padding: 0 20px 48px;
  }
}
.worksPageSec__filter {
  display: flex;
  flex-direction: column;
}
.worksPageSec__filterCat {
  display: flex;
  flex-direction: column;
}
.worksPageSec__filterCatTitle {
  scroll-margin-top: 110px;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterCatTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__filterCatTitle {
  font-weight: bold;
  padding-bottom: 14px;
  margin-bottom: 18px;
  border-bottom: 1px solid #C8D5DE;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterCatTitle {
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0;
    padding: 14px 0;
  }
  .worksPageSec__filterCatTitle::after {
    content: "";
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M3 6l5 5 5-5' stroke='%23333' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: transform 0.3s ease;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterCat.is-open .worksPageSec__filterCatTitle::after {
    transform: rotate(180deg);
  }
}
.worksPageSec__filterCatList {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterCatList {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterCat.is-open .worksPageSec__filterCatList {
    max-height: 1200px;
    padding-top: 12px;
  }
}
.worksPageSec__filterCatItem {
  width: 100%;
}
.worksPageSec__filterCatLink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 12px;
  background-color: #fff;
  border: 1px solid #C8D5DE;
  border-radius: 6px;
  text-decoration: none;
  color: #333;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .worksPageSec__filterCatLink:hover {
    background-color: #002F7B;
    border-color: #002F7B;
  }
  .worksPageSec__filterCatLink:hover .worksPageSec__filterCatName,
  .worksPageSec__filterCatLink:hover .worksPageSec__filterCatCount {
    color: #fff;
  }
}
.worksPageSec__filterCatLink.is-active {
  background-color: #002F7B;
  border-color: #002F7B;
}
.worksPageSec__filterCatLink.is-active .worksPageSec__filterCatName,
.worksPageSec__filterCatLink.is-active .worksPageSec__filterCatCount {
  color: #fff;
}
.worksPageSec__filterCatName {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterCatName {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__filterCatName {
  font-size: 16px;
  letter-spacing: 0.04em;
  line-height: 1.4;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterCatName {
    font-size: 14px;
  }
}
.worksPageSec__filterCatCount {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 12px;
  color: #666;
  letter-spacing: 0.02em;
  flex-shrink: 0;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterTec {
    margin-top: 24px;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterTecBody {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterTec.is-open .worksPageSec__filterTecBody {
    max-height: 2400px;
    padding-bottom: 8px;
  }
}
.worksPageSec__filterHeading {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterHeading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__filterHeading {
  font-weight: bold;
  color: #333;
  letter-spacing: 0.05em;
  line-height: 1;
  padding-bottom: 12px;
  border-bottom: 1px solid #C8D5DE;
  margin-top: 40px;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterHeading {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 0;
    margin-bottom: 0;
    padding: 14px 0;
  }
  .worksPageSec__filterHeading::after {
    content: "";
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'><path d='M3 6l5 5 5-5' stroke='%23333' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: transform 0.3s ease;
  }
}
.worksPageSec__filterHeadingRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid #C8D5DE;
  margin-top: 40px;
  margin-bottom: 16px;
}
.worksPageSec__filterHeadingRow .worksPageSec__filterHeading {
  border-bottom: none;
  margin-top: 0;
  margin-bottom: 0;
  flex: 1;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterHeadingRow .worksPageSec__filterHeading {
    border-bottom: none;
  }
}
.worksPageSec__filterClearSmall {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterClearSmall {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__filterClearSmall {
  font-size: 14px;
  color: #333;
  text-decoration: underline;
  text-underline-offset: 3px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 2px 6px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .worksPageSec__filterClearSmall:hover {
    color: #002F7B;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterTec.is-open .worksPageSec__filterHeading::after {
    transform: rotate(180deg);
  }
}
.worksPageSec__filterBox {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterBox {
    padding-top: 16px;
  }
}
.worksPageSec__filterGroup {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.worksPageSec__filterGroupTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterGroupTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__filterGroupTitle {
  font-size: 14px;
  font-weight: bold;
  color: #002F7B;
  line-height: 1;
  padding-left: 8px;
  border-left: 3px solid #002F7B;
}
.worksPageSec__filterTags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.worksPageSec__filterTagItem {
  display: inline-block;
}
.worksPageSec__filterTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 12px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  background-color: #fff;
  cursor: pointer;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .worksPageSec__filterTag:hover {
    background-color: #002F7B;
  }
  .worksPageSec__filterTag:hover .worksPageSec__filterTagText {
    color: #fff;
  }
}
.worksPageSec__filterTagInput {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}
.worksPageSec__filterTag:has(.worksPageSec__filterTagInput:checked) {
  background-color: #002F7B;
  border-color: #002F7B;
}
.worksPageSec__filterTag:has(.worksPageSec__filterTagInput:checked) .worksPageSec__filterTagText {
  color: #fff;
}
.worksPageSec__filterTagText {
  pointer-events: none;
  font-size: 14px;
  color: #002F7B;
  letter-spacing: 0.04em;
  line-height: 1.3;
  transition: 0.6s;
}
.worksPageSec__filterActions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: 40px;
}
.worksPageSec__filterSubmit {
  width: 100%;
  background-color: #002F7B;
  color: #fff;
  border: 1px solid #002F7B;
  border-radius: 6px;
  padding: 14px 12px;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .worksPageSec__filterSubmit:hover {
    background-color: #5FA6EB;
    border-color: #5FA6EB;
  }
}
.worksPageSec__filterClear {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__filterClear {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__filterClear {
  font-size: 13px;
  color: #333;
  text-decoration: underline;
  text-underline-offset: 4px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 4px 8px;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .worksPageSec__filterClear:hover {
    color: #002F7B;
  }
}
.worksPageSec {
  /*--------------------------------------------------------
  Right side (results list)
  --------------------------------------------------------*/
}
.worksPageSec__right {
  grid-column: 2;
  grid-row: 2;
  background-color: #fff;
  border-radius: 12px;
  padding: 8px 40px;
  box-shadow: 0 2px 8px rgba(0, 47, 123, 0.06);
  max-width: 937px;
}
@media screen and (max-width: 1100px) {
  .worksPageSec__right {
    padding: 8px 24px;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__right {
    order: 3;
    padding: 0 20px 20px;
    border-radius: 0px;
  }
}
.worksPageSec__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.worksPageSec__noPost {
  padding: 60px 0;
  text-align: center;
  font-size: 16px;
  color: #666666;
}
@media screen and (max-width: 768px) {
  .worksPageSec__noPost {
    padding: 40px 0;
    font-size: 14px;
  }
}
.worksPageSec__listItem {
  width: 100%;
  border-bottom: 1px solid #ccc;
  scroll-margin-top: 120px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__listItem {
    scroll-margin-top: 80px;
  }
}
.worksPageSec__listItem:last-child {
  border-bottom: none;
}
.worksPageSec__card {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  padding: 40px 0px;
  text-decoration: none;
  color: #333;
}
@media screen and (max-width: 1024px) {
  .worksPageSec__card {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    padding: 28px 0;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__card {
    gap: 12px;
    padding: 24px 0;
  }
}
.worksPageSec__cardMedia {
  flex-shrink: 0;
  width: 420px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media screen and (max-width: 1024px) {
  .worksPageSec__cardMedia {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardMedia {
    gap: 4px;
  }
}
.worksPageSec__cardMain {
  width: 100%;
  aspect-ratio: 420/260;
  overflow: hidden;
  border-radius: 8px;
  background-color: #f0f0f0;
  position: relative;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardMain {
    border-radius: 6px;
  }
}
.worksPageSec__cardZoomIcon {
  position: absolute;
  bottom: 10px;
  right: 10px;
  width: 34px;
  height: 34px;
  background-color: rgba(255, 255, 255, 0.88);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 1;
  transition: 0.6s;
}
.worksPageSec__cardZoomIcon::before {
  content: "";
  display: block;
  width: 17px;
  height: 17px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'><circle cx='8.5' cy='8.5' r='5.5' stroke='black' stroke-width='1.8'/><line x1='12.7' y1='12.7' x2='17.5' y2='17.5' stroke='black' stroke-width='1.8' stroke-linecap='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'><circle cx='8.5' cy='8.5' r='5.5' stroke='black' stroke-width='1.8'/><line x1='12.7' y1='12.7' x2='17.5' y2='17.5' stroke='black' stroke-width='1.8' stroke-linecap='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardZoomIcon {
    opacity: 1;
    width: 30px;
    height: 30px;
    bottom: 8px;
    right: 8px;
  }
}
.worksPageSec__cardMainImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.worksPageSec__cardThumbs {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardThumbs {
    order: -1;
    margin-bottom: 8px;
  }
}
.worksPageSec__cardThumbItem {
  width: 100%;
}
.worksPageSec__cardThumb {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  padding: 0;
  background: none;
  border: 2px solid transparent;
  border-radius: 4px;
  overflow: hidden;
  cursor: pointer;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .worksPageSec__cardThumb:hover {
    opacity: 0.8;
  }
}
.worksPageSec__cardThumb.is-active {
  border-color: #00AB84;
}
.worksPageSec__cardThumbImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.worksPageSec__cardBody {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding-top: 4px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardBody {
    padding-top: 0;
  }
}
.worksPageSec__cardTitle {
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__cardTitle {
  font-weight: bold;
  color: #002F7B;
  margin-bottom: 8px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardTitle {
    font-size: 18px;
    margin-bottom: 2px;
    line-height: 1.45;
  }
}
.worksPageSec__cardMeta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardMeta {
    gap: 2px 10px;
    margin-bottom: 6px;
  }
}
.worksPageSec__cardMetaItem {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardMetaItem {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__cardMetaItem {
  color: #666;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardMetaItem {
    font-size: 12px;
  }
}
.worksPageSec__cardDesc {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardDesc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.worksPageSec__cardDesc {
  margin-bottom: 20px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardDesc {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 8px;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
}
.worksPageSec__cardTags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
  margin-bottom: 16px;
}
.worksPageSec__cardTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 14px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  font-size: 11px;
  color: #002F7B;
  letter-spacing: 0.04em;
  line-height: 1.4;
  background-color: #fff;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .worksPageSec__cardTag:hover {
    background-color: #002F7B;
    color: #fff;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__cardTag {
    font-size: 12px;
    padding: 3px 10px;
  }
}
.worksPageSec__cardPickup {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #cccccc;
}
.worksPageSec {
  /*--------------------------------------------------------
  Pagination (WP the_posts_pagination output)
  --------------------------------------------------------*/
}
.worksPageSec__pagination {
  margin-top: 40px;
  padding-bottom: 8px;
}
@media screen and (max-width: 768px) {
  .worksPageSec__pagination {
    margin-top: 24px;
  }
}
.worksPageSec__pagination .nav-links,
.worksPageSec__pagination ul.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
}
.worksPageSec__pagination ul.page-numbers > li {
  display: inline-flex;
}
.worksPageSec__pagination .page-numbers {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border-radius: 4px;
  background-color: #fff;
  color: #333;
  font-size: 14px;
  line-height: 1;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .worksPageSec__pagination .page-numbers:hover {
    background-color: #002F7B;
    color: #fff;
  }
}
.worksPageSec__pagination .page-numbers.current {
  background-color: #002F7B;
  color: #fff;
  font-weight: bold;
  pointer-events: none;
}
.worksPageSec__pagination .page-numbers.dots {
  background: transparent;
  min-width: auto;
  padding: 0 4px;
  pointer-events: none;
}
@media screen and (min-width: 769px) {
  .worksPageSec__pagination .page-numbers.dots:hover {
    background: transparent;
    color: #333;
  }
}
.worksPageSec__pagination .page-numbers.prev, .worksPageSec__pagination .page-numbers.next {
  background: transparent;
  border-color: transparent;
  color: #002F7B;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
  min-width: auto;
}
@media screen and (min-width: 769px) {
  .worksPageSec__pagination .page-numbers.prev:hover, .worksPageSec__pagination .page-numbers.next:hover {
    background: transparent;
    border-color: transparent;
    opacity: 0.7;
  }
}
@media screen and (max-width: 768px) {
  .worksPageSec__pagination .page-numbers {
    min-width: 34px;
    height: 34px;
    font-size: 13px;
  }
}
.worksPageSec {
  /*--------------------------------------------------------
  Pagination (legacy custom classes)
  --------------------------------------------------------*/
}
.worksPageSec__pager {
  margin-top: 32px;
  padding: 16px 0;
}
@media screen and (max-width: 768px) {
  .worksPageSec__pager {
    margin-top: 20px;
    padding: 8px 0;
  }
}
.worksPageSec__pagerList {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.worksPageSec__pagerItem {
  display: inline-flex;
}
.worksPageSec__pagerItem--prev .worksPageSec__pagerLink, .worksPageSec__pagerItem--next .worksPageSec__pagerLink {
  min-width: auto;
  padding: 8px 14px;
  border: none;
  background-color: transparent;
  color: #002F7B;
}
.worksPageSec__pagerLink {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border-radius: 4px;
  background-color: #fff;
  border: 1px solid #DDE5EB;
  color: #333;
  font-size: 14px;
  line-height: 1;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .worksPageSec__pagerLink:hover {
    background-color: #002F7B;
    border-color: #002F7B;
    color: #fff;
  }
}
.worksPageSec__pagerLink.is-current {
  background-color: #002F7B;
  border-color: #002F7B;
  color: #fff;
  font-weight: bold;
  pointer-events: none;
}
.worksPageSec__pagerLink.is-disabled {
  color: #BBB;
  cursor: default;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .worksPageSec__pagerLink {
    min-width: 34px;
    height: 34px;
    font-size: 13px;
  }
}

/*====================================================================
.worksLightbox (実績カード画像ポップアップ)
====================================================================*/
.worksLightbox {
  position: fixed;
  inset: 0;
  z-index: 9900;
  background-color: rgba(0, 0, 0, 0.88);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 60px 20px 20px;
}
.worksLightbox[hidden] {
  display: none;
}
.worksLightbox__close {
  position: absolute;
  top: 65px;
  right: 65px;
  width: 50px;
  height: 50px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}
.worksLightbox__close::before, .worksLightbox__close::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 26px;
  height: 2px;
  background-color: #fff;
  border-radius: 1px;
}
.worksLightbox__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.worksLightbox__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media screen and (min-width: 769px) {
  .worksLightbox__close:hover {
    opacity: 0.7;
  }
}
.worksLightbox__stage {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 100%;
}
@media screen and (max-width: 768px) {
  .worksLightbox__stage {
    gap: 8px;
  }
}
.worksLightbox__img {
  display: block;
  max-width: min(72vw, 1160px);
  max-height: 76vh;
  object-fit: contain;
  border-radius: 4px;
  user-select: none;
  -webkit-user-drag: none;
}
@media screen and (max-width: 768px) {
  .worksLightbox__img {
    max-width: calc(100vw - 104px);
    max-height: 68vh;
  }
}
.worksLightbox {
  /* 事例紹介ポップアップ：PCでは横幅650px固定 */
}
@media screen and (min-width: 769px) {
  .worksLightbox.is-caseExample .worksLightbox__img {
    width: 650px;
  }
}
.worksLightbox {
  /* 画像サイズ90%以上指定時：72vw制限だと元画像より縮小されてしまうため上限を1160pxまで拡大。
     ただしvw固定だと狭い画面で矢印ボタン・余白分がはみ出るため、実際に使える幅（画面幅 - 左右余白・矢印ボタン分）を上限に含める */
}
@media screen and (min-width: 769px) {
  .worksLightbox.is-fullWidth .worksLightbox__img {
    max-width: min(1160px, 100vw - 168px);
  }
}
.worksLightbox__nav {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.12);
  border: 1.5px solid rgba(255, 255, 255, 0.4);
  cursor: pointer;
  padding: 0;
  position: relative;
  transition: 0.6s;
}
.worksLightbox__nav::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 10px;
  background-color: #fff;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transform: translate(-50%, -50%);
}
.worksLightbox__nav--prev::before {
  transform: translate(-50%, -50%) rotate(180deg);
}
.worksLightbox__nav[hidden] {
  display: none;
}
@media screen and (min-width: 769px) {
  .worksLightbox__nav:hover {
    background-color: rgba(255, 255, 255, 0.25);
  }
}
@media screen and (max-width: 768px) {
  .worksLightbox__nav {
    width: 36px;
    height: 36px;
  }
}
.worksLightbox__counter {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.08em;
  line-height: 1;
  min-height: 1em;
}

/*====================================================================
.corporatePageSec
====================================================================*/
.corporatePageSec {
  background-color: #fff;
  padding: 40px 0 120px;
}
@media screen and (max-width: 768px) {
  .corporatePageSec {
    padding: 0 0 64px;
  }
}
.corporatePageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.corporatePageSec__splitRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 40px 0 40px;
  border-bottom: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__splitRow {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    padding: 40px 0 28px;
  }
}
.corporatePageSec__splitBody {
  flex: 0 1 600px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__splitBody {
    flex: none;
    order: 2;
  }
}
.corporatePageSec__splitMedia {
  width: 500px;
  border-radius: 10px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__splitMedia {
    flex: none;
    order: 1;
    width: 100%;
  }
}
.corporatePageSec__splitImg {
  width: 100%;
  height: auto;
  display: block;
}
.corporatePageSec__splitTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__splitTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.corporatePageSec__splitTitle {
  font-size: 28px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__splitTitle {
    font-size: 24px;
    margin-bottom: 12px;
  }
}
.corporatePageSec__splitLead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__splitLead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.corporatePageSec__splitLead {
  font-size: 16px;
  line-height: 1.75;
  margin-bottom: 56px;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__splitLead {
    font-size: 14px;
    line-height: 1.75;
    margin-bottom: 28px;
  }
}
.corporatePageSec__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 240px;
  padding: 10px 10px 10px 28px;
  border: 1px solid #002F7B;
  border-radius: 40px;
  background-color: #fff;
  transition: 0.6s;
  margin-right: 10px;
}
@media screen and (min-width: 769px) {
  .corporatePageSec__cta:hover {
    background-color: #002F7B;
  }
  .corporatePageSec__cta:hover .corporatePageSec__ctaText {
    color: #fff;
  }
  .corporatePageSec__cta:hover .corporatePageSec__ctaIcon {
    background-color: #fff;
  }
  .corporatePageSec__cta:hover .corporatePageSec__ctaIcon::before, .corporatePageSec__cta:hover .corporatePageSec__ctaIcon::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .corporatePageSec__cta:hover .corporatePageSec__ctaIcon::before {
    left: 150%;
  }
  .corporatePageSec__cta:hover .corporatePageSec__ctaIcon::after {
    left: 50%;
  }
}
.corporatePageSec__cta:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 3px;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__cta {
    width: 100%;
    max-width: 200px;
    padding: 10px 10px 10px 20px;
    margin: 0;
    display: flex;
    gap: 0;
    min-width: auto;
    margin-right: 0;
    margin-bottom: 10px;
  }
}
.corporatePageSec__ctaText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__ctaText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.corporatePageSec__ctaText {
  font-size: 16px;
  font-weight: 500;
  color: #002F7B;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__ctaText {
    font-size: 16px;
  }
}
.corporatePageSec__ctaIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background-color: #002F7B;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  transition: 0.6s;
}
.corporatePageSec__ctaIcon::before, .corporatePageSec__ctaIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.corporatePageSec__ctaIcon::after {
  left: -50%;
}
.corporatePageSec__bannerRow {
  padding: 72px 0;
  border-bottom: 1px solid #e0e0e0;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerRow {
    padding: 40px 0;
    border-bottom: none;
  }
}
.corporatePageSec__bannerRow--cols2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerRow--cols2 {
    padding-bottom: 20px;
  }
}
.corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerGrad {
  display: none;
}
.corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerFoot {
  gap: 20px;
  padding: 28px 32px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 100%);
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerFoot {
    padding: 18px 20px;
  }
}
.corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerTitle {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerTitle {
    font-size: 18px;
  }
}
.corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerCard {
  border-radius: 10px;
}
@media screen and (min-width: 769px) {
  .corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerImg {
    transform: scale(1.05);
  }
  .corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow {
    background-color: #fff;
    border-color: #fff;
  }
  .corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow::before, .corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow::before {
    left: 150%;
  }
  .corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow::after {
    left: 50%;
  }
}
.corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerCardInner {
  aspect-ratio: 560/315;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerRow--cols2 .corporatePageSec__bannerCardInner {
    aspect-ratio: 335/188;
  }
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerRow--cols2 {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.corporatePageSec__bannerRow--cols3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  border-bottom: none;
  padding-bottom: 0;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerRow--cols3 {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerRow--cols3 .corporatePageSec__bannerCard--square .corporatePageSec__bannerCardInner {
    aspect-ratio: 335/120;
  }
}
.corporatePageSec__bannerCard {
  display: block;
  text-decoration: none;
  color: inherit;
  border-radius: 10px;
  overflow: hidden;
  transition: 0.6s;
}
.corporatePageSec__bannerCard:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 3px;
}
@media screen and (min-width: 769px) {
  .corporatePageSec__bannerRow--cols3 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerImg {
    transform: scale(1.04);
  }
  .corporatePageSec__bannerRow--cols3 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow {
    background-color: #fff;
    border-color: #fff;
  }
  .corporatePageSec__bannerRow--cols3 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow::before, .corporatePageSec__bannerRow--cols3 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .corporatePageSec__bannerRow--cols3 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow::before {
    left: 150%;
  }
  .corporatePageSec__bannerRow--cols3 .corporatePageSec__bannerCard:hover .corporatePageSec__bannerArrow::after {
    left: 50%;
  }
}
.corporatePageSec__bannerCardInner {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: inherit;
}
.corporatePageSec__bannerCard--square .corporatePageSec__bannerCardInner {
  aspect-ratio: 1/1;
}
.corporatePageSec__bannerImg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.001);
  transition: transform 0.5s ease;
}
.corporatePageSec__bannerGrad {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.72) 0%, rgba(0, 0, 0, 0.25) 42%, rgba(0, 0, 0, 0) 68%);
}
.corporatePageSec__bannerFoot {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 22px 24px;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerFoot {
    padding: 16px 16px 18px;
  }
}
.corporatePageSec__bannerTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.corporatePageSec__bannerTitle {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.35;
  letter-spacing: 0.04em;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerTitle {
    font-size: 15px;
    line-height: 1.4;
  }
}
.corporatePageSec__bannerArrow {
  flex-shrink: 0;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.9);
  background-color: transparent;
  position: relative;
  transition: 0.6s;
}
.corporatePageSec__bannerArrow::before, .corporatePageSec__bannerArrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.corporatePageSec__bannerArrow::after {
  left: -50%;
}
@media screen and (max-width: 768px) {
  .corporatePageSec__bannerArrow {
    width: 30px;
    height: 30px;
  }
  .corporatePageSec__bannerArrow::before, .corporatePageSec__bannerArrow::after {
    width: 11px;
    height: 11px;
  }
}

/*====================================================================
.philosophyPageSec
====================================================================*/
.philosophyPageSec {
  background-color: #fff;
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec {
    padding: 40px 0 64px;
  }
}
.philosophyPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.philosophyPageSec__block {
  margin-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__block {
    margin-bottom: 64px;
  }
}
.philosophyPageSec__block:last-child {
  margin-bottom: 0;
}
.philosophyPageSec__block#anchor-philosophy {
  scroll-margin-top: calc(60px + 24px);
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__block#anchor-philosophy {
    scroll-margin-top: calc(50px + 20px);
  }
}
.philosophyPageSec__figure {
  margin-top: 40px;
}
.philosophyPageSec__lead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.philosophyPageSec__lead {
  margin: 40px 0 40px;
  font-size: 16px;
  line-height: 1.75;
}
.philosophyPageSec__lead .u-02 {
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__lead {
    margin: 28px 0 8px;
    font-size: 14px;
    line-height: 1.85;
  }
}
.philosophyPageSec__diagramImg, .philosophyPageSec__figureImg {
  display: block;
  width: 100%;
  height: auto;
}
.philosophyPageSec__ring {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 0 40px;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__ring {
    margin-bottom: 32px;
  }
}
.philosophyPageSec__ring--placeholder {
  display: none;
  margin: 0;
}
.philosophyPageSec__ringImg {
  display: block;
  width: 100%;
  max-width: min(100%, 920px);
  height: auto;
}
.philosophyPageSec__groupItem {
  padding: 40px 0;
  border-bottom: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupItem {
    padding: 20px 0;
  }
}
.philosophyPageSec__groupItem--link {
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .philosophyPageSec__groupItem--link:hover {
    opacity: 0.6;
  }
}
.philosophyPageSec__groupLink {
  display: grid;
  grid-template-columns: minmax(140px, 330px) 1fr auto;
  gap: 16px 40px;
  align-items: start;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupLink {
    grid-template-columns: 1fr auto;
    column-gap: 12px;
    row-gap: 8px;
  }
}
.philosophyPageSec__groupLink:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 4px;
  border-radius: 2px;
}
.philosophyPageSec__groupRow {
  display: grid;
  grid-template-columns: minmax(140px, 330px) 1fr;
  gap: 24px 32px;
  align-items: start;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupRow {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.philosophyPageSec__groupRow .philosophyPageSec__groupName {
  grid-column: 1;
  grid-row: 1;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupRow .philosophyPageSec__groupName {
    grid-column: 1/-1;
  }
}
.philosophyPageSec__groupName {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupName {
    font-size: 14px;
    line-height: 1.8;
  }
}
.philosophyPageSec__groupName {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupName {
    font-size: 16px;
  }
}
.philosophyPageSec__groupLink .philosophyPageSec__groupName {
  grid-column: 1;
  grid-row: 1;
}
.philosophyPageSec__groupDesc {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupDesc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.philosophyPageSec__groupDesc {
  font-size: 16px;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupDesc {
    font-size: 14px;
    line-height: 1.75;
  }
}
.philosophyPageSec__groupRow .philosophyPageSec__groupDesc {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupRow .philosophyPageSec__groupDesc {
    grid-column: 1/-1;
    grid-row: auto;
  }
}
.philosophyPageSec__groupLink .philosophyPageSec__groupDesc {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupLink .philosophyPageSec__groupDesc {
    grid-column: 1;
    grid-row: 2;
  }
}
.philosophyPageSec__groupGo {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background-color: #002F7B;
}
@media screen and (max-width: 768px) {
  .philosophyPageSec__groupGo {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    width: 24px;
    height: 24px;
  }
}
.philosophyPageSec__groupGoSvg {
  display: block;
  width: 12px;
  height: 12px;
  transition: 0.6s;
}

/* ----- ロゴグリッド ----- */
.philosophyLogoGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin: 40px 0 60px;
}
@media screen and (max-width: 768px) {
  .philosophyLogoGrid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 14px;
    align-items: start;
    margin: 24px auto 40px;
  }
}
.philosophyLogoGrid--sub {
  padding-bottom: 0;
}
@media screen and (min-width: 769px) {
  .philosophyLogoGrid--sub {
    grid-template-columns: repeat(2, 1fr);
    width: calc((100% - 56px) * 2 / 3 + 28px);
    max-width: 100%;
  }
}
@media screen and (max-width: 768px) {
  .philosophyLogoGrid--sub {
    width: 100%;
  }
}

.philosophyLogoCard {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: 100%;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .philosophyLogoCard {
    height: auto;
  }
}
@media screen and (min-width: 769px) {
  .philosophyLogoCard:hover .philosophyLogoCard__box {
    border-color: #002F7B;
    box-shadow: 0 4px 16px rgba(0, 47, 123, 0.08);
  }
  .philosophyLogoCard:hover .philosophyLogoCard__name {
    color: #5FA6EB;
  }
  .philosophyLogoCard:hover .philosophyLogoCard__iconSvg {
    transform: translate(1px, -1px);
  }
}
.philosophyLogoCard:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 4px;
  border-radius: 8px;
}
.philosophyLogoCard__box {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  border-radius: 8px;
  background-color: #fff;
  transition: 0.6s;
}
.philosophyLogoCard__logo {
  display: block;
  max-width: 100%;
  object-fit: contain;
}
.philosophyLogoCard__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
}
@media screen and (max-width: 768px) {
  .philosophyLogoCard__foot {
    align-items: baseline;
    margin-top: 8px;
    gap: 10px;
  }
}
.philosophyLogoCard__name {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .philosophyLogoCard__name {
    font-size: 14px;
    line-height: 1.8;
  }
}
.philosophyLogoCard__name {
  flex: 1;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
  transition: 0.6s;
  padding-left: 6px;
}
@media screen and (max-width: 768px) {
  .philosophyLogoCard__name {
    font-size: 14px;
    text-align: left;
    padding-left: 0;
  }
}
.philosophyLogoCard__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background-color: #002F7B;
}
@media screen and (max-width: 768px) {
  .philosophyLogoCard__icon {
    width: 20px;
    height: 20px;
  }
}
.philosophyLogoCard__iconSvg {
  display: block;
  width: 12px;
  height: 12px;
  transition: 0.6s;
}

/*====================================================================
.summaryPageSec
====================================================================*/
.summaryPageSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .summaryPageSec {
    padding: 28px 0 72px;
  }
}
.summaryPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.summaryPageSec__tableWrap {
  margin: 0 auto;
}
.summaryPageSec__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: 1px solid #ccc;
  font-size: 15px;
  line-height: 1.75;
  color: #333;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__table {
    font-size: 14px;
    line-height: 1.65;
  }
}
.summaryPageSec__table th,
.summaryPageSec__table td {
  border: 1px solid #ccc;
  padding: 20px 24px;
  vertical-align: top;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__table th,
  .summaryPageSec__table td {
    padding: 14px 16px;
  }
}
.summaryPageSec__table tr:has(.summaryPageSec__tablePdfBadge) th,
.summaryPageSec__table tr:has(.summaryPageSec__tablePdfBadge) td {
  vertical-align: middle;
}
.summaryPageSec__table th {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__table th {
    font-size: 14px;
    line-height: 1.8;
  }
}
.summaryPageSec__table th {
  background: #f8f7f5;
  text-align: left;
  font-weight: bold;
}
@media screen and (min-width: 769px) {
  .summaryPageSec__table th {
    width: 26%;
  }
}
@media screen and (max-width: 768px) {
  .summaryPageSec__table th {
    width: 30%;
    font-size: 14px;
    vertical-align: middle;
  }
}
.summaryPageSec__table td {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__table td {
    font-size: 14px;
    line-height: 1.8;
  }
}
.summaryPageSec__table td {
  background: #fff;
  word-break: break-word;
}
.summaryPageSec__tableRow--biz th {
  vertical-align: middle;
}
.summaryPageSec__tableLink {
  color: #002F7B;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  font-size: 16px;
}
@media screen and (min-width: 769px) {
  .summaryPageSec__tableLink:hover {
    text-decoration: none;
  }
}
@media screen and (max-width: 768px) {
  .summaryPageSec__tableLink {
    font-size: 14px;
  }
}
.summaryPageSec__tableOfficersTail {
  white-space: nowrap;
  margin-left: 0.35em;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__tableOfficersTail {
    margin-left: 0;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
  }
}
.summaryPageSec__tablePdfBadge {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  display: inline-block;
  padding: 1px 4px;
  border: 1px solid #002F7B;
  border-radius: 2px;
  color: #002F7B;
  font-weight: 700;
  line-height: 1.3;
  font-size: 12px;
}
@media screen and (min-width: 769px) {
  .summaryPageSec__tablePdfBadge:hover {
    background: rgba(0, 102, 204, 0.06);
  }
}
.summaryPageSec__tablePdfBadge:focus-visible {
  outline: 2px solid #0066cc;
  outline-offset: 2px;
}
.summaryPageSec__biz {
  display: flex;
  flex-direction: column;
  gap: 0.85em;
  font-size: 15px;
  line-height: 1.85;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__biz {
    gap: 0.75em;
    font-size: 14px;
    line-height: 1.8;
  }
}
.summaryPageSec__bizBlock {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__bizLine {
    display: flex;
    align-items: baseline;
  }
}
.summaryPageSec__bizMarker {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-weight: bold;
  font-size: 16px;
  color: #002F7B;
  padding-right: 21px;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__bizMarker {
    padding-right: 0px;
    width: 30px;
  }
}
.summaryPageSec__bizText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__bizText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.summaryPageSec__bizText {
  width: calc(100% - 30px);
}
.summaryPageSec__bizSubs {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .summaryPageSec__bizSubs {
    font-size: 14px;
    line-height: 1.8;
  }
}
.summaryPageSec__bizSubs {
  line-height: 1.75;
  padding-left: 40px;
}

@media screen and (max-width: 768px) {
  td.summaryPageSec__tablePdfBadgeWrap {
    padding-right: 60px;
    position: relative;
  }
}

/*====================================================================
.crsPageSec
====================================================================*/
.crsPageSec {
  background-color: #EDF3F7;
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .crsPageSec {
    padding: 40px 0 72px;
  }
}
.crsPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .crsPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.crsPageSec__lead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .crsPageSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.crsPageSec__lead {
  max-width: 820px;
  margin: 0 auto 50px;
  font-size: 18px;
  line-height: 1.85;
  text-align: center;
  color: #333;
}
@media screen and (max-width: 768px) {
  .crsPageSec__lead {
    margin-bottom: 32px;
    font-size: 15px;
    text-align: left;
  }
}
.crsPageSec {
  /* 3カラムカードグリッド（SPは1列） */
}
.crsPageSec__cardGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .crsPageSec__cardGrid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.crsPageSec__cardGridCell {
  display: flex;
}
.crsPageSec {
  /* カード全体がリンク */
}
.crsPageSec__reportCard {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100%;
  padding: 24px 22px 22px;
  border-radius: 20px;
  background-color: #fff;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .crsPageSec__reportCard {
    padding: 22px 18px 18px;
  }
}
.crsPageSec__reportCard:hover {
  box-shadow: 0 6px 28px rgba(0, 47, 123, 0.08);
}
@media screen and (min-width: 769px) {
  .crsPageSec__reportCard:hover:hover .crsPageSec__reportCardBtn, .crsPageSec__reportCard:hover:hover .crsPageSingleSec__reportCardBtn {
    background-color: #002F7B;
  }
  .crsPageSec__reportCard:hover:hover .crsPageSec__reportCardBtnText, .crsPageSec__reportCard:hover:hover .crsPageSingleSec__reportCardBtnText {
    color: #fff;
  }
  .crsPageSec__reportCard:hover:hover .crsPageSec__reportCardBtnIcon, .crsPageSec__reportCard:hover:hover .crsPageSingleSec__reportCardBtnIcon {
    background-color: #fff;
  }
  .crsPageSec__reportCard:hover:hover .crsPageSec__reportCardBtnIcon::before, .crsPageSec__reportCard:hover:hover .crsPageSingleSec__reportCardBtnIcon::before, .crsPageSec__reportCard:hover:hover .crsPageSec__reportCardBtnIcon::after, .crsPageSec__reportCard:hover:hover .crsPageSingleSec__reportCardBtnIcon::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .crsPageSec__reportCard:hover:hover .crsPageSec__reportCardBtnIcon::before, .crsPageSec__reportCard:hover:hover .crsPageSingleSec__reportCardBtnIcon::before {
    left: 150%;
  }
  .crsPageSec__reportCard:hover:hover .crsPageSec__reportCardBtnIcon::after, .crsPageSec__reportCard:hover:hover .crsPageSingleSec__reportCardBtnIcon::after {
    left: 50%;
  }
}
.crsPageSec__reportCardTitle, .crsPageSingleSec__reportCardTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .crsPageSec__reportCardTitle, .crsPageSingleSec__reportCardTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.crsPageSec__reportCardTitle, .crsPageSingleSec__reportCardTitle {
  margin: 0 0 14px;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.45;
  letter-spacing: 0.02em;
  color: #333;
}
@media screen and (max-width: 768px) {
  .crsPageSec__reportCardTitle, .crsPageSingleSec__reportCardTitle {
    font-size: 17px;
    margin-bottom: 12px;
  }
}
.crsPageSec {
  /* 左約1/3が青・残りが薄いグレー */
}
.crsPageSec__reportCardRule, .crsPageSingleSec__reportCardRule {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0 0 22px;
  flex-shrink: 0;
}
.crsPageSec__reportCardRuleAccent, .crsPageSingleSec__reportCardRuleAccent {
  flex: 0 0 33.333%;
  max-width: 33.333%;
  height: 3px;
  background-color: #002F7B;
}
.crsPageSec__reportCardRuleRest, .crsPageSingleSec__reportCardRuleRest {
  flex: 1 1 auto;
  height: 1px;
  background-color: #d0d0d0;
}
.crsPageSec__reportCardThumb, .crsPageSingleSec__reportCardThumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  margin: 0 0 24px;
  min-height: 0;
}
.crsPageSec__reportCardThumbImg, .crsPageSingleSec__reportCardThumbImg {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(320px, 52vw);
  object-fit: contain;
}
@media screen and (max-width: 768px) {
  .crsPageSec__reportCardThumbImg, .crsPageSingleSec__reportCardThumbImg {
    max-height: 280px;
  }
}
.crsPageSec__reportCardBtn, .crsPageSingleSec__reportCardBtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 10px 10px 28px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  background-color: #fff;
  box-sizing: border-box;
  transition: 0.6s;
  max-width: 260px;
  margin: 0 auto;
}
.crsPageSec__reportCardBtnText, .crsPageSingleSec__reportCardBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .crsPageSec__reportCardBtnText, .crsPageSingleSec__reportCardBtnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.crsPageSec__reportCardBtnText, .crsPageSingleSec__reportCardBtnText {
  font-size: 16px;
  font-weight: 500;
  color: #002f7b;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .crsPageSec__reportCardBtnText, .crsPageSingleSec__reportCardBtnText {
    font-size: 14px;
  }
}
.crsPageSec__reportCardBtnIcon, .crsPageSingleSec__reportCardBtnIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #002F7B;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  transition: 0.6s;
}
.crsPageSec__reportCardBtnIcon::before, .crsPageSingleSec__reportCardBtnIcon::before, .crsPageSec__reportCardBtnIcon::after, .crsPageSingleSec__reportCardBtnIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.crsPageSec__reportCardBtnIcon::after, .crsPageSingleSec__reportCardBtnIcon::after {
  left: -50%;
}

/*====================================================================
.crsPageSingleSec（CSR報告書 詳細）
====================================================================*/
.crsPageSingleSec {
  padding: 80px 0 120px;
  background-color: #edf3f7;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec {
    padding: 40px 0 72px;
  }
}
.crsPageSingleSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.crsPageSingleSec__grid {
  display: flex;
  align-items: flex-start;
  gap: 48px 56px;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__grid {
    flex-direction: column;
    gap: 36px;
  }
}
.crsPageSingleSec__body {
  flex: 1;
}
.crsPageSingleSec__lead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.crsPageSingleSec__lead {
  margin: 0 0 28px;
  font-size: 16px;
  line-height: 1.75;
  color: #333;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__lead {
    margin-bottom: 22px;
    font-size: 15px;
  }
}
.crsPageSingleSec__tableWrap {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__tableWrap {
    margin-bottom: 32px;
  }
}
.crsPageSingleSec__footnotes p {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__footnotes p {
    font-size: 14px;
    line-height: 1.8;
  }
}
.crsPageSingleSec__footnotes p {
  font-size: 14px;
  line-height: 1.85;
}
.crsPageSingleSec__tocTable {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: 1px solid #ccc;
  font-size: 15px;
  line-height: 1.75;
  color: #333;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__tocTable {
    font-size: 14px;
    line-height: 1.65;
  }
}
.crsPageSingleSec__tocCell {
  padding: 0;
  vertical-align: middle;
  border: 1px solid #ccc;
}
.crsPageSingleSec__tocLink {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__tocLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.crsPageSingleSec__tocLink {
  display: flex;
  align-items: stretch;
  width: 100%;
  text-underline-offset: 0.15em;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .crsPageSingleSec__tocLink:hover {
    color: #002F7B;
  }
}
.crsPageSingleSec__tocLink:focus-visible {
  outline: 2px solid #5FA6EB;
  outline-offset: -2px;
}
.crsPageSingleSec__tocNum {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  flex: 0 0 22%;
  max-width: 22%;
  padding: 20px 24px;
  background: #f8f7f5;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.75;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__tocNum {
    flex: 0 0 32%;
    max-width: 32%;
    padding: 14px 16px;
    font-size: 14px;
  }
}
.crsPageSingleSec__tocBody {
  flex: 1 1 auto;
  padding: 20px 24px;
  background: #fff;
  font-size: 16px;
  line-height: 1.75;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__tocBody {
    padding: 14px 16px;
    font-size: 14px;
  }
}
.crsPageSingleSec {
  /* 一覧ページのカードと見た目共通（クラス名のみ詳細用に分離） */
}
.crsPageSingleSec__aside {
  flex: 0 0 320px;
  width: 100%;
  max-width: 360px;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__aside {
    flex: none;
    max-width: none;
  }
}
.crsPageSingleSec__asideCard {
  padding: 24px 22px 22px;
  border-radius: 20px;
  background-color: #fff;
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .crsPageSingleSec__asideCard {
    padding: 22px 18px 18px;
  }
}
.crsPageSingleSec__asideCard .crsPageSingleSec__reportCardThumb {
  margin-bottom: 0;
}
.crsPageSingleSec__asideDownload.crsPageSingleSec__reportCardBtn {
  text-decoration: none;
  max-width: none;
  width: 100%;
  margin: 0;
}
@media screen and (min-width: 769px) {
  .crsPageSingleSec__asideDownload.crsPageSingleSec__reportCardBtn:hover:hover {
    background-color: #002F7B;
  }
  .crsPageSingleSec__asideDownload.crsPageSingleSec__reportCardBtn:hover:hover .crsPageSingleSec__reportCardBtnText {
    color: #fff;
  }
  .crsPageSingleSec__asideDownload.crsPageSingleSec__reportCardBtn:hover:hover .crsPageSingleSec__reportCardBtnIcon {
    background-color: #fff;
  }
  .crsPageSingleSec__asideDownload.crsPageSingleSec__reportCardBtn:hover:hover .crsPageSingleSec__reportCardBtnIcon::before, .crsPageSingleSec__asideDownload.crsPageSingleSec__reportCardBtn:hover:hover .crsPageSingleSec__reportCardBtnIcon::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .crsPageSingleSec__asideDownload.crsPageSingleSec__reportCardBtn:hover:hover .crsPageSingleSec__reportCardBtnIcon::before {
    left: 150%;
  }
  .crsPageSingleSec__asideDownload.crsPageSingleSec__reportCardBtn:hover:hover .crsPageSingleSec__reportCardBtnIcon::after {
    left: 50%;
  }
}
.crsPageSingleSec__asideFileMeta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 16px 0 0;
}
.crsPageSingleSec__asideFileSize {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 12px;
  font-weight: bold;
  color: #002F7B;
}
.crsPageSingleSec__asidePdfIcon {
  display: block;
  width: 28px;
  height: auto;
}

/* アコーディオン見出し左のアクセント（デザイン：ティール／グリーン系） */
/*====================================================================
.policyPageSec
====================================================================*/
.policyPageSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .policyPageSec {
    padding: 40px 0 72px;
  }
}
.policyPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.policyPageSec__accordion {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__accordion {
    gap: 10px;
  }
}
.policyPageSec__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 24px;
  cursor: pointer;
  background-color: #EDF3F7;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .policyPageSec__head {
    font-size: 14px;
    line-height: 1.8;
  }
}
.policyPageSec__head {
  border-left: 4px solid #00AB84;
  font-weight: bold;
  font-size: 24px;
  line-height: 1.5;
  color: #002F7B;
  width: 100%;
}
.policyPageSec__head:focus, .policyPageSec__head:focus-visible, .policyPageSec__head:active {
  outline: none;
  box-shadow: none;
}
.policyPageSec__head::after {
  content: "+";
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  color: #002F7B;
  border: 1.5px solid #002F7B;
  border-radius: 50%;
}
@media screen and (max-width: 768px) {
  .policyPageSec__head {
    padding: 12px 16px 12px 20px;
    font-size: 18px;
  }
  .policyPageSec__head::after {
    width: 26px;
    height: 26px;
    font-size: 18px;
  }
}
.policyPageSec__headLabel {
  flex: 1;
}
.policyPageSec__item.is-open .policyPageSec__head::after {
  content: "−";
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .policyPageSec__item.is-open .policyPageSec__head::after {
    font-size: 18px;
  }
}
.policyPageSec__body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.6s ease;
}
.policyPageSec__body[hidden] {
  display: none;
}
.policyPageSec__bodyInner {
  padding: 40px 0;
}
@media screen and (max-width: 768px) {
  .policyPageSec__bodyInner {
    padding: 28px 0;
  }
}
.policyPageSec__subBlock {
  margin-top: 32px;
}
.policyPageSec__subBlock:first-child {
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .policyPageSec__subBlock {
    margin-top: 24px;
  }
}
.policyPageSec__lead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .policyPageSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.policyPageSec__lead {
  line-height: 1.75;
}
.policyPageSec__lead.u-bold {
  font-weight: bold;
}
.policyPageSec__lead.u-bottom {
  margin-bottom: 30px;
}
.policyPageSec__lead.u-bottom20 {
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__lead.u-bottom {
    margin-bottom: 20px;
  }
  .policyPageSec__lead.u-bottom10 {
    margin-bottom: 10px;
  }
}
.policyPageSec__subTitle {
  margin: 40px 0 16px;
  padding-left: 18px;
  position: relative;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .policyPageSec__subTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.policyPageSec__subTitle {
  font-size: 18px;
  color: #002F7B;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .policyPageSec__subTitle {
    font-size: 16px;
    margin: 18px 0 12px;
  }
}
.policyPageSec__subTitle::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 10px;
  height: 2px;
  background: #00AB84;
  border-radius: 1px;
}
.policyPageSec__subTitle--dot::before {
  top: 0.6em;
}
.policyPageSec__subTitleBg {
  padding-left: 18px;
  position: relative;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .policyPageSec__subTitleBg {
    font-size: 14px;
    line-height: 1.8;
  }
}
.policyPageSec__subTitleBg {
  font-size: 18px;
  color: #002F7B;
  font-weight: bold;
}
.policyPageSec__subTitleBg::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 10px;
  height: 2px;
  background: #00AB84;
  border-radius: 1px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__subTitleBg {
    font-size: 16px;
  }
}
.policyPageSec__text {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .policyPageSec__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.policyPageSec__text {
  line-height: 1.75;
}
.policyPageSec__text:last-child {
  margin-bottom: 0;
}
.policyPageSec__highlight {
  margin-top: 40px;
  padding: 24px 28px;
  border-left: 4px solid #00AB84;
  background-color: rgba(0, 171, 132, 0.04);
}
.policyPageSec__highlight.u-mt20 {
  margin-top: 20px;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__highlight {
    padding: 16px 20px;
  }
}
.policyPageSec__highlight .policyPageSec__subTitle {
  margin-bottom: 1em;
}
.policyPageSec__highlight {
  /* 番号のみアクセントブルー、本文は黒（デザイン準拠） */
}
.policyPageSec__highlight .policyPageSec__olItem {
  color: #333;
}
.policyPageSec__highlight .policyPageSec__olItem::before {
  color: #002F7B;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-weight: bold;
}
.policyPageSec {
  /* 行動指針カード（項目1：番号付きリストの再構成） */
}
.policyPageSec__actionBlock {
  margin-top: 40px;
  padding: 4px 28px;
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
}
.policyPageSec__actionBlock.u-mt20 {
  margin-top: 20px;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__actionBlock {
    padding: 2px 20px;
  }
}
.policyPageSec__actionBlock .policyPageSec__subTitleBg {
  margin: 24px 0 4px;
}
.policyPageSec__actionBlock .policyPageSec__subTitleBg.u-mt40 {
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__actionBlock .policyPageSec__subTitleBg.u-mt40 {
    margin-top: 28px;
  }
}
@media screen and (max-width: 768px) {
  .policyPageSec__actionBlock .policyPageSec__subTitleBg {
    margin: 20px 0 4px;
  }
}
.policyPageSec__actionList {
  list-style: none;
  margin: 0;
  padding: 0;
}
.policyPageSec__actionItem {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 24px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.policyPageSec__actionItem:first-child {
  border-top: none;
}
@media screen and (max-width: 768px) {
  .policyPageSec__actionItem {
    gap: 12px;
    padding: 18px 0;
  }
}
.policyPageSec__actionNum {
  flex-shrink: 0;
  width: 40px;
  padding-top: 0.1em;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 24px;
  font-weight: bold;
  line-height: 1;
  color: #00AB84;
}
@media screen and (max-width: 768px) {
  .policyPageSec__actionNum {
    width: 30px;
    font-size: 19px;
  }
}
.policyPageSec__actionIcon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: rgba(0, 171, 132, 0.08);
  color: #00AB84;
}
.policyPageSec__actionIcon svg {
  width: 22px;
  height: 22px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__actionIcon {
    width: 34px;
    height: 34px;
  }
  .policyPageSec__actionIcon svg {
    width: 17px;
    height: 17px;
  }
}
.policyPageSec__actionText {
  flex: 1;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .policyPageSec__actionText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.policyPageSec__actionText {
  line-height: 1.7;
  color: #333;
  padding-top: 0.2em;
}
.policyPageSec {
  /* 行動指針の目標文（箇条書きの見出しにあたる一文） */
}
.policyPageSec__actionGoal {
  display: block;
  margin-bottom: 0.5em;
  font-weight: bold;
  font-size: 17px;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .policyPageSec__actionGoal {
    font-size: 15px;
  }
}
.policyPageSec {
  /* 見出し文に続く箇条書き（折り返し時に「・」の次で字を揃える） */
}
.policyPageSec__actionSubList {
  margin: 0;
  padding: 0;
  list-style: none;
}
.policyPageSec__actionSubItem {
  padding-left: 0.7em;
  text-indent: -0.7em;
  font-size: 16px;
  line-height: 1.7;
}
@media screen and (max-width: 768px) {
  .policyPageSec__actionSubItem {
    font-size: 14px;
  }
}
.policyPageSec__ol {
  margin-top: 16px;
}
.policyPageSec__ol.u-mt0 {
  margin-top: 0;
}
.policyPageSec__ol.u-mb40 {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__ol.u-mb40 {
    margin-bottom: 30px;
  }
}
.policyPageSec__ol.u-indent {
  margin-left: 30px;
}
@media screen and (max-width: 768px) {
  .policyPageSec__ol.u-indent {
    margin-left: 20px;
  }
}
.policyPageSec__olItem {
  position: relative;
  padding-left: 2em;
  margin-bottom: 0.65em;
  counter-increment: policy-num;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .policyPageSec__olItem {
    font-size: 14px;
    line-height: 1.8;
  }
}
.policyPageSec__olItem {
  line-height: 1.75;
}
.policyPageSec__olItem:last-child {
  margin-bottom: 0;
}
.policyPageSec__olItem::before {
  content: counter(policy-num) ".";
  position: absolute;
  left: 0;
  top: 0;
  color: #002F7B;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-weight: bold;
}
.policyPageSec__olItem.u-noNo::before {
  color: transparent;
}
.policyPageSec__ul {
  margin: 0.5em 0 0;
  padding-left: 1.25em;
}
.policyPageSec__ul--plain {
  list-style: disc;
  color: #333;
}
.policyPageSec__ulItem {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .policyPageSec__ulItem {
    font-size: 14px;
    line-height: 1.8;
  }
}
.policyPageSec__ulItem {
  line-height: 1.75;
  margin-bottom: 6px;
}
.policyPageSec__ulItem:last-child {
  margin-bottom: 0;
}
.policyPageSec__noteList {
  margin: 0.75em 0 0;
  padding-left: 0;
  list-style: none;
}
.policyPageSec__noteItem {
  margin-top: 16px;
  padding-left: 18px;
  position: relative;
}
.policyPageSec__noteItem::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 10px;
  height: 10px;
  background: url("../images/common/arr-icon03.png") no-repeat center/contain;
}
.policyPageSec__noteItem:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .policyPageSec__noteItem {
    margin-top: 10px;
  }
}
.policyPageSec__link {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .policyPageSec__link {
    font-size: 14px;
    line-height: 1.8;
  }
}
.policyPageSec__link {
  color: #002F7B;
}
.policyPageSec__link:hover {
  text-decoration: none;
}
.policyPageSec__pdfTag {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  padding: 1px 6px;
  font-size: 12px;
  color: #002F7B;
  font-weight: bold;
  border: 1px solid #002F7B;
  border-radius: 2px;
  margin-left: 10px;
  letter-spacing: 0;
}
.policyPageSec__figure {
  margin-top: 16px;
  max-width: 780px;
}
.policyPageSec__diagram {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
.policyPageSec__caption {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.6;
  color: #666666;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .policyPageSec__caption {
    font-size: 12px;
  }
}

/*====================================================================
.businessPageSec
====================================================================*/
.businessPageSec {
  background-color: #fff;
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .businessPageSec {
    padding: 40px 0 64px;
  }
}
.businessPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .businessPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.businessPageSec__intro {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .businessPageSec__intro {
    font-size: 14px;
    line-height: 1.8;
  }
}
.businessPageSec__intro {
  margin: 0 auto 40px;
  text-align: center;
  font-size: 18px;
  line-height: 1.75;
}
@media screen and (max-width: 768px) {
  .businessPageSec__intro {
    margin-bottom: 20px;
    font-size: 16px;
    text-align: left;
  }
}
@media screen and (max-width: 768px) {
  .businessPageSec__anchors {
    margin-bottom: 24px;
  }
}
.businessPageSec__anchorRow {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
@media screen and (min-width: 769px) {
  .businessPageSec__anchorRow {
    grid-template-columns: repeat(4, 1fr);
  }
}
.businessPageSec__anchorRow + .businessPageSec__anchorRow {
  margin-top: 12px;
}
@media screen and (max-width: 768px) {
  .businessPageSec__anchorRow + .businessPageSec__anchorRow {
    margin-top: 6px;
  }
}
@media screen and (max-width: 768px) {
  .businessPageSec__anchorRow {
    gap: 6px;
  }
}
.businessPageSec__anchorLink {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .businessPageSec__anchorLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.businessPageSec__anchorLink {
  transition: 0.6s;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 46px 12px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 16px;
  line-height: 1.5;
}
@media screen and (min-width: 769px) {
  .businessPageSec__anchorLink:hover {
    border-color: #002F7B;
    background-color: rgba(0, 47, 123, 0.02);
  }
  .businessPageSec__anchorLink:hover .businessPageSec__anchorImg {
    opacity: 0.88;
  }
}
.businessPageSec__anchorLink:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 2px;
}
@media screen and (max-width: 768px) {
  .businessPageSec__anchorLink {
    text-align: center;
    font-size: 14px;
    padding: 8px 40px 8px 12px;
    min-height: 60px;
  }
}
.businessPageSec__anchorIcon {
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
}
.businessPageSec__anchorImg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: 0.6s;
}
.businessPageSec__card {
  display: flex;
  padding: 80px 0;
  border-bottom: 1px solid #ccc;
  justify-content: space-between;
  scroll-margin-top: calc(60px + 12px);
}
.businessPageSec__card:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
@media screen and (max-width: 768px) {
  .businessPageSec__card {
    padding: 40px 0;
    flex-direction: column-reverse;
    scroll-margin-top: calc(50px + 36px);
  }
}
.businessPageSec__cardTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .businessPageSec__cardTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.businessPageSec__cardTitle {
  margin: 0 0 24px;
  font-size: 28px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .businessPageSec__cardTitle {
    font-size: 24px;
    margin-bottom: 16px;
  }
}
.businessPageSec__cardLead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .businessPageSec__cardLead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.businessPageSec__cardLead {
  margin: 0 0 20px;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .businessPageSec__cardLead {
    font-size: 16px;
    margin-bottom: 12px;
  }
}
.businessPageSec__cardText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .businessPageSec__cardText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.businessPageSec__cardText {
  margin: 0 0 32px;
  font-size: 16px;
  line-height: 1.75;
}
@media screen and (max-width: 768px) {
  .businessPageSec__cardText {
    font-size: 14px;
    line-height: 1.9;
    margin-bottom: 28px;
  }
}
.businessPageSec__worksNav {
  margin: 0 0 32px;
  padding: 20px;
  background-color: #EDF3F7;
}
@media screen and (max-width: 768px) {
  .businessPageSec__worksNav {
    margin-bottom: 0;
  }
}
.businessPageSec__worksNavTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .businessPageSec__worksNavTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.businessPageSec__worksNavTitle {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .businessPageSec__worksNavTitle {
    font-size: 16px;
    margin-bottom: 8px;
  }
}
.businessPageSec__worksNavList {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.businessPageSec__worksNavLink {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .businessPageSec__worksNavLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.businessPageSec__worksNavLink {
  transition: 0.6s;
  display: inline-block;
  padding: 6px 16px 7px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  background-color: #fff;
  color: #002F7B;
  font-size: 14px;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .businessPageSec__worksNavLink {
    padding: 8px 11px;
    font-size: 12px;
  }
}
@media screen and (min-width: 769px) {
  .businessPageSec__worksNavLink:hover {
    background-color: rgba(0, 47, 123, 0.06);
  }
}
.businessPageSec__worksNavLink:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 2px;
}
.businessPageSec__noteList {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .businessPageSec__noteList {
    font-size: 14px;
    line-height: 1.8;
  }
}
.businessPageSec__noteList {
  margin: 0 0 20px;
  padding-left: 1.25em;
  font-size: 15px;
  line-height: 1.75;
  color: #333;
}
@media screen and (max-width: 768px) {
  .businessPageSec__noteList {
    font-size: 14px;
    margin-bottom: 16px;
  }
}
.businessPageSec__noteList li + li {
  margin-top: 8px;
}
.businessPageSec__cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 240px;
  padding: 10px 10px 10px 28px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  background-color: #fff;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .businessPageSec__cta:hover {
    background-color: #002F7B;
  }
  .businessPageSec__cta:hover .businessPageSec__ctaText {
    color: #fff;
  }
  .businessPageSec__cta:hover .businessPageSec__ctaIcon {
    background-color: #fff;
  }
  .businessPageSec__cta:hover .businessPageSec__ctaIcon::before, .businessPageSec__cta:hover .businessPageSec__ctaIcon::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .businessPageSec__cta:hover .businessPageSec__ctaIcon::before {
    left: 150%;
  }
  .businessPageSec__cta:hover .businessPageSec__ctaIcon::after {
    left: 50%;
  }
}
@media screen and (max-width: 768px) {
  .businessPageSec__cta {
    width: 220px;
    padding: 10px 10px 10px 24px;
    font-size: 16px;
    margin-top: 28px;
  }
}
.businessPageSec__cta:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 3px;
}
.businessPageSec__ctaText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .businessPageSec__ctaText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.businessPageSec__ctaText {
  margin: 0;
  font-size: 16px;
  color: #002f7b;
  font-weight: 500;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .businessPageSec__ctaText {
    font-size: 14px;
  }
}
.businessPageSec__ctaIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  border-radius: 50%;
  background-color: #002F7B;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  transition: 0.6s;
}
.businessPageSec__ctaIcon::before, .businessPageSec__ctaIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.businessPageSec__ctaIcon::after {
  left: -50%;
}
.businessPageSec__cardBody {
  width: calc(100% - 500px);
}
@media screen and (max-width: 768px) {
  .businessPageSec__cardBody {
    width: 100%;
  }
}
.businessPageSec__cardMedia {
  max-width: 460px;
  border-radius: 8px;
  object-fit: cover;
}
@media screen and (max-width: 768px) {
  .businessPageSec__cardMedia {
    width: 100%;
    margin-bottom: 20px;
  }
}

/*====================================================================
.networkPageSec 事業拠点
====================================================================*/
.networkPageSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .networkPageSec {
    padding: 40px 0 64px;
  }
}
.networkPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.networkPageSec__lead {
  font-size: 18px;
  line-height: 1.75;
  letter-spacing: 0.06em;
  text-align: center;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__lead {
  max-width: 900px;
  margin: 0 auto 100px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__lead {
    font-size: 14px;
    text-align: left;
    margin-bottom: 64px;
  }
}
.networkPageSec {
  /* ---- tabs ---- */
}
.networkPageSec__tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  border-bottom: 1px solid #ccc;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__tabs {
    margin-bottom: 28px;
    margin-left: -20px;
    margin-right: -20px;
    padding-left: 20px;
    padding-right: 20px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }
}
.networkPageSec__tab {
  position: relative;
  padding: 16px 55px 14px;
  cursor: pointer;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-align: left;
  color: #666666;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__tab {
    font-size: 14px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 768px) {
  .networkPageSec__tab {
    font-size: 14px;
    padding: 16px 16px 16px;
    white-space: nowrap;
    flex-shrink: 0;
  }
}
@media screen and (min-width: 769px) {
  .networkPageSec__tab:hover {
    color: #002F7B;
  }
}
.networkPageSec__tab:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 2px;
}
.networkPageSec__tab.is-active {
  color: #002F7B;
  font-weight: bold;
}
.networkPageSec__tab.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  background: #002F7B;
}
.networkPageSec {
  /* ---- panels ---- */
}
.networkPageSec__panel {
  display: none;
  scroll-margin-top: calc(60px + 120px);
}
@media screen and (max-width: 768px) {
  .networkPageSec__panel {
    scroll-margin-top: calc(50px + 80px);
  }
}
.networkPageSec__panel.is-active {
  display: block;
}
.networkPageSec__panelTitle {
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-align: left;
  color: #002F7B;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__panelTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__panelTitle {
  font-weight: bold;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__panelTitle {
    font-size: 18px;
  }
}
.networkPageSec__panelLead {
  font-size: 15px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__panelLead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__panelLead {
  margin-bottom: 32px;
  color: #666666;
}
@media screen and (max-width: 768px) {
  .networkPageSec__panelLead {
    font-size: 14px;
    margin-bottom: 24px;
  }
}
.networkPageSec {
  /* ---- map + filter ---- */
}
.networkPageSec__mapArea {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(380px, 546px);
  gap: 56px;
  margin-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__mapArea {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-bottom: 64px;
  }
}
.networkPageSec__mapArea--plant .networkPageSec__filterGrid {
  grid-template-columns: repeat(3, 1fr);
}
@media screen and (max-width: 768px) {
  .networkPageSec__mapArea--plant .networkPageSec__filterGrid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.networkPageSec__mapAreaKuriku {
  grid-template-columns: minmax(260px, 1fr) minmax(330px, 330px);
}
@media screen and (max-width: 768px) {
  .networkPageSec__mapAreaKuriku {
    grid-template-columns: 1fr;
  }
}
.networkPageSec__map {
  position: relative;
  border: 1px solid #ccc;
  background: #fff;
  padding: 12px;
  border-radius: 2px;
}
.networkPageSec__mapHint {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  padding: 10px;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__mapHint {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__mapHint {
  font-size: 14px;
  background: #E3F3F7;
  max-width: 240px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__mapHint {
    font-size: 12px;
  }
}
.networkPageSec__mapFrame {
  position: relative;
  width: 100%;
  aspect-ratio: 715/519;
}
.networkPageSec__mapStack {
  position: relative;
  width: 100%;
  height: 100%;
}
.networkPageSec__mapImg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.networkPageSec__mapImg--hoverOverlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.09s ease;
}
.networkPageSec__filterTitle {
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-align: left;
  color: #002F7B;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__filterTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__filterTitle {
  font-weight: bold;
  margin: 0 0 20px;
  padding-left: 12px;
  border-left: 4px solid #002F7B;
}
@media screen and (max-width: 768px) {
  .networkPageSec__filterTitle {
    font-size: 16px;
    margin-bottom: 16px;
  }
}
.networkPageSec__filterGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__filterGrid {
    gap: 10px;
  }
}
.networkPageSec__filterBtn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__filterBtn {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__filterBtn {
  padding: 10px 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
  cursor: pointer;
  text-align: center;
}
.networkPageSec__filterBtn:has(.networkPageSec__filterBtnIcon) {
  padding-right: 48px;
}
@media screen and (min-width: 769px) {
  .networkPageSec__filterBtn:hover {
    border-color: #002F7B;
    color: #002F7B;
  }
}
.networkPageSec__filterBtn.is-mapFilterSynced {
  border-color: #002F7B;
  color: #002F7B;
}
.networkPageSec__filterBtn:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 2px;
}
.networkPageSec__filterBtn.is-active {
  background: #002F7B;
  border-color: #002F7B;
  color: #fff;
}
.networkPageSec__filterBtn.is-active .networkPageSec__filterBtnIcon img {
  filter: brightness(0) invert(1);
}
@media screen and (max-width: 768px) {
  .networkPageSec__filterBtn {
    padding: 5px 12px 6px;
    font-size: 14px;
  }
}
.networkPageSec__filterBtnIcon {
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
.networkPageSec__filterBtnIcon img {
  width: 22px;
  height: 22px;
  display: block;
  object-fit: contain;
}
.networkPageSec {
  /* ---- Google Map button ---- */
}
.networkPageSec__gmapBtn {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 14px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 16px 8px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  color: #002F7B;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .networkPageSec__gmapBtn:hover {
    background: rgba(0, 47, 123, 0.07);
  }
}
@media screen and (max-width: 768px) {
  .networkPageSec__gmapBtn {
    font-size: 12px;
    padding: 5px 6px 6px 12px;
  }
}
.networkPageSec__gmapBtnIcon img {
  width: 26px;
  height: 26px;
  display: block;
  object-fit: contain;
}
.networkPageSec {
  /* ---- Office blocks ---- */
}
.networkPageSec__office {
  margin-top: 100px;
  scroll-margin-top: calc(60px + 16px);
}
@media screen and (max-width: 768px) {
  .networkPageSec__office {
    margin-top: 36px;
    scroll-margin-top: calc(50px + 12px);
  }
}
.networkPageSec__office:first-child {
  margin-top: 0;
}
.networkPageSec__office .sectionBlockTitle {
  margin-bottom: 28px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__office .sectionBlockTitle {
    margin-bottom: 24px;
  }
}
.networkPageSec__office .sectionCategoryHeading {
  margin-top: 60px;
  margin-bottom: 12px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__office .sectionCategoryHeading {
    margin-top: 28px;
    margin-bottom: 4px;
  }
}
.networkPageSec__officeSpec {
  border: 1px solid #ccc;
  border-bottom: none;
}
.networkPageSec__officeSpecRow {
  display: grid;
  grid-template-columns: 300px 1fr;
  border-bottom: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSpecRow {
    grid-template-columns: 100px minmax(0, 1fr);
  }
}
.networkPageSec__officeSpecLabel {
  padding: 20px 24px;
  background: #F7F5EE;
  font-size: 16px;
  font-weight: bold;
  display: flex;
  align-items: center;
  border-right: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSpecLabel {
    padding: 16px;
    font-size: 14px;
    line-height: 1.3;
  }
}
.networkPageSec__officeSpecBodyAddr {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSpecBodyAddr {
    font-size: 14px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSpecBodyAddr {
    font-size: 14px;
    line-height: 1.5;
  }
}
.networkPageSec__officeSpecBody {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSpecBody {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__officeSpecBody {
  padding: 20px 24px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSpecBody {
    padding: 16px;
    line-height: 1.5;
  }
}
.networkPageSec__officeSpecBody .networkPageSec__gmapBtn {
  margin-top: 12px;
}
.networkPageSec__officeSub {
  display: grid;
  grid-template-columns: minmax(280px, 350px) 1fr auto;
  gap: 20px 32px;
  padding: 28px 0px;
  border-bottom: 1px solid #ccc;
  align-items: center;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSub {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 20px 0;
    align-items: start;
  }
}
.networkPageSec__officeSubName {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSubName {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__officeSubName {
  font-size: 18px;
  font-weight: bold;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSubName {
    font-size: 16px;
  }
}
.networkPageSec__officeSubMeta {
  font-size: 14px;
  line-height: 1.75;
  letter-spacing: 0.03em;
}
.networkPageSec__officeSubAddr {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSubAddr {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__officeSubTel {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSubTel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__officeSubTel {
  margin-top: 4px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSubTel {
    margin-top: 0;
  }
}
.networkPageSec__officeSubAction {
  justify-self: end;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeSubAction {
    justify-self: start;
    margin-top: 2px;
  }
}
.networkPageSec {
  /* ---- Plant list ---- */
}
.networkPageSec__plantBlock {
  margin-bottom: 68px;
}
.networkPageSec__plantBlock[id^=anchor-plant] {
  scroll-margin-top: calc(60px + 16px);
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantBlock {
    margin-bottom: 36px;
  }
  .networkPageSec__plantBlock[id^=anchor-plant] {
    scroll-margin-top: calc(50px + 12px);
  }
}
.networkPageSec__plantBlockList {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 24px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantBlockList {
    margin-top: 0px;
  }
}
.networkPageSec__plantCard {
  display: grid;
  grid-template-columns: minmax(200px, 380px) minmax(0, 1fr) auto;
  column-gap: 24px;
  align-items: start;
  padding: 28px 0;
  border-bottom: 1px solid #ccc;
}
@media screen and (max-width: 1000px) {
  .networkPageSec__plantCard {
    grid-template-columns: minmax(200px, 260px) minmax(0, 1fr) auto;
  }
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantCard {
    grid-template-columns: 1fr;
    row-gap: 6px;
    padding: 22px 0;
  }
}
.networkPageSec__plantCard > .networkPageSec__gmapBtn {
  grid-column: 3;
  grid-row: 1;
  align-self: center;
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantCard > .networkPageSec__gmapBtn {
    grid-column: 1;
    grid-row: auto;
    margin-top: 16px;
    max-width: 134px;
    justify-content: space-between;
  }
}
.networkPageSec__plantCardName {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantCardName {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__plantCardName {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  font-size: 18px;
  font-weight: bold;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantCardName {
    grid-column: 1;
    font-size: 16px;
  }
}
.networkPageSec__plantCardMain {
  grid-column: 2;
  grid-row: 1;
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantCardMain {
    grid-column: 1;
    grid-row: auto;
  }
}
.networkPageSec__plantCardBody {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantCardBody {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__plantCardBody {
  line-height: 1.75;
  letter-spacing: 0.03em;
}
.networkPageSec__plantCardTagsLabel {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantCardTagsLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__plantCardTagsLabel {
  font-weight: bold;
  margin: 6px 0 8px;
}
.networkPageSec__plantCardTags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.networkPageSec__plantCardTag {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__plantCardTag {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__plantCardTag {
  display: inline-block;
  padding: 4px 12px;
  font-size: 14px;
  border: 1px solid #333;
  border-radius: 4px;
}
.networkPageSec__simpleCard {
  border: 1px solid #ccc;
  padding: 24px;
  margin-bottom: 24px;
  border-radius: 4px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__simpleCard {
    padding: 16px;
  }
}
.networkPageSec__simpleCardTitle {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: bold;
  color: #002F7B;
}
.networkPageSec__simpleCardText {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: #333;
}
.networkPageSec {
  /* ---- compact office tables (事業所) ---- */
}
.networkPageSec__officeTableWrap {
  overflow-x: auto;
  border: 1px solid #ccc;
  border-top: none;
  -webkit-overflow-scrolling: touch;
}
.networkPageSec__officeTable {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  font-size: 14px;
  letter-spacing: 0.03em;
}
.networkPageSec__officeTable th,
.networkPageSec__officeTable td {
  padding: 12px 14px;
  border-bottom: 1px solid #ccc;
  vertical-align: top;
  text-align: left;
}
.networkPageSec__officeTable th {
  background: rgba(0, 47, 123, 0.06);
  color: #002F7B;
  font-weight: bold;
  white-space: nowrap;
}
.networkPageSec__officeTable tbody tr:last-child th,
.networkPageSec__officeTable tbody tr:last-child td {
  border-bottom: none;
}
.networkPageSec__officeTable td:nth-child(1) {
  font-weight: bold;
  color: #002F7B;
  white-space: nowrap;
}
.networkPageSec__officeTable .networkPageSec__gmapBtn {
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .networkPageSec__officeTable {
    font-size: 13px;
  }
  .networkPageSec__officeTable th,
  .networkPageSec__officeTable td {
    padding: 10px 12px;
  }
}
.networkPageSec__instituteCaption {
  padding: 25px 80px 50px;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteCaption {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__instituteCaption {
  font-size: 20px;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteCaption {
    padding: 16px 0;
    font-size: 14px;
  }
}
.networkPageSec__instituteCaptionImg {
  max-width: 600px;
  margin: 0 auto;
}
.networkPageSec__instituteAccessRow {
  display: flex;
  align-items: flex-start;
  gap: 0;
  margin-top: 30px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteAccessRow {
    flex-direction: column;
    margin-bottom: 50px;
  }
}
.networkPageSec__instituteAccessPhoto {
  flex: 0 0 340px;
  max-width: 340px;
  margin-right: 45px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteAccessPhoto {
    flex: none;
    max-width: none;
    width: 100%;
    margin-right: 0;
    margin-bottom: 16px;
    text-align: center;
  }
}
.networkPageSec__instituteAccessPhotoImg {
  display: block;
  width: 100%;
  height: auto;
}
.networkPageSec__instituteTable {
  flex: 1;
  min-width: 0;
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  letter-spacing: 0.02em;
  color: #666666;
}
.networkPageSec__instituteTable tr {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteTable tr {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__instituteTable tr {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}
.networkPageSec__instituteTable th {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteTable th {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__instituteTable th {
  box-sizing: border-box;
  width: 167px;
  padding: 20px 10px 21px 20px;
  background: #F7F5EE;
  color: #002F7B;
  font-weight: bold;
  text-align: left;
  vertical-align: top;
}
.networkPageSec__instituteTable td {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteTable td {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__instituteTable td {
  box-sizing: border-box;
  padding: 20px 10px 20px 20px;
  vertical-align: top;
  line-height: 1.65;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteTable {
    font-size: 14px;
  }
  .networkPageSec__instituteTable th,
  .networkPageSec__instituteTable td {
    display: block;
    width: 100%;
  }
  .networkPageSec__instituteTable th {
    padding: 12px 14px 8px;
  }
  .networkPageSec__instituteTable td {
    padding: 8px 14px 14px;
  }
}
.networkPageSec__instituteMapLink {
  display: inline-block;
  box-sizing: border-box;
  margin-left: 16px;
  padding: 4px 22px 4px 10px;
  border: 1px solid #002F7B;
  color: #002F7B;
  font-weight: bold;
  font-size: 12px;
  line-height: 1.2;
  text-decoration: none;
  vertical-align: middle;
  position: relative;
}
.networkPageSec__instituteMapLink::after {
  content: "›";
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  line-height: 1;
}
@media screen and (min-width: 769px) {
  .networkPageSec__instituteMapLink:hover {
    opacity: 0.85;
  }
}
.networkPageSec__instituteDetail {
  margin-bottom: 50px;
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteDetail {
    margin-bottom: 40px;
    margin-top: 40px;
  }
}
.networkPageSec__instituteDetail:last-child {
  margin-bottom: 0;
}
.networkPageSec__instituteDetail .sectionCategoryHeading {
  margin: 0 0 28px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteDetail .sectionCategoryHeading {
    margin-bottom: 20px;
  }
}
.networkPageSec__instituteText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__instituteText {
  line-height: 1.85;
  letter-spacing: 0.03em;
}
.networkPageSec__instituteText--afterRibbon {
  margin-bottom: 40px;
}
.networkPageSec__instituteText--beforeGrid {
  margin-bottom: 40px;
}
.networkPageSec__instituteText--small {
  margin-bottom: 0;
  font-size: 14px;
  line-height: 1.75;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteText {
    font-size: 14px;
  }
  .networkPageSec__instituteText--afterRibbon {
    margin-bottom: 16px;
  }
  .networkPageSec__instituteText--beforeGrid {
    margin-bottom: 28px;
  }
  .networkPageSec__instituteText--small {
    font-size: 13px;
  }
}
.networkPageSec__instituteHalfList {
  display: flex;
  flex-wrap: wrap;
}
.networkPageSec__instituteHalfItem {
  margin-right: 4%;
  margin-bottom: 0;
  width: 48%;
  border: 1px solid #ccc;
  padding: 40px;
  border-radius: 20px;
}
.networkPageSec__instituteHalfItem:nth-of-type(2n) {
  margin-right: 0;
}
.networkPageSec__instituteHalfItem:nth-child(n+3) {
  margin-top: 50px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteHalfItem {
    margin-right: 0;
    width: 100%;
    padding: 20px;
  }
  .networkPageSec__instituteHalfItem + .networkPageSec__instituteHalfItem {
    margin-top: 20px;
  }
}
.networkPageSec {
  /* CSRカード見出しと同じ2色ルール（networkPageSec 名で統一） */
}
.networkPageSec__instituteEquipHeading {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteEquipHeading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__instituteEquipHeading {
  margin: 0 0 14px;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.45;
  letter-spacing: 0.02em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteEquipHeading {
    font-size: 18px;
    margin-bottom: 10px;
  }
}
.networkPageSec__instituteEquipRule {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0 0 22px;
  flex-shrink: 0;
}
.networkPageSec__instituteEquipRuleAccent {
  flex: 0 0 33.333%;
  max-width: 33.333%;
  height: 3px;
  background-color: #002F7B;
}
.networkPageSec__instituteEquipRuleRest {
  flex: 1 1 auto;
  height: 1px;
  background-color: #ccc;
}
.networkPageSec__instituteEquipPhoto {
  margin-bottom: 15px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteEquipPhoto {
    margin-bottom: 12px;
    text-align: center;
  }
}
.networkPageSec__instituteEquipImg {
  border-radius: 10px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteEquipImg {
    margin: 0 auto;
  }
}
.networkPageSec__instituteGray {
  margin-top: 30px;
  padding: 20px;
  background: #EDF3F7;
  border-radius: 10px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteGray {
    margin-top: 20px;
    padding: 15px;
  }
}
.networkPageSec__instituteSpecHeading {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteSpecHeading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__instituteSpecHeading {
  margin: 0 0 15px;
  font-weight: bold;
  line-height: 1.3;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteSpecHeading {
    margin-bottom: 10px;
    font-size: 16px;
  }
}
.networkPageSec__instituteSpecLine {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.65;
  letter-spacing: 0.02em;
  color: #666666;
}
.networkPageSec__instituteSpecLine--flush {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteSpecLine--mbSpTight {
    margin-bottom: 8px;
  }
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteSpecLine {
    font-size: 13px;
    margin-bottom: 8px;
  }
}
.networkPageSec__instituteSpecDivide {
  display: flex;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteSpecDivide {
    flex-direction: column;
    gap: 0;
  }
}
.networkPageSec__instituteSpecDivideCol {
  flex: 1;
  min-width: 0;
}
.networkPageSec {
  /* ---- 機械技術センター（公式 network/mechanical 相当の構成） ---- */
}
.networkPageSec__machineNote {
  margin: 40px 0 100px;
  font-size: 12px;
  line-height: 1.75;
  letter-spacing: 0.03em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__machineNote {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__machineNote {
  color: #666666;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .networkPageSec__machineNote {
    margin-bottom: 50px;
    font-size: 10px;
  }
}
.networkPageSec__instituteSection.u-04 .sectionCategoryHeading {
  margin-top: 48px;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__instituteSection.u-04 .sectionCategoryHeading {
    margin-top: 36px;
    margin-bottom: 12px;
  }
}
.networkPageSec__machineThumbList {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px 24px;
  margin: 30px auto;
}
@media screen and (max-width: 768px) {
  .networkPageSec__machineThumbList {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.networkPageSec__machineThumbList--pair {
  grid-template-columns: repeat(2, 1fr);
  max-width: 920px;
}
@media screen and (max-width: 768px) {
  .networkPageSec__machineThumbList--pair {
    grid-template-columns: 1fr;
    max-width: none;
  }
}
.networkPageSec__machineThumbImg {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1px solid #ccc;
  box-sizing: border-box;
}
.networkPageSec__machineThumbCaption {
  margin: 10px 0 0;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.03em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .networkPageSec__machineThumbCaption {
    font-size: 14px;
    line-height: 1.8;
  }
}
.networkPageSec__machineThumbCaption {
  font-weight: bold;
  color: #002F7B;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .networkPageSec__machineThumbCaption {
    margin-top: 10px;
    font-size: 14px;
  }
}
.networkPageSec__labLink {
  margin-top: 60px;
  margin-bottom: 20px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .networkPageSec__labLink {
    margin-top: 40px;
  }
}
.networkPageSec .lowerPageLinkBtn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  color: #002F7B;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: 0.6s;
}
.networkPageSec .lowerPageLinkBtn::after {
  content: "";
  display: block;
  width: 18px;
  height: 10px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  flex-shrink: 0;
}
@media screen and (min-width: 769px) {
  .networkPageSec .lowerPageLinkBtn:hover {
    background: rgba(0, 47, 123, 0.07);
  }
}
@media screen and (max-width: 768px) {
  .networkPageSec .lowerPageLinkBtn {
    font-size: 14px;
    padding: 12px 24px;
  }
}

/*====================================================================
.historydevelopmentPageSec
====================================================================*/
.historydevelopmentPageSec {
  background-color: #fff;
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec {
    padding: 40px 0 72px;
  }
}
.historydevelopmentPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.historydevelopmentPageSec__lead {
  max-width: 900px;
  margin: 0 auto 100px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__lead {
    max-width: 100%;
    margin-bottom: 32px;
  }
}
.historydevelopmentPageSec__leadText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__leadText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentPageSec__leadText {
  font-size: 16px;
  line-height: 1.85;
}
.historydevelopmentPageSec__leadText + .historydevelopmentPageSec__leadText {
  margin-top: 1.25em;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__leadText {
    font-size: 15px;
    line-height: 1.75;
  }
}
.historydevelopmentPageSec__timeline {
  margin-top: 100px;
  scroll-margin-top: calc(60px + 40px);
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__timeline {
    margin-top: 64px;
    scroll-margin-top: calc(50px + 32px);
  }
}
.historydevelopmentPageSec__timelineHead {
  position: relative;
  margin-bottom: 36px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__timelineHead {
    margin-bottom: 28px;
  }
  .historydevelopmentPageSec__timelineHead::after {
    content: "";
    display: block;
    width: 40px;
    height: 2px;
    background-color: #002F7B;
    margin-top: 10px;
  }
}
@media screen and (min-width: 769px) {
  .historydevelopmentPageSec__timelineHead::before {
    content: "";
    display: block;
    width: 40px;
    height: 2px;
    background-color: #002F7B;
    margin-bottom: 12px;
  }
}
.historydevelopmentPageSec__timelineTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__timelineTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentPageSec__timelineTitle {
  font-weight: bold;
  font-size: clamp(22px, 4vw, 30px);
  line-height: 1.35;
  color: #002F7B;
}
.historydevelopmentPageSec__timelineList {
  position: relative;
  margin-top: 60px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__timelineList {
    margin-top: 28px;
  }
}
.historydevelopmentPageSec__timelineList::before {
  content: "";
  position: absolute;
  top: var(--hd-line-top, 9px);
  bottom: auto;
  height: var(--hd-line-total, calc(100% - 20px));
  left: 115px;
  width: 2px;
  background-color: #ddd;
  z-index: 0;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__timelineList::before {
    left: 67px;
  }
}
.historydevelopmentPageSec__timelineProgress {
  position: absolute;
  top: var(--hd-line-top, 9px);
  left: 115px;
  width: 2px;
  height: 0;
  background-color: #002F7B;
  z-index: 1;
  transition: height 0.12s linear;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__timelineProgress {
    left: 67px;
  }
}
.historydevelopmentPageSec__item {
  position: relative;
  z-index: 1;
}
.historydevelopmentPageSec__item + .historydevelopmentPageSec__item {
  margin-top: 80px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__item + .historydevelopmentPageSec__item {
    margin-top: 40px;
  }
}
.historydevelopmentPageSec__item--chapter + .historydevelopmentPageSec__item--chapter {
  margin-top: 100px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__item--chapter + .historydevelopmentPageSec__item--chapter {
    margin-top: 56px;
  }
}
.historydevelopmentPageSec__item--chapter .historydevelopmentPageSec__year {
  font-size: 32px;
  color: #fff;
  -webkit-text-stroke: 3px #002F7B;
  paint-order: stroke fill;
  font-weight: 900;
}
.historydevelopmentPageSec__item--chapter .historydevelopmentPageSec__year::before {
  width: 14px;
  height: 14px;
  top: 4px;
  right: 17px;
  box-shadow: 0 0 0 3px #fff, 0 0 0 5px #002F7B;
  animation: hdDotSlowBlink 2.4s ease-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .historydevelopmentPageSec__item--chapter .historydevelopmentPageSec__year::before {
    animation: none;
  }
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__item--chapter .historydevelopmentPageSec__year {
    font-size: 22px;
    -webkit-text-stroke: 1.5px #002F7B;
  }
  .historydevelopmentPageSec__item--chapter .historydevelopmentPageSec__year::before {
    width: 10px;
    height: 10px;
    top: 4px;
    left: 62px;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #002F7B;
    animation-name: hdDotSlowBlinkSp;
  }
}
.historydevelopmentPageSec__item--chapter .historydevelopmentPageSec__eraText {
  font-size: 20px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__item--chapter .historydevelopmentPageSec__eraText {
    font-size: 16px;
  }
}
.historydevelopmentPageSec__item--chapter .historydevelopmentPageSec__eventText {
  font-size: 18px;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__item--chapter .historydevelopmentPageSec__eventText {
    font-size: 16px;
  }
}
.historydevelopmentPageSec__itemInner {
  display: flex;
}
.historydevelopmentPageSec__itemInner.u-lastItem {
  position: relative;
}
.historydevelopmentPageSec__itemInner.u-lastItem::after {
  display: none;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__itemInner.u-lastItem::after {
    display: none;
  }
}
.historydevelopmentPageSec__content {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 20px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__content {
    display: block;
  }
}
@keyframes hdDotSlowBlink {
  0% {
    box-shadow: 0 0 0 3px #fff, 0 0 0 5px #002F7B, 0 0 0 5px rgba(0, 47, 123, 0.45);
  }
  70%, 100% {
    box-shadow: 0 0 0 3px #fff, 0 0 0 5px #002F7B, 0 0 0 13px rgba(0, 47, 123, 0);
  }
}
@keyframes hdDotSlowBlinkSp {
  0% {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #002F7B, 0 0 0 4px rgba(0, 47, 123, 0.45);
  }
  70%, 100% {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #002F7B, 0 0 0 10px rgba(0, 47, 123, 0);
  }
}
.historydevelopmentPageSec__year {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 24px;
  color: #002F7B;
  font-weight: bold;
  position: relative;
  flex-shrink: 0;
  width: 140px;
  margin-top: 5px;
}
.historydevelopmentPageSec__year::before {
  content: "";
  position: absolute;
  top: 0;
  right: 20px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #002F7B;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__year {
    width: 90px;
    font-size: 20px;
  }
  .historydevelopmentPageSec__year::before {
    left: 65px;
    width: 6px;
    height: 6px;
  }
}
.historydevelopmentPageSec__eraText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__eraText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentPageSec__eraText {
  font-size: 16px;
  line-height: 1.25;
  color: #002F7B;
  width: 100px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__eraText {
    font-size: 15px;
  }
}
.historydevelopmentPageSec__desc {
  width: calc(100% - 120px);
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__desc {
    width: 100%;
    margin-top: 11px;
  }
}
.historydevelopmentPageSec__eventText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__eventText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentPageSec__eventText {
  font-size: 16px;
}
.historydevelopmentPageSec__eventText + .historydevelopmentPageSec__eventText {
  margin-top: 16px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__eventText {
    font-size: 15px;
    line-height: 1.5;
  }
  .historydevelopmentPageSec__eventText + .historydevelopmentPageSec__eventText {
    margin-top: 10px;
  }
}
.historydevelopmentPageSec__ctaBtn {
  display: block;
  text-decoration: none;
  width: 100%;
  max-width: 320px;
  margin-top: 16px;
  border: 1.5px solid #002F7B;
  border-radius: 8px;
  overflow: hidden;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .historydevelopmentPageSec__ctaBtn:hover {
    opacity: 0.82;
  }
  .historydevelopmentPageSec__ctaBtn:hover .historydevelopmentPageSec__ctaBtnImg {
    transform: scale(1.06);
  }
}
@media screen and (min-width: 769px) and (prefers-reduced-motion: reduce) {
  .historydevelopmentPageSec__ctaBtn:hover .historydevelopmentPageSec__ctaBtnImg {
    transform: none;
  }
}
@media screen and (min-width: 769px) {
  .historydevelopmentPageSec__ctaBtn:hover .historydevelopmentPageSec__ctaBtnIcon {
    background-color: #fff;
  }
  .historydevelopmentPageSec__ctaBtn:hover .historydevelopmentPageSec__ctaBtnIcon::before, .historydevelopmentPageSec__ctaBtn:hover .historydevelopmentPageSec__ctaBtnIcon::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .historydevelopmentPageSec__ctaBtn:hover .historydevelopmentPageSec__ctaBtnIcon::before {
    left: 150%;
  }
  .historydevelopmentPageSec__ctaBtn:hover .historydevelopmentPageSec__ctaBtnIcon::after {
    left: 50%;
  }
}
.historydevelopmentPageSec__ctaBtn:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 2px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__ctaBtn {
    max-width: 220px;
  }
}
.historydevelopmentPageSec__ctaBtnThumb {
  display: block;
  aspect-ratio: 12/5;
  overflow: hidden;
}
.historydevelopmentPageSec__ctaBtnImg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: 0.6s;
}
@media (prefers-reduced-motion: reduce) {
  .historydevelopmentPageSec__ctaBtnImg {
    transition: none;
  }
}
.historydevelopmentPageSec__ctaBtnLabel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px 8px 14px;
  background-color: #fff;
}
.historydevelopmentPageSec__ctaBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__ctaBtnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentPageSec__ctaBtnText {
  font-size: 15px;
  color: #002F7B;
  font-weight: bold;
  line-height: 1.4;
}
@media screen and (max-width: 768px) {
  .historydevelopmentPageSec__ctaBtnText {
    font-size: 14px;
  }
}
.historydevelopmentPageSec__ctaBtnIcon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: #002F7B;
  position: relative;
  overflow: hidden;
  transition: 0.6s;
}
.historydevelopmentPageSec__ctaBtnIcon::before, .historydevelopmentPageSec__ctaBtnIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 11px;
  height: 11px;
  background-color: transparent;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.historydevelopmentPageSec__ctaBtnIcon::after {
  left: -50%;
}

/*====================================================================
.historydevelopmentLowerPageSec
====================================================================*/
.historydevelopmentLowerPageSec {
  background-color: #fff;
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec {
    padding: 40px 0 64px;
  }
}
.historydevelopmentLowerPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.historydevelopmentLowerPageSec__blockTitle {
  margin: 0 0 40px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__blockTitle {
    margin-bottom: 28px;
  }
}
.historydevelopmentLowerPageSec__era {
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__era {
    margin-bottom: 48px;
  }
}
.historydevelopmentLowerPageSec__era > .historydevelopmentLowerPageSec__eraHeadText {
  margin: 0 0 28px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__era > .historydevelopmentLowerPageSec__eraHeadText {
    margin-bottom: 24px;
  }
}
.historydevelopmentLowerPageSec__eraText.u-top {
  margin-top: 50px;
  margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__eraText.u-top {
    margin-top: 30px;
    margin-bottom: 30px;
  }
}
.historydevelopmentLowerPageSec {
  /* eraBody: ①双肖像 ②双資料カード ③単体資料＋PDF */
}
.historydevelopmentLowerPageSec__eraBody--dualPortrait, .historydevelopmentLowerPageSec__eraBody--dualPublication, .historydevelopmentLowerPageSec__eraBody--singlePublication {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 60px;
  align-items: start;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__eraBody--dualPortrait, .historydevelopmentLowerPageSec__eraBody--dualPublication, .historydevelopmentLowerPageSec__eraBody--singlePublication {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.historydevelopmentLowerPageSec__eraPortraitPair {
  display: flex;
  gap: 20px;
  width: 520px;
  max-width: 100%;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__eraPortraitPair {
    justify-self: stretch;
    width: 100%;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }
}
.historydevelopmentLowerPageSec__eraPortraitItem {
  width: 250px;
  height: 250px;
  overflow: hidden;
  border-radius: 2px;
  background-color: #e8e8e8;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__eraPortraitItem {
    flex: 1;
    width: auto;
    min-width: 0;
    height: auto;
    aspect-ratio: 1/1;
  }
}
.historydevelopmentLowerPageSec__eraPortraitFig {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}
.historydevelopmentLowerPageSec__eraPortraitSingle {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 380px;
  height: 100%;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__eraPortraitSingle {
    width: 100%;
    height: 100%;
  }
}
.historydevelopmentLowerPageSec__eraPortraitSingleItem {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 2px;
  background-color: #e8e8e8;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__eraPortraitSingleItem {
    width: 100%;
    height: 100%;
  }
}
.historydevelopmentLowerPageSec__eraPortraitSingleFig {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}
.historydevelopmentLowerPageSec__eraPortraitSingleImg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.historydevelopmentLowerPageSec__eraDiagramFig {
  margin: 0 auto;
  width: 100%;
  max-width: 820px;
}
.historydevelopmentLowerPageSec__eraDiagramImg {
  display: block;
  width: 100%;
  height: auto;
}
.historydevelopmentLowerPageSec__eraPublications {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: flex-end;
  justify-self: end;
  max-width: 100%;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__eraPublications {
    justify-content: center;
    justify-self: stretch;
    flex-wrap: nowrap;
  }
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__eraPublications--single {
    justify-content: flex-start;
  }
}
.historydevelopmentLowerPageSec__pubCard {
  width: 250px;
}
@media (prefers-reduced-motion: no-preference) {
  .historydevelopmentLowerPageSec__pubCard:has(.historydevelopmentLowerPageSec__pubLink:hover) .historydevelopmentLowerPageSec__pubThumbImg, .historydevelopmentLowerPageSec__pubCard:has(.historydevelopmentLowerPageSec__pubLink:focus-visible) .historydevelopmentLowerPageSec__pubThumbImg {
    transform: scale(1.04);
  }
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__pubCard {
    width: 50%;
  }
}
.historydevelopmentLowerPageSec__pubTitle {
  font-size: 15px;
  line-height: 1.45;
  letter-spacing: 0.05em;
  text-align: center;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__pubTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__pubTitle {
  font-weight: bold;
  margin: 0 0 8px;
}
.historydevelopmentLowerPageSec__pubThumb {
  width: 100%;
  max-width: 250px;
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 2px;
}
.historydevelopmentLowerPageSec__pubLink .historydevelopmentLowerPageSec__pubThumb {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__pubThumb {
    height: auto;
    min-height: 200px;
    max-height: 55vh;
  }
}
.historydevelopmentLowerPageSec__pubThumbImg {
  display: block;
  object-fit: contain;
  transform: scale(1);
  transition: transform 0.45s ease;
}
@media (prefers-reduced-motion: reduce) {
  .historydevelopmentLowerPageSec__pubThumbImg {
    transition: none;
  }
}
.historydevelopmentLowerPageSec__pubSource {
  font-size: 13px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: center;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__pubSource {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__pubSource {
  margin: 0 0 10px;
  color: #666666;
}
.historydevelopmentLowerPageSec__pubLink {
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__pubLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__pubLink {
  transition: 0.6s;
}
.historydevelopmentLowerPageSec__pubLink:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 2px;
}
.historydevelopmentLowerPageSec__pubLinkFoot {
  display: flex;
  align-items: center;
  margin-top: 10px;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__pubLinkFoot {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__pubLinkFoot {
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__pubLinkFoot {
    margin-top: 2px;
  }
}
.historydevelopmentLowerPageSec__pubLinkChevronImg {
  display: block;
  width: 10px;
  height: 10px;
  object-fit: contain;
}
.historydevelopmentLowerPageSec__pubLinkFootText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__pubLinkFootText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__pubLinkFootText {
  font-size: 16px;
  padding: 0 15px;
  color: #002F7B;
}
.historydevelopmentLowerPageSec__pdfBadge {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 13px;
  padding: 3px 6px;
  border: 2px solid #002F7B;
  border-radius: 2px;
  font-weight: bold;
  color: #002F7B;
  margin-top: 2px;
}
.historydevelopmentLowerPageSec__pdfRow {
  margin-top: 16px;
}
.historydevelopmentLowerPageSec__para {
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__para {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__para + .historydevelopmentLowerPageSec__para {
  margin-top: 30px;
}
.historydevelopmentLowerPageSec__note {
  font-size: 16px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: left;
  color: #666666;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__note {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__note {
  margin: 14px 0 0;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__note {
    margin-top: 10px;
  }
}
.historydevelopmentLowerPageSec__achievements {
  margin-top: 100px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievements {
    margin-top: 40px;
  }
}
.historydevelopmentLowerPageSec__achievementsTitle {
  margin: 0 0 40px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsTitle {
    margin-bottom: 22px;
  }
}
.historydevelopmentLowerPageSec__achievementsTitleRule {
  display: block;
  height: 1px;
  background-color: #ddd;
  position: relative;
  margin-bottom: 14px;
}
.historydevelopmentLowerPageSec__achievementsTitleRule::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 40px;
  background-color: #002F7B;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsTitleRule::before {
    width: 36px;
  }
}
.historydevelopmentLowerPageSec__achievementsTitleText {
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsTitleText {
    font-size: 14px;
    line-height: 1.45;
  }
}
.historydevelopmentLowerPageSec__achievementsTitleText {
  font-weight: bold;
  font-size: clamp(18px, 2.4vw, 22px);
  color: #002F7B;
  display: block;
}
.historydevelopmentLowerPageSec__achievementsCard {
  overflow: hidden;
  border-radius: 10px;
  background-image: url("../images/historydevelopment/historydevelopment-bg.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsCard {
    border-radius: 10px;
  }
}
.historydevelopmentLowerPageSec__achievementsSlides {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, auto);
}
.historydevelopmentLowerPageSec__achievementsSlide {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  opacity: 0;
  z-index: 0;
  transition: opacity 0.65s ease;
}
.historydevelopmentLowerPageSec__achievementsSlide.is-active {
  opacity: 1;
  z-index: 1;
}
@media (prefers-reduced-motion: reduce) {
  .historydevelopmentLowerPageSec__achievementsSlide {
    transition: none;
  }
}
.historydevelopmentLowerPageSec__achievementsSlideGrid {
  display: grid;
  grid-template-columns: 480px minmax(0, 1fr);
  align-items: stretch;
  box-sizing: border-box;
  min-height: 325px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsSlideGrid {
    grid-template-columns: 1fr;
    gap: 0;
  }
}
.historydevelopmentLowerPageSec__achievementsPhoto {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  background-color: #e5e5e5;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsPhoto {
    width: 100%;
    aspect-ratio: 480/325;
    max-height: none;
  }
}
.historydevelopmentLowerPageSec__achievementsPhotoImg {
  display: block;
  width: 480px;
  height: 325px;
  max-width: 100%;
  object-fit: cover;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsPhotoImg {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.historydevelopmentLowerPageSec__achievementsCaption {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 325px;
  padding-left: 60px;
  padding-right: 60px;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsCaption {
    padding: 24px 20px;
    gap: 6px;
    min-height: auto;
  }
}
.historydevelopmentLowerPageSec__achievementsEraWrap {
  display: flex;
  align-items: center;
  gap: 10px;
}
.historydevelopmentLowerPageSec__achievementsDot {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #002F7B;
  margin-top: 2px;
}
.historydevelopmentLowerPageSec__achievementsEra {
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsEra {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__achievementsEra {
  font-weight: bold;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsEra {
    font-size: 16px;
  }
}
.historydevelopmentLowerPageSec__achievementsDesc {
  font-size: 24px;
  line-height: 1.55;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsDesc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__achievementsDesc {
  font-weight: bold;
  color: #333;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsDesc {
    font-size: 18px;
  }
}
.historydevelopmentLowerPageSec__achievementsNav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__achievementsNav {
    margin-top: 28px;
    flex-wrap: wrap;
    gap: 10px;
  }
}
.historydevelopmentLowerPageSec__navCircle {
  transition: 0.6s;
  cursor: pointer;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font: inherit;
  box-sizing: border-box;
}
@media screen and (min-width: 769px) {
  .historydevelopmentLowerPageSec__navCircle:hover {
    opacity: 0.85;
  }
}
.historydevelopmentLowerPageSec__navCircle:focus-visible {
  outline: 2px solid #002F7B;
  outline-offset: 2px;
}
.historydevelopmentLowerPageSec__navCircleImg {
  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__navCircleImg {
    width: 28px;
    height: 28px;
  }
}
.historydevelopmentLowerPageSec__navLabel {
  font-size: 15px;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: center;
  color: #002F7B;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__navLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.historydevelopmentLowerPageSec__navLabel {
  border-bottom: 1px solid currentColor;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec__navLabel {
    font-size: 14px;
  }
}

.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--doroEra .historydevelopmentLowerPageSec__eraBody--textPhotoRow,
.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--rotecEra .historydevelopmentLowerPageSec__eraBody--textPhotoRow {
  display: grid;
  grid-template-columns: minmax(0, 820px) minmax(0, 280px);
  gap: 48px;
  align-items: start;
  justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--doroEra .historydevelopmentLowerPageSec__eraBody--textPhotoRow,
  .historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--rotecEra .historydevelopmentLowerPageSec__eraBody--textPhotoRow {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--doroEra .historydevelopmentLowerPageSec__eraBody--textPhotoRow > .historydevelopmentLowerPageSec__eraText,
.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--rotecEra .historydevelopmentLowerPageSec__eraBody--textPhotoRow > .historydevelopmentLowerPageSec__eraText {
  max-width: 820px;
  width: 100%;
}
.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--doroEra .historydevelopmentLowerPageSec__eraPhotos,
.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--rotecEra .historydevelopmentLowerPageSec__eraPhotos {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  max-width: 280px;
  justify-self: end;
}
@media screen and (max-width: 768px) {
  .historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--doroEra .historydevelopmentLowerPageSec__eraPhotos,
  .historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--rotecEra .historydevelopmentLowerPageSec__eraPhotos {
    max-width: 100%;
    justify-self: stretch;
  }
}
.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--doroEra .historydevelopmentLowerPageSec__eraPhotos .historydevelopmentLowerPageSec__eraDiagramFig,
.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--rotecEra .historydevelopmentLowerPageSec__eraPhotos .historydevelopmentLowerPageSec__eraDiagramFig {
  margin: 0;
  width: 100%;
  max-width: 350px;
}
.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--doroEra .historydevelopmentLowerPageSec__eraPhotos .historydevelopmentLowerPageSec__eraDiagramImg,
.historydevelopmentLowerPageSec.historydevelopmentLowerPageSec--rotecEra .historydevelopmentLowerPageSec__eraPhotos .historydevelopmentLowerPageSec__eraDiagramImg {
  width: 100%;
  height: auto;
}

/*====================================================================
.lowerBoxSec--news
====================================================================*/
@media screen and (max-width: 768px) {
  .lowerBoxSec--news {
    height: 218px;
  }
}
.lowerBoxSec--news__head {
  margin-bottom: 12px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec--news__head {
    margin-bottom: 10px;
  }
}
.lowerBoxSec--news__date {
  padding-top: 3px;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1;
  color: #666666;
}
.lowerBoxSec--news__catLink {
  display: block;
  width: fit-content;
  padding: 4px 10px;
  background: #FCEDE9;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #E06640;
}

/*====================================================================
.singleNews
====================================================================*/
.singleNews {
  padding-top: 70px;
  padding-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .singleNews {
    padding-top: 30px;
    padding-bottom: 64px;
  }
}
.singleNews__inner {
  max-width: 1160px;
  width: calc(100% - 40px);
  margin: 0 auto;
}
.singleNews__articleMeta {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}
.singleNews__articleDate {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1;
  color: #666666;
}
.singleNews__articleCatLink {
  display: block;
  width: fit-content;
  padding: 4px 10px;
  background: #FCEDE9;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #E06640;
  text-decoration: none;
}
.singleNews__articleTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .singleNews__articleTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.singleNews__articleTitle {
  font-size: 28px;
  font-weight: 700;
  color: #333;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: 48px;
}
@media screen and (max-width: 768px) {
  .singleNews__articleTitle {
    font-size: 20px;
    margin-bottom: 32px;
  }
}
.singleNews__contents + .singleNews__contents {
  margin-top: 77px;
}
@media screen and (max-width: 768px) {
  .singleNews__contents + .singleNews__contents {
    margin-top: 64px;
  }
}
.singleNews__title {
  margin-bottom: 25px;
  font-size: 24px;
  font-weight: 700;
  color: #002F7B;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .singleNews__title {
    margin-bottom: 24px;
    font-size: 18px;
  }
}
.singleNews__txt {
  margin-bottom: 28px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .singleNews__txt {
    font-size: 14px;
  }
}
.singleNews__introductionItem + .singleNews__introductionItem {
  margin-top: 12px;
}
.singleNews__introductionItemLink {
  display: block;
  width: 100%;
  padding: 20px;
  border: 1px solid #cccccc;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 28px;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .singleNews__introductionItemLink:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 768px) {
  .singleNews__introductionItemLink {
    padding: 12px 16px;
    flex-direction: column;
    align-items: flex-start;
    gap: 0px;
  }
}
.singleNews__introductionLeft {
  width: fit-content;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 28px;
}
@media screen and (max-width: 768px) {
  .singleNews__introductionLeft {
    gap: 12px;
  }
}
.singleNews__introductionRight {
  width: fit-content;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 32px;
}
@media screen and (max-width: 768px) {
  .singleNews__introductionRight {
    gap: 12px;
  }
}
.singleNews__introductionItem--icon {
  width: fit-content;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-weight: 400;
  padding: 3px 6px;
  border: 1px solid #002F7B;
  border-radius: 2px;
  font-size: 12px;
  font-weight: bold;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1;
}
.singleNews__introductionItem--date {
  width: fit-content;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: #666666;
}
@media screen and (max-width: 768px) {
  .singleNews__introductionItem--date {
    font-size: 12px;
  }
}
.singleNews__introductionItem--title {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  height: 1em;
}
@media screen and (max-width: 768px) {
  .singleNews__introductionItem--title {
    margin-top: 11px;
    font-size: 14px;
  }
}
.singleNews__introductionItem--capacity {
  width: fit-content;
  min-width: fit-content;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #666666;
}
@media screen and (max-width: 768px) {
  .singleNews__introductionItem--capacity {
    font-size: 11px;
  }
}

/*===================
エディタースタイル
===================*/
pre {
  white-space: pre-wrap;
}

.editor html,
.editor body,
.editor div,
.editor figure,
.editor section,
.editor span,
.editor applet,
.editor object,
.editor iframe,
.editor h1,
.editor h2,
.editor h3,
.editor h4,
.editor h5,
.editor h6,
.editor p,
.editor blockquote,
.editor pre,
.editor a,
.editor abbr,
.editor acronym,
.editor address,
.editor big,
.editor cite,
.editor code,
.editor del,
.editor dfn,
.editor em,
.editor font,
.editor img,
.editor ins,
.editor kbd,
.editor q,
.editor s,
.editor samp,
.editor small,
.editor strike,
.editor strong,
.editor sub,
.editor sup,
.editor tt,
.editor var,
.editor b,
.editor u,
.editor i,
.editor center,
.editor dl,
.editor dt,
.editor dd,
.editor ol,
.editor ul,
.editor li,
.editor fieldset,
.editor form,
.editor label,
.editor legend,
.editor table,
.editor caption,
.editor tbody,
.editor tfoot,
.editor thead,
.editor tr,
.editor th,
.editor td {
  font-size: inherit;
  font-weight: inherit;
}
.editor {
  margin-top: 28px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .editor {
    font-size: 14px;
  }
}
.editor {
  overflow-wrap: break-word;
}
.editor [id] {
  scroll-margin-top: calc(60px + 24px);
}
body.admin-bar .editor [id] {
  scroll-margin-top: calc(60px + 32px + 24px);
}
@media screen and (max-width: 768px) {
  .editor [id] {
    scroll-margin-top: calc(50px + 20px);
  }
  body.admin-bar .editor [id] {
    scroll-margin-top: calc(50px + 46px + 20px);
  }
}
.editor:nth-child(1) {
  margin-top: 0;
}
.editor a {
  color: #002F7B;
  text-decoration: underline;
  transition: 0.5s;
}
.editor a:hover {
  opacity: 0.7;
}
.editor h1,
.editor h2,
.editor h3,
.editor h4,
.editor h5,
.editor h6 {
  margin-top: 2em;
}
.editor h1 {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.5;
}
.editor h2 {
  position: relative;
  padding-top: 20px;
  border-top: 1px solid #ccc;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .editor h2 {
    font-size: 14px;
    line-height: 1.8;
  }
}
.editor h2 {
  font-size: 32px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .editor h2 {
    padding-top: 16px;
    font-size: 24px;
    line-height: 1.5;
  }
}
.editor h2::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 40px;
  height: 3px;
  background-color: #002F7B;
}
.editor h3 {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .editor h3 {
    font-size: 14px;
    line-height: 1.8;
  }
}
.editor h3 {
  padding: 8px 20px;
  background-color: #EDF3F7;
  border-left: 4px solid #00AB84;
  font-size: 28px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .editor h3 {
    padding: 10px 16px;
    font-size: 20px;
  }
}
.editor h4 {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .editor h4 {
    font-size: 20px;
  }
}
.editor h5 {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .editor h5 {
    font-size: 20px;
  }
}
.editor h6 {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .editor h6 {
    font-size: 20px;
  }
}
.editor h1 + h2,
.editor h2 + h3,
.editor h3 + h4,
.editor h4 + h5,
.editor h5 + h6 {
  margin-top: 1.2em;
}
.editor p {
  margin-top: 28px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .editor p {
    font-size: 14px;
  }
}
.editor p strong {
  font-weight: bold !important;
}
.editor strong {
  font-weight: bold;
}
.editor strong span {
  font-weight: bold !important;
}
.editor em {
  font-style: italic;
}
.editor ul {
  list-style-type: disc;
}
.editor ol {
  list-style-type: decimal;
}
.editor ul,
.editor ol {
  margin-top: 28px;
  padding-left: 1.4em;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .editor ul,
  .editor ol {
    font-size: 14px;
  }
}
.editor li {
  margin-top: 0.6em;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .editor li {
    font-size: 14px;
  }
}
.editor li::marker {
  color: #ED6D46;
}
.editor sup,
.editor sub {
  font-size: 10px !important;
}
.editor table {
  margin-top: 3em;
  width: 100% !important;
  height: auto !important;
  border-collapse: collapse;
}
.editor thead th,
.editor td {
  font-weight: bold;
  text-align: center;
}
.editor tr th,
.editor tr td {
  padding: 15px 20px;
  border: #3c3c3c 1px solid;
  line-height: 1.5;
  text-align: left;
  vertical-align: middle;
}
.editor tr th {
  width: 25%;
  font-weight: 500;
  text-align: center;
}
.editor img {
  width: auto;
  max-width: 100%;
  border-radius: 10px;
}
.editor img.alignleft {
  display: block;
  max-width: 500px;
}
@media screen and (max-width: 768px) {
  .editor img.alignleft {
    max-width: 100%;
  }
}
.editor img.aligncenter {
  display: block;
  max-width: 750px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .editor img.aligncenter {
    max-width: 100%;
  }
}
.editor img.alignright {
  display: block;
  max-width: 500px;
  margin-left: auto;
}
@media screen and (max-width: 768px) {
  .editor img.alignright {
    max-width: 100%;
  }
}
.editor blockquote {
  position: relative;
  border-left: 3px solid #1b93e6;
  padding-left: 10px;
}
.editor blockquote::before {
  position: absolute;
  content: "“";
  font-size: 20px;
  color: #71cafb;
}
.editor blockquote p {
  position: relative;
  padding-left: 30px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
.editor blockquote cite {
  display: block;
  font-size: 0.8rem;
  text-align: right;
}
.editor hr {
  margin: 10px 0;
}
.editor .wp-caption-text {
  padding-top: 8px;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 1.75;
}
@media screen and (max-width: 768px) {
  .editor .wp-caption-text {
    font-size: 14px;
  }
}

.singleNews__articleTitle a {
  display: block;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #002F7B;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
  text-decoration: underline;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .singleNews__articleTitle a:hover {
    text-decoration: none;
  }
}

/*====================================================================
.lowerBoxSec--technicalinfo
====================================================================*/
@media screen and (max-width: 768px) {
  .lowerBoxSec--technicalinfo {
    height: 218px;
  }
}
.lowerBoxSec--technicalinfo .lowerBoxSec__breadcrumbsInner {
  padding-left: 20px;
  padding-top: 8px;
}
.lowerBoxSec--technicalinfo__head {
  margin-bottom: 12px;
}
.lowerBoxSec--technicalinfo__kinds {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}
.lowerBoxSec--technicalinfo__kindsTitle01 {
  width: fit-content;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec--technicalinfo__kindsTitle01 {
    font-size: 12px;
  }
}
.lowerBoxSec--technicalinfo__kindsTitle02 {
  width: fit-content;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec--technicalinfo__kindsTitle02 {
    font-size: 12px;
  }
}
.lowerBoxSec--technicalinfo__kindsLine {
  display: block;
  width: 40px;
  height: 1px;
  background: #cccccc;
}
.lowerBoxSec--technicalinfo__catWrap {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .lowerBoxSec--technicalinfo__catWrap {
    margin-top: 10px;
    margin-bottom: 40px;
  }
}
.lowerBoxSec--technicalinfo__cat {
  width: fit-content;
}
.lowerBoxSec--technicalinfo__catLink {
  display: block;
  width: 100%;
  padding: 4px 16px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .lowerBoxSec--technicalinfo__catLink:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 768px) {
  .lowerBoxSec--technicalinfo__catLink {
    padding: 4px 11px;
    font-size: 12px;
  }
}

/*====================================================================
.singleTechnicalinfo
====================================================================*/
.singleTechnicalinfo {
  padding-top: 80px;
  padding-bottom: 160px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo {
    padding-top: 40px;
    padding-bottom: 64px;
  }
}
.singleTechnicalinfo__inner {
  max-width: 1160px;
  width: calc(100% - 40px);
  margin: 0 auto;
}
.singleTechnicalinfo__container + .singleTechnicalinfo__container {
  margin-top: 40px;
}
.singleTechnicalinfo__container + .singleTechnicalinfo__container.singleTechnicalinfo__container--relatedWorks {
  margin-top: 120px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__container + .singleTechnicalinfo__container {
    margin-top: 64px;
  }
  .singleTechnicalinfo__container + .singleTechnicalinfo__container.singleTechnicalinfo__container--relatedWorks {
    margin-top: 84px;
  }
}
.singleTechnicalinfo .sectionBlockTitle {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo .sectionBlockTitle {
    margin-bottom: 24px;
  }
}
.singleTechnicalinfo .sectionCategoryHeading {
  margin-bottom: 28px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo .sectionCategoryHeading {
    margin-bottom: 20px;
  }
}
.singleTechnicalinfo__titleNormal {
  margin-bottom: 20px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__titleNormal {
    margin-bottom: 16px;
  }
}
.singleTechnicalinfo__txtWrap {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__txtWrap {
    margin-bottom: 24px;
  }
}
.singleTechnicalinfo__txt {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__txt {
    font-size: 14px;
  }
}
.singleTechnicalinfo__txt a {
  color: #002F7B;
  text-decoration: underline;
  transition: 0.6s;
  font-size: 16px;
}
@media screen and (min-width: 769px) {
  .singleTechnicalinfo__txt a:hover {
    opacity: 0.7;
  }
}
.singleTechnicalinfo__kindsWrap {
  padding: 40px;
  background: #F7F5EE;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__kindsWrap {
    padding: 20px;
  }
}
.singleTechnicalinfo__kindsDl {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__kindsDl {
    gap: 28px;
  }
}
.singleTechnicalinfo__kindsDl + .singleTechnicalinfo__kindsDl {
  margin-top: 12px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__kindsDl + .singleTechnicalinfo__kindsDl {
    margin-top: 11px;
  }
}
.singleTechnicalinfo__kindsDt {
  width: fit-content;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__kindsDt {
    width: 51px;
    font-size: 12px;
  }
}
.singleTechnicalinfo__kindsDd {
  width: fit-content;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__kindsDd {
    flex: 1;
    font-size: 12px;
  }
}
.singleTechnicalinfo__picWrap {
  max-width: 1000px;
  margin: 0 auto 60px;
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__picWrap {
    padding: 20px;
  }
}
.singleTechnicalinfo__pic01 {
  width: 46%;
  margin-bottom: 10px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__pic01 {
    width: 100%;
  }
}
.singleTechnicalinfo__pic01.is-imgSized {
  width: var(--picWidth, 42%);
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__pic01.is-imgSized {
    width: 100%;
  }
}
.singleTechnicalinfo__pic01 .img {
  display: block;
  width: 100%;
}
.singleTechnicalinfo__featureColumn {
  margin-top: 40px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.singleTechnicalinfo__featureItem {
  width: 48%;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__featureItem {
    width: 100%;
  }
}
.singleTechnicalinfo__featureItem.is-imgSized {
  width: var(--picWidth, 48%);
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__featureItem.is-imgSized {
    width: 100%;
  }
}
.singleTechnicalinfo__featurePic {
  position: relative;
  width: 100%;
  display: block;
  overflow: hidden;
}
.singleTechnicalinfo__featurePic .img {
  display: block;
  width: 100%;
  border-radius: 10px;
}
.singleTechnicalinfo__featureCap {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__featureCap {
    font-size: 14px;
  }
}
.singleTechnicalinfo__useColumn {
  margin-top: 40px;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(28px, 4.453125vw, 57px) 2%;
}
.singleTechnicalinfo__useItem {
  width: 48%;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__useItem {
    width: 100%;
  }
}
.singleTechnicalinfo__useItem.is-imgSized {
  width: var(--picWidth, 48%);
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__useItem.is-imgSized {
    width: 100%;
  }
}
.singleTechnicalinfo__usePic {
  position: relative;
  width: 100%;
  display: block;
  overflow: hidden;
}
.singleTechnicalinfo__usePic .img {
  display: block;
  width: 100%;
  border-radius: 10px;
}
.singleTechnicalinfo__useCap {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__useCap {
    font-size: 14px;
  }
}
.singleTechnicalinfo__column3 {
  margin-top: 40px;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(28px, 4.453125vw, 57px) 2%;
}
.singleTechnicalinfo__column3--overview {
  display: flex;
  flex-wrap: wrap;
}
.singleTechnicalinfo__columnItem.is-imgSized {
  width: var(--picWidth, 50%);
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__columnItem.is-imgSized {
    width: 100%;
  }
}
.singleTechnicalinfo__overviewItem {
  width: 48%;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__overviewItem {
    width: 100%;
  }
}
.singleTechnicalinfo__overviewItem.is-imgSized {
  width: var(--picWidth, 100%);
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__overviewItem.is-imgSized {
    width: 100%;
  }
}
.singleTechnicalinfo__overviewItem.is-imgSized .singleTechnicalinfo__pic02--overview {
  width: 100%;
}
.singleTechnicalinfo__overviewItem.is-centered {
  margin-left: auto;
  margin-right: auto;
}
.singleTechnicalinfo__pic02 {
  position: relative;
  width: 50%;
  display: block;
  overflow: hidden;
}
.singleTechnicalinfo__pic02 .img {
  display: block;
  width: 100%;
  border-radius: 10px;
}
.singleTechnicalinfo__youtubeWrap {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__youtubeWrap {
    margin-bottom: 24px;
  }
}
.singleTechnicalinfo__youtubeTitle {
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__youtubeTitle {
    font-size: 16px;
    margin-bottom: 8px;
  }
}
.singleTechnicalinfo__youtube {
  position: relative;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  aspect-ratio: 16/9;
}
.singleTechnicalinfo__youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 10px;
}
.singleTechnicalinfo__pic02--overview {
  position: relative;
  display: block;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__pic02--overview {
    width: 100%;
  }
}
.singleTechnicalinfo__pic02--overview .img {
  display: block;
  width: 100%;
  border-radius: 10px;
}
.singleTechnicalinfo__cap, .singleTechnicalinfo__cap--overview {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__cap, .singleTechnicalinfo__cap--overview {
    font-size: 14px;
  }
}
.singleTechnicalinfo__cap--technique {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__cap--technique {
    font-size: 14px;
  }
}
.singleTechnicalinfo__column2 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 3.172vw, 30px) 3.4%;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__column2 {
    grid-template-columns: repeat(1, 1fr);
  }
}
.singleTechnicalinfo__pic03 {
  margin-bottom: 20px;
  width: 100%;
  aspect-ratio: 3/2;
  display: block;
  overflow: hidden;
  border-radius: 10px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__pic03 {
    aspect-ratio: 4/2;
  }
}
.singleTechnicalinfo__pic03 .img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.singleTechnicalinfo__technique {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(24px, 3.9vw, 50px) 3%;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__technique {
    grid-template-columns: repeat(1, 1fr);
  }
}
.singleTechnicalinfo__techniqueItem .singleTechnicalinfo__pic02 {
  width: 100%;
}
.singleTechnicalinfo__techniqueItem .singleTechnicalinfo__pic02.is-imgSized {
  width: var(--picWidth, 100%);
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__techniqueItem .singleTechnicalinfo__pic02.is-imgSized {
    width: 100%;
  }
}
.singleTechnicalinfo__columnItem--title {
  margin-bottom: 8px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__columnItem--title {
    font-size: 18px;
  }
}
.singleTechnicalinfo__columnItem--detail {
  margin-bottom: 20px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 20px;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__columnItem--detail {
    margin-bottom: 12px;
  }
}
.singleTechnicalinfo__columnItem--dl {
  width: fit-content;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}
.singleTechnicalinfo__columnItem--dt {
  width: fit-content;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.05em;
  color: #666666;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__columnItem--dt {
    font-size: 12px;
  }
}
.singleTechnicalinfo__columnItem--dd {
  width: fit-content;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__columnItem--dd {
    font-size: 12px;
  }
}
.singleTechnicalinfo__columnItem--txt {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .singleTechnicalinfo__columnItem--txt {
    font-size: 14px;
  }
}

/*====================================================================
.singleTechnicalRelated — 関連する実績情報
====================================================================*/
.singleTechnicalRelated__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 1100px) {
  .singleTechnicalRelated__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 768px) {
  .singleTechnicalRelated__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
.singleTechnicalRelated__item {
  width: 100%;
}
.singleTechnicalRelated__card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.singleTechnicalRelated__img {
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
  border-radius: 8px;
  margin-bottom: 14px;
}
.singleTechnicalRelated__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media screen and (max-width: 768px) {
  .singleTechnicalRelated__img {
    margin-bottom: 10px;
  }
}
.singleTechnicalRelated__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.singleTechnicalRelated__title {
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .singleTechnicalRelated__title {
    font-size: 14px;
    line-height: 1.8;
  }
}
.singleTechnicalRelated__title {
  font-weight: bold;
  color: #002F7B;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .singleTechnicalRelated__title {
    font-size: 13px;
  }
}
.singleTechnicalRelated__meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.singleTechnicalRelated__meta span {
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .singleTechnicalRelated__meta span {
    font-size: 14px;
    line-height: 1.8;
  }
}
.singleTechnicalRelated__meta span {
  color: #666666;
}
.singleTechnicalRelated__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.singleTechnicalRelated__tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 12px;
  border: 1px solid #002F7B;
  border-radius: 999px;
  font-size: 11px;
  color: #002F7B;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.singleTechnicalRelated__more {
  margin-top: 40px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .singleTechnicalRelated__more {
    margin-top: 28px;
  }
}
.singleTechnicalRelated__moreBtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 280px;
  padding: 10px 10px 10px 20px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  background-color: #002F7B;
  text-decoration: none;
  isolation: isolate;
  margin: 0 auto;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .singleTechnicalRelated__moreBtn:hover .singleTechnicalRelated__moreBtnIcon::before {
    left: 150%;
  }
  .singleTechnicalRelated__moreBtn:hover .singleTechnicalRelated__moreBtnIcon::after {
    left: 50%;
  }
}
.singleTechnicalRelated__moreBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .singleTechnicalRelated__moreBtnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.singleTechnicalRelated__moreBtnText {
  font-size: 16px;
  color: #fff;
  position: relative;
  z-index: 1;
}
.singleTechnicalRelated__moreBtnIcon {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #fff;
  flex-shrink: 0;
  z-index: 1;
}
.singleTechnicalRelated__moreBtnIcon::before, .singleTechnicalRelated__moreBtnIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-image: url("../images/common/arr-icon.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.singleTechnicalRelated__moreBtnIcon::after {
  left: -50%;
}

/*====================================================================
.js-techLb — 技術情報詳細ページ 画像ライトボックストリガー
====================================================================*/
.js-techLb {
  cursor: zoom-in;
  display: block;
  position: relative;
}
.js-techLb img {
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .js-techLb:hover img {
    opacity: 0.82;
  }
}

.techLb__zoomIcon {
  position: absolute;
  bottom: 10px;
  right: 10px;
  width: 34px;
  height: 34px;
  background-color: rgba(255, 255, 255, 0.88);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  transition: 0.6s;
}
.techLb__zoomIcon::before {
  content: "";
  display: block;
  width: 17px;
  height: 17px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'><circle cx='8.5' cy='8.5' r='5.5' stroke='black' stroke-width='1.8'/><line x1='12.7' y1='12.7' x2='17.5' y2='17.5' stroke='black' stroke-width='1.8' stroke-linecap='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'><circle cx='8.5' cy='8.5' r='5.5' stroke='black' stroke-width='1.8'/><line x1='12.7' y1='12.7' x2='17.5' y2='17.5' stroke='black' stroke-width='1.8' stroke-linecap='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
@media screen and (max-width: 768px) {
  .techLb__zoomIcon {
    width: 30px;
    height: 30px;
    bottom: 8px;
    right: 8px;
  }
}

/*====================================================================
技術情報詳細ページ：ページタイトルのフォントサイズ上書き
====================================================================*/
@media screen and (min-width: 769px) {
  .lowerBoxSec--technicalinfo .lowerBoxSec__wrapTitle {
    font-size: 34px;
  }
}

/*====================================================================
.sitemap
====================================================================*/
.sitemap .ilblk {
  display: inline-block;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.sitemap {
  padding: 80px 0;
}
@media screen and (max-width: 768px) {
  .sitemap {
    padding: 40px 0 64px;
  }
}
.sitemap__inner {
  max-width: 1160px;
  width: calc(100% - 40px);
  margin: 0 auto;
}
.sitemap__nav {
  columns: 3;
  column-gap: 64px;
}
@media screen and (max-width: 768px) {
  .sitemap__nav {
    columns: 1;
    column-gap: 0;
  }
}
.sitemap__box {
  break-inside: avoid;
  margin-bottom: 64px;
}
@media screen and (max-width: 768px) {
  .sitemap__box {
    margin-bottom: 40px;
  }
}
.sitemap__none {
  display: none;
}
.sitemap__ttl {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .sitemap__ttl {
    font-size: 20px;
  }
}
.sitemap__rightGroup {
  display: contents;
}
.sitemap__item {
  border-bottom: 1px solid #cccccc;
}
.sitemap__itemLink {
  padding: 16px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 5px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .sitemap__itemLink:hover {
    opacity: 0.7;
  }
}
.sitemap__arrow {
  display: block;
  width: 14px;
  min-width: 14px;
  height: 14px;
}
.sitemap__level3 .sitemap__itemLink {
  padding-left: 16px;
}

/*====================================================================
.transaction
====================================================================*/
.transaction {
  padding: 80px 0 120px;
}
.transaction .ilblk {
  display: inline-block;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
@media screen and (max-width: 768px) {
  .transaction {
    padding: 40px 0 64px;
  }
}
.transaction .sectionBlockTitle--transaction {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .transaction .sectionBlockTitle--transaction {
    margin-bottom: 28px;
  }
}
.transaction .sectionCategoryHeading--transaction {
  margin-bottom: 28px;
}
.transaction .sectionBlockTitle__heading {
  text-align: left;
}
.transaction__inner {
  max-width: 1160px;
  width: calc(100% - 40px);
  margin: 0 auto;
}
.transaction__intro {
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .transaction__intro {
    margin-bottom: 40px;
  }
}
.transaction__layout {
  display: flex;
  align-items: flex-start;
  gap: 50px;
}
@media screen and (max-width: 768px) {
  .transaction__layout {
    display: block;
  }
}
.transaction__wrap {
  flex: 1;
  min-width: 0;
}
.transaction {
  /*---- page nav (left sticky index) ----*/
}
.transaction__pageNav {
  flex-shrink: 0;
  width: 180px;
  position: sticky;
  top: calc(60px + 32px + 60px);
  align-self: flex-start;
}
@media screen and (max-width: 768px) {
  .transaction__pageNav {
    position: static;
    width: 100%;
    margin-bottom: 40px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-top: 1px solid #E0E0E0;
  }
}
.transaction__pageNavTitle {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #666666;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .transaction__pageNavTitle {
    display: none;
  }
}
.transaction__pageNavList {
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .transaction__pageNavList {
    display: flex;
    white-space: nowrap;
  }
}
.transaction__pageNavItem {
  border-top: 1px solid #E0E0E0;
}
.transaction__pageNavItem:first-child {
  border-top: none;
}
.transaction__pageNavItem:last-child {
  border-bottom: 1px solid #E0E0E0;
}
@media screen and (max-width: 768px) {
  .transaction__pageNavItem {
    border: none;
    flex-shrink: 0;
  }
  .transaction__pageNavItem:last-child {
    border-bottom: none;
  }
}
.transaction__pageNavSubList {
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .transaction__pageNavSubList {
    display: none;
  }
}
.transaction__pageNavSubItem {
  border-top: 1px solid #EFEFEF;
}
.transaction__pageNavSubLink {
  display: block;
  position: relative;
  padding: 9px 0 9px 22px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: 0.6s;
}
.transaction__pageNavSubLink::before {
  content: "";
  display: block;
  position: absolute;
  left: 8px;
  top: 50%;
  width: 5px;
  height: 5px;
  border-top: 1.5px solid #002F7B;
  border-right: 1.5px solid #002F7B;
  transform: translateY(-50%) rotate(45deg);
  opacity: 0;
  transition: 0.6s;
}
.transaction__pageNavSubLink.is-active {
  color: #002F7B;
  font-weight: 600;
}
.transaction__pageNavSubLink.is-active::before {
  opacity: 1;
}
@media screen and (min-width: 769px) {
  .transaction__pageNavSubLink:hover {
    color: #002F7B;
    opacity: 1;
  }
}
.transaction__pageNavLink {
  display: block;
  position: relative;
  padding: 13px 0 13px 16px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: 0.6s;
}
.transaction__pageNavLink::before {
  content: "";
  display: block;
  position: absolute;
  left: 1px;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 2px solid #002F7B;
  border-right: 2px solid #002F7B;
  transform: translateY(-50%) rotate(45deg);
  opacity: 0;
  transition: 0.6s;
}
.transaction__pageNavLink.is-active {
  color: #002F7B;
  font-weight: 700;
}
.transaction__pageNavLink.is-active::before {
  opacity: 1;
}
@media screen and (min-width: 769px) {
  .transaction__pageNavLink:hover {
    color: #002F7B;
    opacity: 1;
  }
}
@media screen and (max-width: 768px) {
  .transaction__pageNavLink {
    padding: 12px 16px;
    white-space: nowrap;
    border-bottom: 1px solid #E0E0E0;
  }
  .transaction__pageNavLink::before {
    display: none;
  }
  .transaction__pageNavLink.is-active {
    border-bottom-color: #002F7B;
  }
}
.transaction__txt01 {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.75;
}
.transaction__txt02 {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.75;
}
@media screen and (max-width: 768px) {
  .transaction__txt02 {
    font-size: 14px;
  }
}
.transaction__contents[id], .transaction__group[id] {
  scroll-margin-top: calc(60px + 32px + 24px);
}
@media screen and (max-width: 768px) {
  .transaction__contents[id], .transaction__group[id] {
    scroll-margin-top: calc(50px + 20px);
  }
}
.transaction__contents + .transaction__contents {
  margin-top: 100px;
}
@media screen and (max-width: 768px) {
  .transaction__contents + .transaction__contents {
    margin-top: 64px;
  }
}
.transaction__group + .transaction__group {
  margin-top: 60px;
}
@media screen and (max-width: 768px) {
  .transaction__group + .transaction__group {
    margin-bottom: 48px;
  }
}
.transaction__contentsTxt {
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .transaction__contentsTxt {
    margin-bottom: 28px;
  }
}
.transaction__linkList01 {
  margin-bottom: 40px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .transaction__linkList01 {
    margin-bottom: 28px;
  }
}
.transaction__linkItem01 {
  width: fit-content;
}
.transaction__link01 {
  display: block;
  padding: 4px 12px;
  background: #F4F4F4;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.25;
  color: #666666;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .transaction__link01:hover {
    opacity: 0.7;
  }
}
.transaction__linkItem02 {
  padding-left: 8px;
  position: relative;
}
.transaction__linkItem02::before {
  display: block;
  content: "";
  width: 5px;
  height: 10px;
  background: url(../images/common/icon_link-arrow.svg) center center/contain no-repeat;
  position: absolute;
  top: 10px;
  left: 0;
}
.transaction__linkItem02 + .transaction__linkItem02 {
  margin-top: 16px;
}
.transaction__link02 {
  display: block;
  width: fit-content;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .transaction__link02:hover {
    opacity: 0.7;
  }
}
.transaction__link02--txt {
  display: inline;
  width: fit-content;
  padding-right: 8px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
  color: #002F7B;
}
@media screen and (max-width: 768px) {
  .transaction__link02--txt {
    font-size: 14px;
  }
}
.transaction__pdf {
  display: inline-block;
  width: fit-content;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-weight: 400;
  padding: 3px 6px;
  border: 1px solid #002F7B;
  border-radius: 2px;
  font-size: 12px;
  font-weight: bold;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1;
}
.transaction__external {
  display: inline-block;
  width: 14px;
}
.transaction__btn {
  min-width: 230px;
  width: fit-content;
}
@media screen and (max-width: 768px) {
  .transaction__btn {
    margin: 0;
  }
}
.transaction__btn .topPageFacilitySec__btnText {
  padding-right: 10px;
}
@media screen and (min-width: 769px) {
  .transaction__btn--external:hover .transaction__btnIcon--external::before, .transaction__btn--external:hover .transaction__btnIcon--external::after {
    background-image: url("../images/common/icon_link_b.svg");
  }
}
.transaction__btn .topPageFacilitySec__btnText {
  text-align: left;
}
.transaction__btnIcon--external::before, .transaction__btnIcon--external::after {
  background-image: url("../images/common/icon_link.png");
}
.transaction__txtNotes {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
.transaction__download {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .transaction__download {
    margin-bottom: 20px;
  }
}
.transaction__dl {
  padding: 33px 0;
  border-bottom: 1px solid #cccccc;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}
@media screen and (max-width: 768px) {
  .transaction__dl {
    padding: 22px 0;
    flex-direction: column;
    row-gap: 12px;
  }
}
.transaction__dt {
  width: 350px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .transaction__dt {
    width: 100%;
    font-size: 16px;
  }
}
.transaction__dd {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 12px;
}
.transaction__ddBtnLink {
  display: block;
  width: fit-content;
  padding: 8px 40px 8px 16px;
  border: 1px solid #cccccc;
  border-radius: 999px;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-weight: 400;
  position: relative;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .transaction__ddBtnLink:hover {
    opacity: 0.7;
  }
}
.transaction__ddBtnLink::after {
  display: block;
  content: "";
  width: 12px;
  height: 12px;
  background: url(../images/common/icon_download.svg) center center/contain no-repeat;
  position: absolute;
  top: 12px;
  right: 14px;
}
.transaction__listDisc {
  list-style-type: disc;
  padding-left: 1.95em;
}
.transaction__listDisc02 {
  padding-left: 0;
}
.transaction__listItemDisc {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .transaction__listItemDisc {
    font-size: 14px;
  }
}
.transaction__listItemDisc02 {
  padding-left: 1em;
  font-size: 14px;
  list-style-type: none;
  position: relative;
}
.transaction__listItemDisc02::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #000;
  position: absolute;
  top: 0.8em;
  left: 0;
}
.transaction__listItemDiscLink {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .transaction__listItemDiscLink:hover {
    opacity: 0.7;
  }
}
.transaction__listItemDiscLink .txt {
  display: inline;
  padding-right: 5px;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-decoration: underline;
}
.transaction__listItemDiscLink .icon {
  display: inline-block;
  width: 14px;
}
.transaction__sdsWrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.transaction__sdsTable {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .transaction__sdsTable {
    font-size: 14px;
    min-width: 480px;
  }
}
.transaction__sdsTh {
  padding: 12px 16px;
  background-color: #F4F4F4;
  border-bottom: 2px solid #002F7B;
  font-weight: 700;
  text-align: left;
  color: #666666;
  white-space: nowrap;
}
.transaction__sdsTh--date {
  width: 160px;
}
@media screen and (max-width: 768px) {
  .transaction__sdsTh--date {
    width: 120px;
  }
}
.transaction__sdsTr {
  border-bottom: 1px solid #E0E0E0;
}
.transaction__sdsTr:last-child {
  border-bottom: none;
}
.transaction__sdsTd {
  padding: 16px 16px;
  vertical-align: middle;
}
.transaction__sdsTd--date {
  white-space: nowrap;
  color: #666666;
  font-size: 14px;
}
@media screen and (max-width: 768px) {
  .transaction__sdsTd--date {
    font-size: 13px;
  }
}
.transaction__sdsLink {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .transaction__sdsLink:hover {
    opacity: 0.7;
  }
}

/*====================================================================
.payment
====================================================================*/
/*====================================================================
.sustainabilityPageSec（メインラッパー）
====================================================================*/
.sustainabilityPageSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec {
    padding: 40px 0 80px;
  }
}
.sustainabilityPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.sustainabilityPageSec {
  /* ---- イントロ ---- */
}
.sustainabilityPageSec__intro {
  margin-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__intro {
    margin-bottom: 56px;
  }
}
.sustainabilityPageSec__introEyebrow {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__introEyebrow {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__introEyebrow {
  font-size: 12px;
  font-weight: 700;
  color: #00AB84;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.sustainabilityPageSec__introTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__introTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__introTitle {
  font-size: 32px;
  font-weight: 700;
  color: #002F7B;
  line-height: 1.3;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__introTitle {
    font-size: 24px;
  }
}
.sustainabilityPageSec__introLead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__introLead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__introLead {
  font-size: 16px;
  line-height: 1.85;
  color: #333;
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__introLead {
    font-size: 14px;
    margin-bottom: 24px;
  }
}
.sustainabilityPageSec__introFigure {
  margin-bottom: 24px;
}
.sustainabilityPageSec__introFigureImg {
  display: block;
  width: 100%;
  max-width: 720px;
  height: auto;
}
.sustainabilityPageSec__introLinkArea {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sustainabilityPageSec__introLink {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__introLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__introLink {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #002F7B;
  border-bottom: 1px solid #002F7B;
  padding-bottom: 2px;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .sustainabilityPageSec__introLink:hover:hover {
    opacity: 0.7;
  }
}
.sustainabilityPageSec__introLinkNote {
  font-size: 14px;
  color: #888;
}
.sustainabilityPageSec {
  /* ---- ESGブロック ---- */
}
.sustainabilityPageSec__esgBlock {
  margin-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__esgBlock {
    margin-bottom: 56px;
  }
}
.sustainabilityPageSec__esgBlock .sectionBlockTitle {
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__esgBlock .sectionBlockTitle {
    margin-bottom: 20px;
  }
}
.sustainabilityPageSec {
  /* ---- レポートブロック ---- */
}
.sustainabilityPageSec__reportBlock {
  margin-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportBlock {
    margin-bottom: 56px;
  }
}
.sustainabilityPageSec__reportBlock .sectionBlockTitle {
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportBlock .sectionBlockTitle {
    margin-bottom: 20px;
  }
}
.sustainabilityPageSec__reportLead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportLead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__reportLead {
  font-size: 15px;
  line-height: 1.85;
  color: #333;
  margin-bottom: 28px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportLead {
    font-size: 14px;
  }
}
.sustainabilityPageSec__reportBanner {
  display: flex;
  align-items: center;
  gap: 40px;
  padding: 32px 36px;
  background: #EDF3F7;
  border: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportBanner {
    flex-direction: column;
    gap: 20px;
    padding: 24px 20px;
  }
}
.sustainabilityPageSec__reportBannerImg {
  width: 120px;
  height: 160px;
  flex-shrink: 0;
  background: #c8cdd4;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Cline x1='0' y1='0' x2='100%25' y2='100%25' stroke='%23b0b7be' stroke-width='1.5'/%3E%3Cline x1='100%25' y1='0' x2='0' y2='100%25' stroke='%23b0b7be' stroke-width='1.5'/%3E%3C/svg%3E");
  border: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportBannerImg {
    width: 100%;
    height: 160px;
    max-width: 200px;
    align-self: flex-start;
  }
}
.sustainabilityPageSec__reportBannerBody {
  flex: 1;
}
.sustainabilityPageSec__reportBannerTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportBannerTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__reportBannerTitle {
  font-size: 20px;
  font-weight: 700;
  color: #002F7B;
  margin-bottom: 12px;
  line-height: 1.4;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportBannerTitle {
    font-size: 17px;
  }
}
.sustainabilityPageSec__reportBannerDesc {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportBannerDesc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__reportBannerDesc {
  font-size: 14px;
  color: #333;
  line-height: 1.85;
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__reportBannerDesc {
    font-size: 13px;
  }
}
.sustainabilityPageSec__reportBannerBtn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  background: #002F7B;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  transition: 0.6s;
}
.sustainabilityPageSec__reportBannerBtn::after {
  content: "→";
}
@media screen and (min-width: 769px) {
  .sustainabilityPageSec__reportBannerBtn:hover:hover {
    opacity: 0.8;
  }
}
.sustainabilityPageSec {
  /* ---- ピックアップ工事リンク ---- */
}
.sustainabilityPageSec__pickupLink {
  margin-bottom: 48px;
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__pickupLink {
    margin-bottom: 32px;
  }
}
.sustainabilityPageSec__pickupLinkBtn {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 28px;
  background: #fff;
  border: 1px solid #c8d0de;
  border-left: 5px solid #002F7B;
  border-radius: 4px;
  text-decoration: none;
  transition: background 0.2s, box-shadow 0.2s;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__pickupLinkBtn {
    gap: 14px;
    padding: 18px 18px;
  }
}
@media screen and (min-width: 769px) {
  .sustainabilityPageSec__pickupLinkBtn:hover:hover {
    background: #f0f3f9;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  }
}
.sustainabilityPageSec__pickupLinkIcon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  background: #002F7B;
  border-radius: 50%;
  position: relative;
}
.sustainabilityPageSec__pickupLinkIcon::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  transform: translate(-50%, -50%);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cline x1='8' y1='21' x2='16' y2='21'/%3E%3Cline x1='12' y1='17' x2='12' y2='21'/%3E%3C/svg%3E") center/contain no-repeat;
}
.sustainabilityPageSec__pickupLinkBody {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sustainabilityPageSec__pickupLinkTitle {
  font-size: 16px;
  font-weight: bold;
  color: #002F7B;
  display: block;
}
.sustainabilityPageSec__pickupLinkDesc {
  font-size: 14px;
  color: #555;
  display: block;
  line-height: 1.5;
}
.sustainabilityPageSec__pickupLinkArrow {
  flex-shrink: 0;
  font-size: 1.125rem;
  color: #002F7B;
}
.sustainabilityPageSec {
  /* ---- 各種方針ブロック ---- */
}
.sustainabilityPageSec__policyBlock .sectionBlockTitle {
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__policyBlock .sectionBlockTitle {
    margin-bottom: 20px;
  }
}
.sustainabilityPageSec__policyLead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__policyLead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__policyLead {
  font-size: 15px;
  line-height: 1.85;
  color: #333;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__policyLead {
    font-size: 14px;
  }
}
.sustainabilityPageSec__policyTableWrap {
  overflow-x: auto;
  border: 1px solid #ccc;
}
.sustainabilityPageSec__policyTable {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  min-width: 560px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__policyTable {
    font-size: 13px;
  }
}
.sustainabilityPageSec__policyTable--esgData {
  table-layout: fixed;
  width: 100%;
  min-width: 640px;
}
.sustainabilityPageSec__policyTable--esgData thead tr th {
  text-align: center;
}
.sustainabilityPageSec__policyTable--esgData thead th:first-child {
  width: 38%;
}
.sustainabilityPageSec__policyTable--esgData tbody th[scope=row] {
  font-size: 14px;
  font-weight: 700;
  color: #002F7B;
  background: #f8f7f5;
  text-align: left;
  text-decoration: none;
  padding: 12px 16px;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  vertical-align: middle;
}
.sustainabilityPageSec__policyTable--esgData tbody tr td {
  text-align: right;
  white-space: nowrap;
}
.sustainabilityPageSec__policyTable--esgData tbody tr:last-child th[scope=row],
.sustainabilityPageSec__policyTable--esgData tbody tr:last-child td {
  border-bottom: none;
}
.sustainabilityPageSec__policyTable--esgData tbody tr:nth-child(even) th[scope=row] {
  background: #f8f7f5;
}
.sustainabilityPageSec__policyTable thead th {
  background: #f8f7f5;
  color: #002F7B;
  font-size: 13px;
  font-weight: 700;
  padding: 12px 16px;
  text-align: left;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  white-space: nowrap;
}
.sustainabilityPageSec__policyTable thead th:last-child {
  border-right: none;
}
.sustainabilityPageSec__policyTable tbody td {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__policyTable tbody td {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__policyTable tbody td {
  padding: 12px 16px;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  vertical-align: middle;
  color: #333;
}
.sustainabilityPageSec__policyTable tbody td:last-child {
  border-right: none;
}
.sustainabilityPageSec__policyTable tbody tr:last-child td {
  border-bottom: none;
}
.sustainabilityPageSec__policyTable tbody tr:nth-child(even) td {
  background: rgba(0, 0, 0, 0.02);
}
.sustainabilityPageSec__policyTh--esg {
  width: 48px;
}
.sustainabilityPageSec__policyTh--esgLabel {
  width: 38%;
}
.sustainabilityPageSec__policyTh--num {
  width: 84px;
}
.sustainabilityPageSec__policyTh--link {
  width: 220px;
}
.sustainabilityPageSec__policyNum {
  font-size: 12px;
  color: #888;
  white-space: nowrap;
}
.sustainabilityPageSec__policySubText {
  font-size: 12px;
  color: #888;
  display: block;
}
.sustainabilityPageSec__policyCat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  font-size: 12px;
  font-weight: 700;
  border-radius: 2px;
  border: 1.5px solid;
}
.sustainabilityPageSec__policyCat--e {
  color: #00a884;
  background: #e6f7f4;
  border-color: #00a884;
}
.sustainabilityPageSec__policyCat--s {
  color: #e55e34;
  background: #fce9e3;
  border-color: #e55e34;
}
.sustainabilityPageSec__policyCat--g {
  color: #9722a8;
  background: #f3e8f6;
  border-color: #9722a8;
}
.sustainabilityPageSec__policyLink {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__policyLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPageSec__policyLink {
  font-size: 16px;
  color: #002F7B;
  display: block;
  margin-bottom: 4px;
  transition: 0.6s;
}
.sustainabilityPageSec__policyLink:last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 769px) {
  .sustainabilityPageSec__policyLink:hover {
    text-decoration: underline;
  }
}
.sustainabilityPageSec__policyNote {
  font-size: 12px;
  color: #888;
}
.sustainabilityPageSec__policyTable--noEsg {
  min-width: 0;
}
.sustainabilityPageSec__policyTable--noEsg thead th {
  border-right: none;
}
.sustainabilityPageSec__policyTable--noEsg tbody td {
  border-right: none;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.sustainabilityPageSec__policyFileBadge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border: 1px solid #002F7B;
  border-radius: 2px;
  font-size: 11px;
  font-weight: 700;
  color: #002F7B;
  letter-spacing: 0.06em;
  flex-shrink: 0;
}
.sustainabilityPageSec {
  /* ---- 2カラムレイアウト ---- */
}
.sustainabilityPageSec__cont {
  display: flex;
  align-items: flex-start;
  gap: 68px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__cont {
    display: block;
  }
}
.sustainabilityPageSec__contLeft {
  flex-shrink: 0;
  width: 275px;
  position: sticky;
  top: 110px;
  align-self: flex-start;
}
@media screen and (max-width: 768px) {
  .sustainabilityPageSec__contLeft {
    position: static;
    width: auto;
    margin-bottom: 40px;
  }
}
.sustainabilityPageSec__contRight {
  flex: 1;
  min-width: 0;
}

/*====================================================================
.sustainabilitySide（左サイドバー）
====================================================================*/
.sustainabilitySide {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .sustainabilitySide {
    gap: 24px;
  }
}
.sustainabilitySide__block {
  display: flex;
  flex-direction: column;
}
.sustainabilitySide__title {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilitySide__title {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilitySide__title {
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid #C8D5DE;
}
@media screen and (max-width: 768px) {
  .sustainabilitySide__title {
    font-size: 15px;
  }
}
.sustainabilitySide__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sustainabilitySide__item {
  width: 100%;
}
.sustainabilitySide__btn {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 11px 16px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
  cursor: pointer;
  text-align: left;
  transition: 0.6s;
}
.sustainabilitySide__btn::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 8px;
  flex-shrink: 0;
  margin-left: auto;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8' fill='none'><path d='M1 4h13M10 1l4 3-4 3' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8' fill='none'><path d='M1 4h13M10 1l4 3-4 3' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .sustainabilitySide__btn:hover[data-tab=env]:hover:not(.is-active) {
    background: #e6f7f4;
    border-color: #00a884;
  }
  .sustainabilitySide__btn:hover[data-tab=soc]:hover:not(.is-active) {
    background: #fce9e3;
    border-color: #e55e34;
  }
  .sustainabilitySide__btn:hover[data-tab=gov]:hover:not(.is-active) {
    background: #f3e8f6;
    border-color: #9722a8;
  }
}
.sustainabilitySide__btn.is-active {
  background: #002F7B;
  border-color: #002F7B;
}
.sustainabilitySide__btn.is-active::after {
  background-color: #fff;
}
.sustainabilitySide__btn.is-active .sustainabilitySide__btnLabel {
  color: #fff;
}
.sustainabilitySide__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  font-size: 13px;
  font-weight: 700;
  border-radius: 2px;
  border: 1.5px solid;
  flex-shrink: 0;
  transition: 0.6s;
}
.sustainabilitySide__badge--e {
  color: #fff;
  background: #00a884;
  border-color: #00a884;
}
.sustainabilitySide__badge--s {
  color: #fff;
  background: #e55e34;
  border-color: #e55e34;
}
.sustainabilitySide__badge--g {
  color: #fff;
  background: #9722a8;
  border-color: #9722a8;
}
.sustainabilitySide__btnLabel {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilitySide__btnLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilitySide__btnLabel {
  font-size: 15px;
  color: #333;
  line-height: 1.5;
  transition: 0.6s;
}
.sustainabilitySide__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 11px 12px 11px 14px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
  text-decoration: none;
  color: #333;
  font-size: 15px;
  cursor: pointer;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilitySide__link {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilitySide__link {
  transition: 0.6s;
}
.sustainabilitySide__link.is-active {
  background: #002F7B;
  border-color: #002F7B;
  color: #fff;
}
.sustainabilitySide__link.is-active::after {
  background-color: #fff;
}
.sustainabilitySide__link::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 8px;
  flex-shrink: 0;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8' fill='none'><path d='M1 4h13M10 1l4 3-4 3' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 8' fill='none'><path d='M1 4h13M10 1l4 3-4 3' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .sustainabilitySide__link:hover:hover {
    background: #002F7B;
    border-color: #002F7B;
    color: #fff;
  }
  .sustainabilitySide__link:hover:hover::after {
    background-color: #fff;
  }
}

/*====================================================================
.sustainabilityPanel（E/S/G パネル）
====================================================================*/
.sustainabilityPanel {
  padding: 0;
  margin-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel {
    margin-bottom: 56px;
    padding: 0;
  }
}
.sustainabilityPanel[hidden] {
  display: none;
}
.sustainabilityPanel {
  /* リード */
}
.sustainabilityPanel__lead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__lead {
  font-size: 16px;
  line-height: 1.85;
  color: #333;
  margin: 20px 0 32px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__lead {
    font-size: 14px;
    margin: 16px 0 24px;
  }
}
.sustainabilityPanel__leadLink {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__leadLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__leadLink {
  font-size: 16px;
  line-height: 1.85;
  border-bottom: 1px solid #333;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .sustainabilityPanel__leadLink:hover {
    color: #002F7B;
    border-bottom: 1px solid #002F7B;
  }
}
.sustainabilityPanel {
  /* 方針引用ボックス */
}
.sustainabilityPanel__policyBox {
  border-left: 4px solid #00AB84;
  background: #e8f7f2;
  padding: 14px 20px;
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__policyBox {
    padding: 12px 14px;
    margin-bottom: 24px;
  }
}
.sustainabilityPanel__policyBoxLabel {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__policyBoxLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__policyBoxLabel {
  color: #00AB84;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
}
.sustainabilityPanel__policyBoxText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__policyBoxText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__policyBoxText {
  font-size: 14px;
  color: #002F7B;
  font-weight: 700;
  line-height: 1.75;
}
.sustainabilityPanel__policyBoxTextBlod {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__policyBoxTextBlod {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__policyBoxTextBlod {
  font-size: 17px;
  color: #002F7B;
  font-weight: 700;
  line-height: 1.75;
}
.sustainabilityPanel {
  /* サブブロック */
}
.sustainabilityPanel__block {
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__block {
    margin-top: 28px;
  }
}
.sustainabilityPanel__block:first-of-type {
  margin-top: 0;
}
.sustainabilityPanel__blockTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__blockTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__blockTitle {
  font-size: 20px;
  font-weight: 700;
  color: #002F7B;
  padding-bottom: 12px;
  border-bottom: 2px solid #ccc;
  margin-bottom: 24px;
  position: relative;
}
.sustainabilityPanel__blockTitle::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 40px;
  height: 2px;
  background: #002F7B;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__blockTitle {
    font-size: 17px;
    margin-bottom: 16px;
  }
}
.sustainabilityPanel {
  /* アプローチ（環境3軸） */
}
.sustainabilityPanel__approach {
  margin-bottom: 32px;
}
.sustainabilityPanel__approach:last-child {
  margin-bottom: 0;
}
.sustainabilityPanel__approachHead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__approachHead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__approachHead {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 20px;
  background: #EDF3F7;
  border-left: 4px solid #00AB84;
  font-size: 18px;
  font-weight: 700;
  color: #002F7B;
  margin-bottom: 16px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__approachHead {
    font-size: 15px;
    padding: 8px 14px;
    margin-bottom: 12px;
  }
}
#panel-env .sustainabilityPanel__approachHead {
  border-left-color: #00a884;
}
#panel-soc .sustainabilityPanel__approachHead {
  border-left-color: #e55e34;
}
#panel-gov .sustainabilityPanel__approachHead {
  border-left-color: #9722a8;
}
.sustainabilityPanel__approachNum {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: #002F7B;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}
.sustainabilityPanel {
  /* データプレースホルダー / ESGデータ表 */
}
.sustainabilityPanel__dataBox {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__dataBox {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__dataBox {
  margin-bottom: 16px;
  font-size: 14px;
  color: #666;
  line-height: 1.75;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__dataBox {
    padding: 16px;
  }
}
.sustainabilityPanel__dataBox--esgData {
  border-style: solid;
  text-align: left;
  color: #333;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__dataBox--esgData {
    padding: 16px;
  }
}
.sustainabilityPanel__dataTableBlock:not(:last-child) {
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__dataTableBlock:not(:last-child) {
    margin-bottom: 24px;
  }
}
.sustainabilityPanel__dataTableTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__dataTableTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__dataTableTitle {
  font-size: 16px;
  font-weight: 700;
  color: #002F7B;
  margin-bottom: 12px;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__dataTableTitle {
    font-size: 15px;
  }
}
.sustainabilityPanel__dataTableNote {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__dataTableNote {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__dataTableNote {
  font-size: 12px;
  color: #888;
  margin-top: 8px;
  line-height: 1.6;
}
.sustainabilityPanel {
  /* 技術カードグリッド */
}
.sustainabilityPanel__techGrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__techGrid {
    grid-template-columns: 1fr;
  }
}
.sustainabilityPanel__techCard {
  border: 1px solid #ccc;
  background: #fff;
  display: flex;
  flex-direction: column;
}
.sustainabilityPanel__techCard--wide {
  grid-column: 1/-1;
  flex-direction: row;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__techCard--wide {
    flex-direction: column;
  }
}
.sustainabilityPanel__techCard--wide .sustainabilityPanel__techCardImg {
  width: 220px;
  height: auto;
  min-height: 120px;
  border-bottom: none;
  border-right: 1px solid #ccc;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__techCard--wide .sustainabilityPanel__techCardImg {
    width: 100%;
    height: 120px;
    border-right: none;
    border-bottom: 1px solid #ccc;
  }
}
.sustainabilityPanel__techCardImg {
  width: 100%;
  height: 120px;
  background: #c8cdd4;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Cline x1='0' y1='0' x2='100%25' y2='100%25' stroke='%23b0b7be' stroke-width='1.5'/%3E%3Cline x1='100%25' y1='0' x2='0' y2='100%25' stroke='%23b0b7be' stroke-width='1.5'/%3E%3C/svg%3E");
  border-bottom: 1px solid #ccc;
  flex-shrink: 0;
}
.sustainabilityPanel__techCardBody {
  padding: 16px 18px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sustainabilityPanel__techCardNum {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__techCardNum {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__techCardNum {
  font-size: 11px;
  color: #00AB84;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.sustainabilityPanel__techCardTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__techCardTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__techCardTitle {
  font-size: 15px;
  font-weight: 700;
  color: #002F7B;
  line-height: 1.35;
}
.sustainabilityPanel__techCardDesc {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__techCardDesc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__techCardDesc {
  font-size: 13px;
  color: #333;
  line-height: 1.75;
  flex: 1;
}
.sustainabilityPanel__techCardLink {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__techCardLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__techCardLink {
  display: inline-block;
  margin-top: 4px;
  font-size: 13px;
  color: #002F7B;
  border-bottom: 1px solid #002F7B;
  align-self: flex-start;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .sustainabilityPanel__techCardLink:hover:hover {
    opacity: 0.7;
  }
}
.sustainabilityPanel {
  /* 社会：活動カード */
}
.sustainabilityPanel__activity {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid #ccc;
  background: #fff;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__activity {
    grid-template-columns: 1fr;
  }
}
.sustainabilityPanel__activityImg {
  min-height: 200px;
  background: #c8cdd4;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Cline x1='0' y1='0' x2='100%25' y2='100%25' stroke='%23b0b7be' stroke-width='1.5'/%3E%3Cline x1='100%25' y1='0' x2='0' y2='100%25' stroke='%23b0b7be' stroke-width='1.5'/%3E%3C/svg%3E");
  border-right: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__activityImg {
    min-height: 160px;
    border-right: none;
    border-bottom: 1px solid #ccc;
  }
}
.sustainabilityPanel__activityBody {
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__activityBody {
    padding: 18px 16px;
  }
}
.sustainabilityPanel__activityTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__activityTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__activityTitle {
  font-size: 17px;
  font-weight: 700;
  color: #002F7B;
}
.sustainabilityPanel__activityDesc {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__activityDesc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__activityDesc {
  font-size: 14px;
  color: #333;
  line-height: 1.8;
  margin-bottom: 12px;
}
.sustainabilityPanel__moreLink {
  display: inline-flex;
  align-items: center;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__moreLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__moreLink {
  color: #002F7B;
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .sustainabilityPanel__moreLink:hover:hover {
    opacity: 0.7;
  }
}
.sustainabilityPanel__linkBtn {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 10px 10px 10px 28px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  background-color: #fff;
  text-decoration: none;
  white-space: nowrap;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .sustainabilityPanel__linkBtn:hover {
    background-color: #002F7B;
  }
  .sustainabilityPanel__linkBtn:hover .sustainabilityPanel__linkBtnText {
    color: #fff;
  }
  .sustainabilityPanel__linkBtn:hover .sustainabilityPanel__linkBtnIcon {
    background-color: #fff;
  }
  .sustainabilityPanel__linkBtn:hover .sustainabilityPanel__linkBtnIcon::before, .sustainabilityPanel__linkBtn:hover .sustainabilityPanel__linkBtnIcon::after {
    background-image: url("../images/common/arr-icon.png");
  }
  .sustainabilityPanel__linkBtn:hover .sustainabilityPanel__linkBtnIcon::before {
    left: 150%;
  }
  .sustainabilityPanel__linkBtn:hover .sustainabilityPanel__linkBtnIcon::after {
    left: 50%;
  }
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__linkBtn {
    padding: 10px 10px 10px 24px;
  }
}
.sustainabilityPanel__linkBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__linkBtnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__linkBtnText {
  font-size: 16px;
  color: #002F7B;
  font-weight: 500;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__linkBtnText {
    font-size: 14px;
  }
}
.sustainabilityPanel__linkBtnIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #002F7B;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  transition: background-color 0.3s ease;
}
.sustainabilityPanel__linkBtnIcon::before, .sustainabilityPanel__linkBtnIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-image: url("../images/common/arr-icon_w.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.sustainabilityPanel__linkBtnIcon::after {
  left: -50%;
}
.sustainabilityPanel {
  /* 画像グループ（単体・複数） */
}
.sustainabilityPanel__imgGroup {
  margin: 16px 0 24px;
}
.sustainabilityPanel__imgGroup img {
  width: 100%;
  height: auto;
  display: block;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__imgGroup img {
    max-width: 100% !important;
  }
}
.sustainabilityPanel__co2Layout::after {
  content: "";
  display: block;
  clear: both;
}
.sustainabilityPanel__co2Img {
  float: left;
  width: 45%;
  height: auto;
  margin: 0 32px 16px 0;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__co2Img {
    float: none;
    width: 100%;
    margin: 0 0 16px;
  }
}
.sustainabilityPanel__trainingTable {
  margin: 24px 0 32px;
}
.sustainabilityPanel__trainingTableLabel {
  font-size: clamp(13px, 1.4vw, 15px);
  font-weight: 700;
  color: #333;
  margin-bottom: 12px;
}
.sustainabilityPanel__trainingTableLabel span {
  font-size: clamp(11px, 1.2vw, 13px);
  font-weight: 400;
  color: #666;
  margin-left: 8px;
}
.sustainabilityPanel__trainingTableWrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.sustainabilityPanel__trainingTableEl {
  width: 100%;
  min-width: 600px;
  border-collapse: collapse;
  font-size: clamp(11px, 1.2vw, 13px);
}
.sustainabilityPanel__trainingTableEl thead tr th {
  background-color: #c0c0e0;
  text-align: center;
  padding: 8px 12px;
  border: 1px solid #aaa;
  font-weight: 700;
  white-space: nowrap;
  font-size: 16px;
}
.sustainabilityPanel__trainingTableEl tbody tr:nth-child(odd) td {
  background-color: #f0f0f8;
}
.sustainabilityPanel__trainingTableEl tbody tr:nth-child(even) td {
  background-color: #e8e8f4;
}
.sustainabilityPanel__trainingTableEl tbody tr td {
  padding: 10px 12px;
  border: 1px solid #ccc;
  vertical-align: top;
  white-space: nowrap;
  font-size: 12px;
}
.sustainabilityPanel__imgRow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 16px 0 24px;
}
.sustainabilityPanel__imgRow--2col {
  grid-template-columns: repeat(2, 1fr);
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__imgRow {
    grid-template-columns: 1fr;
  }
}
.sustainabilityPanel__imgRow img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.sustainabilityPanel {
  /* 社会：従業員グリッド */
}
.sustainabilityPanel__employeeGrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__employeeGrid {
    grid-template-columns: 1fr;
  }
}
.sustainabilityPanel__employeeCard {
  border: 1px solid #ccc;
  background: #fff;
  padding: 20px 22px;
}
.sustainabilityPanel__employeeCardTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__employeeCardTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__employeeCardTitle {
  font-size: 16px;
  font-weight: 700;
  color: #002F7B;
  padding-bottom: 10px;
  border-bottom: 1px solid #ccc;
  margin-bottom: 14px;
}
.sustainabilityPanel__employeeList {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sustainabilityPanel__employeeList li {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__employeeList li {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__employeeList li {
  font-size: 14px;
  color: #333;
  padding: 10px 0;
  border-bottom: 1px dashed #ddd;
  line-height: 1.7;
}
.sustainabilityPanel__employeeList li:last-child {
  border-bottom: none;
}
.sustainabilityPanel__employeeList li strong {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #002F7B;
  margin-bottom: 4px;
}
.sustainabilityPanel__employeeList li br {
  display: none;
}
.sustainabilityPanel {
  /* ガバナンス：カード */
}
.sustainabilityPanel__govCards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sustainabilityPanel__govCard {
  background: #fff;
}
.sustainabilityPanel__govCardHead {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__govCardHead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__govCardHead {
  padding: 8px 24px;
  background: #EDF3F7;
  border-left: 4px solid #00AB84;
  font-size: 18px;
  font-weight: 700;
  color: #002F7B;
  border-bottom: 1px solid #ccc;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__govCardHead {
    font-size: 16px;
    padding: 8px 16px;
  }
}
.sustainabilityPanel__govCardBody {
  padding: 0 0 40px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__govCardBody {
    padding: 16px;
  }
}
.sustainabilityPanel__govCardBody p {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__govCardBody p {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__govCardBody p {
  font-size: 14px;
  color: #333;
  line-height: 1.85;
  margin-bottom: 12px;
}
.sustainabilityPanel__govCardBody p:last-child {
  margin-bottom: 0;
}
.sustainabilityPanel__govItemRow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 12px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__govItemRow {
    grid-template-columns: 1fr;
  }
}
.sustainabilityPanel__govItem {
  border: 1px solid #ccc;
  padding: 14px 16px;
  background: #EDF3F7;
}
.sustainabilityPanel__govItem--full {
  margin-top: 12px;
}
.sustainabilityPanel__govItem p {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__govItem p {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__govItem p {
  font-size: 13px;
  color: #333;
  line-height: 1.75;
  margin-bottom: 0 !important;
}
.sustainabilityPanel__govItem p small {
  font-size: 11px;
  color: #888;
  display: block;
  margin-top: 4px;
}
.sustainabilityPanel__govItemTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__govItemTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.sustainabilityPanel__govItemTitle {
  font-size: 14px;
  font-weight: 700;
  color: #002F7B;
  margin-bottom: 6px;
}
.sustainabilityPanel {
  /* 共通ノート */
}
.sustainabilityPanel__note {
  font-size: 12px;
  color: #888;
}
.sustainabilityPanel {
  /* パネル見出しバッジ（E/S/G） */
}
.sustainabilityPanel__headingBadge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  font-size: 15px;
  font-weight: 700;
  border-radius: 2px;
  border: 1.5px solid;
  flex-shrink: 0;
  vertical-align: middle;
  margin-right: 10px;
  margin-bottom: 5px;
}
@media screen and (max-width: 768px) {
  .sustainabilityPanel__headingBadge {
    width: 26px;
    height: 26px;
    font-size: 13px;
    margin-right: 8px;
    margin-bottom: 3px;
  }
}
.sustainabilityPanel__headingBadge--e {
  color: #fff;
  background: #00a884;
  border-color: #00a884;
}
.sustainabilityPanel__headingBadge--s {
  color: #fff;
  background: #e55e34;
  border-color: #e55e34;
}
.sustainabilityPanel__headingBadge--g {
  color: #fff;
  background: #9722a8;
  border-color: #9722a8;
}

/*====================================================================
.sectionCategoryHeading ESG カラー修飾子（サステナビリティページ用）
====================================================================*/
.sectionCategoryHeading--e {
  border-left-color: #00a884;
  background-color: #e6f7f4;
  color: #00a884;
}

.sectionCategoryHeading--s {
  border-left-color: #e55e34;
  background-color: #fce9e3;
  color: #e55e34;
}

.sectionCategoryHeading--g {
  border-left-color: #9722a8;
  background-color: #f3e8f6;
  color: #9722a8;
}

/*====================================================================
サステナビリティページ内 worksPageSec カード上書き
====================================================================*/
.sustainabilityPanel__block .worksPageSec__cardTitle {
  font-size: 2rem;
}
.sustainabilityPanel__block .worksPageSec__cardDesc {
  display: block;
  overflow: visible;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  -webkit-box-orient: unset;
  white-space: normal;
}
.sustainabilityPanel__block .worksPageSec__cardMedia {
  max-width: 340px;
  width: 100%;
  flex-shrink: 0;
}

/*====================================================================
.searchResultSec
====================================================================*/
.searchResultSec {
  padding: 80px 0 200px;
}
@media screen and (max-width: 768px) {
  .searchResultSec {
    padding: 40px 0 80px;
  }
}
.searchResultSec__inner {
  max-width: 1320px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .searchResultSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.searchResultSec__head {
  margin-bottom: 48px;
}
@media screen and (max-width: 768px) {
  .searchResultSec__head {
    margin-bottom: 32px;
  }
}
.searchResultSec__heading {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .searchResultSec__heading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.searchResultSec__heading {
  font-size: 20px;
  font-weight: bold;
  color: #333;
  letter-spacing: 0.05em;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px;
}
@media screen and (max-width: 768px) {
  .searchResultSec__heading {
    font-size: 17px;
  }
}
.searchResultSec__keyword {
  color: #002F7B;
  font-size: 20px;
}
.searchResultSec__count {
  font-size: 14px;
  font-weight: 400;
  color: #666666;
  letter-spacing: 0.05em;
}
.searchResultSec {
  /*--------------------------------------------------------
  Result list
  --------------------------------------------------------*/
}
.searchResultSec__list {
  list-style: none;
  padding: 8px 40px;
  margin: 0;
  background-color: #fff;
  border-radius: 16px;
}
@media screen and (max-width: 768px) {
  .searchResultSec__list {
    padding: 0 20px;
    border-radius: 0;
  }
}
.searchResultSec__item {
  border-bottom: 1px solid #E8E8E8;
}
.searchResultSec__item:last-child {
  border-bottom: none;
}
.searchResultSec__itemLink {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 28px 8px;
  text-decoration: none;
  color: #333;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .searchResultSec__itemLink:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 768px) {
  .searchResultSec__itemLink {
    padding: 20px 0;
  }
}
.searchResultSec__itemBody {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.searchResultSec__itemTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  padding: 4px 12px;
  background-color: #002F7B;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1;
  border-radius: 2px;
}
.searchResultSec__itemTitle {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .searchResultSec__itemTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.searchResultSec__itemTitle {
  font-size: 16px;
  font-weight: bold;
  color: #333;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .searchResultSec__itemTitle {
    font-size: 15px;
  }
}
.searchResultSec__itemText {
  font-size: 14px;
  color: #666666;
  letter-spacing: 0.04em;
  line-height: 1.75;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.searchResultSec__itemIcon {
  flex-shrink: 0;
  width: 22px;
  height: 12px;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14' fill='none'><path d='M1 7h17M12 1l6 6-6 6' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.searchResultSec {
  /*--------------------------------------------------------
  Pagination
  --------------------------------------------------------*/
}
.searchResultSec__pagination {
  margin-top: 60px;
}
@media screen and (max-width: 768px) {
  .searchResultSec__pagination {
    margin-top: 40px;
  }
}
.searchResultSec__pagination .nav-links,
.searchResultSec__pagination ul.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}
.searchResultSec__pagination ul.page-numbers > li {
  display: inline-flex;
}
.searchResultSec__pagination .page-numbers {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border-radius: 4px;
  background-color: #fff;
  font-size: 14px;
  line-height: 1;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .searchResultSec__pagination .page-numbers:hover {
    background-color: #002F7B;
    border-color: #002F7B;
    color: #fff;
  }
}
.searchResultSec__pagination .page-numbers.current {
  background-color: #002F7B;
  border-color: #002F7B;
  color: #fff;
  font-weight: bold;
  pointer-events: none;
}
.searchResultSec__pagination .page-numbers.dots {
  background: transparent;
  border-color: transparent;
  padding: 0 4px;
  pointer-events: none;
}
@media screen and (min-width: 769px) {
  .searchResultSec__pagination .page-numbers.dots:hover {
    background: transparent;
    border-color: transparent;
    color: #333;
  }
}
.searchResultSec__pagination .page-numbers.prev, .searchResultSec__pagination .page-numbers.next {
  background: transparent;
  border-color: transparent;
  color: #002F7B;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
  min-width: auto;
}
@media screen and (min-width: 769px) {
  .searchResultSec__pagination .page-numbers.prev:hover, .searchResultSec__pagination .page-numbers.next:hover {
    background: transparent;
    border-color: transparent;
    opacity: 0.7;
  }
}
.searchResultSec__pagination .page-numbers.prev {
  margin-right: 10px;
}
.searchResultSec__pagination .page-numbers.next {
  margin-left: 10px;
}
@media screen and (max-width: 768px) {
  .searchResultSec__pagination .page-numbers {
    min-width: 36px;
    height: 36px;
    font-size: 13px;
  }
  .searchResultSec__pagination .page-numbers.prev {
    margin-right: 0;
  }
  .searchResultSec__pagination .page-numbers.next {
    margin-left: 0;
  }
}
.searchResultSec {
  /*--------------------------------------------------------
  No results
  --------------------------------------------------------*/
}
.searchResultSec__noResult {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .searchResultSec__noResult {
    font-size: 14px;
    line-height: 1.8;
  }
}
.searchResultSec__noResult {
  font-size: 16px;
  color: #666666;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 80px 0;
}
@media screen and (max-width: 768px) {
  .searchResultSec__noResult {
    padding: 40px 0;
    font-size: 14px;
  }
}

/*====================================================================
pickupPageSec — ピックアップ工事 一覧
====================================================================*/
.pickupPageSec {
  background-color: #fff;
  padding: 80px 0 200px;
}
@media screen and (max-width: 768px) {
  .pickupPageSec {
    padding: 0 0 80px;
  }
}
.pickupPageSec__inner {
  max-width: 1320px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .pickupPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.pickupPageSec__inner {
  display: grid;
  grid-template-columns: 275px 1fr;
  column-gap: 68px;
  align-items: start;
}
@media screen and (max-width: 1100px) {
  .pickupPageSec__inner {
    grid-template-columns: 230px 1fr;
    column-gap: 32px;
  }
}
@media screen and (max-width: 768px) {
  .pickupPageSec__inner {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
  }
}
.pickupPageSec__sidebar {
  position: sticky;
  top: 110px;
  align-self: start;
}
@media screen and (max-width: 768px) {
  .pickupPageSec__sidebar {
    position: static;
    width: 100%;
  }
  .pickupPageSec__sidebar .worksPageSec__filterCat {
    margin: 0 20px;
  }
}
.pickupPageSec__content {
  min-width: 0;
  border-radius: 12px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .pickupPageSec__content {
    border-radius: 0;
  }
}
.pickupPageSec__content--archive {
  background: #fff;
  border-radius: 12px;
  overflow: visible;
  padding: 8px 0 40px;
}
@media screen and (max-width: 768px) {
  .pickupPageSec__content--archive {
    border-radius: 0;
    padding: 0 0 32px;
  }
}
.pickupPageSec__empty {
  max-width: 1320px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .pickupPageSec__empty {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.pickupPageSec__empty {
  padding: 80px 24px;
  text-align: center;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupPageSec__empty {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupPageSec__empty {
  color: #666666;
}

/*====================================================================
pickupNav — 左サイドバーナビゲーション
====================================================================*/
.pickupNav {
  background-color: #EDF3F7;
  border-radius: 12px;
  border: 1px solid #C8D5DE;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .pickupNav {
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
}
.pickupNav__group {
  border-bottom: 1px solid #C8D5DE;
}
.pickupNav__group:last-child {
  border-bottom: none;
}
.pickupNav__yearBtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 16px 20px;
  background: #fff;
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: #002F7B;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, sans-serif;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .pickupNav__yearBtn {
    font-size: 16px;
  }
}
@media screen and (min-width: 769px) {
  .pickupNav__yearBtn:hover:hover {
    background: #dde6f0;
  }
}
.pickupNav__yearLabel {
  flex: 1;
  font-size: 18px;
}
@media screen and (max-width: 768px) {
  .pickupNav__yearLabel {
    font-size: 16px;
  }
}
.pickupNav__yearArrow {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  position: relative;
}
.pickupNav__yearArrow::before, .pickupNav__yearArrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 1.5px;
  background: #002F7B;
  transition: transform 0.25s ease;
}
.pickupNav__yearArrow::before {
  transform: translate(-50%, -50%) rotate(0);
}
.pickupNav__yearArrow::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.is-open .pickupNav__yearArrow::after {
  transform: translate(-50%, -50%) rotate(0);
}
.pickupNav__list {
  background: #fff;
  padding: 8px 0 12px;
}
.pickupNav__list[hidden] {
  display: none;
}
.pickupNav__item {
  display: block;
}
.pickupNav__link {
  display: block;
  width: 100%;
  padding: 10px 20px 10px 30px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupNav__link {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupNav__link {
  color: #333;
  transition: 0.6s;
  position: relative;
}
.pickupNav__link::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #cccccc;
  transform: translateY(-50%);
  transition: background 0.2s;
}
@media screen and (min-width: 769px) {
  .pickupNav__link:hover:hover {
    background: #EDF3F7;
    color: #002F7B;
  }
  .pickupNav__link:hover:hover::before {
    background: #002F7B;
  }
}
.pickupNav__link.is-active {
  color: #002F7B;
  font-weight: bold;
  background: #EDF3F7;
}
.pickupNav__link.is-active::before {
  background: #002F7B;
  width: 7px;
  height: 7px;
  left: 17px;
}

/*====================================================================
pickupArticle — 工事記事パネル（一覧・詳細共通）
====================================================================*/
.pickupArticle.is-hidden {
  display: none;
}
.pickupArticle {
  /* ---- 年度見出し（sectionBlockTitle） ---- */
}
.pickupArticle__yearSection {
  padding: 40px 40px 0;
  border-top: none;
}
.pickupArticle__yearSection::before {
  display: none;
}
@media screen and (max-width: 768px) {
  .pickupArticle__yearSection {
    padding: 28px 20px 0;
  }
}
.pickupArticle__yearDesc {
  font-size: 14px;
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__yearDesc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__yearDesc {
  color: #666666;
  margin-top: 8px;
}
.pickupArticle {
  /* ---- 工事名ヘッダー ---- */
}
.pickupArticle__head {
  padding: 32px 40px 28px;
  border-bottom: 1px solid #C8D5DE;
}
@media screen and (max-width: 768px) {
  .pickupArticle__head {
    padding: 24px 20px 20px;
  }
}
.pickupArticle__headLeft {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pickupArticle__title {
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__title {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__title {
  font-weight: bold;
  color: #002F7B;
  padding-left: 16px;
  border-left: 4px solid #002F7B;
}
@media screen and (max-width: 768px) {
  .pickupArticle__title {
    font-size: 18px;
  }
}
.pickupArticle__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.pickupArticle__badge {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid #C8D5DE;
  border-radius: 4px;
  overflow: hidden;
}
.pickupArticle__badgeLabel {
  background: #002F7B;
  color: #fff;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.pickupArticle__badgeVal {
  padding: 6px 16px;
  color: #333;
  background: #fff;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__badgeVal {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__route {
  font-size: 14px;
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__route {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__route {
  color: #666666;
  margin-top: 4px;
}
.pickupArticle {
  /* ---- 本文（縦積みレイアウト） ---- */
}
.pickupArticle__body {
  display: flex;
  flex-direction: column;
}
.pickupArticle__body .pickupArticle__photo {
  order: 0;
}
.pickupArticle__body .pickupArticle__overview {
  order: 1;
}
.pickupArticle__body .pickupArticle__foreman {
  order: 2;
}
.pickupArticle {
  /* ---- 工事写真 ---- */
}
.pickupArticle__photo {
  width: 100%;
  padding: 32px 40px;
}
@media screen and (max-width: 768px) {
  .pickupArticle__photo {
    padding: 24px 20px;
  }
}
.pickupArticle__photoImg {
  width: 80%;
  display: block;
  margin: 0 auto;
  aspect-ratio: 16/9;
  object-fit: cover;
}
@media screen and (max-width: 768px) {
  .pickupArticle__photoImg {
    width: 100%;
  }
}
.pickupArticle {
  /* ---- 工事概要 ---- */
}
.pickupArticle__overview {
  padding: 40px 40px 36px;
}
@media screen and (max-width: 768px) {
  .pickupArticle__overview {
    padding: 28px 20px;
  }
}
.pickupArticle__overviewLabel {
  position: relative;
  padding-top: 20px;
  border-top: 1px solid #C8D5DE;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__overviewLabel {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__overviewLabel {
  font-weight: bold;
  color: #002F7B;
  letter-spacing: 0.05em;
  margin-bottom: 24px;
}
.pickupArticle__overviewLabel::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 40px;
  height: 3px;
  background-color: #002F7B;
}
@media screen and (max-width: 768px) {
  .pickupArticle__overviewLabel {
    font-size: 18px;
    padding-top: 16px;
    margin-bottom: 16px;
  }
}
.pickupArticle__table {
  width: 55%;
  border-collapse: collapse;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .pickupArticle__table {
    display: none;
  }
}
.pickupArticle__tableRow th,
.pickupArticle__tableRow td {
  padding: 12px 16px;
  border: 1px solid #C8D5DE;
  line-height: 1.6;
  vertical-align: middle;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__tableRow th,
  .pickupArticle__tableRow td {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__tableRow th {
  background: #EDF3F7;
  color: #002F7B;
  font-weight: bold;
  width: 65%;
  text-align: left;
}
.pickupArticle__tableRow td {
  color: #333;
  font-weight: 400;
  text-align: right;
}
.pickupArticle__tableTh {
  /* 個別セレクタは不要、上で th に統合 */
}
.pickupArticle__tableTd {
  text-align: right;
}
.pickupArticle__tableUnit {
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__tableUnit {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__tableUnit {
  color: #666666;
  white-space: nowrap;
  margin-left: 4px;
}
.pickupArticle__overviewText {
  font-size: 15px;
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__overviewText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__overviewText {
  color: #333;
  margin-bottom: 24px;
}
.pickupArticle {
  /* ---- 担当者（インタビュー形式・縦積み内横並び） ---- */
}
.pickupArticle__foreman {
  padding: 40px 40px 44px;
}
@media screen and (max-width: 768px) {
  .pickupArticle__foreman {
    padding: 28px 20px 32px;
  }
}
.pickupArticle__foremanHeading {
  position: relative;
  padding-top: 20px;
  border-top: 1px solid #C8D5DE;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__foremanHeading {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__foremanHeading {
  font-weight: bold;
  color: #002F7B;
  letter-spacing: 0.05em;
  margin-bottom: 28px;
}
.pickupArticle__foremanHeading::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 40px;
  height: 3px;
  background-color: #002F7B;
}
@media screen and (max-width: 768px) {
  .pickupArticle__foremanHeading {
    font-size: 18px;
    padding-top: 16px;
    margin-bottom: 20px;
  }
}
.pickupArticle__foremanInner {
  display: flex;
  align-items: flex-start;
  gap: 32px;
}
@media screen and (max-width: 768px) {
  .pickupArticle__foremanInner {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
}
.pickupArticle__foremanPhotoWrap {
  flex-shrink: 0;
  max-width: 150px;
  aspect-ratio: 150/200;
}
@media screen and (max-width: 768px) {
  .pickupArticle__foremanPhotoWrap {
    width: 120px;
  }
}
.pickupArticle__foremanPhoto {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}
.pickupArticle__foremanTextBlock {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pickupArticle__foremanName {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.pickupArticle__foremanRole {
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__foremanRole {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__foremanRole {
  color: #666666;
  display: inline-block;
}
.pickupArticle__foremanNameText {
  font-size: 18px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__foremanNameText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__foremanNameText {
  font-weight: bold;
  color: #333;
  display: inline-block;
}
@media screen and (max-width: 768px) {
  .pickupArticle__foremanNameText {
    font-size: 16px;
  }
}
.pickupArticle__foremanComment {
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupArticle__foremanComment {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupArticle__foremanComment {
  color: #333;
}

/*====================================================================
pickupSingleSec — ピックアップ工事 詳細ページ
====================================================================*/
.pickupSingleSec {
  background-color: #fff;
  padding: 80px 0 160px;
}
@media screen and (max-width: 768px) {
  .pickupSingleSec {
    padding: 40px 0 80px;
  }
}
.pickupSingleSec__inner {
  max-width: 1160px;
  width: calc(100% - 40px);
  margin: 0 auto;
}
.pickupSingleSec .pickupArticle {
  border-radius: 12px;
  overflow: hidden;
}
.pickupSingleSec .singlePagination {
  padding: 80px 0 0;
}
@media screen and (max-width: 768px) {
  .pickupSingleSec .singlePagination {
    padding: 48px 0 0;
  }
}
.pickupSingleSec__back {
  margin-top: 48px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .pickupSingleSec__back {
    margin-top: 32px;
  }
}
.pickupSingleSec__backLink {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .pickupSingleSec__backLink {
    font-size: 14px;
    line-height: 1.8;
  }
}
.pickupSingleSec__backLink {
  color: #002F7B;
  text-decoration: none;
  padding: 12px 28px;
  border: 1.5px solid #002F7B;
  border-radius: 4px;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .pickupSingleSec__backLink:hover:hover {
    background: #002F7B;
    color: #fff;
  }
}
.pickupSingleSec__backArrow {
  flex-shrink: 0;
}

/*====================================================================
pickupArchive — アーカイブ一覧
====================================================================*/
.pickupArchive__yearGroup {
  display: none;
  padding: 0 0 40px;
}
.pickupArchive__yearGroup.is-active {
  display: block;
}
.pickupArchive__yearGroup .sectionBlockTitle {
  padding: 40px 40px 0;
  border-top: none;
}
.pickupArchive__yearGroup .sectionBlockTitle::before {
  display: none;
}
@media screen and (max-width: 768px) {
  .pickupArchive__yearGroup .sectionBlockTitle {
    padding: 28px 20px 0;
  }
}
.pickupArchive__list {
  padding: 24px 40px 0;
}
@media screen and (max-width: 768px) {
  .pickupArchive__list {
    padding: 16px 20px 0;
  }
}
.pickupArchive__card {
  text-decoration: none;
  color: #333;
  cursor: pointer;
  position: relative;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .pickupArchive__card:hover .worksPageSec__cardTitle {
    color: #002F7B;
  }
  .pickupArchive__card:hover .pickupArchive__cardArrow {
    background-color: #5FA6EB;
    transform: translateX(4px);
  }
  .pickupArchive__card:hover .worksPageSec__cardMainImg {
    transform: scale(1.05);
  }
}
.pickupArchive__card .worksPageSec__cardMain {
  overflow: hidden;
}
.pickupArchive__card .worksPageSec__cardMainImg {
  transition: 0.6s;
  transition-duration: 0.5s;
}
.pickupArchive__cardTags {
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.pickupArchive__cardArrow {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #002F7B;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.6s;
}
.pickupArchive__cardArrow svg {
  width: 14px;
  height: 14px;
}

@keyframes rfFadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes rfStripRise {
  0% {
    transform: translateY(108%);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes rfStripDrift1 {
  0%, 100% {
    transform: translateY(0) scale(1.06);
  }
  50% {
    transform: translateY(-18px) scale(1.08);
  }
}
@keyframes rfStripDrift2 {
  0%, 100% {
    transform: translateY(-10px) scale(1.07);
  }
  50% {
    transform: translateY(12px) scale(1.05);
  }
}
@keyframes rfStripDrift3 {
  0%, 100% {
    transform: translateY(6px) scale(1.06);
  }
  50% {
    transform: translateY(-14px) scale(1.09);
  }
}
@keyframes rfCharIn {
  from {
    opacity: 0;
    transform: translateY(0.6em) skewY(4deg);
  }
  to {
    opacity: 1;
    transform: translateY(0) skewY(0deg);
  }
}
@keyframes rfScrollLine {
  0% {
    transform: scaleY(0) translateY(0);
    transform-origin: top;
    opacity: 1;
  }
  60% {
    transform: scaleY(1) translateY(0);
    transform-origin: top;
    opacity: 1;
  }
  100% {
    transform: scaleY(1) translateY(0);
    transform-origin: top;
    opacity: 0;
  }
}
@keyframes rfMarquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-33.333%);
  }
}
@keyframes rfGridDrift {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(48px, 48px);
  }
}
@keyframes rfPhotoFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes rfPhotoFloat1 {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes rfPhotoFloat2 {
  0%, 100% {
    transform: translateY(-5px);
  }
  50% {
    transform: translateY(8px);
  }
}
@keyframes rfPhotoFloat3 {
  0%, 100% {
    transform: translateY(4px);
  }
  50% {
    transform: translateY(-12px);
  }
}
@keyframes rfBgLabelPulse {
  0%, 100% {
    opacity: 0.025;
  }
  50% {
    opacity: 0.04;
  }
}
.js-rfInview {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1), transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
.js-rfInview.is-inview {
  opacity: 1;
  transform: translateY(0);
}

.js-rfFacilityItem {
  opacity: 0;
  transform: translateY(80px) scale(0.97);
  transition: opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1), transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}
.js-rfFacilityItem.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.js-rfFacilityImg {
  overflow: hidden;
  clip-path: inset(0 0 100% 0);
  transition: clip-path 0.9s cubic-bezier(0.76, 0, 0.24, 1);
}
.js-rfFacilityItem.is-visible .js-rfFacilityImg {
  clip-path: inset(0 0 0% 0);
}
.js-rfFacilityImg img {
  transform: scale(1.08);
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.js-rfFacilityItem.is-visible .js-rfFacilityImg img {
  transform: scale(1);
}

.js-rfFacilityBody {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.5s, transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}
.js-rfFacilityItem.is-visible .js-rfFacilityBody {
  opacity: 1;
  transform: translateY(0);
}

.js-rfBentoItem {
  opacity: 0;
  transform: translateY(80px) scale(0.96);
  transition: opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1), transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}
.js-rfBentoItem.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.js-rfBentoImg {
  overflow: hidden;
  clip-path: inset(0 0 100% 0);
  transition: clip-path 0.9s cubic-bezier(0.76, 0, 0.24, 1);
}
.js-rfBentoItem.is-visible .js-rfBentoImg {
  clip-path: inset(0 0 0% 0);
}
.js-rfBentoImg img {
  transform: scale(1.08);
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.js-rfBentoItem.is-visible .js-rfBentoImg img {
  transform: scale(1);
}

.js-rfBentoBody {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.45s, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.45s;
}
.js-rfBentoItem.is-visible .js-rfBentoBody {
  opacity: 1;
  transform: translateY(0);
}

.rfHeroSec {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0;
  overflow: hidden;
  background-color: #010e20;
  height: 800px;
  max-height: 90vh;
}
@media screen and (max-width: 768px) {
  .rfHeroSec {
    justify-content: flex-start;
    height: 86vh;
    height: 86svh;
    max-height: none;
  }
}
.rfHeroSec__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
@media screen and (max-width: 768px) {
  .rfHeroSec__bg {
    overflow: hidden;
  }
}
.rfHeroSec__videoGrid {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
}
@media screen and (max-width: 768px) {
  .rfHeroSec__videoGrid {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
  }
}
.rfHeroSec__videoCol {
  overflow: hidden;
  position: relative;
  transform: translateZ(0);
  will-change: transform;
}
.rfHeroSec__videoEl {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transform: translateZ(0);
  will-change: opacity;
  animation: rfPhotoFadeIn 1.2s ease 0.3s forwards;
}
@media (prefers-reduced-motion: reduce) {
  .rfHeroSec__videoEl {
    animation: none;
    opacity: 1;
  }
}
.rfHeroSec__bgGrid {
  position: absolute;
  inset: -48px;
  background-image: linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 48px 48px;
  animation: rfGridDrift 28s linear infinite;
  will-change: transform;
}
.rfHeroSec__bgGrad {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(1, 14, 32, 0.82) 0%, rgba(1, 14, 32, 0.55) 38%, rgba(1, 14, 32, 0.15) 65%, transparent 85%), linear-gradient(to top, rgba(1, 14, 32, 0.6) 0%, transparent 40%), linear-gradient(to bottom, rgba(1, 14, 32, 0.3) 0%, transparent 20%);
}
@media screen and (max-width: 768px) {
  .rfHeroSec__bgGrad {
    background: rgba(1, 14, 32, 0.55);
  }
}
.rfHeroSec__bgLabel {
  position: absolute;
  bottom: -0.18em;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: clamp(42px, 5.5vw, 84px);
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  opacity: 0.06;
  line-height: 1;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  user-select: none;
  pointer-events: none;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .rfHeroSec__bgLabel {
    display: none;
  }
}
.rfHeroSec__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 40px;
  padding-left: 140px;
  padding-top: 140px;
  padding-bottom: 80px;
  align-items: center;
}
@media screen and (max-width: 1000px) {
  .rfHeroSec__inner {
    grid-template-columns: 1fr;
    padding-top: 100px;
  }
}
@media screen and (max-width: 768px) {
  .rfHeroSec__inner {
    padding: 80px 20px 30px;
    gap: 24px;
  }
}
.rfHeroSec__textCol {
  max-width: 640px;
}
.rfHeroSec__overline {
  font-size: clamp(9px, 0.95vw, 20px);
  font-weight: 600;
  letter-spacing: 0.22em;
  color: rgba(255, 255, 255, 0.4);
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 28px;
  text-transform: uppercase;
}
@media screen and (max-width: 768px) {
  .rfHeroSec__overline {
    font-size: 9px;
    margin-bottom: 16px;
  }
}
.rfHeroSec__overline, .rfHeroSec__lead, .rfHeroSec__btns {
  opacity: 0;
  animation: rfFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.rfHeroSec__overline {
  animation-delay: 0.7s;
}
.rfHeroSec__lead {
  animation-delay: 1.2s;
}
.rfHeroSec__btns {
  animation-delay: 1.45s;
}
.rfHeroSec__title {
  font-size: clamp(44px, 6.5vw, 82px);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #fff;
  margin-bottom: 32px;
  overflow: hidden;
  visibility: hidden;
}
@media screen and (max-width: 768px) {
  .rfHeroSec__title {
    font-size: clamp(38px, 10vw, 52px);
    margin-bottom: 20px;
  }
}
.rfHeroSec .rfChar {
  display: inline-block;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  opacity: 0;
  animation: rfCharIn 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.rfHeroSec__lead {
  font-size: 18px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfHeroSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfHeroSec__lead {
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .rfHeroSec__lead {
    font-size: 13px;
    margin-bottom: 32px;
  }
  .rfHeroSec__lead br {
    display: none;
  }
}
.rfHeroSec__btns {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.rfHeroSec__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 28px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 999px;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .rfHeroSec__btn {
    padding: 11px 22px;
    font-size: 12px;
  }
}
.rfHeroSec__btn--outline {
  border: 1px solid rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.85);
}
@media screen and (min-width: 769px) {
  .rfHeroSec__btn--outline:hover:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: #fff;
    color: #fff;
  }
}
.rfHeroSec__btn--fill {
  background: #fff;
  color: #002F7B;
  border: 1px solid #fff;
  font-weight: 800;
}
@media screen and (min-width: 769px) {
  .rfHeroSec__btn--fill:hover:hover {
    background: rgba(255, 255, 255, 0.88);
  }
}
.rfHeroSec__scroll {
  position: absolute;
  bottom: 16%;
  left: 4%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  z-index: 2;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .rfHeroSec__scroll {
    display: none;
  }
}
.rfHeroSec__scrollLine {
  display: block;
  width: 1px;
  height: 80px;
  background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.5));
  animation: rfScrollLine 2.4s ease-in-out 2.5s infinite both;
}
.rfHeroSec__scrollText {
  font-size: 9px;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.3);
  font-family: "Manrope", "Helvetica Neue", sans-serif;
}

.rfTriangle {
  position: relative;
  width: 100%;
  aspect-ratio: 900/500;
  margin-bottom: 56px;
}
@media screen and (max-width: 768px) {
  .rfTriangle {
    aspect-ratio: 3/4;
    margin-bottom: 40px;
  }
}
.rfTriangle__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}
.rfTriangle__center {
  position: absolute;
  top: 46%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  z-index: 2;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(6px);
  border: 1.5px solid rgba(0, 47, 123, 0.12);
  border-radius: 12px;
  padding: 16px 24px;
  box-shadow: 0 4px 24px rgba(0, 47, 123, 0.08);
}
.rfTriangle__centerEn {
  font-size: clamp(14px, 1.8vw, 24px);
  font-weight: 900;
  color: #002F7B;
  letter-spacing: 0.04em;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  line-height: 1.2;
}
.rfTriangle__centerJp {
  font-size: clamp(10px, 1.1vw, 13px);
  color: rgba(0, 47, 123, 0.6);
  line-height: 1.6;
  margin-top: 6px;
}
.rfTriangle__node {
  position: absolute;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(110px, 17vw, 190px);
  transform: translateX(-50%);
}
.rfTriangle__node--tl {
  top: 4%;
  left: 23%;
}
@media screen and (max-width: 768px) {
  .rfTriangle__node--tl {
    top: 2%;
    left: 15%;
  }
}
.rfTriangle__node--tr {
  top: 4%;
  left: 77%;
}
@media screen and (max-width: 768px) {
  .rfTriangle__node--tr {
    top: 2%;
    left: 85%;
  }
}
.rfTriangle__node--bc {
  top: 72%;
  left: 50%;
}
@media screen and (max-width: 768px) {
  .rfTriangle__node--bc {
    top: 65%;
  }
}
.rfTriangle__nodeCard {
  background: #fff;
  border: 2px solid #002F7B;
  border-radius: 8px;
  padding: 12px 16px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0, 47, 123, 0.14);
  width: 100%;
}
.rfTriangle__nodeName {
  font-size: clamp(10px, 1.2vw, 13px);
  font-weight: 800;
  color: #002F7B;
  line-height: 1.45;
  letter-spacing: 0.02em;
}
.rfTriangle__nodeRole {
  font-size: clamp(9px, 1vw, 11px);
  color: #00AB84;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-top: 4px;
}

.rfTriangle__line {
  transition: opacity 0.4s;
}

.rfTriangle:hover .rfTriangle__line {
  opacity: 1 !important;
}

.rfConceptSec {
  position: relative;
  background-color: #fff;
  padding: 120px 0 0;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .rfConceptSec {
    padding: 72px 0 0;
  }
}
.rfConceptSec__inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .rfConceptSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfConceptSec__header {
  text-align: center;
  margin-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .rfConceptSec__header {
    margin-bottom: 48px;
  }
}
.rfConceptSec__headerLeft {
  max-width: 720px;
  margin: 0 auto;
}
.rfConceptSec__enLabel {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #00AB84;
  text-transform: uppercase;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 16px;
}
.rfConceptSec__title {
  font-size: clamp(24px, 3vw, 38px);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #002F7B;
}
.rfConceptSec__titleEn {
  display: inline-block;
  font-size: clamp(16px, 1.8vw, 22px);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(0, 47, 123, 0.55);
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
}
.rfConceptSec__lead {
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfConceptSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfConceptSec__lead {
  margin-top: 16px;
  color: #666666;
}
.rfConceptSec__flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  align-items: stretch;
  margin-bottom: 56px;
}
@media screen and (max-width: 768px) {
  .rfConceptSec__flow {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.rfConceptSec__flowStep {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.rfConceptSec__flowStep.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.rfConceptSec__flowStepNum {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: rgba(0, 144, 200, 0.7);
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 12px;
}
.rfConceptSec__flowStepCard {
  border: 1.5px solid rgba(0, 47, 123, 0.15);
  border-radius: 8px;
  padding: 24px 20px;
  background: #fff;
  box-shadow: 0 2px 16px rgba(0, 47, 123, 0.05);
  height: 100%;
}
@media screen and (max-width: 768px) {
  .rfConceptSec__flowStepCard {
    padding: 20px 16px;
  }
}
.rfConceptSec__flowStepName {
  font-size: clamp(15px, 1.5vw, 18px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.03em;
  margin-bottom: 8px;
}
.rfConceptSec__flowStepRole {
  font-size: 12px;
  color: #00AB84;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.rfConceptSec__flowStepPref {
  font-size: 12px;
  color: #666666;
  letter-spacing: 0.04em;
}
.rfConceptSec__centerBar {
  display: flex;
  align-items: center;
  gap: 20px;
}
.rfConceptSec__centerBarLine {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(0, 47, 123, 0.2));
}
.rfConceptSec__centerBarLine:last-child {
  background: linear-gradient(to left, transparent, rgba(0, 47, 123, 0.2));
}
.rfConceptSec__centerBarText {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: rgba(0, 47, 123, 0.4);
  white-space: nowrap;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
}
@media screen and (max-width: 768px) {
  .rfConceptSec__centerBarText {
    font-size: 10px;
    letter-spacing: 0.08em;
    white-space: normal;
    text-align: center;
  }
}
.rfConceptSec__tripleDynamics {
  margin: 0 auto 72px;
  max-width: 720px;
}
@media screen and (max-width: 768px) {
  .rfConceptSec__tripleDynamics {
    margin-bottom: 48px;
  }
}
.rfConceptSec__tripleDynamicsImg {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}
.rfConceptSec__flowStepBullets {
  list-style: none;
  padding: 0;
  margin-top: 10px;
}
.rfConceptSec__flowStepBullets li {
  font-size: 12px;
  color: #666666;
  line-height: 1.65;
  padding-left: 12px;
  position: relative;
}
.rfConceptSec__flowStepBullets li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #00AB84;
}
.rfConceptSec__goals {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 36px;
  flex-wrap: wrap;
}
.rfConceptSec__goal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 24px;
  border: 1.5px solid rgba(0, 47, 123, 0.15);
  border-radius: 8px;
  background: #fff;
  min-width: 110px;
  box-shadow: 0 2px 12px rgba(0, 47, 123, 0.05);
}
.rfConceptSec__goalAbbr {
  font-size: 22px;
  font-weight: 900;
  color: #002F7B;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  letter-spacing: 0.04em;
  line-height: 1;
}
.rfConceptSec__goalName {
  font-size: 11px;
  color: #666666;
  text-align: center;
  line-height: 1.5;
}
.rfConceptSec__goalLead {
  text-align: center;
  margin-top: 28px;
}
.rfConceptSec__goalLeadText {
  font-size: clamp(14px, 1.8vw, 18px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
.rfConceptSec__goalLeadSub {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: #666666;
  margin-top: 4px;
  letter-spacing: 0.06em;
}

.rfVideoModal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.rfVideoModal.is-open {
  opacity: 1;
  pointer-events: auto;
}
.rfVideoModal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.88);
  cursor: pointer;
}
.rfVideoModal__box {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: 900px;
}
.rfVideoModal__close {
  position: absolute;
  top: -48px;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  transition: 0.6s;
}
.rfVideoModal__close:hover {
  background: rgba(255, 255, 255, 0.3);
}
.rfVideoModal__video {
  width: 100%;
  display: block;
  border-radius: 8px;
}

.rfNewsSec {
  background-color: #F4F7FA;
  padding: 100px 0;
}
@media screen and (max-width: 768px) {
  .rfNewsSec {
    padding: 64px 0;
  }
}
.rfNewsSec__inner {
  max-width: 1160px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .rfNewsSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfNewsSec__header {
  margin-bottom: 44px;
}
@media screen and (max-width: 768px) {
  .rfNewsSec__header {
    margin-bottom: 28px;
  }
}
.rfNewsSec__enLabel {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #00AB84;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 8px;
}
.rfNewsSec__title {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.02em;
}
.rfNewsSec__list {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  border-top: 1px solid rgba(0, 47, 123, 0.12);
}
.rfNewsSec__item {
  border-bottom: 1px solid rgba(0, 47, 123, 0.08);
}
.rfNewsSec__link {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 20px 4px;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .rfNewsSec__link:hover:hover {
    background: rgba(0, 47, 123, 0.03);
  }
  .rfNewsSec__link:hover:hover .rfNewsSec__arrow {
    width: 32px;
  }
}
@media screen and (max-width: 768px) {
  .rfNewsSec__link {
    grid-template-columns: auto 1fr auto;
    gap: 8px 12px;
    padding: 16px 4px;
  }
  .rfNewsSec__link .rfNewsSec__cat {
    grid-column: 1/-1;
    order: -1;
  }
}
.rfNewsSec__date {
  font-size: 13px;
  color: #666666;
  letter-spacing: 0.06em;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  white-space: nowrap;
}
.rfNewsSec__cat {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  padding: 3px 12px;
  border: 1px solid rgba(0, 144, 200, 0.5);
  border-radius: 999px;
  font-size: 11px;
  color: #0070a0;
  font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.rfNewsSec__newsTitle {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfNewsSec__newsTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfNewsSec__newsTitle {
  color: #002F7B;
}
.rfNewsSec__arrow {
  display: block;
  width: 20px;
  height: 1px;
  background: rgba(0, 47, 123, 0.3);
  position: relative;
  flex-shrink: 0;
  transition: 0.6s;
}
.rfNewsSec__arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1px solid rgba(0, 47, 123, 0.4);
  border-right: 1px solid rgba(0, 47, 123, 0.4);
  transform: translateY(-50%) rotate(45deg);
}
.rfNewsSec__more {
  display: flex;
  justify-content: flex-end;
}
@media screen and (max-width: 768px) {
  .rfNewsSec__more {
    justify-content: center;
  }
}
.rfNewsSec__moreBtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 280px;
  padding: 10px 10px 10px 20px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  background-color: #002F7B;
  text-decoration: none;
  isolation: isolate;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .rfNewsSec__moreBtn:hover:hover .rfNewsSec__moreBtnIcon::before {
    left: 150%;
  }
  .rfNewsSec__moreBtn:hover:hover .rfNewsSec__moreBtnIcon::after {
    left: 50%;
  }
}
.rfNewsSec__moreBtn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
@media screen and (max-width: 768px) {
  .rfNewsSec__moreBtn {
    width: 240px;
  }
}
.rfNewsSec__moreBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfNewsSec__moreBtnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfNewsSec__moreBtnText {
  font-size: 16px;
  color: #fff;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .rfNewsSec__moreBtnText {
    font-size: 15px;
  }
}
.rfNewsSec__moreBtnIcon {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #fff;
  flex-shrink: 0;
  z-index: 1;
}
.rfNewsSec__moreBtnIcon::before, .rfNewsSec__moreBtnIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-image: url("../images/common/arr-icon.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.rfNewsSec__moreBtnIcon::after {
  left: -50%;
}

.rfRdSec {
  background-color: #fff;
  padding: 100px 0 80px;
}
@media screen and (max-width: 768px) {
  .rfRdSec {
    padding: 64px 0 20px;
  }
}
.rfRdSec__inner {
  max-width: 1160px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .rfRdSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfRdSec__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .rfRdSec__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 10px;
  }
}
.rfRdSec__headerTop {
  flex-shrink: 0;
}
.rfRdSec__headerTop > * {
  position: relative;
  z-index: 1;
}
.rfRdSec__enLabel {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #00AB84;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 12px;
}
.rfRdSec__title {
  font-size: clamp(28px, 3.5vw, 40px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.02em;
}
.rfRdSec__marquee {
  overflow: hidden;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .rfRdSec__marquee {
    margin-bottom: 16px;
  }
}
.rfRdSec__marqueeInner {
  display: flex;
  white-space: nowrap;
  width: max-content;
  animation: rfRdMarquee 140s linear infinite;
}
.rfRdSec__marqueeInner span {
  display: inline-block;
  font-size: clamp(38px, 10vw, 100px);
  font-weight: 700;
  letter-spacing: -3px;
  color: rgba(219, 237, 255, 0.6);
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  padding-right: 80px;
  flex-shrink: 0;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .rfRdSec__marqueeInner span {
    font-size: clamp(28px, 10vw, 60px);
    padding-right: 48px;
    letter-spacing: -1px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .rfRdSec__marqueeInner {
    animation-play-state: paused;
  }
}
@keyframes rfRdMarquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.rfRdSec__lead {
  margin-top: 16px;
  text-align: left;
  font-size: clamp(13px, 1.3vw, 16px);
  line-height: 1.8;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfRdSec__lead {
    margin-top: 10px;
  }
}
.rfRdSec__bento {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;
  margin-bottom: 48px;
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .rfRdSec__bento {
    grid-template-columns: 1fr;
    margin-top: 0;
  }
}
.rfRdSec__bentoItem--1, .rfRdSec__bentoItem--2 {
  grid-column: auto;
  grid-row: auto;
}
.rfRdSec__bentoItem {
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.rfRdSec__bentoImg {
  flex-shrink: 0;
  aspect-ratio: 10/7;
  overflow: hidden;
}
.rfRdSec__bentoImg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.rfRdSec__bentoNoimg {
  flex-shrink: 0;
  aspect-ratio: 16/7;
  background: linear-gradient(135deg, #EDF3F7 0%, #E0EAF4 100%);
}
.rfRdSec__bentoBody {
  padding: 24px 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@media screen and (max-width: 768px) {
  .rfRdSec__bentoBody {
    padding: 16px 0;
  }
}
.rfRdSec__bentoMeta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.rfRdSec__bentoCat {
  display: inline-flex;
  align-items: center;
  padding: 3px 12px;
  background: rgba(0, 47, 123, 0.06);
  border-radius: 999px;
  font-size: 11px;
  color: #002F7B;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.rfRdSec__bentoStatus {
  display: inline-flex;
  align-items: center;
  padding: 3px 12px;
  background: rgba(0, 144, 200, 0.08);
  border-radius: 999px;
  font-size: 11px;
  color: #006090;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.rfRdSec__bentoTitle {
  font-size: clamp(14px, 2vw, 20px);
  font-weight: 800;
  color: #002F7B;
  line-height: 1.4;
  letter-spacing: 0.02em;
  position: relative;
  padding-left: 14px;
}
.rfRdSec__bentoTitle::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.1em;
  bottom: 0.1em;
  width: 3px;
  background: #00AB84;
  border-radius: 2px;
}
.rfRdSec__bentoDivider {
  border: none;
  border-top: 1px solid rgba(0, 47, 123, 0.15);
  margin: 4px 0;
}
.rfRdSec__bentoDesc {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfRdSec__bentoDesc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfRdSec__bentoDesc {
  line-height: 1.7;
  color: #666666;
  flex: 1;
}
.rfRdSec__bentoLink {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #002F7B;
  text-decoration: underline;
  text-underline-offset: 3px;
  word-break: break-all;
  transition: 0.6s;
}
.rfRdSec__bentoLink svg {
  flex-shrink: 0;
  opacity: 0.7;
}
@media screen and (min-width: 769px) {
  .rfRdSec__bentoLink:hover:hover {
    color: #00AB84;
    text-decoration-color: #00AB84;
  }
}
.rfRdSec__more {
  text-align: center;
}
.rfRdSec__moreBtn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 16px 12px 32px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none;
  background: #002F7B;
  color: #fff;
  border: 1px solid transparent;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .rfRdSec__moreBtn:hover:hover {
    background: #001f5c;
  }
  .rfRdSec__moreBtn:hover:hover .rfRdSec__moreBtnIconSvg:first-child {
    left: 150%;
  }
  .rfRdSec__moreBtn:hover:hover .rfRdSec__moreBtnIconSvg:nth-child(2) {
    left: 50%;
  }
}
.rfRdSec__moreBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.rfRdSec__moreBtnIcon {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  flex-shrink: 0;
  margin-left: 8px;
  transition: 0.6s;
}
.rfRdSec__moreBtnIconSvg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  color: #fff;
}
.rfRdSec__moreBtnIconSvg:nth-child(2) {
  left: -50%;
}

.rfPublicationSec {
  background-color: #F4F7FA;
  padding: 100px 0 120px;
}
@media screen and (max-width: 768px) {
  .rfPublicationSec {
    padding: 64px 0 80px;
  }
}
.rfPublicationSec__inner {
  max-width: 960px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .rfPublicationSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfPublicationSec__header {
  margin-bottom: 60px;
}
.rfPublicationSec__enLabel {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #00AB84;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 12px;
}
.rfPublicationSec__title {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.02em;
}
.rfPublicationSec__catBlock {
  margin-bottom: 40px;
}
.rfPublicationSec__catBlock:last-child {
  margin-bottom: 0;
}
.rfPublicationSec__catTitle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  font-size: clamp(15px, 1.6vw, 18px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.02em;
  padding: 14px 20px;
  border: none;
  border-left: 4px solid #002F7B;
  background: rgba(0, 47, 123, 0.04);
  text-align: left;
  cursor: pointer;
  transition: 0.6s;
}
@media screen and (max-width: 768px) {
  .rfPublicationSec__catTitle {
    font-size: 15px;
    padding: 12px 16px;
  }
}
@media screen and (min-width: 769px) {
  .rfPublicationSec__catTitle:hover {
    background: rgba(0, 47, 123, 0.08);
  }
}
.rfPublicationSec__catArrow {
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'><path d='M5 7.5l5 5 5-5' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'><path d='M5 7.5l5 5 5-5' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  transition: transform 0.3s ease;
}
.rfPublicationSec__catTitle[aria-expanded=true] .rfPublicationSec__catArrow {
  transform: rotate(180deg);
}
.rfPublicationSec__catBody {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.rfPublicationSec__catBody > .rfPublicationSec__group:first-child {
  margin-top: 40px;
}
.rfPublicationSec__catBody > .rfPublicationSec__group:last-child {
  margin-bottom: 40px;
}
.rfPublicationSec__group {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 0 48px;
}
@media screen and (max-width: 768px) {
  .rfPublicationSec__group {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.rfPublicationSec__yearCol {
  padding-top: 4px;
  align-self: start;
}
.rfPublicationSec__year {
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 800;
  color: #002F7B;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  letter-spacing: -0.01em;
  line-height: 1.2;
  position: sticky;
  top: 100px;
}
@media screen and (max-width: 768px) {
  .rfPublicationSec__year {
    position: static;
    font-size: 18px;
  }
}
.rfPublicationSec__list {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 700px;
  border-top: 1px solid rgba(0, 47, 123, 0.1);
}
.rfPublicationSec__item {
  padding: 20px 0;
  border-bottom: 1px solid rgba(0, 47, 123, 0.07);
  margin: 0 -12px;
  padding-left: 12px;
  padding-right: 12px;
  border-radius: 6px;
}
@media screen and (min-width: 769px) {
  .rfPublicationSec__item:hover {
    transition: background-color 0.25s ease;
  }
  .rfPublicationSec__item:hover:hover {
    background-color: rgba(0, 47, 123, 0.04);
  }
}
.rfPublicationSec__itemLink {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  width: 100%;
  text-decoration: none;
  color: inherit;
}
@media screen and (max-width: 768px) {
  .rfPublicationSec__itemLink {
    flex-direction: column;
    gap: 10px;
  }
}
.rfPublicationSec__paperTitle {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfPublicationSec__paperTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfPublicationSec__paperTitle {
  color: #002F7B;
  flex: 1;
}
@media screen and (min-width: 769px) {
  .rfPublicationSec__paperTitle:hover {
    transition: color 0.25s ease;
  }
  .rfPublicationSec__item:hover .rfPublicationSec__paperTitle:hover {
    color: #00AB84;
  }
}
.rfPublicationSec__pdfBtn {
  width: fit-content;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  padding: 3px 6px;
  border: 1px solid #002F7B;
  border-radius: 2px;
  font-size: 12px;
  font-weight: 700;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
  margin-top: 5px;
}
@media screen and (min-width: 769px) {
  .rfPublicationSec__item:hover .rfPublicationSec__pdfBtn:hover {
    background-color: #00AB84;
    border-color: #00AB84;
    color: #fff;
  }
}
.rfPublicationSec__pdfBtn--na {
  opacity: 0.3;
  pointer-events: none;
}

.rfSubPage {
  --rf-key: #0E1F33;
}
.rfSubPage[data-facility=konosu] {
  --rf-key: #C9862B;
}
.rfSubPage[data-facility=satte] {
  --rf-key: #009EB8;
}
.rfSubPage[data-facility=tamura] {
  --rf-key: #3E7C4F;
}

.rfSubBread {
  padding: 14px 0;
  background: #0E1F33;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.rfSubBread__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .rfSubBread__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfSubBread__inner {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}
.rfSubBread__link {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .rfSubBread__link:hover:hover {
    color: #fff;
  }
}
.rfSubBread__sep {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.25);
}
.rfSubBread__current {
  font-size: 12px;
  color: #fff;
  font-weight: 700;
}

.rfSubHero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 560px;
  overflow: hidden;
  background: #0E1F33;
}
@media screen and (max-width: 768px) {
  .rfSubHero {
    min-height: 400px;
  }
}
.rfSubHero__imgWrap {
  position: absolute;
  inset: 0;
}
.rfSubHero__imgWrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(14, 31, 51, 0.1) 0%, rgba(14, 31, 51, 0.38) 58%, rgba(14, 31, 51, 0.94) 100%);
}
.rfSubHero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.rfSubHero__body {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .rfSubHero__body {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfSubHero__body {
  padding-top: 64px;
  padding-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .rfSubHero__body {
    padding-top: 40px;
    padding-bottom: 36px;
  }
}
.rfSubHero__en {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.rfSubHero__en::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 18px;
  margin-right: 10px;
  vertical-align: -3px;
  background: var(--rf-key, #0E1F33);
  border-radius: 1px 1px 5px 5px;
}
.rfSubHero__en {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  margin-bottom: 18px;
}
.rfSubHero__jp {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(30px, 4.6vw, 56px);
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.03em;
  line-height: 1.3;
  margin-bottom: 24px;
  max-width: 720px;
}
.rfSubHero__lead {
  font-size: 15px;
  line-height: 1.95;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfSubHero__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfSubHero__lead {
  color: rgba(255, 255, 255, 0.72);
  max-width: 560px;
}
.rfSubHero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 24px;
}
.rfSubHero__tag {
  display: inline-block;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.3);
  padding: 5px 14px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 2px;
  letter-spacing: 0.04em;
  text-decoration: none;
}
.rfSubHero__tag--key {
  color: #0E1F33;
  border-color: var(--rf-key);
  background: var(--rf-key);
  font-weight: 700;
}
.rfSubHero__tag--link {
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .rfSubHero__tag--link:hover:hover {
    background: var(--rf-key);
    border-color: var(--rf-key);
    color: #0E1F33;
  }
}

.rfStatement {
  background: #0E1F33;
  padding: 88px 0 100px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .rfStatement {
    padding: 52px 0 60px;
  }
}
.rfStatement__line {
  width: 64px;
  height: 3px;
  background-image: repeating-linear-gradient(to right, var(--rf-key, #0E1F33) 0, var(--rf-key, #0E1F33) 14px, transparent 14px, transparent 24px);
  margin: 0 auto 32px;
}
@media screen and (max-width: 768px) {
  .rfStatement__line {
    margin-bottom: 22px;
  }
}
.rfStatement__inner {
  max-width: 820px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .rfStatement__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfStatement__text {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(20px, 3vw, 32px);
  font-weight: 700;
  line-height: 1.95;
  letter-spacing: 0.04em;
  color: #fff;
}
.rfStatement__text strong {
  color: var(--rf-key);
  font-weight: 700;
}

.rfSubSec {
  padding: 120px 0;
}
@media screen and (max-width: 768px) {
  .rfSubSec {
    padding: 64px 0;
  }
}
.rfSubSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .rfSubSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfSubSec--sub {
  background: #F2F3F1;
}
.rfSubSec--dark {
  background: #0E1F33;
}
.rfSubSec__eyebrow {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.rfSubSec__eyebrow::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 18px;
  margin-right: 10px;
  vertical-align: -3px;
  background: var(--rf-key, #0E1F33);
  border-radius: 1px 1px 5px 5px;
}
.rfSubSec__eyebrow {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  letter-spacing: 0.22em;
  color: var(--rf-key, #0E1F33);
  text-transform: uppercase;
  margin-bottom: 14px;
}
.rfSubSec--dark .rfSubSec__eyebrow {
  color: rgba(255, 255, 255, 0.6);
}
.rfSubSec__title {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(26px, 3.4vw, 42px);
  font-weight: 800;
  color: #0E1F33;
  letter-spacing: 0.03em;
  line-height: 1.4;
  margin-bottom: 14px;
}
.rfSubSec--dark .rfSubSec__title {
  color: #fff;
}
.rfSubSec__divider {
  width: 56px;
  height: 3px;
  background-image: repeating-linear-gradient(to right, var(--rf-key, #0E1F33) 0, var(--rf-key, #0E1F33) 14px, transparent 14px, transparent 24px);
  margin: 18px 0 32px;
}
.rfSubSec--dark .rfSubSec__divider {
  background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.4) 0, rgba(255, 255, 255, 0.4) 14px, transparent 14px, transparent 24px);
}
.rfSubSec__lead {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfSubSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfSubSec__lead {
  color: #333;
}
.rfSubSec--dark .rfSubSec__lead {
  color: rgba(255, 255, 255, 0.7);
}
.rfSubSec__subHeading {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.03em;
  margin-top: 64px;
  margin-bottom: 10px;
}
.rfSubSec:not(.rfSubSec--dark) .rfSubSec__subHeading {
  color: #0E1F33;
}
.rfSubSec__subHeading--small {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-top: 0;
  opacity: 0.6;
}
.rfSubSec__subLine {
  width: 40px;
  height: 2px;
  background-image: repeating-linear-gradient(to right, var(--rf-key, #0E1F33) 0, var(--rf-key, #0E1F33) 14px, transparent 14px, transparent 24px);
  margin-bottom: 22px;
}
.rfSubSec__subLead {
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfSubSec__subLead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfSubSec__subLead {
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 30px;
}
.rfSubSec:not(.rfSubSec--dark) .rfSubSec__subLead {
  color: #666666;
}
.rfSubSec__techLink {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  border-radius: 2px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: 0.6s;
}
.rfSubSec__techLink::after {
  content: "→";
  font-size: 13px;
}
@media screen and (min-width: 769px) {
  .rfSubSec__techLink:hover:hover {
    background: var(--rf-key);
    border-color: var(--rf-key);
    color: #0E1F33;
  }
}

.rfInfoBox {
  margin-top: 48px;
  padding: 32px 36px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-left: 3px solid var(--rf-key);
}
.rfSubSec:not(.rfSubSec--dark) .rfInfoBox {
  background: #fff;
  border-color: rgba(14, 31, 51, 0.1);
  border-left-color: var(--rf-key);
}
@media screen and (max-width: 768px) {
  .rfInfoBox {
    padding: 24px 22px;
  }
}
.rfInfoBox__title {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 17px;
  font-weight: 800;
  color: #fff;
  margin-bottom: 18px;
}
.rfSubSec:not(.rfSubSec--dark) .rfInfoBox__title {
  color: #0E1F33;
}
.rfInfoBox__text {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfInfoBox__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfInfoBox__text {
  color: rgba(255, 255, 255, 0.75);
}
.rfSubSec:not(.rfSubSec--dark) .rfInfoBox__text {
  color: #333;
}
.rfInfoBox__text strong {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 800;
  letter-spacing: 0.02em;
  font-size: 1.5em;
  color: var(--rf-key);
}

.rfTechTagList {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.rfOverviewGrid {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 48px;
  margin-top: 40px;
  align-items: start;
}
@media screen and (max-width: 768px) {
  .rfOverviewGrid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.rfOverviewGrid__mainImg {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.rfOverviewGrid__videoBtn {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  padding: 12px 16px;
  border: 1.5px solid rgba(14, 31, 51, 0.15);
  background: #fff;
  color: #0E1F33;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: 0.6s;
  text-decoration: none;
}
.rfOverviewGrid__videoBtn::before {
  content: "▶";
  font-size: 10px;
  color: var(--rf-key);
  flex-shrink: 0;
}
@media screen and (min-width: 769px) {
  .rfOverviewGrid__videoBtn:hover:hover {
    background: #0E1F33;
    color: #fff;
  }
  .rfOverviewGrid__videoBtn:hover:hover::before {
    color: var(--rf-key);
  }
}

.rfInfoTable {
  margin: 0;
}
.rfInfoTable dt {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 13px;
  color: var(--rf-key, #0E1F33);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-top: 24px;
  margin-bottom: 6px;
}
.rfInfoTable dt:first-child {
  margin-top: 0;
}
.rfInfoTable dd {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfInfoTable dd {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfInfoTable dd {
  color: #0E1F33;
  border-bottom: 1px solid rgba(14, 31, 51, 0.08);
  padding-bottom: 14px;
}

.rfEquipGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: rgba(14, 31, 51, 0.1);
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .rfEquipGrid {
    grid-template-columns: 1fr;
  }
}
.rfEquipGrid__card {
  background: #fff;
}
.rfEquipGrid__imgWrap {
  overflow: hidden;
}
.rfEquipGrid__slider {
  position: relative;
}
.rfEquipGrid__slider .swiper-button-prev,
.rfEquipGrid__slider .swiper-button-next {
  width: 36px;
  height: 36px;
  background: #0E1F33;
  border-radius: 50%;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -18px;
}
.rfEquipGrid__slider .swiper-button-prev::after,
.rfEquipGrid__slider .swiper-button-next::after {
  display: none;
}
.rfEquipGrid__slider .swiper-button-prev svg,
.rfEquipGrid__slider .swiper-button-next svg {
  display: block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}
.rfEquipGrid__slider .swiper-pagination {
  bottom: 8px;
}
.rfEquipGrid__slider .swiper-navigation-icon {
  height: 46%;
}
.rfEquipGrid__slider .swiper-pagination-bullet {
  background: #fff;
  opacity: 0.6;
}
.rfEquipGrid__slider .swiper-pagination-bullet-active {
  opacity: 1;
  background: var(--rf-key);
}
.rfEquipGrid__img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  display: block;
}
.rfEquipGrid__body {
  padding: 24px 26px 30px;
}
.rfEquipGrid__num {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.rfEquipGrid__num::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 18px;
  margin-right: 10px;
  vertical-align: -3px;
  background: var(--rf-key, #0E1F33);
  border-radius: 1px 1px 5px 5px;
}
.rfEquipGrid__num {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  color: var(--rf-key);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.rfEquipGrid__name {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 19px;
  font-weight: 700;
  color: #0E1F33;
  line-height: 1.4;
  margin-bottom: 12px;
}
.rfEquipGrid__use {
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfEquipGrid__use {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfEquipGrid__use {
  color: #333;
  margin-top: 10px;
}

.rfLabList {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.rfLabList__item {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 44px;
  align-items: start;
  padding: 40px 0;
  border-top: 1px solid rgba(14, 31, 51, 0.1);
}
.rfSubSec--dark .rfLabList__item {
  border-top-color: rgba(255, 255, 255, 0.12);
}
.rfLabList__item:first-child {
  border-top: none;
  padding-top: 0;
}
.rfLabList__item:last-child {
  padding-bottom: 0;
}
.rfLabList__item--reverse {
  grid-template-columns: 1fr 320px;
}
.rfLabList__item--reverse .rfLabList__img {
  order: 2;
}
@media screen and (max-width: 768px) {
  .rfLabList__item {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .rfLabList__item--reverse .rfLabList__img {
    order: 0;
  }
}
.rfLabList__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.rfLabList__num {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.rfLabList__num::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 18px;
  margin-right: 10px;
  vertical-align: -3px;
  background: var(--rf-key, #0E1F33);
  border-radius: 1px 1px 5px 5px;
}
.rfLabList__num {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  color: var(--rf-key);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.rfLabList__name {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(20px, 2.2vw, 25px);
  font-weight: 700;
  color: #0E1F33;
  line-height: 1.4;
  margin-bottom: 16px;
}
.rfSubSec--dark .rfLabList__name {
  color: #fff;
}
.rfLabList__desc {
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfLabList__desc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfLabList__desc {
  color: #333;
  margin-bottom: 18px;
}
.rfSubSec--dark .rfLabList__desc {
  color: rgba(255, 255, 255, 0.7);
}
.rfLabList__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rfLabList__tag {
  display: inline-block;
  font-size: 12px;
  padding: 5px 14px;
  border: 1px solid rgba(14, 31, 51, 0.2);
  color: #0E1F33;
  letter-spacing: 0.03em;
}
.rfLabList__tag--key {
  background: var(--rf-key);
  border-color: var(--rf-key);
  color: #fff;
  font-weight: 700;
}

.rfZcbBadge {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 28px;
  padding: 20px 24px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-left: 3px solid var(--rf-key);
}
.rfZcbBadge__icon {
  width: 52px;
  height: 52px;
  background: var(--rf-key);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rfZcbBadge__icon span {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 800;
  letter-spacing: 0.02em;
  font-size: 12px;
  color: #0E1F33;
  text-align: center;
  line-height: 1.2;
}
.rfZcbBadge__text {
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfZcbBadge__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfZcbBadge__text {
  color: rgba(255, 255, 255, 0.75);
}
.rfZcbBadge__text strong {
  color: #fff;
  font-weight: bold;
}

.rfTrackStats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(14, 31, 51, 0.12);
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .rfTrackStats {
    grid-template-columns: 1fr;
  }
}
.rfTrackStats__cell {
  padding: 44px 28px;
  background: #fff;
  text-align: center;
}
.rfSubSec--sub .rfTrackStats__cell {
  background: #F2F3F1;
}
.rfTrackStats__num {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 800;
  letter-spacing: 0.02em;
  font-size: clamp(52px, 6vw, 80px);
  color: #0E1F33;
  line-height: 1;
  letter-spacing: -0.01em;
}
.rfTrackStats__num > span:first-child {
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  font-family: inherit;
  color: inherit;
}
.rfTrackStats__unit {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: clamp(14px, 1.6vw, 24px);
  color: var(--rf-key);
  vertical-align: baseline;
}
.rfTrackStats__label {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #0E1F33;
  margin-top: 14px;
  line-height: 1.6;
}
.rfTrackStats__sub {
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfTrackStats__sub {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfTrackStats__sub {
  text-align: center;
  color: #666666;
  margin-top: 8px;
}

.rfPhotoGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  margin-top: 36px;
}
@media screen and (max-width: 768px) {
  .rfPhotoGrid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.rfPhotoGrid--3col {
  grid-template-columns: repeat(3, 1fr);
}
@media screen and (max-width: 768px) {
  .rfPhotoGrid--3col {
    grid-template-columns: 1fr 1fr;
  }
}
.rfPhotoGrid__item {
  position: relative;
  overflow: hidden;
}
.rfPhotoGrid__img {
  width: 100%;
  aspect-ratio: 4/2.7;
  object-fit: cover;
  display: block;
}
.rfPhotoGrid__cap {
  position: absolute;
  left: 0;
  bottom: 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #0E1F33;
  padding: 8px 16px;
  background: #fff;
  line-height: 1.5;
}
.rfPhotoGrid__heading {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #0E1F33;
  margin-bottom: 14px;
}

.rfResultList {
  margin-top: 32px;
  border-top: 1px solid rgba(14, 31, 51, 0.12);
}
.rfResultList__item {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(14, 31, 51, 0.1);
  align-items: start;
}
@media screen and (max-width: 768px) {
  .rfResultList__item {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
.rfResultList__label {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 12px;
  color: #fff;
  background: var(--rf-key);
  padding: 5px 12px;
  text-align: center;
  align-self: start;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.rfResultList__body {
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfResultList__body {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfResultList__body {
  color: #0E1F33;
}

.rfOtherFac__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  margin-top: 36px;
}
@media screen and (max-width: 768px) {
  .rfOtherFac__grid {
    grid-template-columns: 1fr;
  }
}
.rfOtherFac__card {
  position: relative;
  overflow: hidden;
  background: #0E1F33;
  text-decoration: none;
  display: block;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .rfOtherFac__card:hover:hover .rfOtherFac__img {
    transform: scale(1.04);
  }
}
.rfOtherFac__img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
  transition: 0.6s;
}
.rfOtherFac__body {
  padding: 26px 28px 30px;
}
.rfOtherFac__en {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--rf-key);
  margin-bottom: 8px;
}
.rfOtherFac__name {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: #fff;
  line-height: 1.4;
  margin-bottom: 10px;
}
.rfOtherFac__role {
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfOtherFac__role {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfOtherFac__role {
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 18px;
}
.rfOtherFac__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  border-bottom: 1px solid var(--rf-key);
  padding-bottom: 2px;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .rfOtherFac__link:hover:hover {
    color: var(--rf-key);
  }
}

.rfSubCta {
  background: #0E1F33;
  padding: 110px 0;
  text-align: center;
  position: relative;
}
@media screen and (max-width: 768px) {
  .rfSubCta {
    padding: 64px 0;
  }
}
.rfSubCta::before {
  content: "";
  display: block;
  width: 64px;
  height: 3px;
  background-image: repeating-linear-gradient(to right, var(--rf-key, #0E1F33) 0, var(--rf-key, #0E1F33) 14px, transparent 14px, transparent 24px);
  margin: 0 auto 36px;
}
@media screen and (max-width: 768px) {
  .rfSubCta::before {
    margin-bottom: 24px;
  }
}
.rfSubCta__inner {
  max-width: 860px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .rfSubCta__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfSubCta__eyebrow {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 11px;
  letter-spacing: 0.24em;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  margin-bottom: 20px;
}
.rfSubCta__title {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(24px, 3.2vw, 34px);
  font-weight: 800;
  color: #fff;
  line-height: 1.5;
  letter-spacing: 0.02em;
  margin-bottom: 20px;
}
.rfSubCta__lead {
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfSubCta__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfSubCta__lead {
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 44px;
}
.rfSubCta__btn {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 19px 58px;
  background: #ED6D46;
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: 0.6s;
}
@media screen and (min-width: 769px) {
  .rfSubCta__btn:hover:hover {
    background: #D65A32;
  }
}

.rfPamphletImg {
  margin-top: 32px;
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.rfPamphletImg__img {
  width: 100%;
  height: auto;
  display: block;
}

.rfHosouMap {
  margin-top: 36px;
  background: #081522;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 768px) {
  .rfHosouMap {
    padding: 24px;
  }
}
.rfHosouMap__img {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.1));
  padding: 20px;
}

/* ============================================================
   以下、2026-07-06コミット時点でCSSに直接反映されていたが
   SCSSソースには未反映だった追加/上書きスタイルを復元
   (研究施設ページ redesign: rfHeroSec / rfLabTab / rfLabUI /
   rfEquipSelector / rfFacilitiesSec / rfFacilityItem / hosou-map 等)
   ============================================================ */
.js-rfInview {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1), transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.js-rfInview.is-inview {
  opacity: 1;
  transform: translateY(0);
}

.js-rfFacilityItem {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.js-rfFacilityItem.rfFacilityItem--reverse {
  transform: translateX(40px);
}

.js-rfFacilityItem.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.js-rfFacilityImg {
  overflow: hidden;
  clip-path: inset(0 0 100% 0);
  transition: clip-path 0.9s cubic-bezier(0.76, 0, 0.24, 1);
}

.js-rfFacilityItem.is-visible .js-rfFacilityImg {
  clip-path: inset(0 0 0% 0);
}

.js-rfFacilityImg img {
  transform: scale(1.08);
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.js-rfFacilityItem.is-visible .js-rfFacilityImg img {
  transform: scale(1);
}

.js-rfFacilityBody {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.5s, transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

.js-rfFacilityItem.is-visible .js-rfFacilityBody {
  opacity: 1;
  transform: translateY(0);
}

.js-rfBentoItem {
  opacity: 0;
  transform: translateY(80px) scale(0.96);
  transition: opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1), transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.js-rfBentoItem.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.js-rfBentoImg {
  overflow: hidden;
  clip-path: inset(0 0 100% 0);
  transition: clip-path 0.9s cubic-bezier(0.76, 0, 0.24, 1);
}

.js-rfBentoItem.is-visible .js-rfBentoImg {
  clip-path: inset(0 0 0% 0);
}

.js-rfBentoImg img {
  transform: scale(1.08);
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.js-rfBentoItem.is-visible .js-rfBentoImg img {
  transform: scale(1);
}

.js-rfBentoBody {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.45s, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.45s;
}

.js-rfBentoItem.is-visible .js-rfBentoBody {
  opacity: 1;
  transform: translateY(0);
}

.rfHeroSec {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0;
  overflow: hidden;
  background-color: #010e20;
  height: 800px;
  max-height: 90vh;
}

@media screen and (max-width: 768px) {
  .rfHeroSec {
    justify-content: flex-start;
    height: 86vh;
    height: 86svh;
    max-height: none;
  }
}
.rfHeroSec__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__bg {
    overflow: hidden;
  }
}
.rfHeroSec__videoGrid {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__videoGrid {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
  }
}
.rfHeroSec__videoCol {
  overflow: hidden;
  position: relative;
  transform: translateZ(0);
  will-change: transform;
}

.rfHeroSec__videoEl {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transform: translateZ(0);
  will-change: opacity;
  animation: rfPhotoFadeIn 1.2s ease 0.3s forwards;
}

@media (prefers-reduced-motion: reduce) {
  .rfHeroSec__videoEl {
    animation: none;
    opacity: 1;
  }
}
.rfHeroSec__bgGrid {
  position: absolute;
  inset: -48px;
  background-image: linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 48px 48px;
  animation: rfGridDrift 28s linear infinite;
  will-change: transform;
}

.rfHeroSec__bgGrad {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(1, 14, 32, 0.82) 0%, rgba(1, 14, 32, 0.55) 38%, rgba(1, 14, 32, 0.15) 65%, transparent 85%), linear-gradient(to top, rgba(1, 14, 32, 0.6) 0%, transparent 40%), linear-gradient(to bottom, rgba(1, 14, 32, 0.3) 0%, transparent 20%);
}

@media screen and (max-width: 768px) {
  .rfHeroSec__bgGrad {
    background: rgba(1, 14, 32, 0.55);
  }
}
.rfHeroSec__bgLabel {
  position: absolute;
  bottom: -0.18em;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: clamp(42px, 5.5vw, 84px);
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  opacity: 0.06;
  line-height: 1;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  user-select: none;
  pointer-events: none;
  z-index: 1;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__bgLabel {
    display: none;
  }
}
.rfHeroSec__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 40px;
  padding-left: 140px;
  padding-top: 140px;
  padding-bottom: 80px;
  align-items: center;
}

@media screen and (max-width: 1000px) {
  .rfHeroSec__inner {
    grid-template-columns: 1fr;
    padding-top: 100px;
  }
}
@media screen and (max-width: 768px) {
  .rfHeroSec__inner {
    padding: 80px 20px 30px;
    gap: 24px;
  }
}
.rfHeroSec__textCol {
  max-width: 640px;
}

.rfHeroSec__overline {
  font-size: clamp(9px, 0.95vw, 20px);
  font-weight: 600;
  letter-spacing: 0.22em;
  color: rgba(255, 255, 255, 0.4);
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 28px;
  text-transform: uppercase;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__overline {
    font-size: 9px;
    margin-bottom: 16px;
  }
}
.rfHeroSec__overline,
.rfHeroSec__lead,
.rfHeroSec__btns {
  opacity: 0;
  animation: rfFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.rfHeroSec__overline {
  animation-delay: 0.7s;
}

.rfHeroSec__lead {
  animation-delay: 1.2s;
}

.rfHeroSec__btns {
  animation-delay: 1.45s;
}

.rfHeroSec__title {
  font-size: clamp(44px, 6.5vw, 82px);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #fff;
  margin-bottom: 32px;
  overflow: hidden;
  visibility: hidden;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__title {
    font-size: clamp(38px, 10vw, 52px);
    margin-bottom: 20px;
  }
}
.rfHeroSec .rfChar {
  display: inline-block;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  opacity: 0;
  animation: rfCharIn 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.rfHeroSec__lead {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__lead {
    font-size: 15px;
    line-height: 1.8;
  }
}
.rfHeroSec__lead {
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__lead {
    font-size: 13px;
    margin-bottom: 32px;
  }
  .rfHeroSec__lead br {
    display: none;
  }
}
.rfHeroSec__btns {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.rfHeroSec__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 28px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 999px;
  text-decoration: none;
  transition: 0.6s;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__btn {
    padding: 11px 22px;
    font-size: 12px;
  }
}
.rfHeroSec__btn--outline {
  border: 1px solid rgba(255, 255, 255, 0.5);
  color: rgba(255, 255, 255, 0.85);
}

@media screen and (min-width: 769px) {
  .rfHeroSec__btn--outline:hover:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: #fff;
    color: #fff;
  }
}
.rfHeroSec__btn--fill {
  background: #fff;
  color: #002F7B;
  border: 1px solid #fff;
  font-weight: 800;
}

@media screen and (min-width: 769px) {
  .rfHeroSec__btn--fill:hover:hover {
    background: rgba(255, 255, 255, 0.88);
  }
}
.rfHeroSec__scroll {
  position: absolute;
  bottom: 16%;
  left: 4%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  z-index: 2;
  pointer-events: none;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__scroll {
    display: none;
  }
}
.rfHeroSec__scrollLine {
  display: block;
  width: 1px;
  height: 80px;
  background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.5));
  animation: rfScrollLine 2.4s ease-in-out 2.5s infinite both;
}

.rfHeroSec__scrollText {
  font-size: 9px;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.3);
  font-family: "Manrope", "Helvetica Neue", sans-serif;
}

.rfTriangle {
  position: relative;
  width: 100%;
  aspect-ratio: 900/500;
  margin-bottom: 56px;
}

@media screen and (max-width: 768px) {
  .rfTriangle {
    aspect-ratio: 3/4;
    margin-bottom: 40px;
  }
}
.rfTriangle__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

.rfTriangle__center {
  position: absolute;
  top: 46%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  z-index: 2;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(6px);
  border: 1.5px solid rgba(0, 47, 123, 0.12);
  border-radius: 12px;
  padding: 16px 24px;
  box-shadow: 0 4px 24px rgba(0, 47, 123, 0.08);
}

.rfTriangle__centerEn {
  font-size: clamp(14px, 1.8vw, 24px);
  font-weight: 900;
  color: #002F7B;
  letter-spacing: 0.04em;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  line-height: 1.2;
}

.rfTriangle__centerJp {
  font-size: clamp(10px, 1.1vw, 13px);
  color: rgba(0, 47, 123, 0.6);
  line-height: 1.6;
  margin-top: 6px;
}

.rfTriangle__node {
  position: absolute;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(110px, 17vw, 190px);
  transform: translateX(-50%);
}

.rfTriangle__node--tl {
  top: 4%;
  left: 23%;
}

@media screen and (max-width: 768px) {
  .rfTriangle__node--tl {
    top: 2%;
    left: 15%;
  }
}
.rfTriangle__node--tr {
  top: 4%;
  left: 77%;
}

@media screen and (max-width: 768px) {
  .rfTriangle__node--tr {
    top: 2%;
    left: 85%;
  }
}
.rfTriangle__node--bc {
  top: 72%;
  left: 50%;
}

@media screen and (max-width: 768px) {
  .rfTriangle__node--bc {
    top: 65%;
  }
}
.rfTriangle__nodeCard {
  background: #fff;
  border: 2px solid #002F7B;
  border-radius: 8px;
  padding: 12px 16px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0, 47, 123, 0.14);
  width: 100%;
}

.rfTriangle__nodeName {
  font-size: clamp(10px, 1.2vw, 13px);
  font-weight: 800;
  color: #002F7B;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.rfTriangle__nodeRole {
  font-size: clamp(9px, 1vw, 11px);
  color: #00AB84;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-top: 4px;
}

.rfTriangle__line {
  transition: opacity 0.4s;
}

.rfTriangle:hover .rfTriangle__line {
  opacity: 1 !important;
}

.rfConceptSec {
  position: relative;
  background-color: #fff;
  padding: 120px 0 0;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .rfConceptSec {
    padding: 72px 0 0;
  }
}
.rfConceptSec__inner {
  position: relative;
  z-index: 1;
  max-width: 1160px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
  margin-bottom: 60px;
}

@media screen and (max-width: 768px) {
  .rfConceptSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfConceptSec__header {
  text-align: center;
  margin-bottom: 50px;
}

@media screen and (max-width: 768px) {
  .rfConceptSec__header {
    margin-bottom: 48px;
  }
}
.rfConceptSec__headerLeft {
  max-width: 720px;
  margin: 0 auto;
}

.rfConceptSec__enLabel {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #00AB84;
  text-transform: uppercase;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 0;
}

.rfConceptSec__title {
  font-size: clamp(34px, 4.8vw, 50px);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #002F7B;
}

.rfConceptSec__titleSub {
  font-size: clamp(15px, 1.6vw, 20px);
}

.rfConceptSec__titleEn {
  display: block;
  margin-top: 0px;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  color: rgba(0, 47, 123, 0.55);
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
}

.rfConceptSec__lead {
  font-size: 20px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: center;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 600;
  margin-top: 16px;
}

@media screen and (max-width: 768px) {
  .rfConceptSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfConceptSec__lead {
  color: #666666;
}

.rfConceptSec__flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  align-items: stretch;
  margin-bottom: 56px;
}

@media screen and (max-width: 768px) {
  .rfConceptSec__flow {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.rfConceptSec__flowStep {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.rfConceptSec__flowStep.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.rfConceptSec__flowStepNum {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: rgba(0, 144, 200, 0.7);
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 12px;
}

.rfConceptSec__flowStepCard {
  border: 1.5px solid rgba(0, 47, 123, 0.15);
  border-radius: 8px;
  padding: 24px 20px;
  background: #fff;
  box-shadow: 0 2px 16px rgba(0, 47, 123, 0.05);
  height: 100%;
}

@media screen and (max-width: 768px) {
  .rfConceptSec__flowStepCard {
    padding: 20px 16px;
  }
}
.rfConceptSec__flowStepName {
  font-size: clamp(15px, 1.5vw, 18px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.03em;
  margin-bottom: 8px;
}

.rfConceptSec__flowStepRole {
  font-size: 12px;
  color: #00AB84;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}

.rfConceptSec__flowStepPref {
  font-size: 12px;
  color: #666666;
  letter-spacing: 0.04em;
}

.rfConceptSec__centerBar {
  display: flex;
  align-items: center;
  gap: 20px;
}

.rfConceptSec__centerBarLine {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(0, 47, 123, 0.2));
}

.rfConceptSec__centerBarLine:last-child {
  background: linear-gradient(to left, transparent, rgba(0, 47, 123, 0.2));
}

.rfConceptSec__centerBarText {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: rgba(0, 47, 123, 0.4);
  white-space: nowrap;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
}

@media screen and (max-width: 768px) {
  .rfConceptSec__centerBarText {
    font-size: 10px;
    letter-spacing: 0.08em;
    white-space: normal;
    text-align: center;
  }
}
.rfConceptSec__tripleDynamics {
  margin: 0 auto 72px;
  max-width: 720px;
}

@media screen and (max-width: 768px) {
  .rfConceptSec__tripleDynamics {
    margin-bottom: 48px;
  }
}
.rfConceptSec__tripleDynamicsImg {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.rfConceptSec__flowStepBullets {
  list-style: none;
  padding: 0;
  margin-top: 10px;
}

.rfConceptSec__flowStepBullets li {
  font-size: 12px;
  color: #666666;
  line-height: 1.65;
  padding-left: 12px;
  position: relative;
}

.rfConceptSec__flowStepBullets li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #00AB84;
}

.rfConceptSec__goals {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 36px;
  flex-wrap: wrap;
}

.rfConceptSec__goal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 24px;
  border: 1.5px solid rgba(0, 47, 123, 0.15);
  border-radius: 8px;
  background: #fff;
  min-width: 110px;
  box-shadow: 0 2px 12px rgba(0, 47, 123, 0.05);
}

.rfConceptSec__goalAbbr {
  font-size: 22px;
  font-weight: 900;
  color: #002F7B;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  letter-spacing: 0.04em;
  line-height: 1;
}

.rfConceptSec__goalName {
  font-size: 11px;
  color: #666666;
  text-align: center;
  line-height: 1.5;
}

.rfConceptSec__goalLead {
  text-align: center;
  margin-top: 28px;
}

.rfConceptSec__goalLeadText {
  font-size: clamp(14px, 1.8vw, 18px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.rfConceptSec__goalLeadSub {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: #666666;
  margin-top: 4px;
  letter-spacing: 0.06em;
}

.rfFacilitiesSec {
  background-color: #F2F3F1;
  padding: 0 0 200px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .rfFacilitiesSec {
    padding-bottom: 100px;
  }
}
.rfFacilitiesSec__header {
  padding: 100px 0 64px;
}
@media screen and (max-width: 768px) {
  .rfFacilitiesSec__header {
    padding: 64px 0 40px;
  }
}
.rfFacilitiesSec__headerInner {
  max-width: 1160px;
  width: 100%;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .rfFacilitiesSec__headerInner {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfFacilitiesSec__enLabel {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.24em;
  color: #00A0DC;
  text-transform: uppercase;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 12px;
}
.rfFacilitiesSec__title {
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #0E1F33;
}
.rfFacilitiesSec__titleLine {
  width: 40px;
  height: 2px;
  background: #00A0DC;
  margin-top: 16px;
}
.rfFacilitiesSec__list {
  position: relative;
  max-width: 1160px;
  width: 100%;
  margin: 0 auto;
  padding-top: 96px;
  display: flex;
  flex-direction: column;
  gap: 200px;
}
@media screen and (max-width: 768px) {
  .rfFacilitiesSec__list {
    padding-top: 48px;
    padding-left: 20px;
    padding-right: 20px;
    gap: 64px;
  }
}
.rfFacilitiesSec__connectorSvg {
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  overflow: visible;
}
.rfFacilitiesSec__connectorLine {
  fill: none;
  stroke: rgba(0, 160, 220, 0.3);
  stroke-width: 1.5;
  stroke-linecap: round;
}

.rfFacilityItem {
  display: block;
}
.rfFacilityItem--1 {
  --rf-accent: rgb(246, 132, 54);
}
.rfFacilityItem--2 {
  --rf-accent: rgb(75, 149, 230);
}
.rfFacilityItem--3 {
  --rf-accent: rgb(32, 175, 147);
}
@media screen and (min-width: 769px) {
  .rfFacilityItem__inner {
    position: relative;
  }
}
@media screen and (max-width: 768px) {
  .rfFacilityItem__inner {
    display: flex;
    flex-direction: column;
  }
}
@media screen and (min-width: 769px) {
  .rfFacilityItem--reverse .rfFacilityItem__media {
    margin-left: 0;
  }
  .rfFacilityItem--reverse .rfFacilityItem__body {
    left: 0;
    right: 40%;
  }
}
@media screen and (min-width: 769px) {
  .rfFacilityItem__media {
    position: relative;
    width: 50vw;
    left: 50%;
    margin-left: -50vw;
    aspect-ratio: 730/532;
    border-radius: 20px;
  }
}
@media screen and (max-width: 768px) {
  .rfFacilityItem__media {
    position: relative;
    width: calc(100% + 40px);
    margin-left: -20px;
    height: 220px;
  }
}
.rfFacilityItem__imgFrame {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
}
.rfFacilityItem__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: 0.6s;
  transition-duration: 0.8s;
}
.rfFacilityItem__body {
  z-index: 2;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(14, 31, 51, 0.12);
  padding: 32px;
  text-decoration: none;
  color: inherit;
}
@media screen and (min-width: 769px) {
  .rfFacilityItem__body {
    position: absolute;
    top: 0;
    bottom: 0;
    height: fit-content;
    margin-top: auto;
    margin-bottom: auto;
    left: 40%;
    right: 0;
  }
}
@media screen and (max-width: 768px) {
  .rfFacilityItem__body {
    width: 100%;
    border-radius: 0 0 12px 12px;
    box-shadow: none;
    padding: 24px;
  }
}
.rfFacilityItem__heading {
  position: relative;
  padding-left: 18px;
  margin-bottom: 20px;
}
.rfFacilityItem__heading::before {
  content: "";
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  width: 3px;
  background: var(--rf-accent);
}
.rfFacilityItem__en {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: rgba(14, 31, 51, 0.4);
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.rfFacilityItem__name {
  font-size: clamp(24px, 2.8vw, 34px);
  font-weight: 800;
  color: #0E1F33;
  letter-spacing: 0.02em;
  line-height: 1.35;
  margin-bottom: 8px;
}
.rfFacilityItem__role {
  font-size: 13px;
  color: rgba(14, 31, 51, 0.45);
  letter-spacing: 0.04em;
}
.rfFacilityItem__desc {
  position: relative;
  z-index: 1;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .rfFacilityItem__desc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfFacilityItem__desc {
  color: #333;
  margin-bottom: 28px;
}
.rfFacilityItem__link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 240px;
  padding: 10px 10px 10px 20px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  background: #fff;
  color: #002F7B;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-decoration: none;
  isolation: isolate;
  transition: 0.6s;
}
.rfFacilityItem__linkText {
  position: relative;
  z-index: 1;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.rfFacilityItem__linkIcon {
  position: relative;
  z-index: 1;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #002F7B;
  color: #fff;
  flex-shrink: 0;
}
.rfFacilityItem__linkIconSvg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.rfFacilityItem__linkIconSvg:nth-child(2) {
  left: -50%;
}
@media screen and (min-width: 769px) {
  .rfFacilityItem:hover .rfFacilityItem__img {
    transform: scale(1.04);
  }
  .rfFacilityItem:hover .rfFacilityItem__link {
    background: #fff;
    color: #002F7B;
  }
  .rfFacilityItem:hover .rfFacilityItem__linkIcon {
    background: #002F7B;
    color: #fff;
  }
  .rfFacilityItem__body:hover .rfFacilityItem__linkIconSvg:first-child {
    left: 150%;
  }
  .rfFacilityItem__body:hover .rfFacilityItem__linkIconSvg:nth-child(2) {
    left: 50%;
  }
}

.rfFacilityItem__videoBtn {
  position: absolute;
  bottom: 24px;
  left: 24px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  background: rgba(14, 31, 51, 0.65);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 999px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: 0.6s;
}

@media screen and (min-width: 769px) {
  .rfFacilityItem__videoBtn:hover {
    background: #0E1F33;
    border-color: rgba(255, 255, 255, 0.7);
  }
}
.rfFacilitiesSec__connectorSvg {
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  overflow: visible;
}

.rfFacilitiesSec__connectorLine {
  fill: none;
  stroke: rgba(0, 160, 220, 0.3);
  stroke-width: 1.5;
  stroke-linecap: round;
  opacity: 0;
  filter: blur(4px);
  transition: stroke-dashoffset 2.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 1.1s ease-out, filter 1.1s ease-out;
}

.rfFacilitiesSec__connectorLine.is-drawing {
  opacity: 1;
  filter: blur(0px);
}

@media (prefers-reduced-motion: reduce) {
  .js-rfFacilityItem,
  .js-rfFacilityItem.rfFacilityItem--reverse {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .js-rfFacilityImg {
    clip-path: none;
    transition: none;
  }
  .js-rfFacilityImg img {
    transform: none;
    transition: none;
  }
  .js-rfFacilityBody {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .rfFacilitiesSec__connectorLine {
    display: none;
  }
}
.rfVideoModal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.rfVideoModal.is-open {
  opacity: 1;
  pointer-events: auto;
}

.rfVideoModal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.88);
  cursor: pointer;
}

.rfVideoModal__box {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: 900px;
}

.rfVideoModal__close {
  position: absolute;
  top: -48px;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  transition: 0.6s;
}

.rfVideoModal__close:hover {
  background: rgba(255, 255, 255, 0.3);
}

.rfVideoModal__video {
  width: 100%;
  display: block;
  border-radius: 8px;
}

.rfNewsSec {
  background-color: #F4F7FA;
  padding: 100px 0;
}

@media screen and (max-width: 768px) {
  .rfNewsSec {
    padding: 64px 0;
  }
}
.rfNewsSec__inner {
  max-width: 1160px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .rfNewsSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfNewsSec__header {
  margin-bottom: 44px;
}

@media screen and (max-width: 768px) {
  .rfNewsSec__header {
    margin-bottom: 28px;
  }
}
.rfNewsSec__enLabel {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #00AB84;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 8px;
}

.rfNewsSec__title {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.02em;
}

.rfNewsSec__list {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  border-top: 1px solid rgba(0, 47, 123, 0.12);
}

.rfNewsSec__item {
  border-bottom: 1px solid rgba(0, 47, 123, 0.08);
}

.rfNewsSec__link {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 20px 4px;
  text-decoration: none;
  transition: 0.6s;
}

@media screen and (min-width: 769px) {
  .rfNewsSec__link:hover:hover {
    background: rgba(0, 47, 123, 0.03);
  }
  .rfNewsSec__link:hover:hover .rfNewsSec__arrow {
    width: 32px;
  }
}
@media screen and (max-width: 768px) {
  .rfNewsSec__link {
    grid-template-columns: auto 1fr auto;
    gap: 8px 12px;
    padding: 16px 4px;
  }
  .rfNewsSec__link .rfNewsSec__cat {
    grid-column: 1/-1;
    order: -1;
  }
}
.rfNewsSec__date {
  font-size: 13px;
  color: #666666;
  letter-spacing: 0.06em;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  white-space: nowrap;
}

.rfNewsSec__cat {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  padding: 3px 12px;
  border: 1px solid rgba(0, 144, 200, 0.5);
  border-radius: 999px;
  font-size: 11px;
  color: #0070a0;
  font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.rfNewsSec__newsTitle {
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfNewsSec__newsTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfNewsSec__newsTitle {
  color: #002F7B;
}

.rfNewsSec__arrow {
  display: block;
  width: 20px;
  height: 1px;
  background: rgba(0, 47, 123, 0.3);
  position: relative;
  flex-shrink: 0;
  transition: 0.6s;
}

.rfNewsSec__arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1px solid rgba(0, 47, 123, 0.4);
  border-right: 1px solid rgba(0, 47, 123, 0.4);
  transform: translateY(-50%) rotate(45deg);
}

.rfNewsSec__more {
  display: flex;
  justify-content: flex-end;
}

@media screen and (max-width: 768px) {
  .rfNewsSec__more {
    justify-content: center;
  }
}
.rfNewsSec__moreBtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 280px;
  padding: 10px 10px 10px 20px;
  border: 1.5px solid #002F7B;
  border-radius: 40px;
  background-color: #002F7B;
  text-decoration: none;
  isolation: isolate;
  transition: 0.6s;
}

@media screen and (min-width: 769px) {
  .rfNewsSec__moreBtn:hover:hover .rfNewsSec__moreBtnIcon::before {
    left: 150%;
  }
  .rfNewsSec__moreBtn:hover:hover .rfNewsSec__moreBtnIcon::after {
    left: 50%;
  }
}
.rfNewsSec__moreBtn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media screen and (max-width: 768px) {
  .rfNewsSec__moreBtn {
    width: 240px;
  }
}
.rfNewsSec__moreBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfNewsSec__moreBtnText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfNewsSec__moreBtnText {
  font-size: 16px;
  color: #fff;
  position: relative;
  z-index: 1;
}

@media screen and (max-width: 768px) {
  .rfNewsSec__moreBtnText {
    font-size: 15px;
  }
}
.rfNewsSec__moreBtnIcon {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #fff;
  flex-shrink: 0;
  z-index: 1;
}

.rfNewsSec__moreBtnIcon::before,
.rfNewsSec__moreBtnIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background-image: url("../images/common/arr-icon.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.rfNewsSec__moreBtnIcon::after {
  left: -50%;
}

.rfRdSec {
  background-color: #fff;
  padding: 0 0 80px;
}

@media screen and (max-width: 768px) {
  .rfRdSec {
    padding: 64px 0 20px;
  }
}
.rfRdSec__inner {
  max-width: 1160px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .rfRdSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfRdSec__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 32px;
}

@media screen and (max-width: 768px) {
  .rfRdSec__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 10px;
  }
}
.rfRdSec__headerTop {
  flex-shrink: 0;
}

.rfRdSec__headerTop > * {
  position: relative;
  z-index: 1;
}

.rfRdSec__enLabel {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #00AB84;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 12px;
}

.rfRdSec__title {
  font-size: clamp(28px, 3.5vw, 40px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.02em;
}

.rfRdSec__marquee {
  overflow: hidden;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
  margin-bottom: 24px;
}

@media screen and (max-width: 768px) {
  .rfRdSec__marquee {
    margin-bottom: 16px;
  }
}
.rfRdSec__marqueeInner {
  display: flex;
  white-space: nowrap;
  width: max-content;
  animation: rfRdMarquee 140s linear infinite;
}

.rfRdSec__marqueeInner span {
  display: inline-block;
  font-size: clamp(38px, 10vw, 100px);
  font-weight: 700;
  letter-spacing: -3px;
  color: rgba(219, 237, 255, 0.6);
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  padding-right: 80px;
  flex-shrink: 0;
  line-height: 1;
}

@media screen and (max-width: 768px) {
  .rfRdSec__marqueeInner span {
    font-size: clamp(28px, 10vw, 60px);
    padding-right: 48px;
    letter-spacing: -1px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .rfRdSec__marqueeInner {
    animation-play-state: paused;
  }
}
.rfRdSec__lead {
  margin-top: 16px;
  text-align: left;
  font-size: clamp(13px, 1.3vw, 16px);
  line-height: 1.8;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfRdSec__lead {
    margin-top: 10px;
  }
}
.rfRdSec__bento {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;
  margin-bottom: 48px;
  margin-top: 0;
}

@media screen and (max-width: 768px) {
  .rfRdSec__bento {
    grid-template-columns: 1fr;
    margin-top: 0;
  }
}
.rfRdSec__bentoItem--1,
.rfRdSec__bentoItem--2 {
  grid-column: auto;
  grid-row: auto;
}

.rfRdSec__bentoItem {
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.rfRdSec__bentoImg {
  flex-shrink: 0;
  aspect-ratio: 10/7;
  overflow: hidden;
}

.rfRdSec__bentoImg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.rfRdSec__bentoNoimg {
  flex-shrink: 0;
  aspect-ratio: 16/7;
  background: linear-gradient(135deg, #EDF3F7 0%, #E0EAF4 100%);
}

.rfRdSec__bentoBody {
  padding: 24px 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

@media screen and (max-width: 768px) {
  .rfRdSec__bentoBody {
    padding: 16px 0;
  }
}
.rfRdSec__bentoMeta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.rfRdSec__bentoCat {
  display: inline-flex;
  align-items: center;
  padding: 3px 12px;
  background: rgba(0, 47, 123, 0.06);
  border-radius: 999px;
  font-size: 11px;
  color: #002F7B;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.rfRdSec__bentoStatus {
  display: inline-flex;
  align-items: center;
  padding: 3px 12px;
  background: rgba(0, 144, 200, 0.08);
  border-radius: 999px;
  font-size: 11px;
  color: #006090;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.rfRdSec__bentoTitle {
  font-size: clamp(14px, 2vw, 20px);
  font-weight: 800;
  color: #002F7B;
  line-height: 1.4;
  letter-spacing: 0.02em;
  position: relative;
  padding-left: 14px;
}

.rfRdSec__bentoTitle::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.1em;
  bottom: 0.1em;
  width: 3px;
  background: #00AB84;
  border-radius: 2px;
}

.rfRdSec__bentoDivider {
  border: none;
  border-top: 1px solid rgba(0, 47, 123, 0.15);
  margin: 4px 0;
}

.rfRdSec__bentoDesc {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfRdSec__bentoDesc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfRdSec__bentoDesc {
  line-height: 1.7;
  color: #666666;
  flex: 1;
}

.rfRdSec__bentoLink {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #002F7B;
  text-decoration: underline;
  text-underline-offset: 3px;
  word-break: break-all;
  transition: 0.6s;
  margin-top: 20px;
}

.rfRdSec__bentoLink svg {
  flex-shrink: 0;
  opacity: 0.7;
}

@media screen and (min-width: 769px) {
  .rfRdSec__bentoLink:hover:hover {
    color: #00AB84;
    text-decoration-color: #00AB84;
  }
}
.rfRdSec__more {
  text-align: center;
}

.rfRdSec__moreBtn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 16px 12px 32px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none;
  background: #002F7B;
  color: #fff;
  border: 1px solid transparent;
  transition: 0.6s;
}

@media screen and (min-width: 769px) {
  .rfRdSec__moreBtn:hover:hover {
    background: #001f5c;
  }
  .rfRdSec__moreBtn:hover:hover .rfRdSec__moreBtnIconSvg:first-child {
    left: 150%;
  }
  .rfRdSec__moreBtn:hover:hover .rfRdSec__moreBtnIconSvg:nth-child(2) {
    left: 50%;
  }
}
.rfRdSec__moreBtnText {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.rfRdSec__moreBtnIcon {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  flex-shrink: 0;
  margin-left: 8px;
  transition: 0.6s;
}

.rfRdSec__moreBtnIconSvg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  color: #fff;
}

.rfRdSec__moreBtnIconSvg:nth-child(2) {
  left: -50%;
}

.rfPublicationSec {
  background-color: #F4F7FA;
  padding: 100px 0 120px;
}

@media screen and (max-width: 768px) {
  .rfPublicationSec {
    padding: 64px 0 80px;
  }
}
.rfPublicationSec__inner {
  max-width: 960px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .rfPublicationSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfPublicationSec__header {
  margin-bottom: 60px;
}

.rfPublicationSec__enLabel {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #00AB84;
  font-family: "Roboto Condensed", "Manrope", "Helvetica Neue", sans-serif;
  margin-bottom: 12px;
}

.rfPublicationSec__title {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.02em;
}

.rfPublicationSec__catBlock {
  margin-bottom: 40px;
}

.rfPublicationSec__catBlock:last-child {
  margin-bottom: 0;
}

.rfPublicationSec__catTitle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  font-size: clamp(15px, 1.6vw, 18px);
  font-weight: 800;
  color: #002F7B;
  letter-spacing: 0.02em;
  padding: 14px 20px;
  border: none;
  border-left: 4px solid #002F7B;
  background: rgba(0, 47, 123, 0.04);
  text-align: left;
  cursor: pointer;
  transition: 0.6s;
}

@media screen and (max-width: 768px) {
  .rfPublicationSec__catTitle {
    font-size: 15px;
    padding: 12px 16px;
  }
}
@media screen and (min-width: 769px) {
  .rfPublicationSec__catTitle:hover {
    background: rgba(0, 47, 123, 0.08);
  }
}
.rfPublicationSec__catArrow {
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  background-color: #002F7B;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'><path d='M5 7.5l5 5 5-5' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'><path d='M5 7.5l5 5 5-5' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  transition: transform 0.3s ease;
}

.rfPublicationSec__catTitle[aria-expanded=true] .rfPublicationSec__catArrow {
  transform: rotate(180deg);
}

.rfPublicationSec__catBody {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.rfPublicationSec__catBody > .rfPublicationSec__group:first-child {
  margin-top: 40px;
}

.rfPublicationSec__catBody > .rfPublicationSec__group:last-child {
  margin-bottom: 40px;
}

.rfPublicationSec__group {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 0 48px;
}

@media screen and (max-width: 768px) {
  .rfPublicationSec__group {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.rfPublicationSec__yearCol {
  padding-top: 4px;
  align-self: start;
}

.rfPublicationSec__year {
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 800;
  color: #002F7B;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  letter-spacing: -0.01em;
  line-height: 1.2;
  position: sticky;
  top: 100px;
}

@media screen and (max-width: 768px) {
  .rfPublicationSec__year {
    position: static;
    font-size: 18px;
  }
}
.rfPublicationSec__list {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 700px;
  border-top: 1px solid rgba(0, 47, 123, 0.1);
}

.rfPublicationSec__item {
  padding: 20px 0;
  border-bottom: 1px solid rgba(0, 47, 123, 0.07);
  margin: 0 -12px;
  padding-left: 12px;
  padding-right: 12px;
  border-radius: 6px;
}

@media screen and (min-width: 769px) {
  .rfPublicationSec__item:hover {
    transition: background-color 0.25s ease;
  }
  .rfPublicationSec__item:hover:hover {
    background-color: rgba(0, 47, 123, 0.04);
  }
}
.rfPublicationSec__itemLink {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  width: 100%;
  text-decoration: none;
  color: inherit;
}

@media screen and (max-width: 768px) {
  .rfPublicationSec__itemLink {
    flex-direction: column;
    gap: 10px;
  }
}
.rfPublicationSec__paperTitle {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfPublicationSec__paperTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfPublicationSec__paperTitle {
  color: #002F7B;
  flex: 1;
}

@media screen and (min-width: 769px) {
  .rfPublicationSec__paperTitle:hover {
    transition: color 0.25s ease;
  }
  .rfPublicationSec__item:hover .rfPublicationSec__paperTitle:hover {
    color: #00AB84;
  }
}
.rfPublicationSec__pdfBtn {
  width: fit-content;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  padding: 3px 6px;
  border: 1px solid #002F7B;
  border-radius: 2px;
  font-size: 12px;
  font-weight: 700;
  color: #002F7B;
  letter-spacing: 0.05em;
  line-height: 1;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
  margin-top: 5px;
}

@media screen and (min-width: 769px) {
  .rfPublicationSec__item:hover .rfPublicationSec__pdfBtn:hover {
    background-color: #00AB84;
    border-color: #00AB84;
    color: #fff;
  }
}
.rfPublicationSec__pdfBtn--na {
  opacity: 0.3;
  pointer-events: none;
}

.rfSubPage {
  --rf-key: #0E1F33;
}

.rfSubPage[data-facility=konosu] {
  --rf-key: #00ab84;
}

.rfSubPage[data-facility=satte] {
  --rf-key: #009EB8;
}

.rfSubPage[data-facility=tamura] {
  --rf-key: #00ab84;
}

.rfSubBread {
  padding: 14px 0;
  background: #0E1F33;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.rfSubBread__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .rfSubBread__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfSubBread__inner {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}

.rfSubBread__link {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  transition: 0.6s;
}

@media screen and (min-width: 769px) {
  .rfSubBread__link:hover:hover {
    color: #fff;
  }
}
.rfSubBread__sep {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.25);
}

.rfSubBread__current {
  font-size: 12px;
  color: #fff;
  font-weight: 700;
}

.rfSubHero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 560px;
  overflow: hidden;
  background: #0E1F33;
}

@media screen and (max-width: 768px) {
  .rfSubHero {
    min-height: 540px;
  }
}
.rfSubHero__imgWrap {
  position: absolute;
  inset: 0;
}

.rfSubHero__imgWrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(14, 31, 51, 0.1) 0%, rgba(14, 31, 51, 0.38) 58%, rgba(14, 31, 51, 0.94) 100%);
}

.rfSubHero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 幸手：全景写真の下部（研究棟）が見切れないよう表示位置を下寄りにする */
.rfSubPage[data-facility=satte] .rfSubHero__img {
  object-position: center 72%;
}

/* 幸手・田村：施設名ロゴ。黒ロゴを暗い背景で見せるため白抜きにする */
.rfSubPage[data-facility=satte] .rfSubHero__jp--logo,
.rfSubPage[data-facility=tamura] .rfSubHero__jp--logo {
  margin: 0 0 24px;
  line-height: 0;
}

.rfSubPage[data-facility=satte] .rfSubHero__logo,
.rfSubPage[data-facility=tamura] .rfSubHero__logo {
  width: min(420px, 80%);
  height: auto;
  display: block;
  filter: brightness(0) invert(1) drop-shadow(0 2px 10px rgba(0, 0, 26, 0.45));
}

@media screen and (max-width: 768px) {
  .rfSubPage[data-facility=satte] .rfSubHero__logo,
  .rfSubPage[data-facility=tamura] .rfSubHero__logo {
    width: min(300px, 82%);
  }
}
.rfSubHero__body {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .rfSubHero__body {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfSubHero__body {
  padding-top: 64px;
  padding-bottom: 40px;
}

@media screen and (max-width: 768px) {
  .rfSubHero__body {
    padding-top: 40px;
    padding-bottom: 36px;
  }
}
.rfSubHero__en {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.rfSubHero__en::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 18px;
  margin-right: 10px;
  vertical-align: -3px;
  background: var(--rf-key, #0E1F33);
  border-radius: 1px 1px 5px 5px;
}

.rfSubHero__en {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  margin-bottom: 18px;
}

.rfSubHero__jp {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(30px, 4.6vw, 56px);
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.03em;
  line-height: 1.3;
  margin-bottom: 24px;
  max-width: 720px;
}

@media screen and (max-width: 768px) {
  .rfSubHero__jp {
    font-size: 5rem;
    line-height: 1.2;
  }
}
.rfSubHero__lead {
  font-size: 15px;
  line-height: 1.95;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfSubHero__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfSubHero__lead {
  color: rgba(255, 255, 255, 0.72);
  max-width: 560px;
}

.rfSubHero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 24px;
}

.rfSubHero__tag {
  display: inline-block;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.3);
  padding: 5px 14px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 2px;
  letter-spacing: 0.04em;
  text-decoration: none;
}

.rfSubHero__tag--key {
  color: #0E1F33;
  border-color: var(--rf-key);
  background: var(--rf-key);
  font-weight: 700;
}

.rfSubHero__tag--link {
  transition: 0.6s;
}

@media screen and (min-width: 769px) {
  .rfSubHero__tag--link:hover:hover {
    background: var(--rf-key);
    border-color: var(--rf-key);
    color: #0E1F33;
  }
}
.rfStatement {
  background: #0E1F33;
  padding: 88px 0 100px;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .rfStatement {
    padding: 52px 0 60px;
  }
}
.rfStatement__line {
  width: 64px;
  height: 3px;
  background-image: repeating-linear-gradient(to right, var(--rf-key, #0E1F33) 0, var(--rf-key, #0E1F33) 14px, transparent 14px, transparent 24px);
  margin: 0 auto 32px;
}

@media screen and (max-width: 768px) {
  .rfStatement__line {
    margin-bottom: 22px;
  }
}
.rfStatement__inner {
  max-width: 820px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .rfStatement__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfStatement__text {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(20px, 3vw, 32px);
  font-weight: 700;
  line-height: 1.95;
  letter-spacing: 0.04em;
  color: #fff;
}

.rfStatement__text strong {
  color: var(--rf-key);
  font-weight: 700;
}

.rfSubSec {
  padding: 120px 0;
}

@media screen and (max-width: 768px) {
  .rfSubSec {
    padding: 64px 0;
  }
}
.rfSubSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .rfSubSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfSubSec--sub {
  background: #F2F3F1;
}

.rfSubSec--dark {
  background: #0E1F33;
}

.rfSubSec__eyebrow {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.rfSubSec__eyebrow::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 18px;
  margin-right: 10px;
  vertical-align: -3px;
  background: var(--rf-key, #0E1F33);
  border-radius: 1px 1px 5px 5px;
}

.rfSubSec__eyebrow {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  letter-spacing: 0.22em;
  color: var(--rf-key, #0E1F33);
  text-transform: uppercase;
  margin-bottom: 14px;
}

.rfSubSec--dark .rfSubSec__eyebrow {
  color: rgba(255, 255, 255, 0.6);
}

.rfSubSec__title {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(26px, 3.4vw, 42px);
  font-weight: 800;
  color: #0E1F33;
  letter-spacing: 0.03em;
  line-height: 1.4;
  margin-bottom: 14px;
}

.rfSubSec--dark .rfSubSec__title {
  color: #fff;
}

.rfSubSec__divider {
  width: 56px;
  height: 3px;
  background-image: repeating-linear-gradient(to right, var(--rf-key, #0E1F33) 0, var(--rf-key, #0E1F33) 14px, transparent 14px, transparent 24px);
  margin: 18px 0 32px;
}

.rfSubSec--dark .rfSubSec__divider {
  background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.4) 0, rgba(255, 255, 255, 0.4) 14px, transparent 14px, transparent 24px);
}

.rfSubSec__lead {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfSubSec__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfSubSec__lead {
  color: #333;
}

.rfSubSec--dark .rfSubSec__lead {
  color: rgba(255, 255, 255, 0.7);
}

.rfSubSec__subHeading {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.03em;
  margin-top: 64px;
  margin-bottom: 10px;
}

.rfSubSec:not(.rfSubSec--dark) .rfSubSec__subHeading {
  color: #0E1F33;
}

.rfSubSec__subHeading--small {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-top: 0;
  opacity: 0.6;
}

.rfSubSec__subLine {
  width: 40px;
  height: 2px;
  background-image: repeating-linear-gradient(to right, var(--rf-key, #0E1F33) 0, var(--rf-key, #0E1F33) 14px, transparent 14px, transparent 24px);
  margin-bottom: 22px;
}

.rfSubSec__subLead {
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfSubSec__subLead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfSubSec__subLead {
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 30px;
}

.rfSubSec:not(.rfSubSec--dark) .rfSubSec__subLead {
  color: #666666;
}

.rfSubSec__techLink {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  border-radius: 2px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: 0.6s;
}

.rfSubSec__techLink::after {
  content: "→";
  font-size: 13px;
}

@media screen and (min-width: 769px) {
  .rfSubSec__techLink:hover:hover {
    background: var(--rf-key);
    border-color: var(--rf-key);
    color: #0E1F33;
  }
}
.rfInfoBox {
  margin-top: 48px;
  padding: 32px 36px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-left: 3px solid var(--rf-key);
}

.rfSubSec:not(.rfSubSec--dark) .rfInfoBox {
  background: #fff;
  border-color: rgba(14, 31, 51, 0.1);
  border-left-color: var(--rf-key);
}

@media screen and (max-width: 768px) {
  .rfInfoBox {
    padding: 24px 22px;
  }
}
.rfInfoBox__title {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 17px;
  font-weight: 800;
  color: #fff;
  margin-bottom: 18px;
}

.rfSubSec:not(.rfSubSec--dark) .rfInfoBox__title {
  color: #0E1F33;
}

.rfInfoBox__text {
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfInfoBox__text {
    font-size: 14px;
    line-height: 2.2;
  }
}
.rfInfoBox__text {
  color: rgba(255, 255, 255, 0.75);
}

.rfSubSec:not(.rfSubSec--dark) .rfInfoBox__text {
  color: #333;
}

.rfInfoBox__text strong {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 800;
  letter-spacing: 0.02em;
  font-size: 1.5em;
  color: var(--rf-key);
}

.rfTechTagList {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.rfOverviewGrid {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 48px;
  margin-top: 40px;
  align-items: start;
}

@media screen and (max-width: 768px) {
  .rfOverviewGrid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.rfOverviewGrid__mainImg {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}

.rfOverviewGrid__videoBtn {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  padding: 12px 16px;
  border: 1.5px solid rgba(14, 31, 51, 0.15);
  background: #fff;
  color: #0E1F33;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: 0.6s;
  text-decoration: none;
}

.rfOverviewGrid__videoBtn::before {
  content: "▶";
  font-size: 10px;
  color: var(--rf-key);
  flex-shrink: 0;
}

@media screen and (min-width: 769px) {
  .rfOverviewGrid__videoBtn:hover:hover {
    background: #0E1F33;
    color: #fff;
  }
  .rfOverviewGrid__videoBtn:hover:hover::before {
    color: var(--rf-key);
  }
}
.rfInfoTable {
  margin: 0;
}

.rfInfoTable dt {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 13px;
  color: var(--rf-key, #0E1F33);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-top: 24px;
  margin-bottom: 6px;
}

.rfInfoTable dt:first-child {
  margin-top: 0;
}

.rfInfoTable dd {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfInfoTable dd {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfInfoTable dd {
  color: #0E1F33;
  border-bottom: 1px solid rgba(14, 31, 51, 0.08);
  padding-bottom: 14px;
}

.rfEquipGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: rgba(14, 31, 51, 0.1);
  margin-top: 40px;
}

@media screen and (max-width: 768px) {
  .rfEquipGrid {
    grid-template-columns: 1fr;
  }
}
.rfEquipGrid__card {
  background: #fff;
}

.rfEquipGrid__imgWrap {
  overflow: hidden;
}

.rfEquipGrid__slider {
  position: relative;
}

.rfEquipGrid__slider .swiper-button-prev,
.rfEquipGrid__slider .swiper-button-next {
  width: 36px;
  height: 36px;
  background: #0E1F33;
  border-radius: 50%;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -18px;
}

.rfEquipGrid__slider .swiper-button-prev::after,
.rfEquipGrid__slider .swiper-button-next::after {
  display: none;
}

.rfEquipGrid__slider .swiper-button-prev svg,
.rfEquipGrid__slider .swiper-button-next svg {
  display: block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}

.rfEquipGrid__slider .swiper-pagination {
  bottom: 8px;
}

.rfEquipGrid__slider .swiper-navigation-icon {
  height: 46%;
}

.rfEquipGrid__slider .swiper-pagination-bullet {
  background: #fff;
  opacity: 0.6;
}

.rfEquipGrid__slider .swiper-pagination-bullet-active {
  opacity: 1;
  background: var(--rf-key);
}

.rfEquipGrid__img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  display: block;
}

.rfEquipGrid__body {
  padding: 24px 26px 30px;
}

.rfEquipGrid__num {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.rfEquipGrid__num::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 18px;
  margin-right: 10px;
  vertical-align: -3px;
  background: var(--rf-key, #0E1F33);
  border-radius: 1px 1px 5px 5px;
}

.rfEquipGrid__num {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  color: var(--rf-key);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.rfEquipGrid__name {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 19px;
  font-weight: 700;
  color: #0E1F33;
  line-height: 1.4;
  margin-bottom: 12px;
}

.rfEquipGrid__use {
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfEquipGrid__use {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfEquipGrid__use {
  color: #333;
  margin-top: 10px;
}

.rfLabList {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.rfLabList__item {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 44px;
  align-items: start;
  padding: 40px 0;
  border-top: 1px solid rgba(14, 31, 51, 0.1);
}

.rfSubSec--dark .rfLabList__item {
  border-top-color: rgba(255, 255, 255, 0.12);
}

.rfLabList__item:first-child {
  border-top: none;
  padding-top: 0;
}

.rfLabList__item:last-child {
  padding-bottom: 0;
}

.rfLabList__item--reverse {
  grid-template-columns: 1fr 320px;
}

.rfLabList__item--reverse .rfLabList__img {
  order: 2;
}

@media screen and (max-width: 768px) {
  .rfLabList__item {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .rfLabList__item--reverse .rfLabList__img {
    order: 0;
  }
}
.rfLabList__img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}

.rfLabList__num {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.rfLabList__num::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 18px;
  margin-right: 10px;
  vertical-align: -3px;
  background: var(--rf-key, #0E1F33);
  border-radius: 1px 1px 5px 5px;
}

.rfLabList__num {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  color: var(--rf-key);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.rfLabList__name {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(20px, 2.2vw, 25px);
  font-weight: 700;
  color: #0E1F33;
  line-height: 1.4;
  margin-bottom: 16px;
}

.rfSubSec--dark .rfLabList__name {
  color: #fff;
}

.rfLabList__desc {
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfLabList__desc {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfLabList__desc {
  color: #333;
  margin-bottom: 18px;
}

/* 自然共生セクションの通常の箇条書き（黒点リスト） */
.rfNatureList {
  margin-top: 16px;
  padding-left: 1.3em;
  list-style: disc;
}

.rfNatureList li {
  list-style: disc;
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: 0.05em;
  color: #0E1F33;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

.rfNatureList li + li {
  margin-top: 4px;
}

@media screen and (max-width: 768px) {
  .rfNatureList li {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfSubSec--dark .rfLabList__desc {
  color: rgba(255, 255, 255, 0.7);
}

.rfLabList__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.rfLabList__tag {
  display: inline-block;
  font-size: 12px;
  padding: 5px 14px;
  border: 1px solid rgba(14, 31, 51, 0.2);
  color: #0E1F33;
  letter-spacing: 0.03em;
}

.rfLabList__tag--key {
  background: var(--rf-key);
  border-color: var(--rf-key);
  color: #fff;
  font-weight: 700;
}

.rfZcbBadge {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 28px;
  padding: 20px 24px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-left: 3px solid var(--rf-key);
}

.rfZcbBadge__icon {
  width: 52px;
  height: 52px;
  background: var(--rf-key);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.rfZcbBadge__icon span {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 800;
  letter-spacing: 0.02em;
  font-size: 12px;
  color: #0E1F33;
  text-align: center;
  line-height: 1.2;
}

.rfZcbBadge__text {
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfZcbBadge__text {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfZcbBadge__text {
  color: rgba(255, 255, 255, 0.75);
}

.rfZcbBadge__text strong {
  color: #fff;
  font-weight: bold;
}

.rfTrackStats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(14, 31, 51, 0.12);
  margin-top: 40px;
}

@media screen and (max-width: 768px) {
  .rfTrackStats {
    grid-template-columns: 1fr;
  }
}
.rfTrackStats__cell {
  padding: 44px 28px;
  background: #fff;
  text-align: center;
}

.rfSubSec--sub .rfTrackStats__cell {
  background: #F2F3F1;
}

.rfTrackStats__num {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 800;
  letter-spacing: 0.02em;
  font-size: clamp(52px, 6vw, 80px);
  color: #0E1F33;
  line-height: 1;
  letter-spacing: -0.01em;
}

.rfTrackStats__num > span:first-child {
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  font-family: inherit;
  color: inherit;
}

.rfTrackStats__unit {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: clamp(14px, 1.6vw, 24px);
  color: var(--rf-key);
  vertical-align: baseline;
}

.rfTrackStats__label {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #0E1F33;
  margin-top: 14px;
  line-height: 1.6;
}

.rfTrackStats__sub {
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfTrackStats__sub {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfTrackStats__sub {
  text-align: center;
  color: #666666;
  margin-top: 8px;
}

.rfPhotoGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  margin-top: 60px;
}

@media screen and (max-width: 768px) {
  .rfPhotoGrid {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 40px;
  }
}
.rfPhotoGrid--3col {
  grid-template-columns: repeat(3, 1fr);
}

@media screen and (max-width: 768px) {
  .rfPhotoGrid--3col {
    grid-template-columns: 1fr 1fr;
  }
}
.rfPhotoGrid__item {
  position: relative;
  overflow: hidden;
}

.rfPhotoGrid__img {
  width: 100%;
  aspect-ratio: 4/2.7;
  object-fit: cover;
  display: block;
}

.rfPhotoGrid__cap {
  position: absolute;
  left: 0;
  bottom: 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #0E1F33;
  padding: 8px 16px;
  background: #fff;
  line-height: 1.5;
}

.rfPhotoGrid__heading {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #0E1F33;
  margin-bottom: 14px;
}

.rfResultList {
  margin-top: 32px;
  border-top: 1px solid rgba(14, 31, 51, 0.12);
}

.rfResultList__item {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(14, 31, 51, 0.1);
  align-items: start;
}

@media screen and (max-width: 768px) {
  .rfResultList__item {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
.rfResultList__label {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 12px;
  color: #fff;
  background: var(--rf-key);
  padding: 5px 12px;
  text-align: center;
  align-self: start;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rfResultList__body {
  font-size: 15px;
  line-height: 1.85;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfResultList__body {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfResultList__body {
  color: #0E1F33;
}

.rfOtherFac__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  margin-top: 36px;
}

@media screen and (max-width: 768px) {
  .rfOtherFac__grid {
    grid-template-columns: 1fr;
  }
}
.rfOtherFac__card {
  position: relative;
  overflow: hidden;
  background: #0E1F33;
  text-decoration: none;
  display: block;
  transition: 0.6s;
}

@media screen and (min-width: 769px) {
  .rfOtherFac__card:hover:hover .rfOtherFac__img {
    transform: scale(1.04);
  }
}
.rfOtherFac__img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
  transition: 0.6s;
}

.rfOtherFac__body {
  padding: 26px 28px 30px;
}

.rfOtherFac__en {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--rf-key);
  margin-bottom: 8px;
}

.rfOtherFac__name {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: #fff;
  line-height: 1.4;
  margin-bottom: 10px;
}

.rfOtherFac__role {
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfOtherFac__role {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfOtherFac__role {
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 18px;
}

.rfOtherFac__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  border-bottom: 1px solid var(--rf-key);
  padding-bottom: 2px;
  transition: 0.6s;
}

@media screen and (min-width: 769px) {
  .rfOtherFac__link:hover:hover {
    color: var(--rf-key);
  }
}
.rfSubCta {
  background: #0E1F33;
  padding: 110px 0;
  text-align: center;
  position: relative;
}

@media screen and (max-width: 768px) {
  .rfSubCta {
    padding: 64px 0;
  }
}
.rfSubCta::before {
  content: "";
  display: block;
  width: 64px;
  height: 3px;
  background-image: repeating-linear-gradient(to right, var(--rf-key, #0E1F33) 0, var(--rf-key, #0E1F33) 14px, transparent 14px, transparent 24px);
  margin: 0 auto 36px;
}

@media screen and (max-width: 768px) {
  .rfSubCta::before {
    margin-bottom: 24px;
  }
}
.rfSubCta__inner {
  max-width: 860px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .rfSubCta__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfSubCta__eyebrow {
  font-family: "Roboto Condensed", "Noto Sans JP", "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 11px;
  letter-spacing: 0.24em;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  margin-bottom: 20px;
}

.rfSubCta__title {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-size: clamp(24px, 3.2vw, 34px);
  font-weight: 800;
  color: #fff;
  line-height: 1.5;
  letter-spacing: 0.02em;
  margin-bottom: 20px;
}

.rfSubCta__lead {
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .rfSubCta__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
.rfSubCta__lead {
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 44px;
}

.rfSubCta__btn {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 19px 58px;
  background: #ED6D46;
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: 0.6s;
}

@media screen and (min-width: 769px) {
  .rfSubCta__btn:hover:hover {
    background: #D65A32;
  }
}
.rfPamphletImg {
  margin-top: 32px;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.rfPamphletImg__img {
  width: 100%;
  height: auto;
  display: block;
}

.rfHosouMap {
  margin-top: 36px;
  background: #081522;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media screen and (max-width: 768px) {
  .rfHosouMap {
    padding: 24px;
  }
}
.rfHosouMap__img {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.1));
  padding: 20px;
}

.rfHeroSec__videoGrid {
  padding: 24px;
  gap: 24px;
}

.rfHeroSec__videoCol {
  border-radius: 16px;
}

.rfHeroSec__bgGrad {
  inset: auto;
  bottom: 0;
  left: 0;
  right: 0;
  height: 320px;
  background: linear-gradient(to bottom, rgba(1, 14, 32, 0) 0%, rgba(1, 14, 32, 0.9) 55%, #010e20 100%);
}

@media screen and (max-width: 768px) {
  .rfHeroSec__bgGrad {
    height: 260px;
    background: linear-gradient(to bottom, rgba(1, 14, 32, 0) 0%, rgba(1, 14, 32, 0.9) 55%, #010e20 100%);
  }
}
.rfHeroSec__inner {
  position: absolute;
  bottom: 32px;
  left: 24px;
  padding: 0;
  display: block;
  grid-template-columns: none;
}

.rfHeroSec__textCol {
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__inner {
    position: absolute;
    top: 50%;
    bottom: auto;
    left: 20px;
    right: 20px;
    transform: translateY(-50%);
    padding: 0;
    display: block;
  }
}
.rfHeroSec__marquee {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
  pointer-events: none;
}

.rfHeroSec__marqueeInner {
  display: flex;
  white-space: nowrap;
  width: max-content;
  animation: rfRdMarquee 80s linear infinite;
}

.rfHeroSec__marqueeInner span {
  display: inline-block;
  font-size: clamp(40px, 7vw, 84px);
  font-weight: 700;
  letter-spacing: -2px;
  color: rgba(255, 255, 255, 0.1);
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  padding-right: 80px;
  flex-shrink: 0;
  line-height: 1;
}

@media screen and (max-width: 768px) {
  .rfHeroSec__marqueeInner span {
    font-size: clamp(28px, 9vw, 48px);
    padding-right: 48px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .rfHeroSec__marqueeInner {
    animation-play-state: paused;
  }
}
.rfHeroSec__scroll {
  bottom: 51px;
  left: auto;
  right: 32px;
  transform: none;
}

.rfSubOverviewImg {
  position: relative;
  margin-top: 40px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 18px 48px -16px rgba(0, 47, 123, 0.1);
}

.rfSubOverviewImg__slider {
  position: relative;
  width: 100%;
  height: 600px;
}

.rfSubOverviewImg__img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  display: block;
}

/* スライダー内（田村）のみクロスフェード。単一画像（幸手）は静止表示のまま */
.rfSubOverviewImg__slider .rfSubOverviewImg__img {
  position: absolute;
  inset: 0;
  height: 100%;
  opacity: 0;
  transition: opacity 0.8s ease;
}

.rfSubOverviewImg__slider .rfSubOverviewImg__img.is-active {
  opacity: 1;
}

.rfSubOverviewImg__dots {
  position: absolute;
  right: 20px;
  bottom: 20px;
  display: flex;
  gap: 8px;
  z-index: 2;
}

.rfSubOverviewImg__dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition: 0.3s;
}

.rfSubOverviewImg__dot.is-active {
  background: #fff;
  transform: scale(1.2);
}

@media screen and (max-width: 768px) {
  .rfSubOverviewImg__slider,
  .rfSubOverviewImg__img {
    height: 240px;
  }
}
.rfSubOverviewImg__videoBtn {
  position: absolute;
  bottom: 20px;
  left: 20px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: rgba(255, 255, 255, 0.92);
  border: none;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  color: #0e1f33;
  cursor: pointer;
  transition: 0.3s;
  letter-spacing: 0.04em;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

@media screen and (min-width: 769px) {
  .rfSubOverviewImg__videoBtn:hover {
    background: #fff;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
  }
}
.rfSubDetailCards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 28px;
}

@media screen and (max-width: 768px) {
  .rfSubDetailCards {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.rfSubDetailCard {
  border-bottom: 2px solid var(--rf-key, #3E7C4F);
  border-radius: 14px 14px 0 0;
  padding: 22px 22px 20px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 47, 123, 0.08);
  border-bottom: 2px solid var(--rf-key, #3E7C4F);
  transition: box-shadow 0.3s;
}

.rfSubDetailCard__label {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(0, 47, 123, 0.45);
  margin-bottom: 10px;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
}

.rfSubDetailCard__value {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.55;
  color: #002f7b;
  margin-bottom: 6px;
}

.rfSubDetailCard__sub {
  font-size: 15px;
  line-height: 1.7;
  color: rgba(0, 47, 123, 0.7);
  margin-bottom: 12px;
}

.rfSubDetailCard__mapBtn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: #4285f4;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  border-radius: 4px;
  text-decoration: none;
  transition: 0.3s;
  width: fit-content;
}

@media screen and (min-width: 769px) {
  .rfSubDetailCard__mapBtn:hover {
    opacity: 0.88;
  }
}
.rfPurposeHeader {
  display: flex;
  align-items: flex-end;
  gap: 60px;
  margin-bottom: 48px;
}

@media screen and (max-width: 768px) {
  .rfPurposeHeader {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    margin-bottom: 32px;
  }
}
.rfPurposeHeader__left {
  flex-shrink: 0;
  min-width: 280px;
}

.rfPurposeHeader__lead {
  flex: 1;
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: 0.04em;
  color: #4b5563;
  padding-bottom: 8px;
}

.rfPurposeCards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 32px;
}

@media screen and (max-width: 768px) {
  .rfPurposeCards {
    grid-template-columns: 1fr;
  }
}
.rfPurposeCard {
  background: #fff;
  border: 1px solid rgba(0, 47, 123, 0.08);
  border-radius: 12px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.rfSubSec--sub .rfPurposeCard {
  background: rgba(255, 255, 255, 0.7);
}

.rfPurposeCard__icon {
  width: 44px;
  height: 44px;
  background: #0e1f33;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
}

.rfSubPage[data-facility=tamura] .rfPurposeCard__icon {
  background: var(--rf-key);
}

.rfPurposeCard__title {
  font-size: 18px;
  font-weight: 700;
  color: #0e1f33;
  line-height: 1.4;
}

.rfPurposeCard__desc {
  font-size: 14px;
  line-height: 1.75;
  color: #4b5563;
}

/* 幸手・田村：目的カードはアイコン＋タイトルを横並び、本文は下段。
   カード間でタイトル行・本文開始位置を揃えるため、親の2行トラックを subgrid で共有し、
   本文の行数に依らずタイトル（ヘッダー行）と本文開始位置が全カードで揃うようにする。 */
.rfSubPage[data-facility=satte] .rfPurposeCards,
.rfSubPage[data-facility=tamura] .rfPurposeCards {
  grid-template-rows: auto auto; /* 1段目=ヘッダー(アイコン+タイトル) / 2段目=本文。全カード共有 */
  column-gap: 20px;
  row-gap: 14px;
}

.rfSubPage[data-facility=satte] .rfPurposeCard,
.rfSubPage[data-facility=tamura] .rfPurposeCard {
  grid-row: span 2;
  display: grid;
  grid-template-rows: subgrid; /* 親の2行に整列 → カード間で揃う */
  grid-template-columns: 34px 1fr;
  grid-template-areas: "icon title" "desc desc";
  column-gap: 10px;
  padding: 24px;
  align-items: center; /* ヘッダー行：タイトルをアイコンに対し上下中央 */
}

.rfSubPage[data-facility=satte] .rfPurposeCard__icon,
.rfSubPage[data-facility=tamura] .rfPurposeCard__icon {
  grid-area: icon;
  width: 34px;
  height: 34px;
}

.rfSubPage[data-facility=satte] .rfPurposeCard__title,
.rfSubPage[data-facility=tamura] .rfPurposeCard__title {
  grid-area: title;
}

.rfSubPage[data-facility=satte] .rfPurposeCard__desc,
.rfSubPage[data-facility=tamura] .rfPurposeCard__desc {
  grid-area: desc;
  align-self: start; /* 本文は上揃え */
}

@media screen and (max-width: 768px) {
  .rfSubPage[data-facility=satte] .rfPurposeCards,
  .rfSubPage[data-facility=tamura] .rfPurposeCards {
    grid-template-rows: none;
  }
  /* SPは1カラム。各カード独立（subgrid解除） */
  .rfSubPage[data-facility=satte] .rfPurposeCard,
  .rfSubPage[data-facility=tamura] .rfPurposeCard {
    grid-row: auto;
    grid-template-rows: auto auto;
  }
}
.rfPurposeSummary {
  background: rgba(0, 47, 123, 0.04);
  border: 1px solid rgba(0, 47, 123, 0.1);
  border-radius: 8px;
  padding: 28px 32px;
  text-align: center;
}

.rfSubSec--sub .rfPurposeSummary {
  background: rgba(0, 47, 123, 0.06);
}

.rfPurposeSummary p {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.8;
  color: #0e1f33;
}

@media screen and (max-width: 768px) {
  .rfPurposeSummary {
    padding: 20px;
  }
  .rfPurposeSummary p {
    font-size: 14px;
  }
}
.rfTrackHeroPhoto {
  margin-top: 40px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 18px 48px -16px rgba(0, 47, 123, 0.1);
}

.rfTrackHeroPhoto__img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

.rfStatsBanner {
  display: flex;
  align-items: stretch;
  background: #002f7b;
  border-radius: 16px;
  overflow: hidden;
  margin-top: 28px;
  box-shadow: 0 14px 30px -10px rgba(0, 0, 0, 0.18);
}

@media screen and (max-width: 768px) {
  .rfStatsBanner {
    flex-direction: column;
    border-radius: 12px;
  }
}
.rfStatsBanner__cell {
  flex: 1;
  padding: 32px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.rfStatsBanner__divider {
  width: 1px;
  background: rgba(255, 255, 255, 0.15);
  align-self: stretch;
}

@media screen and (max-width: 768px) {
  .rfStatsBanner__divider {
    width: auto;
    height: 1px;
  }
}
.rfStatsBanner__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rf-key, #3E7C4F);
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  white-space: nowrap;
}

.rfStatsBanner__num {
  line-height: 0.9;
  white-space: nowrap;
}

.rfStatsBanner__numVal {
  font-size: clamp(56px, 7vw, 88px);
  font-weight: 900;
  color: #fff;
  font-family: "Manrope", "Roboto Condensed", sans-serif;
  letter-spacing: -0.02em;
}

.rfStatsBanner__unit {
  font-size: clamp(28px, 3.5vw, 44px);
  font-weight: 700;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  vertical-align: baseline;
}

.rfStatsBanner__sub {
  font-size: 13px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.75);
  white-space: nowrap;
}

@media screen and (max-width: 768px) {
  .rfStatsBanner__numVal {
    font-size: 52px;
  }
  .rfStatsBanner__unit {
    font-size: 28px;
  }
  .rfStatsBanner__sub {
    white-space: normal;
  }
}
.js-rfInview {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.js-rfInview.is-inview {
  opacity: 1;
  transform: translateY(0);
}

.rfSubPage[data-facility=tamura] .rfSubHero,
.rfSubPage[data-facility=satte] .rfSubHero {
  min-height: 720px;
}

/* スマホでは 幸手・田村 を min-height 540px に揃える（鴻巣は後方の個別ルールで対応） */
@media screen and (max-width: 768px) {
  .rfSubPage[data-facility=tamura] .rfSubHero,
  .rfSubPage[data-facility=satte] .rfSubHero {
    min-height: 540px;
  }
}
.rfSubPage[data-facility=tamura] .rfSubHero__imgWrap::after,
.rfSubPage[data-facility=satte] .rfSubHero__imgWrap::after {
  background: linear-gradient(180deg, rgba(0, 10, 31, 0) 0%, rgba(0, 10, 31, 0.1) 40%, rgba(0, 10, 31, 0.6) 65%, rgba(0, 10, 31, 0.93) 100%);
}

.rfSubPage[data-facility=tamura] .rfSubHero__body,
.rfSubPage[data-facility=satte] .rfSubHero__body {
  max-width: none;
  padding-left: 80px;
  padding-right: 80px;
  padding-top: 0;
}

@media screen and (max-width: 768px) {
  .rfSubPage[data-facility=tamura] .rfSubHero__body,
  .rfSubPage[data-facility=satte] .rfSubHero__body {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.rfSubPage[data-facility=tamura] .rfSubHero__en,
.rfSubPage[data-facility=satte] .rfSubHero__en {
  color: #00ab84;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.18em;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
}

.rfSubPage[data-facility=tamura] .rfSubHero__en::before,
.rfSubPage[data-facility=satte] .rfSubHero__en::before {
  display: none;
}

.rfSubPage[data-facility=tamura] .rfSubHero__jp,
.rfSubPage[data-facility=satte] .rfSubHero__jp {
  font-size: clamp(40px, 5.5vw, 72px);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: 0.03em;
  color: #fff;
  margin-bottom: 24px;
  max-width: none;
  text-shadow: 0 2px 16px rgba(0, 0, 26, 0.5);
}

.rfSubPage[data-facility=tamura] .rfSubHero__lead,
.rfSubPage[data-facility=satte] .rfSubHero__lead {
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: 0.033em;
  color: rgba(255, 255, 255, 0.8);
  max-width: 640px;
  text-shadow: 0 1px 8px rgba(0, 0, 26, 0.4);
}

@media screen and (max-width: 768px) {
  .rfSubPage[data-facility=tamura] .rfSubHero__lead,
  .rfSubPage[data-facility=satte] .rfSubHero__lead {
    font-size: 15px;
    line-height: 1.8;
  }
}
.rfSubPage[data-facility=tamura] .rfSubSec__eyebrow {
  color: #00ab84;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-weight: 700;
  letter-spacing: 0.17em;
}

.rfSubPage[data-facility=tamura] .rfSubSec__eyebrow::before {
  display: none;
}

.rfSubPage[data-facility=tamura] .rfSubSec__title {
  color: #002f7b;
}

.rfSubPage[data-facility=tamura] .rfSubSec__divider {
  width: 48px;
  height: 3px;
  background-image: none;
  background-color: #002f7b;
  border-radius: 2px;
}

.rfSubPage[data-facility=tamura] .rfSubSec--sub {
  background: #f7fbfd;
}

.rfSubPage[data-facility=tamura] .rfSubSec__lead {
  color: rgba(14, 31, 51, 0.7);
}

.rfSubPage[data-facility=tamura] .rfSubDetailCard,
.rfSubPage[data-facility=konosu] .rfSubDetailCard {
  position: relative;
  border: none;
  border-bottom: 1px solid #e0e5ed;
  border-radius: 16px;
  padding: 20px;
  background: #fff;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 160px;
}

.rfSubDetailCard__iconWrap {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(0, 47, 123, 0.3);
  pointer-events: none;
}

.rfSubPage[data-facility=tamura] .rfPurposeCard__icon {
  background: #002f7b;
}

.rfSubPage[data-facility=tamura] .rfPurposeCard__title {
  color: #002f7b;
}

.rfSubPage[data-facility=tamura] .rfPurposeSummary p {
  font-style: normal;
  color: #002f7b;
}

.rfSubPage[data-facility=tamura] .rfInfoBox {
  border-left-color: #00ab84;
}

.rfSubPage[data-facility=tamura] .rfInfoBox__text strong {
  color: #00ab84;
}

.rfSubPage[data-facility=tamura] .rfLabList__num {
  color: #00ab84;
}

.rfSubPage[data-facility=tamura] .rfLabList__num::before {
  background: #00ab84;
}

.rfSubPage[data-facility=tamura] .rfLabList__name {
  color: #002f7b;
}

.rfSubPage[data-facility=tamura] .rfPhotoGrid__heading {
  color: #002f7b;
}

.rfSubPage[data-facility=tamura] .rfSubSec:not(.rfSubSec--dark) .rfSubSec__subHeading {
  color: #002f7b;
}

.rfOtherNew__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 40px;
}

@media screen and (max-width: 768px) {
  .rfOtherNew__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.rfOtherNew__card {
  background: #fff;
  border: 1px solid rgba(0, 47, 123, 0.1);
  border-radius: 20px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-decoration: none;
  box-shadow: 0 14px 17px rgba(0, 47, 123, 0.07);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

@media screen and (min-width: 769px) {
  .rfOtherNew__card:hover {
    box-shadow: 0 20px 28px rgba(0, 47, 123, 0.12);
    transform: translateY(-2px);
  }
  .rfOtherNew__card:hover .rfOtherNew__imgWrap img {
    transform: scale(1.04);
  }
}
.rfOtherNew__imgWrap {
  height: 240px;
  border-radius: 16px;
  overflow: hidden;
  width: 100%;
  flex-shrink: 0;
}

.rfOtherNew__imgWrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}

.rfOtherNew__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.rfOtherNew__en {
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.16em;
  color: #00ab84;
  text-transform: uppercase;
}

.rfOtherNew__pill {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  background: #f4f7fa;
  border: 1px solid rgba(0, 47, 123, 0.1);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: #002f7b;
  white-space: nowrap;
  transition: background 0.3s;
}

@media screen and (min-width: 769px) {
  .rfOtherNew__card:hover .rfOtherNew__pill {
    background: rgba(0, 47, 123, 0.08);
  }
}
.rfOtherNew__name {
  font-size: 17px;
  font-weight: 700;
  color: #002f7b;
  line-height: 1.35;
  letter-spacing: 0.02em;
}

.rfOtherNew__desc {
  font-size: 14px;
  line-height: 1.65;
  letter-spacing: 0.05em;
  color: #666;
}

.rfSubPage[data-facility=konosu] .rfSubHero {
  min-height: 720px;
}

/* スマホでは 540px に揃える（この鴻巣ルールより後ろに置いて後勝ちさせる） */
@media screen and (max-width: 768px) {
  .rfSubPage[data-facility=konosu] .rfSubHero {
    min-height: 540px;
  }
}
.rfSubPage[data-facility=konosu] .rfSubHero__imgWrap::after {
  background: linear-gradient(180deg, rgba(0, 13, 38, 0) 0%, rgba(0, 13, 38, 0.05) 35%, rgba(0, 13, 38, 0.55) 60%, rgba(0, 13, 38, 0.92) 100%);
}

.rfSubPage[data-facility=konosu] .rfSubHero__body {
  max-width: none;
  padding-left: 80px;
  padding-right: 80px;
  padding-top: 0;
  padding-bottom: 80px;
}

@media screen and (max-width: 768px) {
  .rfSubPage[data-facility=konosu] .rfSubHero__body {
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 40px;
  }
}
.rfSubPage[data-facility=konosu] .rfSubHero__en {
  color: #00ab84;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.18em;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
}

.rfSubPage[data-facility=konosu] .rfSubHero__en::before {
  display: none;
}

.rfSubPage[data-facility=konosu] .rfSubHero__jp {
  font-size: clamp(40px, 5.5vw, 72px);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: 0.03em;
  color: #fff;
  margin-bottom: 24px;
  max-width: none;
  text-shadow: 0 2px 16px rgba(0, 0, 26, 0.5);
}

.rfSubPage[data-facility=konosu] .rfSubHero__lead {
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: 0.033em;
  color: rgba(255, 255, 255, 0.8);
  max-width: 640px;
  text-shadow: 0 1px 8px rgba(0, 0, 26, 0.4);
}

@media screen and (max-width: 768px) {
  .rfSubPage[data-facility=konosu] .rfSubHero__lead {
    font-size: 15px;
  }
}
.rfSubPage[data-facility=konosu] .rfSubSec__eyebrow {
  color: #00ab84;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-weight: 700;
  letter-spacing: 0.17em;
}

.rfSubPage[data-facility=konosu] .rfSubSec__eyebrow::before {
  display: none;
}

.rfSubPage[data-facility=konosu] .rfSubSec__title {
  color: #002f7b;
}

.rfSubPage[data-facility=konosu] .rfSubSec__divider {
  width: 48px;
  height: 3px;
  background-image: none;
  background-color: #002f7b;
  border-radius: 2px;
}

.rfSubPage[data-facility=konosu] .rfSubSec--sub {
  background: #edf3f7;
}

.rfSubPage[data-facility=konosu] .rfSubSec__lead {
  color: rgba(14, 31, 51, 0.7);
}

.rfSubPage[data-facility=satte] {
  --rf-key: #00ab84;
}

/* 幸手のヒーロー（KV）は田村と共通化したため、個別ルールは持たない */
.rfSubPage[data-facility=satte] .rfSubSec__eyebrow {
  color: #00ab84;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-weight: 700;
  letter-spacing: 0.17em;
}

.rfSubPage[data-facility=satte] .rfSubSec__eyebrow::before {
  display: none;
}

.rfSubPage[data-facility=satte] .rfSubSec__title {
  color: #002f7b;
}

.rfSubPage[data-facility=satte] .rfSubSec__divider {
  width: 48px;
  height: 3px;
  background-image: none;
  background-color: #002f7b;
  border-radius: 2px;
}

.rfSubPage[data-facility=satte] .rfSubSec--sub {
  background: #edf3f7;
}

.rfSubPage[data-facility=satte] .rfSubSec__lead {
  color: rgba(14, 31, 51, 0.7);
}

.rfSubPage[data-facility=satte] .rfSubSec--dark {
  background: #002f7b;
}

.rfSubPage[data-facility=satte] .rfSubSec--dark .rfSubSec__eyebrow {
  color: #00ab84;
}

.rfSubPage[data-facility=satte] .rfSubSec--dark .rfSubSec__title {
  color: #fff;
}

.rfSubPage[data-facility=satte] .rfSubSec--dark .rfSubSec__divider {
  background-color: #00ab84;
}

.rfSubPage[data-facility=satte] .rfSubSec--dark .rfSubSec__lead {
  color: rgba(255, 255, 255, 0.7);
}

.rfSubPage[data-facility=satte] .rfPurposeCard__icon {
  background: #002f7b;
}

.rfSubPage[data-facility=satte] .rfPurposeCard__title {
  color: #002f7b;
}

.rfZcbCard {
  display: flex;
  gap: 24px;
  align-items: center;
  padding: 24px;
  background: #f4f7fa;
  border: 1px solid rgba(0, 47, 123, 0.1);
  border-radius: 20px;
  margin-top: 24px;
}

.rfZcbCard__icon {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  background: #011028;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.08em;
}

.rfZcbCard__text {
  flex: 1;
  min-width: 0;
}

.rfZcbCard__eyebrow {
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: #00ab84;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.rfZcbCard__body {
  font-size: 16px;
  font-weight: 700;
  color: #002f7b;
  line-height: 1.7;
  margin: 0;
}

.rfPavementCard {
  background: #fff;
  border: 1px solid rgba(0, 47, 123, 0.1);
  border-radius: 20px;
  padding: 28px;
  box-shadow: 0 14px 17px rgba(0, 47, 123, 0.07);
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 40px;
}

.rfPavementCard__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.rfPavementCard__title {
  font-size: 18px;
  font-weight: 700;
  color: #002f7b;
  letter-spacing: 0.03em;
  margin: 0;
}

.rfPavementCard__divider {
  width: 40px;
  height: 3px;
  background: #002f7b;
  border-radius: 2px;
}

.rfPavementCard__desc {
  font-size: 15px;
  font-weight: 500;
  color: rgba(0, 47, 123, 0.8);
  line-height: 1.85;
  margin: 0;
}

.rfPavementCard__links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.rfPavementCard__link {
  display: flex;
  align-items: center;
  height: 44px;
  padding: 0 18px;
  border: 1px solid rgba(0, 47, 123, 0.15);
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  color: #002f7b;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
}

.rfPavementCard__link:hover {
  background: rgba(0, 47, 123, 0.05);
  border-color: rgba(0, 47, 123, 0.3);
  text-decoration: none;
}

.rfLabUI__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 40px;
}

.rfLabUI__headerLeft {
  flex-shrink: 0;
}

.rfLabUI__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.rfLabUI__eyebrowEn {
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: #00ab84;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.rfLabUI__eyebrowSep {
  display: block;
  width: 1px;
  height: 14px;
  background: rgba(0, 47, 123, 0.15);
}

.rfLabUI__eyebrowJp {
  font-size: 11px;
  font-weight: 500;
  color: rgba(0, 47, 123, 0.5);
  letter-spacing: 0.15em;
}

.rfLabUI__headerLead {
  flex: 1;
  min-width: 0;
  font-size: 14px;
  font-weight: 500;
  color: rgba(0, 47, 123, 0.5);
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: right;
  margin: 0;
}

.rfLabUI {
  display: flex;
  gap: 24px;
  height: 740px;
  align-items: stretch;
}

.rfLabUI__map {
  flex-shrink: 0;
  width: 56%;
  height: 100%;
}

.rfLabUI__mapImg {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  overflow: visible;
}

.rfLabUI__mapImg--svg svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* ピンはSVG内の <a><g class="lab-pin is-link"> (クリック可) または
   <g class="lab-pin">（リンクなし。aタグで包まれていないため自動的にクリック無効）
   として埋め込み。既定は薄い枠、is-active(=選択中)で強調。
   リンクなしピンの見た目(色・文字色など)はSVG側で定義済みのためCSSでは上書きしない。 */
.rfLabUI__mapImg--svg .lab-pin.is-link {
  cursor: pointer;
}

.rfLabUI__mapImg--svg .lab-pin:not(.is-link) {
  cursor: default;
}

.rfLabUI__mapImg--svg .lab-pin .pin-badge {
  stroke: #3f6bb0;
  stroke-opacity: 0.55;
  stroke-width: 1;
  transition: stroke 0.2s, stroke-opacity 0.2s, stroke-width 0.2s;
}

.rfLabUI__mapImg--svg .lab-pin.is-active .pin-badge {
  stroke: #00ab84;
  stroke-opacity: 1;
  stroke-width: 3;
}

.rfLabUI__mapImg--svg .lab-pin.is-active {
  filter: drop-shadow(0 0 6px rgba(0, 171, 132, 0.7));
}

/* クリック時に出るデフォルトのフォーカスリングを非表示 */
.rfLabUI__mapImg--svg a:focus,
.rfLabUI__mapImg--svg .lab-pin:focus {
  outline: none;
}

.rfLabUI__mapTopRow {
  position: absolute;
  top: 19px;
  left: 19px;
  right: 19px;
  z-index: 2;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  /* 装飾テキストのため、下にあるピンのクリックを妨げないようにする */
  pointer-events: none;
}

.rfLabUI__mapBadge {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 47, 123, 0.8);
  padding: 6px 10px;
  border-radius: 6px;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.rfLabUI__mapHint {
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "Yu Gothic", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  color: #0E1F33;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.9), 0 0 6px rgba(255, 255, 255, 0.9);
}

.rfLabUI__mapCaption {
  position: absolute;
  bottom: 19px;
  left: 19px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.rfLabUI__mapCaptionSep {
  display: block;
  width: 1px;
  height: 10px;
  background: rgba(255, 255, 255, 0.25);
}

.rfLabUI__panel {
  flex: 1;
  min-width: 0;
  height: 100%;
  background: #f7fbfd;
  border: 1px solid rgba(0, 47, 123, 0.08);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 47, 123, 0.05);
  position: relative;
}

.rfLabUI__panelItem {
  display: none;
  flex-direction: column;
  width: 100%;
  height: 100%;
}

.rfLabUI__panelItem.is-active {
  display: flex;
}

.rfLabUI__accentBar {
  flex-shrink: 0;
  height: 4px;
  background: linear-gradient(to right, #002f7b, #00ab84);
}

.rfLabUI__panelContent {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.rfLabUI__panelHeader {
  flex-shrink: 0;
  background: #fff;
  border-bottom: 1px solid rgba(0, 47, 123, 0.05);
  padding: 28px 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.rfLabUI__numRow {
  display: flex;
  align-items: center;
  gap: 12px;
}

.rfLabUI__labNumBadge {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  background: #002f7b;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: #fff;
}

.rfLabUI__labMeta {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.rfLabUI__labEyebrow {
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: #00ab84;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin: 0;
}

.rfLabUI__labTag {
  display: inline-flex;
  padding: 4px 10px;
  background: rgba(0, 171, 132, 0.08);
  border: 1px solid rgba(0, 171, 132, 0.25);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  color: #00ab84;
  align-self: flex-start;
}

.rfLabUI__activeDot {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  background: #00ab84;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(0, 171, 132, 0.2);
  animation: rfActivePulse 2s ease-in-out infinite;
}

.rfLabUI__labName {
  font-size: 22px;
  font-weight: 700;
  color: #002f7b;
  line-height: 1.25;
  letter-spacing: 0.03em;
  margin: 0;
}

.rfLabUI__panelBody {
  flex-shrink: 0;
  padding: 20px 28px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.rfLabUI__labDesc {
  font-size: 13.5px;
  line-height: 1.85;
  color: #334466;
  letter-spacing: 0.03em;
  margin: 0;
}

.rfLabUI__stats {
  display: flex;
  border-top: 1px solid rgba(0, 47, 123, 0.05);
  border-bottom: 1px solid rgba(0, 47, 123, 0.05);
}

.rfLabUI__stat {
  flex: 1;
  padding: 14px 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.rfLabUI__stat:not(:last-child) {
  padding-right: 20px;
  border-right: 1px solid rgba(0, 47, 123, 0.08);
}

.rfLabUI__stat:not(:first-child) {
  padding-left: 20px;
}

.rfLabUI__statLabel {
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: #00ab84;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin: 0;
}

.rfLabUI__statValue {
  font-size: 12px;
  font-weight: 700;
  color: #002f7b;
  margin: 0;
}

.rfLabUI__panelPhoto {
  flex: 1;
  min-height: 0;
  position: relative;
  overflow: hidden;
}

.rfLabUI__panelPhoto > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.rfLabUI__photoLabel {
  position: absolute;
  top: 16px;
  left: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 47, 123, 0.8);
  padding: 6px 12px;
  border-radius: 6px;
  z-index: 1;
}

.rfLabUI__photoLabelDot {
  display: block;
  width: 6px;
  height: 6px;
  background: #00ab84;
  border-radius: 50%;
  flex-shrink: 0;
}

.rfLabUI__photoLabelText {
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.rfLabTabs {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
  flex-wrap: wrap;
}

.rfLabTab {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 14px 20px;
  border-radius: 12px;
  border: 1px solid rgba(0, 47, 123, 0.1);
  background: #f7fbfd;
  cursor: pointer;
  text-align: left;
  transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.rfLabTab:hover {
  border-color: rgba(0, 171, 132, 0.4);
}

.rfLabTab.is-active {
  background: #002f7b;
  border-color: #002f7b;
  box-shadow: 0 4px 8px rgba(0, 47, 123, 0.2);
}

.rfLabTab__numBadge {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: rgba(0, 47, 123, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 11px;
  font-weight: 800;
  color: rgba(0, 47, 123, 0.5);
  transition: background 0.2s, color 0.2s;
}

.rfLabTab.is-active .rfLabTab__numBadge {
  background: #00ab84;
  color: #fff;
}

.rfLabTab__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.rfLabTab__en {
  display: block;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: rgba(0, 47, 123, 0.38);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: color 0.2s;
}

.rfLabTab.is-active .rfLabTab__en {
  color: #00ab84;
}

.rfLabTab__jp {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: #002f7b;
  transition: color 0.2s;
}

.rfLabTab.is-active .rfLabTab__jp {
  color: #fff;
}

@media screen and (max-width: 768px) {
  .rfLabUI__header {
    flex-direction: column;
    gap: 16px;
  }
  .rfLabUI__headerLead {
    text-align: left;
  }
  .rfLabUI {
    flex-direction: column;
    height: auto;
  }
  .rfLabUI__map {
    width: 100%;
    /* SVGのviewBox比率(約1.23)より縦長にして上部を意図的にレターボックスし、
       左上のFACILITY MAPバッジとLAB02ピンが重ならないようにする */
    height: 380px;
  }
  /* 案内テキストは、幅が狭いモバイルでは複数のピン（LAB03・管理研究棟等）と
     どうしても重なってしまうため非表示にし、FACILITY MAPバッジのみ残す */
  .rfLabUI__mapHint {
    display: none;
  }
  .rfLabUI__panel {
    height: 520px;
  }
  .rfLabUI__labName {
    font-size: 18px;
  }
  .rfLabUI__panelHeader {
    padding: 20px;
  }
  .rfLabUI__panelBody {
    padding: 16px 20px;
  }
  .rfLabUI__photoLabel {
    display: none;
  }
  .rfLabTabs {
    gap: 8px;
  }
  .rfLabTab {
    padding: 10px 14px;
  }
  .rfLabTab__jp {
    font-size: 11px;
  }
  .rfZcbCard {
    flex-direction: column;
    align-items: flex-start;
  }
}
.rfEquipSelector {
  background: #fff;
  border: 1px solid rgba(0, 47, 123, 0.1);
  border-radius: 24px;
  overflow: hidden;
  margin-top: 40px;
}

.rfEquipSelector__main {
  padding: 24px;
}

.rfEquipSelector__item {
  display: none;
  gap: 24px;
  align-items: flex-start;
}

.rfEquipSelector__item.is-active {
  display: flex;
}

.rfEquipSelector__photo {
  flex-shrink: 0;
  width: 55%;
  border-radius: 16px;
  overflow: hidden;
}

.rfEquipSelector__photo > img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  display: block;
}

.rfEquipSelector__photo--portrait > img {
  object-fit: contain;
  background: #f4f7fa;
}

.rfEquipSelector__swiper {
  border-radius: 16px;
  overflow: hidden;
}

.rfEquipSelector__swiper .swiper-slide img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  display: block;
}

.rfEquipSelector__photo--portrait .rfEquipSelector__swiper .swiper-slide img {
  object-fit: contain;
  background: #f4f7fa;
}

.rfEquipSelector__swiper .swiper-button-prev,
.rfEquipSelector__swiper .swiper-button-next {
  width: 44px;
  height: 44px;
  margin-top: -22px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 12px rgba(0, 47, 123, 0.2);
  color: #002f7b;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rfEquipSelector__swiper .swiper-button-prev::after,
.rfEquipSelector__swiper .swiper-button-next::after {
  display: none;
}

.rfEquipSelector__swiper .swiper-button-prev svg,
.rfEquipSelector__swiper .swiper-button-next svg {
  width: 18px;
  height: 18px;
  stroke: #002f7b;
  flex-shrink: 0;
}

.rfEquipSelector__detail {
  flex: 1;
  min-width: 0;
  padding-top: 8px;
}

.rfEquipSelector__num {
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 64px;
  font-weight: 800;
  color: #00ab84;
  line-height: 1;
  letter-spacing: 0.03em;
  margin-top: 0;
  margin-bottom: 20px;
}

.rfEquipSelector__name {
  font-size: 22px;
  font-weight: 700;
  color: #002f7b;
  line-height: 1.35;
  margin-top: 0;
  margin-bottom: 20px;
}

.rfEquipSelector__use {
  font-size: 15px;
  line-height: 1.8;
  color: #333;
  margin: 0;
}

.rfEquipSelector__thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  padding: 20px 24px 24px;
  border-top: 1px solid rgba(0, 47, 123, 0.06);
}

.rfEquipSelector__thumb {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px;
  border: 1px solid rgba(0, 47, 123, 0.12);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  text-align: left;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.rfEquipSelector__thumb:hover {
  border-color: rgba(0, 171, 132, 0.45);
}

.rfEquipSelector__thumb.is-active {
  background: #00ab84;
  border-color: #00ab84;
}

.rfEquipSelector__thumbImg {
  border-radius: 8px;
  overflow: hidden;
  height: 90px;
}

.rfEquipSelector__thumbImg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.rfEquipSelector__thumbMeta {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 0 2px 2px;
}

.rfEquipSelector__thumbNum {
  display: block;
  font-family: "Manrope", "Helvetica Neue", sans-serif;
  font-size: 11px;
  font-weight: 800;
  color: #002f7b;
  line-height: 1;
  letter-spacing: 0.1em;
  transition: color 0.2s;
}

.rfEquipSelector__thumb.is-active .rfEquipSelector__thumbNum {
  color: rgba(255, 255, 255, 0.75);
}

.rfEquipSelector__thumbName {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: #002f7b;
  line-height: 1.4;
  transition: color 0.2s;
}

.rfEquipSelector__thumb.is-active .rfEquipSelector__thumbName {
  color: #fff;
}

@media screen and (max-width: 768px) {
  .rfEquipSelector__item.is-active {
    flex-direction: column;
  }
  .rfEquipSelector__photo {
    width: 100%;
  }
  .rfEquipSelector__num {
    font-size: 44px;
    margin-bottom: 14px;
  }
  .rfEquipSelector__name {
    font-size: 18px;
    margin-bottom: 14px;
  }
  .rfEquipSelector__thumbs {
    grid-template-columns: repeat(2, 1fr);
    padding: 16px;
    gap: 10px;
  }
  .rfEquipSelector__thumbImg {
    height: 70px;
  }
}
.hosou-map-wrap {
  max-width: 976px;
  margin: 48px auto 0;
  padding: 0;
}

.hosou-map-head {
  margin-bottom: 16px;
}

.hosou-map-title {
  font-size: 18px;
  font-weight: 700;
  color: #002F7B;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}

.hosou-map-sub {
  font-size: 14px;
  color: #fff;
}

.hosou-map {
  position: relative;
  width: 100%;
  aspect-ratio: 976/928;
  border: 1px solid #e4e2de;
  border-radius: 8px;
}

.hosou-map-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

.hosou-hot {
  position: absolute;
  width: 5%;
  height: 5%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  cursor: pointer;
  z-index: 2;
}

.hosou-hot::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid transparent;
  background: transparent;
  transition: border-color 0.12s, background 0.12s;
}

.hosou-hot:hover {
  z-index: 5;
}

.hosou-hot:hover::after {
  border-color: #00ab84;
  background: rgba(0, 171, 132, 0.18);
}

.hosou-tip {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: #1c1b19;
  color: #fff;
  padding: 10px;
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
  pointer-events: none;
  z-index: 10;
}

.hosou-tip[hidden] {
  display: none;
}

.hosou-tip-img {
  width: 300px;
  max-width: 100%;
  height: 194px;
  border-radius: 4px;
  background-color: #cccccc;
  background-size: cover;
  background-position: center;
  margin-bottom: 8px;
}

.hosou-tip-img[hidden] {
  display: none;
}

.hosou-tip-body {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.hosou-tip-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 11px;
  background: #fff;
  color: #1c1b19;
  font-size: 12px;
  font-weight: 700;
}

.hosou-tip-name {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}

@media screen and (max-width: 768px) {
  .hosou-map-wrap {
    margin-top: 32px;
  }
  .hosou-hot {
    width: 7%;
    height: 7%;
  }
  .hosou-tip-img {
    width: 150px;
    height: 96px;
  }
}
.rfConceptSec__tdWrap {
  margin-top: 8px;
}

.rfConceptSec__tdHeading {
  text-align: center;
  font-size: clamp(14px, 1.6vw, 18px);
  font-weight: 700;
  color: #002F7B;
  letter-spacing: 0.06em;
  line-height: 1.7;
  margin-bottom: 40px;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "Yu Gothic", sans-serif;
}

.rfConceptSec__tdIframe {
  display: block;
  width: 100%;
  aspect-ratio: 1120/1000;
  border: none;
  max-width: 900px;
  margin: 0 auto;
}

@media screen and (max-width: 768px) {
  .rfConceptSec__tdHeading {
    font-size: 13px;
    margin-bottom: 24px;
    letter-spacing: 0.04em;
  }
}
/*====================================================================
communitySec — 地域社会とともに
====================================================================*/
.communitySec {
  background-color: #fff;
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .communitySec {
    padding: 48px 0 80px;
  }
}
.communitySec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .communitySec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.communitySec__lead {
  margin-bottom: 64px;
  padding: 32px 40px;
  background: #F4F7FA;
  border-radius: 8px;
}
@media screen and (max-width: 768px) {
  .communitySec__lead {
    padding: 24px 20px;
    margin-bottom: 40px;
  }
}
.communitySec__leadText {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .communitySec__leadText {
    font-size: 14px;
    line-height: 1.8;
  }
}
.communitySec__leadText {
  color: #333;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .communitySec__leadText {
    font-size: 14px;
    text-align: left;
  }
}
.communitySec__body {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 0 60px;
  align-items: start;
}
@media screen and (max-width: 1000px) {
  .communitySec__body {
    grid-template-columns: 200px 1fr;
    gap: 0 32px;
  }
}
@media screen and (max-width: 768px) {
  .communitySec__body {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
}
.communitySec__sidebar {
  position: sticky;
  top: 110px;
  align-self: start;
}
@media screen and (max-width: 768px) {
  .communitySec__sidebar {
    position: static;
    width: 100%;
    margin-bottom: 32px;
  }
}
.communitySec__content {
  min-width: 0;
}
.communitySec__empty {
  text-align: center;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .communitySec__empty {
    font-size: 14px;
    line-height: 1.8;
  }
}
.communitySec__empty {
  color: #666666;
  padding: 80px 0;
}

/*====================================================================
communityGroup — 年度グループ（デフォルト非表示、is-active のみ表示）
====================================================================*/
.communityGroup {
  display: none;
}
.communityGroup.is-active {
  display: block;
}
.communityGroup__heading {
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .communityGroup__heading {
    margin-bottom: 20px;
  }
}

.communitySec .worksPageSec__cardDesc {
  display: block;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  -webkit-box-orient: unset;
  overflow: visible;
}
.communitySec .worksPageSec__cardThumbs {
  order: 0;
  margin-bottom: 0;
}

/*====================================================================
.officersPageSec
====================================================================*/
.officersPageSec {
  padding: 80px 0 120px;
}
@media screen and (max-width: 768px) {
  .officersPageSec {
    padding: 40px 0 72px;
  }
}
.officersPageSec__inner {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 768px) {
  .officersPageSec__inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.officersPageSec__date {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .officersPageSec__date {
    font-size: 14px;
    line-height: 1.8;
  }
}
.officersPageSec__date {
  text-align: right;
  color: #666666;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .officersPageSec__date {
    font-size: 14px;
    margin-bottom: 16px;
  }
}
.officersPageSec__block + .officersPageSec__block {
  margin-top: 56px;
}
@media screen and (max-width: 768px) {
  .officersPageSec__block + .officersPageSec__block {
    margin-top: 40px;
  }
}
.officersPageSec__blockTitle {
  display: flex;
  align-items: center;
  padding: 8px 24px;
  background-color: #EDF3F7;
  border-left: 4px solid #002F7B;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .officersPageSec__blockTitle {
    font-size: 14px;
    line-height: 1.8;
  }
}
.officersPageSec__blockTitle {
  font-size: 24px;
  font-weight: bold;
  color: #002F7B;
  line-height: 1.5;
  margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
  .officersPageSec__blockTitle {
    padding: 10px 16px 10px 20px;
    font-size: 18px;
    margin-bottom: 16px;
  }
}
.officersPageSec__tableWrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.officersPageSec__table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #ccc;
  font-size: 15px;
  line-height: 1.75;
  color: #333;
}
@media screen and (max-width: 768px) {
  .officersPageSec__table {
    font-size: 14px;
    line-height: 1.65;
    min-width: 480px;
  }
}
.officersPageSec__table th,
.officersPageSec__table td {
  border: 1px solid #ccc;
  padding: 14px 20px;
  text-align: left;
  vertical-align: middle;
}
@media screen and (max-width: 768px) {
  .officersPageSec__table th,
  .officersPageSec__table td {
    padding: 12px 14px;
  }
}
.officersPageSec {
  /* colgroup列幅 — 両テーブルで共通 */
}
.officersPageSec__col1 {
  width: 25%;
}
.officersPageSec__col2 {
  width: 25%;
}
.officersPageSec__col3 {
  width: 50%;
}
.officersPageSec {
  /* 大分類列（取締役 / 監査役） */
}
.officersPageSec__tableCategory {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .officersPageSec__tableCategory {
    font-size: 14px;
    line-height: 1.8;
  }
}
.officersPageSec__tableCategory {
  background: #f8f7f5;
  font-weight: bold;
  white-space: nowrap;
  vertical-align: middle;
}
@media screen and (max-width: 768px) {
  .officersPageSec__tableCategory {
    font-size: 14px;
  }
}
.officersPageSec {
  /* 役職列（取締役・監査役テーブル、および執行役員テーブルの役職列） */
}
.officersPageSec__tableRole {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .officersPageSec__tableRole {
    font-size: 14px;
    line-height: 1.8;
  }
}
.officersPageSec__tableRole {
  background: #fff;
  font-weight: bold;
  white-space: nowrap;
  vertical-align: top;
}
@media screen and (max-width: 768px) {
  .officersPageSec__tableRole {
    font-size: 14px;
  }
}
.officersPageSec {
  /* 氏名列 */
}
.officersPageSec__tableNames {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .officersPageSec__tableNames {
    font-size: 14px;
    line-height: 1.8;
  }
}
.officersPageSec__tableNames {
  background: #fff;
  vertical-align: top;
  white-space: nowrap;
  line-height: 2;
}
@media screen and (max-width: 768px) {
  .officersPageSec__tableNames {
    font-size: 14px;
    line-height: 1.9;
  }
}
.officersPageSec {
  /* 担当列（執行役員テーブルのみ） */
}
.officersPageSec__tableDuty {
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: left;
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .officersPageSec__tableDuty {
    font-size: 14px;
    line-height: 1.8;
  }
}
.officersPageSec__tableDuty {
  background: #fff;
  vertical-align: top;
  line-height: 1.75;
  word-break: keep-all;
}
@media screen and (max-width: 768px) {
  .officersPageSec__tableDuty {
    font-size: 14px;
  }
}
.officersPageSec {
  /* 執行役員テーブル */
}
.officersPageSec__table--exec thead th {
  background: #f8f7f5;
  font-weight: bold;
  vertical-align: middle;
  white-space: nowrap;
}
.officersPageSec__table--exec .officersPageSec__tableRole {
  vertical-align: middle;
}

/*# sourceMappingURL=style.css.map */
