@charset "UTF-8";
/* compiled: _a_layout.scss */
/* Existing styles (abbreviated for brevity) */
html.has-scroll-smooth,
body.has-scroll-smooth {
  overflow: hidden;
}

/* Locomotive の固定は has-scroll-smooth の時だけ。通常時（no-loco含む）には固定しない */
body.has-scroll-smooth #js-scroll {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}

/* no-loco page safety override */
body[data-no-loco="1"] {
  overflow: auto !important;
}

body[data-no-loco="1"] #js-scroll {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  width: 100% !important;
  height: auto !important;
}

.top-bg, .top-bg2, .top-bg3, .top-bg4, .top-bg5 {
  position: relative;
}

.bg_washi {
  background-image: url("../img/backcolor.jpg");
  background-repeat: repeat;
  background-position: left top;
}

/* Other background styles */
/*.imgWrap2 {
  overflow: hidden !important;
  cursor: pointer !important;
}


.imgWrap2 img {
  display: block;
  object-fit: cover;
  width: 100% !important;
  height: 100% !important;
  opacity: 0.2;
  filter: blur(8px);
  will-change: filter;
}

.imgWrap2:hover .mask {
  opacity: 0 !important;
}

.imgWrap2, .imgWrap2 img, .imgWrap2 .mask {
  transition-duration: 0.5s;
}

.imgWrap2:hover img {
  transform: scale(1.1);
  opacity: 0.15;
  filter: blur(4px) grayscale(1);
}
*/
.locked::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  display: inline-block;
  width: 15%;
  height: auto;
  background-image: url(../img/padlock.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: 0.1;
  transition-duration: 1s;
}

/*.imgWrap2:hover.locked::after {
  opacity: 1 !important;
}*/
/* Soft hover effect for .mask */
.mask {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  opacity: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
}

.imgWrap {
  overflow: hidden !important;
  cursor: pointer !important;
}

.imgWrap.bg-w {
  background: rgb(255, 255, 255);
}

.imgWrap img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100% !important;
  height: 100% !important;
  mix-blend-mode: multiply;
  opacity: 1;
}

.imgWrap:hover {
  background: rgba(0, 0, 0, 0.3);
}

.imgWrap:hover .mask {
  opacity: 1;
  transform: scale(1.02); /* Slightly smaller scale for a subtle effect */
}

.imgWrap, .imgWrap img, .imgWrap:hover .mask {
  transition-duration: 0.5s;
}

.imgWrap:hover img {
  transform: scale(1.05);
  opacity: 0.9;
}

/* Additional styles */
.morelink {
  margin-top: 150px;
  width: 100%;
  text-align: center;
  margin-bottom: 20px;
}

.more_link_bt img {
  display: block;
}

.inherit {
  font-family: inherit !important;
  font-weight: inherit !important;
}

.inherit p, .inherit a, .inherit article.inherit nav, .inherit h2, .inherit h1, .inherit div, .inherit span {
  font-family: inherit;
  font-weight: inherit !important;
}

/*ヘッダー*/
.site-header {
  transition: transform 0.3s ease-in-out, background-color 0.3s ease-in-out;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000;
  transform: translateY(0);
  background-color: rgba(255, 255, 255, 0.7); /* 半透明の白 */
}

.site-header.fix-position {
  transform: translateY(0);
  /* transform: translateY(20%);*/
}

.site-header.fix-color {
  background-color: rgba(255, 255, 255, 0.6); /* 半透明の白 */
}

.site-header.hidden {
  transform: translateY(-100%);
}

/*ターンテキスト*/
.turn-text {
  opacity: 0;
  transform: translateY(10px) rotateY(80deg); /* 初期状態：下に30px移動しY軸に対して60度回転 */
  transition: opacity 0.8s ease-out, transform 0.8s ease-out; /* イージングを調整 */
}

.turn-text.show {
  opacity: 1;
  transform: translateY(0) rotateY(0deg); /* 元の位置に戻る */
  transition-delay: 0.5s; /* 遅延時間を追加 */
}

/*サムネール表示*/
.image-container {
  position: relative;
  overflow: hidden;
}

.image-overlay {
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  transform: skewX(0deg);
  transition: none; /* 初期状態ではアニメーションを無効に */
}

.image-container:hover .image-overlay {
  animation: slideSkewIn 0.5s ease-out forwards;
}

.image-container:not(:hover) .image-overlay {
  animation: slideSkewOut 0.5s ease-in forwards;
}

@keyframes slideSkewIn {
  0% {
    left: -100%;
    transform: skewX(0deg);
    opacity: 0;
  }
  20% {
    transform: skewX(12deg);
  }
  30% {
    transform: skewX(6deg);
    opacity: 0;
  }
  100% {
    left: 0;
    transform: skewX(0deg);
    opacity: 1;
  }
}
@keyframes slideSkewOut {
  0% {
    left: 0;
    transform: skewX(0deg);
  }
  40% {
    left: 0;
    transform: skewX(0deg);
  }
  100% {
    left: 100%;
    transform: skewX(0deg);
    opacity: 0;
  }
}
.image-overlay .overlay-text {
  color: white;
  font-size: 20px;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 0.5s ease;
}

.image-container:hover .overlay-text {
  animation: fadeInText 0.5s ease-in-out forwards;
  animation-delay: 0.5s; /* image-overlayのアニメーション時間と一致させる */
  opacity: 0; /* 初期状態で透明 */
}

@keyframes fadeInText {
  to {
    opacity: 1; /* 表示 */
  }
}
/*top＿エフェクト*/
.fade-in-effect {
  opacity: 0;
  animation: fadeIn 2s ease-out 0.5s forwards;
}

.fade-out-effect {
  opacity: 1;
  animation: fadeOut 2s ease-out 0.5s forwards;
}

#fade-in-section {
  opacity: 0;
  animation: fadeIn 1.5s ease-out forwards;
}

.fade-in-brightness {
  filter: brightness(4);
  animation: brighten 3s ease-out 0.5s forwards;
  /*mix-blend-mode:multiply;*/
}

.custom-position-relative {
  position: relative;
}

.custom-position-relative::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%; /* グラデーションの高さ */
  background: linear-gradient(to top, rgb(255, 255, 255), rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.4), transparent);
  z-index: 1;
  pointer-events: none;
  mix-blend-mode: overlay;
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0.15;
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes brighten {
  from {
    filter: brightness(4);
  }
  to {
    filter: brightness(1.15);
  }
}
.lightbox-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
  overflow: auto; /* スクロールを可能に */
}

.lightbox-content {
  position: relative;
  display: flex;
  flex-direction: column; /* 縦方向に配置 */
  justify-content: center;
  align-items: center;
  max-width: 90%;
  max-height: 80%;
}

.lightbox-content img {
  display: block;
  max-width: 100%;
  max-height: 80vh;
  -o-object-fit: contain;
     object-fit: contain;
  opacity: 0; /* 初期状態で透明 */
  transition: opacity 0.5s ease-in-out; /* フェードインのアニメーション */
}

.lightbox-visible {
  opacity: 1; /* 表示時に不透明にする */
}

.lightbox-nav {
  position: absolute;
  top: 50%;
  width: 30px;
  height: 30px;
  background-color: rgb(255, 255, 255);
  cursor: pointer;
  text-align: center;
  line-height: 30px;
  font-size: 18px;
  border-radius: 50%;
}

/*****/
.lightbox-nav::before {
  content: "";
  width: 10px;
  height: 10px;
  border-top: solid 2px #5070e3;
  border-right: solid 2px #5070e3;
  position: absolute;
  left: 10px;
  top: 10px;
}

.lightbox-nav.lightbox-prev::before {
  transform: rotate(-135deg);
  left: 11px;
}

.lightbox-nav.lightbox-next::before {
  transform: rotate(45deg);
  left: 8px;
}

/*****/
.lightbox-prev {
  left: 20px;
}

.lightbox-next {
  right: 20px;
}

.lightbox-caption {
  margin-top: 10px;
  color: white !important;
  font-size: 16px;
  text-align: center;
}

/*@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;600;700&family=Sawarabi+Gothic&family=Source+Code+Pro:wght@400;500;600;700&family=Lato:wght@100;300;400&display=swap');



@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap');


*/
.cormorant-garamond-light {
  font-family: "Cormorant Garamond", serif !important;
  font-weight: 300 !important;
  font-style: normal !important;
}

.cormorant-garamond-regular {
  font-family: "Cormorant Garamond", serif !important;
  font-weight: 400 !important;
  font-style: normal !important;
}

.cormorant-garamond-medium {
  font-family: "Cormorant Garamond", serif !important;
  font-weight: 500 !important;
  font-style: normal !important;
}

.cormorant-garamond-semibold {
  font-family: "Cormorant Garamond", serif !important;
  font-weight: 600 !important;
  font-style: normal !important;
}

.cormorant-garamond-bold {
  font-family: "Cormorant Garamond", serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
}

.cormorant-garamond-light-italic {
  font-family: "Cormorant Garamond", serif;
  font-weight: 300;
  font-style: italic;
}

.cormorant-garamond-regular-italic {
  font-family: "Cormorant Garamond", serif;
  font-weight: 400;
  font-style: italic;
}

.cormorant-garamond-medium-italic {
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  font-style: italic;
}

.cormorant-garamond-semibold-italic {
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  font-style: italic;
}

.cormorant-garamond-bold-italic {
  font-family: "Cormorant Garamond", serif;
  font-weight: 700;
  font-style: italic;
}

.lato {
  font-family: "Lato", sans-serif !important;
  font-weight: 100;
}

.sawarabi {
  font-family: "Sawarabi Gothic", sans-serif !important;
}

.noto {
  font-family: "Noto Sans JP", sans-serif !important;
}

.serif {
  font-family: "Noto Serif JP", serif !important;
}

.code-pro {
  font-family: "Source Code Pro", monospace !important;
}

.thin {
  font-weight: 100 !important;
}

.light {
  font-weight: 300 !important;
}

.regular {
  font-weight: 400;
}

.medium {
  font-weight: 500;
}

.semi-bold {
  font-weight: 600;
}

.bold {
  font-weight: 700;
}

/*@font-face {
    font-family: Neue Montreal;
    src: url(../fonts/NeueMontreal-Medium.woff2) format("woff2"), url(../fonts/NeueMontreal-Medium.woff) format("woff");
    font-weight: 500;
    font-style: normal
}*/
h1, h2, h3, p {
  color: inherit;
  /*    font-family: 'Noto Sans JP', sans-serif;*/
  line-height: 1.5;
  text-align: justify;
  text-justify: distribute;
}

div, p {
  color: inherit !important;
  font-size: inherit !important;
}

.my-gallery-cont {
  position: relative;
  display: flex;
}

.my-gallery-cont .wp-block-gallery {
  width: auto !important;
}

.my-gallery-cont .wp-block-image {
  position: relative !important; /* 子要素を絶対配置するために必要 */
  /*width: 100%!important;*/ /* 親要素の幅を100%に設定 */
  aspect-ratio: 1/1 !important; /* 親要素のアスペクト比を1:1に設定 */
}

.wp-block-image .columns-2 {
  width: 50%;
}

.wp-block-image .columns-3 {
  width: 33.3333333333%;
}

.wp-block-image .columns-4 {
  width: 25%;
}

.wp-block-image .columns-5 {
  width: 20%;
}

.wp-block-image .columns-6 {
  width: 16.6666666667%;
}

.wp-block-image .columns-7 {
  width: 14.2857142857%;
}

.wp-block-image .columns-8 {
  width: 12.5%;
}

.wp-block-image a {
  display: block !important; /* リンクをブロック要素にする */
  width: 100% !important; /* 親要素の幅に合わせる */
  height: 100% !important; /* 親要素の高さに合わせる */
  position: absolute !important; /* 親要素内で絶対配置 */
  top: 0 !important;
  left: 0 !important;
  aspect-ratio: 1/1 !important; /* 親要素のアスペクト比を1:1に設定 */
}

.wp-block-image a img {
  display: block !important; /* リンクをブロック要素にする */
  width: 100% !important; /* 親要素の幅に合わせる */
  height: auto !important; /* 親要素の高さに合わせる */
  position: absolute !important; /* 親要素内で絶対配置 */
  top: 0 !important;
  left: 0 !important;
  -o-object-fit: cover !important;
     object-fit: cover !important;
  aspect-ratio: 1/1 !important;
}

/**********/
/**********/
/**********/
.gallery-item img {
  position: absolute;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/*========= ローディング画面のためのCSS ===============*/
/*#splash {
	position: fixed;
	width: 100%;
	height: 100%;
	background-image: url("../img/backcolor.jpg");
	z-index: 9999999;
	text-align:center;
	color:#fff;
}

#splash-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
*/
/*========= 画面遷移のためのCSS ===============*/
/*画面遷移アニメーション*/
.splashbg {
  display: none;
}

/*bodyにappearクラスがついたら出現*/
/*body.appear .splashbg{
    display: block;
    content: "";
    position:fixed;
	z-index: 999;
    width: 100%;
    height: 100vh;
    top: 0;
	left: 0;
    transform: scaleX(0);
	background-color: #000;


	animation-name:PageAnime;
	animation-duration:0.6s;
	animation-delay: 0.3s;
	animation-timing-function:ease-in-out;
	animation-fill-mode:forwards;
	opacity:1;
}*/
/*background-color: #F3F4F1;*/
/*background-image: url("../img/backcolor.jpg");*/
body.appear .splashbg {
  display: block;
  content: "";
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  transform: scaleX(0);
  /*background-color: #F3F4F1;*/
  background-color: #F3F4F1; /*伸びる背景色の設定*/
  animation-name: PageAnime;
  animation-duration: 1.2s;
  animation-delay: 0.1s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
}

@keyframes PageAnime {
  0% {
    transform-origin: left;
    transform: scaleX(0);
  }
  59.999% {
    transform-origin: left;
    transform: scaleX(1);
  }
  60% {
    transform-origin: right;
  }
  100% {
    transform-origin: right;
    transform: scaleX(0);
  }
}
#main_content {
  opacity: 0;
}

.page_cover.hide {
  display: none;
}

/*bodyにappearクラスがついたら出現*/
/*body.appear .page_cover.start{*/
.page_cover.start {
  animation-name: PageAnimeAppear;
  animation-duration: 0.5s;
  animation-delay: 0s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in-out;
}

#main_content.start {
  animation-name: PageAnimeAppear;
  animation-duration: 0.5s;
  animation-delay: 0s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in-out;
}

.page_cover.hide {
  display: none;
}

@keyframes PageAnimeAppear {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.grid {
  /* display: flex;
   flex-wrap: wrap;*/
  /*margin: -10px;*/
}

.item {
  display: block;
  position: absolute;
  /* width: 300px;*/
  /*margin: 10px;*/
  z-index: 1;
  color: #fff;
}

.item.muuri-item-dragging {
  z-index: 3;
}

.item.muuri-item-releasing {
  z-index: 2;
}

.item.muuri-item-hidden {
  z-index: 0;
}

.item-content {
  position: relative;
  width: 100%;
  height: 100%;
}

.item-content img {
  width: 100%;
  height: auto;
}

/* ページネーション全体のスタイル */
.pagination {
  display: flex; /* 水平方向に並べる */
  gap: 2px; /* 各要素間のスペース */
  justify-content: center; /* コンテンツを中央揃え */
  padding: 10px;
  z-index: 1000; /* レイヤーの順序 */
}

/* 現在のページ番号のスタイル */
.pagination .current {
  font-weight: bold; /* 太字にする */
  color: #000 !important; /* 文字の色 */
  padding: 8px 12px;
}

/* 通常のページ番号リンクのスタイル */
.pagination .page-numbers {
  text-decoration: none; /* 下線を消す */
  color: #0073e6; /* 文字色 */
  padding: 8px 12px;
  border-radius: 4px;
  transition: background-color 0.3s ease; /* ホバー時の背景色変更を滑らかに */
}

.pagination a {
  color: #999 important; /* 文字色 */
}

/* ページ番号リンクのホバースタイル */
.pagination a.page-numbers:hover {
  background-color: #e0e0e0; /* ホバー時の背景色 */
}

/* 「次へ」リンクのスタイル */
.pagination .next, .pagination .prev {
  color: #0073e6;
  padding: 8px 12px;
  border-radius: 4px;
}

/* 「次へ」リンクのホバースタイル */
.pagination .next:hover {
  background-color: #d9d9d9;
}

/* Smooth touch scrolling & hide native scrollbar */
#gallery {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

#gallery::-webkit-scrollbar {
  display: none;
}

/* Make Bootstrap grid items behave as horizontal slider cards */
#galleryTrack > [class*=col-] {
  flex: 0 0 auto; /* do not shrink; width is content-based */
  width: auto; /* override .col-* basis */
  min-width: 220px; /* base card width on small screens */
}

@media (min-width: 768px) {
  #galleryTrack > [class*=col-] {
    min-width: 260px;
  }
}
/* Optional: nicer snapping (can be commented out if不要) */
#gallery {
  scroll-snap-type: x mandatory;
}

#galleryTrack > [class*=col-] {
  scroll-snap-align: start;
}

/* Pointer-drag UX */
#gallery {
  cursor: grab;
}

#gallery.is-dragging {
  cursor: grabbing;
}

#gallery.is-dragging, #gallery.is-dragging * {
  -webkit-user-select: none;
  -moz-user-select: none;
       user-select: none;
}

/* Disable native image drag so pointer-drag works even over images */
#galleryTrack img {
  -webkit-user-drag: none;
  user-drag: none;
}

/* Overlay arrows */
.gallery-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  border: none;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 0;
}

.gallery-nav-btn:hover {
  background: rgb(255, 255, 255);
}

.gallery-nav-btn:active {
  transform: translateY(-50%) scale(0.98);
}

.gallery-nav-btn.btn-prev {
  left: 8px;
}

.gallery-nav-btn.btn-next {
  right: 8px;
}

/* While dragging, block pointer events on links to avoid accidental navigation */
#gallery.is-dragging a {
  pointer-events: none;
}

/* Temporarily disable snapping while programmatic scroll (buttons) */
#gallery.no-snap {
  scroll-snap-type: none !important;
}

@media (max-width: 576px) {
  /* gap-3 = 1rem; two gaps exist between 3 items */
  #galleryTrack > [class*=col-] {
    min-width: 0; /* override base min-width */
    width: auto; /* don't force fixed width */
    flex: 0 0 calc((100% - 2rem) / 3); /* 3 columns minus two gaps */
  }
}
#overlay-button {
  position: absolute;
  right: 0.5em;
  top: 0.5em;
  padding: 26px 11px;
  z-index: 5;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

#overlay-button span {
  height: 4px;
  width: 35px;
  border-radius: 2px;
  background-color: #ccc;
  position: relative;
  display: block;
  transition: all 0.2s ease-in-out;
}

#overlay-button span:before {
  top: -10px;
  visibility: visible;
}

#overlay-button span:after {
  top: 10px;
}

#overlay-button span:before, #overlay-button span:after {
  height: 4px;
  width: 35px;
  border-radius: 2px;
  background-color: #ccc;
  position: absolute;
  content: "";
  transition: all 0.2s ease-in-out;
}

/*#overlay-button:hover span, #overlay-button:hover span:before, #overlay-button:hover span:after {
  background: #ccc;
}*/
input[type=checkbox] {
  display: none;
}

input[type=checkbox]:checked ~ #overlay {
  visibility: visible;
}

input[type=checkbox]:checked ~ #overlay-button:hover span, input[type=checkbox]:checked ~ #overlay-button span {
  background: transparent;
}

input[type=checkbox]:checked ~ #overlay-button span:before {
  transform: rotate(45deg) translate(7px, 7px);
}

input[type=checkbox]:checked ~ #overlay-button span:after {
  transform: rotate(-45deg) translate(7px, -7px);
}

#overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  min-height: 100vh;
  background: #ec6451;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.5s ease;
  z-index: 2;
}

/* チェックされた時にオーバーレイを表示 */
#overlay-input:checked ~ #overlay {
  visibility: visible;
  opacity: 1;
}

#overlay ul {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  text-align: center;
  height: 100vh;
  padding-left: 0;
  list-style-type: none;
}

#overlay ul li {
  padding: 1em;
}

#overlay ul li a {
  color: #fff;
  text-decoration: none;
  font-size: 1.5em;
}

#overlay ul li a:hover {
  color: #000 !important;
}

.fade-in-up {
  opacity: 0;
  transform: translateY(0px);
  transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
  pointer-events: none; /* 初期状態でマウスイベントを無効にする */
}

.fade-in-up.show {
  opacity: 1;
  transform: translateY(0);
}

.fade-in-up.event {
  pointer-events: auto; /* 初期状態でマウスイベントを無効にする */
}

.fade-in-up img {
  opacity: 0;
  transform: translateY(0px) rotate(0deg) skewX(30deg);
  transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1), transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.fade-in-up.show img {
  opacity: 1;
  transform: translateY(0) rotate(0) skewX(0);
}

.fade-in-up:hover img {
  transform: scale(1.1);
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.image-container {
  position: relative;
  background-color: rgb(249, 249, 249);
  aspect-ratio: 1/1;
  overflow: hidden;
  cursor: pointer;
  transition-duration: 0.5s;
}

.image-container img {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
  transition-duration: 0.5s;
  mix-blend-mode: multiply;
}

.image-container:hover {
  background: rgba(0, 0, 0, 0.4);
}

.image-container:hover .mask {
  opacity: 1;
  background-color: rgba(0, 0, 0, 0.5);
}

ul {
  list-style: none;
}

.noZ {
  -webkit-transform: translateZ(0) !important;
}

.BB1 {
  border: 1px solid #979DE7;
}

.BB2 {
  border: 2px solid #11BB79;
}

.BB3 {
  border: 3px solid #BC91B5;
}

.BB4 {
  border: 4px solid #C7C74B;
}

.BB5 {
  border: 5px solid #F2373A;
}

.BBw {
  border: 3px solid #fff;
}

.boxW30, .boxW40, .boxW50 {
  box-sizing: border-box !important;
}

.boxW30 {
  border: 30px solid white !important;
}

.boxW40 {
  border: 40px solid white !important;
}

.boxW50 {
  border: 50px solid white !important;
}

.move-fix {
  backface-visibility: hidden;
  overflow: hidden;
  /*	visibility: hidden;
  	display: none;*/
}

/*
Small devices (landscape phones, 576px and up)
Medium devices (tablets, 768px and up)
Large devices (desktops, 992px and up)
Extra large devices (large desktops, 1200px and up)
*/
.text-justify {
  text-align: justify !important;
}

/*レイアウト*/
/*100vh*/
.jumbotron-extend {
  position: relative;
  height: 100vh;
  min-height: 300px;
}

.sticky-wrap200vh {
  height: 200vh !important;
}

/*shodow*/
.box-shadow {
  box-shadow: 0 32px 30px -30px rgba(53, 47, 47, 0.15) !important;
  /*mix-blend-mode: multiply!important;*/
}

/*text-装飾*/
.x-line {
  height: 1px !important;
  background-color: #ADA5A5;
  width: 30px;
  display: block;
}

.y-line {
  height: 25px;
  background-color: #ADA5A5;
  width: 1px !important;
  display: block;
}

.line-clamp-box {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  max-height: 2.5rem; /* ← 追加 : テキスト3行が表示できる程度の高さ */
}

.justify {
  display: flex;
  justify-content: space-between;
}

.quote {
  padding-right: 1.5em !important;
  padding-left: 1.5em !important;
  position: relative;
  text-align: center;
}

.quote:before {
  content: "“";
  font-size: 200%;
  line-height: 1em;
  color: #999;
  position: absolute;
  left: 0;
  top: 0.1rem;
}

.quote:after {
  content: "”";
  font-size: 200%;
  line-height: 1em;
  color: #999;
  position: absolute;
  right: 0;
  bottom: -0.7rem;
}

/*img*/
.o-cover {
  -o-object-fit: cover !important;
     object-fit: cover !important;
}

/***object-fit***/
.contain {
  background-size: contain;
}

.bg-size-cover {
  background-size: cover;
}

.object-fit-contain {
  -o-object-fit: contain;
     object-fit: contain;
  height: 100%;
  font-family: "object-fit: contain;";
}

.object-fit-cover {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  font-family: "object-fit: cover;";
}

.object-fit-cover-y {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  font-family: "object-fit: cover;";
}

.object-fit-cover-center {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  position: relative;
  height: 100%;
  font-family: "object-fit: cover;";
}

.object-fit-cover-center-top {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  position: relative;
  height: 100%;
  font-family: "object-fit: cover;";
}

/****background-blend-mode******/
.bg-blend-mul {
  background-blend-mode: multiply;
}

.bg-blend-sof {
  background-blend-mode: soft-light;
}

/****blend-cover******/
.blend-cover, .blend-cover-light, .blend-cover-dark, .blend-cover-after-light {
  position: relative;
}

.blend-cover::after {
  content: "";
  background-color: rgba(42, 100, 117, 0.2);
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.blend-cover-light::before {
  content: "";
  background-color: rgba(42, 100, 117, 0.2);
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.blend-cover-dark::before {
  content: "";
  position: absolute;
  mix-blend-mode: multiply;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  margin: auto;
  background-color: rgba(29, 33, 41, 0.5);
}

.blend-cover-after-light::after {
  content: "";
  background-color: rgba(42, 100, 117, 0.3);
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

/****bt******/
.trans-bt {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: rgba(0, 0, 0, 0.2);
  transition-duration: 0.3s;
  margin: 0;
  white-space: nowrap;
}

/****オーサムフォント用******/
.fa-s {
  font-size: 0.8em;
}

.fa-ss {
  font-size: 0.6em;
}

/**********/
.trans-bt:hover {
  background-color: rgb(255, 255, 255);
}

.trans-bt:hover.text-white {
  color: #000 !important;
}

/****img-bt******/
.imgBt {
  position: relative;
  overflow: hidden !important;
}

.imgBt img, .imgBt::after, .imgBt:hover a, .imgBt:hover::after {
  -webkit-transition: all 0.5s ease;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.imgBt a {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  pointer-events: auto;
  /* background-color: rgba(0, 0, 0, 0);*/
  /* d-flex */
  display: flex !important;
  /* justify-content-center */
  justify-content: center !important;
  /* align-items-center */
  align-items: center !important;
  color: #fff;
  text-decoration: none;
}

.imgBt a:hover {
  color: #000;
  transition: color 1.2s ease;
}

.imgBt::after {
  content: "";
  position: absolute;
  right: 0;
  left: 0;
  top: 0;
  bottom: 0;
  width: inherit;
  height: inherit;
  background-color: rgba(42, 100, 117, 0.5);
  mix-blend-mode: multiply;
}

.imgBt:hover::after {
  background-color: rgba(255, 255, 255, 0.8); /*白へ*/
  transform: scaleX(0.9) scaleY(0.81);
  mix-blend-mode: normal;
}

.imgBt:hover img {
  transform: scale(1.1, 1.1);
}

/*.imgBt + a:hover::after {
    background: rgba(255, 255, 255, .8);
    transform: scaleX(.9) scaleY(.81);
    mix-blend-mode: normal;
    transition-duration: 0.5s;
}*/
/***border***/
.border-white {
  border: solid 1px #fff !important;
}

.border-black {
  border: solid 1px #000 !important;
}

.BB {
  border: solid 3px #000 !important;
}

.WW {
  border: solid 3px #fff !important;
}

.t-underline {
  text-decoration: underline; /*下線を引く*/
}

/**a-link****/
.a-link {
  text-decoration: none !important;
}

.text-lightblue {
  color: #CACFFF !important;
  transition-duration: 0.3s;
}

a.text-lightblue:focus, a.text-lightblue:hover {
  color: #E2DBFF !important;
}

.link-glay {
  color: #9A9A9A !important;
  transition-duration: 0.3s;
}

a.link-glay:focus, a.link-glay:hover {
  color: #000000 !important;
}

.my-link-black {
  color: rgb(0, 0, 0) !important;
  transition-duration: 0.3s;
}

a.my-link-black:focus, a.my-link-black:hover {
  color: rgb(93, 107, 174) !important;
}

/**z-index****/
.ind-n1 {
  z-index: -1 !important;
}

.ind-1 {
  z-index: 1 !important;
}

.ind-2 {
  z-index: 2 !important;
}

.ind-3 {
  z-index: 3 !important;
}

.ind-4 {
  z-index: 4 !important;
}

.ind-5 {
  z-index: 5 !important;
}

/**position****/
.p-abso {
  position: absolute !important;
}

.p-fixed {
  position: fixed !important;
}

.p-rele {
  position: relative !important;
}

.p-sticky {
  height: auto; /* Safariに対応する */
  position: sticky; /* 要素を固定/解除する */
  top: 0; /* 縦方向の閾値 */
  left: 0; /* 横方向の閾値 */
}

.p-static {
  position: static !important;
}

.p-center {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

.left-0 {
  left: 0 !important;
}

.right-0 {
  right: 0 !important;
}

.top-0 {
  top: 0 !important;
}

.bottom-0 {
  bottom: 0 !important;
}

/**text-shadow****/
.t-noshadow {
  text-shadow: initial !important;
}

.t-shadow {
  text-shadow: 4px 4px 13px #000 !important;
}

.t-shadow2 {
  text-shadow: 4px 4px 6px #000 !important;
}

.t-shadow3 {
  text-shadow: 0px 0px 10px #000 !important;
}

.t-shadow4 {
  text-shadow: 0px 0px 14px #000 !important;
}

/**cursor****/
.c-pointer {
  cursor: pointer;
}

.cover {
  background-size: cover !important;
}

/*img {
  width: 100% !important;
  height: auto;
}*/
.bg-fixed {
  background-attachment: fixed !important;
  /*background-position: center center!important;*/
}

.object-fit-cover {
  -o-object-fit: cover !important;
     object-fit: cover !important;
  /*width: 100%!important;*/
  /*height: inherit!important;*/
  /*min-height: inherit!important;*/
  font-family: "object-fit: cover!important;" !important; /*  font-family: 'object-fit: cover!important; object-position: center top!important;'*/
}

.object-fit-cover2 {
  -o-object-fit: cover !important;
     object-fit: cover !important;
  width: 100% !important;
  font-family: "object-fit: cover!important;" !important; /*  font-family: 'object-fit: cover!important; object-position: center top!important;'*/
}

.object-fit-contain {
  width: 100% !important;
  -o-object-fit: contain !important;
     object-fit: contain !important;
  font-family: "object-fit: contain!important;" !important; /*  font-family: 'object-fit: cover!important; object-position: center top!important;'*/
}

/*parts-color*/
.nowrap {
  white-space: nowrap !important;
}

/*******arrow****/
.arrow-right {
  width: 20px;
  height: 20px;
  border: 3px solid;
  border-color: #A7D5F3 #A7D5F3 transparent transparent;
  transform: rotate(45deg);
}

.arrow-bottom {
  width: 20px;
  height: 20px;
  border: 3px solid;
  border-color: transparent transparent #A7D5F3 #A7D5F3;
  transform: rotate(-45deg);
}

.arrow-top {
  width: 20px;
  height: 20px;
  border: 3px solid;
  border-color: #A7D5F3 #A7D5F3 transparent transparent;
  transform: rotate(-45deg);
}

.arrow-left {
  width: 20px;
  height: 20px;
  border: 3px solid;
  border-color: transparent transparent #A7D5F3 #A7D5F3;
  transform: rotate(45deg);
}

/*******background-color****/
.bg-gradi-dark, .bg-gradi-light {
  position: relative;
  background-size: cover;
}

.bg-gradi-dark::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /*radial-gradient(中央の色 位置, 外側の色 位置 )*/
  background-image: radial-gradient(rgba(129, 129, 129, 0), rgba(129, 129, 129, 0), rgba(100, 100, 100, 0.8));
  mix-blend-mode: multiply;
}

.bg-gradi-light::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /*radial-gradient(中央の色 位置, 外側の色 位置 )*/
  background-image: radial-gradient(rgb(255, 255, 255), rgba(255, 255, 255, 0));
  mix-blend-mode: overlay;
}

.bg-color-o {
  background-color: #D4A402 !important;
}

.bg-color-r {
  background-color: #F33D4C !important;
}

.bg-color-b {
  background-color: #4F9CF2 !important;
}

.bg-color-g {
  background-color: #45FA4A !important;
}

.bg-color-y {
  background-color: #F2E205 !important;
}

.bg-color-p {
  background-color: #FC7388 !important;
}

.bg-color-white {
  background-color: rgb(255, 255, 255) !important;
}

.bg-color-white-half {
  background-color: rgba(255, 255, 255, 0.7) !important;
}

.bg-color-white-half2 {
  background-color: rgba(255, 255, 255, 0.3) !important;
}

.bg-color-deep-half {
  background-color: rgba(17, 17, 53, 0.6) !important;
}

.bg-color-trans {
  background-color: transparent !important;
}

.bg-color-cream {
  background-color: #FFFEFA !important;
}

.bg-color-pink {
  background-color: #FFD4D4 !important;
}

.bg-color-darkblue {
  background-color: rgb(16, 22, 45) !important;
}

.bg-color-blue {
  background-color: #2D8CFF !important;
}

.bg-color-lightblue {
  background-color: #BFDCFF !important;
}

.bg-color-lightblue2 {
  background-color: #F5F9FF !important;
}

.bg-color-lightblue3 {
  background-color: #EAF2FF !important;
}

.bg-color-lightblue4 {
  background-color: #E5E8FB !important;
}

.bg-color-gray {
  background-color: #F4F4F4 !important;
}

.bg-color-darkgray {
  background-color: #9D9D9E !important;
}

.bg-color-lightgreen {
  background-color: #F9FAF6 !important;
}

.bg-color-halfgreen {
  background-color: #EBF5EC !important;
}

.bg-color-halfgreen-h50 {
  background: linear-gradient(180deg, #EBF5EC 0%, #EBF5EC 47%, #F9FAF6 47%, #F9FAF6 100%);
}

.bg-color-halfgreen-w25 {
  background: linear-gradient(90deg, #EBF5EC 0%, #EBF5EC 25%, #F9FAF6 25%, #F9FAF6 75%, #EBF5EC 75%, #EBF5EC 100%);
}

.bg-color-halfgray-w25 {
  background: linear-gradient(90deg, #F4F6F7 0%, #F4F6F7 25%, #f8f9fa 25%, #f8f9fa 75%, #F4F6F7 75%, #F4F6F7 100%);
}

.bg-color-gray-w25 {
  background: linear-gradient(90deg, #EEF1F2 0%, #EEF1F2 25%, #F4F6F7 25%, #F4F6F7 75%, #EEF1F2 75%, #EEF1F2 100%);
}

/***半透明乗算**/
.bg-effect {
  position: relative !important;
}

.bg-effect::before {
  background-color: rgba(0, 0, 0, 0.1);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: " ";
}

/*****end半透明乗算**/
/**opacity***/
.opacity-0 {
  opacity: 0 !important;
}

.opacity-05 {
  opacity: 0.5 !important;
}

.opacity-1 {
  opacity: 1 !important;
}

.o-hidden {
  overflow: hidden !important;
}

/*******border****/
.border-1 {
  border: 1px solid;
}

.border-2 {
  border: 2px solid;
}

.border-3 {
  border: 3px solid;
}

.border-4 {
  border: 4px solid;
}

.border-5 {
  border: 5px solid;
}

/******box-square*****/
.box-square {
  position: relative;
  width: 100%;
}

.box-square:before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 100%;
}

.box-square div {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.box-square-h50 {
  position: relative;
  width: 100%;
}

.box-square-h50:before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 50%;
}

/*.box-square-h50 div {
  width: 100%;
  height: 50%;
  position: absolute;
  top: 0;
  left: 0;
}*/
.box-square-h50 div {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.box-square-h50 div > img {
  height: 200%;
}

/*全幅画像＆ヘッダー画像 alignfull size-large img*/
.box-square-h50 img, .single-top-img.box-square-h50 img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 0 60%;
     object-position: 0 60%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.box-square-h65 {
  position: relative;
  width: 100%;
}

.box-square-h65:before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 65%;
}

.box-square-h65 > div {
  width: 100%;
  /*  height: 65%;*/
  position: absolute;
  top: 0;
  left: 0;
}

.box-square-h65 > div > img {
  height: 154%;
}

.box-square-h80 {
  position: relative;
  width: 100%;
}

.box-square-h80:before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 80%;
}

.box-square-h80 div {
  position: absolute;
  top: 0;
  left: 0;
}

.box-square-h50-p0 {
  position: relative;
  width: 100%;
}

.box-square-h50-p0:before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 50%;
}

.box-square-h50-p0 > div {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.box-square-h50-p0 > div > img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover !important;
     object-fit: cover !important;
}

/******box-square2*****/
.square-s {
  height: 55vw !important;
}

.square-m {
  height: 65vw !important;
}

.square-l {
  height: 75vw !important;
}

/***** Footer *****/
.footer-contact p {
  word-wrap: break-word;
}

.footer-contact i {
  padding-right: 10px;
  font-size: 18px;
  color: #ddd;
}

.footer-contact p a {
  border-bottom: 1px dashed #ccc;
}

.footer-contact p a:hover, .footer-contact p a:focus {
  border-bottom: 1px dashed #856dc0;
}

.footer-links a {
  color: #888;
  border: 0;
}

.footer-links a:hover, .footer-links a:focus {
  color: #555;
  margin-left: 3px;
}

.footer-social a {
  margin: 0 10px;
  color: #bbb;
  border: 0;
}

.footer-social a:hover, .footer-social a:focus {
  color: #856dc0;
  border: 0;
}

.footer-social i {
  font-size: 24px;
  vertical-align: middle;
}

/* =====================================
   COMPILE CHECK
   If lp/dist/style.css looks uncompiled, search for "--lp-dist-compiled".
   ===================================== */
:root {
  --lp-dist-compiled: "2025-12-23";
}

.ms-n1 {
  margin-left: -0.25rem !important;
}

.ms-n2 {
  margin-left: -0.5rem !important;
}

.ms-n3 {
  margin-left: -1rem !important;
}

.ms-n4 {
  margin-left: -1.5rem !important;
}

.ms-n5 {
  margin-left: -3rem !important;
}

@media (min-width: 576px) {
  .ms-sm-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-sm-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-sm-n3 {
    margin-left: -1rem !important;
  }
  .ms-sm-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-sm-n5 {
    margin-left: -3rem !important;
  }
}
@media (min-width: 768px) {
  .ms-md-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-md-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-md-n3 {
    margin-left: -1rem !important;
  }
  .ms-md-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-md-n5 {
    margin-left: -3rem !important;
  }
}
@media (min-width: 992px) {
  .ms-lg-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-lg-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-lg-n3 {
    margin-left: -1rem !important;
  }
  .ms-lg-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-lg-n5 {
    margin-left: -3rem !important;
  }
}
@media (min-width: 1200px) {
  .ms-xl-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-xl-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-xl-n3 {
    margin-left: -1rem !important;
  }
  .ms-xl-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-xl-n5 {
    margin-left: -3rem !important;
  }
}
@media (min-width: 1400px) {
  .ms-xxl-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-xxl-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-xxl-n3 {
    margin-left: -1rem !important;
  }
  .ms-xxl-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-xxl-n5 {
    margin-left: -3rem !important;
  }
}
.me-n1 {
  margin-right: -0.25rem !important;
}

.me-n2 {
  margin-right: -0.5rem !important;
}

.me-n3 {
  margin-right: -1rem !important;
}

.me-n4 {
  margin-right: -1.5rem !important;
}

.me-n5 {
  margin-right: -3rem !important;
}

@media (min-width: 576px) {
  .me-sm-n1 {
    margin-right: -0.25rem !important;
  }
  .me-sm-n2 {
    margin-right: -0.5rem !important;
  }
  .me-sm-n3 {
    margin-right: -1rem !important;
  }
  .me-sm-n4 {
    margin-right: -1.5rem !important;
  }
  .me-sm-n5 {
    margin-right: -3rem !important;
  }
}
@media (min-width: 768px) {
  .me-md-n1 {
    margin-right: -0.25rem !important;
  }
  .me-md-n2 {
    margin-right: -0.5rem !important;
  }
  .me-md-n3 {
    margin-right: -1rem !important;
  }
  .me-md-n4 {
    margin-right: -1.5rem !important;
  }
  .me-md-n5 {
    margin-right: -3rem !important;
  }
}
@media (min-width: 992px) {
  .me-lg-n1 {
    margin-right: -0.25rem !important;
  }
  .me-lg-n2 {
    margin-right: -0.5rem !important;
  }
  .me-lg-n3 {
    margin-right: -1rem !important;
  }
  .me-lg-n4 {
    margin-right: -1.5rem !important;
  }
  .me-lg-n5 {
    margin-right: -3rem !important;
  }
}
@media (min-width: 1200px) {
  .me-xl-n1 {
    margin-right: -0.25rem !important;
  }
  .me-xl-n2 {
    margin-right: -0.5rem !important;
  }
  .me-xl-n3 {
    margin-right: -1rem !important;
  }
  .me-xl-n4 {
    margin-right: -1.5rem !important;
  }
  .me-xl-n5 {
    margin-right: -3rem !important;
  }
}
@media (min-width: 1400px) {
  .me-xxl-n1 {
    margin-right: -0.25rem !important;
  }
  .me-xxl-n2 {
    margin-right: -0.5rem !important;
  }
  .me-xxl-n3 {
    margin-right: -1rem !important;
  }
  .me-xxl-n4 {
    margin-right: -1.5rem !important;
  }
  .me-xxl-n5 {
    margin-right: -3rem !important;
  }
}
.fs-10 {
  font-size: 10px !important;
}

.fs-11 {
  font-size: 11px !important;
}

.fs-12 {
  font-size: 12px !important;
}

.fs-13 {
  font-size: 13px !important;
}

.fs-14 {
  font-size: 14px !important;
}

.fs-15 {
  font-size: 15px !important;
}

.fs-16 {
  font-size: 16px !important;
}

.fs-17 {
  font-size: 17px !important;
}

.fs-18 {
  font-size: 18px !important;
}

.fs-19 {
  font-size: 19px !important;
}

.fs-20 {
  font-size: 20px !important;
}

.fs-21 {
  font-size: 21px !important;
}

.fs-22 {
  font-size: 22px !important;
}

.fs-23 {
  font-size: 23px !important;
}

.fs-24 {
  font-size: 24px !important;
}

.fs-25 {
  font-size: 25px !important;
}

.fs-26 {
  font-size: 26px !important;
}

.fs-27 {
  font-size: 27px !important;
}

.fs-28 {
  font-size: 28px !important;
}

.fs-29 {
  font-size: 29px !important;
}

.fs-30 {
  font-size: 30px !important;
}

.fs-31 {
  font-size: 31px !important;
}

.fs-32 {
  font-size: 32px !important;
}

.fs-33 {
  font-size: 33px !important;
}

.fs-34 {
  font-size: 34px !important;
}

.fs-35 {
  font-size: 35px !important;
}

.fs-36 {
  font-size: 36px !important;
}

.fs-37 {
  font-size: 37px !important;
}

.fs-38 {
  font-size: 38px !important;
}

.fs-39 {
  font-size: 39px !important;
}

.fs-40 {
  font-size: 40px !important;
}

.fs-41 {
  font-size: 41px !important;
}

.fs-42 {
  font-size: 42px !important;
}

.fs-43 {
  font-size: 43px !important;
}

.fs-44 {
  font-size: 44px !important;
}

.fs-45 {
  font-size: 45px !important;
}

.fs-46 {
  font-size: 46px !important;
}

.fs-47 {
  font-size: 47px !important;
}

.fs-48 {
  font-size: 48px !important;
}

.fs-49 {
  font-size: 49px !important;
}

.fs-50 {
  font-size: 50px !important;
}

.fs-51 {
  font-size: 51px !important;
}

.fs-52 {
  font-size: 52px !important;
}

.fs-53 {
  font-size: 53px !important;
}

.fs-54 {
  font-size: 54px !important;
}

.fs-55 {
  font-size: 55px !important;
}

.fs-56 {
  font-size: 56px !important;
}

.fs-57 {
  font-size: 57px !important;
}

.fs-58 {
  font-size: 58px !important;
}

.fs-59 {
  font-size: 59px !important;
}

.fs-60 {
  font-size: 60px !important;
}

.fs-61 {
  font-size: 61px !important;
}

.fs-62 {
  font-size: 62px !important;
}

.fs-63 {
  font-size: 63px !important;
}

.fs-64 {
  font-size: 64px !important;
}

.fs-65 {
  font-size: 65px !important;
}

.fs-66 {
  font-size: 66px !important;
}

.fs-67 {
  font-size: 67px !important;
}

.fs-68 {
  font-size: 68px !important;
}

.fs-69 {
  font-size: 69px !important;
}

.fs-70 {
  font-size: 70px !important;
}

.fs-71 {
  font-size: 71px !important;
}

.fs-72 {
  font-size: 72px !important;
}

.fs-73 {
  font-size: 73px !important;
}

.fs-74 {
  font-size: 74px !important;
}

.fs-75 {
  font-size: 75px !important;
}

.fs-76 {
  font-size: 76px !important;
}

.fs-77 {
  font-size: 77px !important;
}

.fs-78 {
  font-size: 78px !important;
}

.fs-79 {
  font-size: 79px !important;
}

.fs-80 {
  font-size: 80px !important;
}

@media (min-width: 576px) {
  .fs-sm-10 {
    font-size: 10px !important;
  }
  .fs-sm-11 {
    font-size: 11px !important;
  }
  .fs-sm-12 {
    font-size: 12px !important;
  }
  .fs-sm-13 {
    font-size: 13px !important;
  }
  .fs-sm-14 {
    font-size: 14px !important;
  }
  .fs-sm-15 {
    font-size: 15px !important;
  }
  .fs-sm-16 {
    font-size: 16px !important;
  }
  .fs-sm-17 {
    font-size: 17px !important;
  }
  .fs-sm-18 {
    font-size: 18px !important;
  }
  .fs-sm-19 {
    font-size: 19px !important;
  }
  .fs-sm-20 {
    font-size: 20px !important;
  }
  .fs-sm-21 {
    font-size: 21px !important;
  }
  .fs-sm-22 {
    font-size: 22px !important;
  }
  .fs-sm-23 {
    font-size: 23px !important;
  }
  .fs-sm-24 {
    font-size: 24px !important;
  }
  .fs-sm-25 {
    font-size: 25px !important;
  }
  .fs-sm-26 {
    font-size: 26px !important;
  }
  .fs-sm-27 {
    font-size: 27px !important;
  }
  .fs-sm-28 {
    font-size: 28px !important;
  }
  .fs-sm-29 {
    font-size: 29px !important;
  }
  .fs-sm-30 {
    font-size: 30px !important;
  }
  .fs-sm-31 {
    font-size: 31px !important;
  }
  .fs-sm-32 {
    font-size: 32px !important;
  }
  .fs-sm-33 {
    font-size: 33px !important;
  }
  .fs-sm-34 {
    font-size: 34px !important;
  }
  .fs-sm-35 {
    font-size: 35px !important;
  }
  .fs-sm-36 {
    font-size: 36px !important;
  }
  .fs-sm-37 {
    font-size: 37px !important;
  }
  .fs-sm-38 {
    font-size: 38px !important;
  }
  .fs-sm-39 {
    font-size: 39px !important;
  }
  .fs-sm-40 {
    font-size: 40px !important;
  }
  .fs-sm-41 {
    font-size: 41px !important;
  }
  .fs-sm-42 {
    font-size: 42px !important;
  }
  .fs-sm-43 {
    font-size: 43px !important;
  }
  .fs-sm-44 {
    font-size: 44px !important;
  }
  .fs-sm-45 {
    font-size: 45px !important;
  }
  .fs-sm-46 {
    font-size: 46px !important;
  }
  .fs-sm-47 {
    font-size: 47px !important;
  }
  .fs-sm-48 {
    font-size: 48px !important;
  }
}
@media (min-width: 768px) {
  .fs-md-10 {
    font-size: 10px !important;
  }
  .fs-md-11 {
    font-size: 11px !important;
  }
  .fs-md-12 {
    font-size: 12px !important;
  }
  .fs-md-13 {
    font-size: 13px !important;
  }
  .fs-md-14 {
    font-size: 14px !important;
  }
  .fs-md-15 {
    font-size: 15px !important;
  }
  .fs-md-16 {
    font-size: 16px !important;
  }
  .fs-md-17 {
    font-size: 17px !important;
  }
  .fs-md-18 {
    font-size: 18px !important;
  }
  .fs-md-19 {
    font-size: 19px !important;
  }
  .fs-md-20 {
    font-size: 20px !important;
  }
  .fs-md-21 {
    font-size: 21px !important;
  }
  .fs-md-22 {
    font-size: 22px !important;
  }
  .fs-md-23 {
    font-size: 23px !important;
  }
  .fs-md-24 {
    font-size: 24px !important;
  }
  .fs-md-25 {
    font-size: 25px !important;
  }
  .fs-md-26 {
    font-size: 26px !important;
  }
  .fs-md-27 {
    font-size: 27px !important;
  }
  .fs-md-28 {
    font-size: 28px !important;
  }
  .fs-md-29 {
    font-size: 29px !important;
  }
  .fs-md-30 {
    font-size: 30px !important;
  }
  .fs-md-31 {
    font-size: 31px !important;
  }
  .fs-md-32 {
    font-size: 32px !important;
  }
  .fs-md-33 {
    font-size: 33px !important;
  }
  .fs-md-34 {
    font-size: 34px !important;
  }
  .fs-md-35 {
    font-size: 35px !important;
  }
  .fs-md-36 {
    font-size: 36px !important;
  }
  .fs-md-37 {
    font-size: 37px !important;
  }
  .fs-md-38 {
    font-size: 38px !important;
  }
  .fs-md-39 {
    font-size: 39px !important;
  }
  .fs-md-40 {
    font-size: 40px !important;
  }
  .fs-md-41 {
    font-size: 41px !important;
  }
  .fs-md-42 {
    font-size: 42px !important;
  }
  .fs-md-43 {
    font-size: 43px !important;
  }
  .fs-md-44 {
    font-size: 44px !important;
  }
  .fs-md-45 {
    font-size: 45px !important;
  }
  .fs-md-46 {
    font-size: 46px !important;
  }
  .fs-md-47 {
    font-size: 47px !important;
  }
  .fs-md-48 {
    font-size: 48px !important;
  }
}
@media (min-width: 992px) {
  .fs-lg-10 {
    font-size: 10px !important;
  }
  .fs-lg-11 {
    font-size: 11px !important;
  }
  .fs-lg-12 {
    font-size: 12px !important;
  }
  .fs-lg-13 {
    font-size: 13px !important;
  }
  .fs-lg-14 {
    font-size: 14px !important;
  }
  .fs-lg-15 {
    font-size: 15px !important;
  }
  .fs-lg-16 {
    font-size: 16px !important;
  }
  .fs-lg-17 {
    font-size: 17px !important;
  }
  .fs-lg-18 {
    font-size: 18px !important;
  }
  .fs-lg-19 {
    font-size: 19px !important;
  }
  .fs-lg-20 {
    font-size: 20px !important;
  }
  .fs-lg-21 {
    font-size: 21px !important;
  }
  .fs-lg-22 {
    font-size: 22px !important;
  }
  .fs-lg-23 {
    font-size: 23px !important;
  }
  .fs-lg-24 {
    font-size: 24px !important;
  }
  .fs-lg-25 {
    font-size: 25px !important;
  }
  .fs-lg-26 {
    font-size: 26px !important;
  }
  .fs-lg-27 {
    font-size: 27px !important;
  }
  .fs-lg-28 {
    font-size: 28px !important;
  }
  .fs-lg-29 {
    font-size: 29px !important;
  }
  .fs-lg-30 {
    font-size: 30px !important;
  }
  .fs-lg-31 {
    font-size: 31px !important;
  }
  .fs-lg-32 {
    font-size: 32px !important;
  }
  .fs-lg-33 {
    font-size: 33px !important;
  }
  .fs-lg-34 {
    font-size: 34px !important;
  }
  .fs-lg-35 {
    font-size: 35px !important;
  }
  .fs-lg-36 {
    font-size: 36px !important;
  }
  .fs-lg-37 {
    font-size: 37px !important;
  }
  .fs-lg-38 {
    font-size: 38px !important;
  }
  .fs-lg-39 {
    font-size: 39px !important;
  }
  .fs-lg-40 {
    font-size: 40px !important;
  }
  .fs-lg-41 {
    font-size: 41px !important;
  }
  .fs-lg-42 {
    font-size: 42px !important;
  }
  .fs-lg-43 {
    font-size: 43px !important;
  }
  .fs-lg-44 {
    font-size: 44px !important;
  }
  .fs-lg-45 {
    font-size: 45px !important;
  }
  .fs-lg-46 {
    font-size: 46px !important;
  }
  .fs-lg-47 {
    font-size: 47px !important;
  }
  .fs-lg-48 {
    font-size: 48px !important;
  }
}
@media (min-width: 1200px) {
  .fs-xl-10 {
    font-size: 10px !important;
  }
  .fs-xl-11 {
    font-size: 11px !important;
  }
  .fs-xl-12 {
    font-size: 12px !important;
  }
  .fs-xl-13 {
    font-size: 13px !important;
  }
  .fs-xl-14 {
    font-size: 14px !important;
  }
  .fs-xl-15 {
    font-size: 15px !important;
  }
  .fs-xl-16 {
    font-size: 16px !important;
  }
  .fs-xl-17 {
    font-size: 17px !important;
  }
  .fs-xl-18 {
    font-size: 18px !important;
  }
  .fs-xl-19 {
    font-size: 19px !important;
  }
  .fs-xl-20 {
    font-size: 20px !important;
  }
  .fs-xl-21 {
    font-size: 21px !important;
  }
  .fs-xl-22 {
    font-size: 22px !important;
  }
  .fs-xl-23 {
    font-size: 23px !important;
  }
  .fs-xl-24 {
    font-size: 24px !important;
  }
  .fs-xl-25 {
    font-size: 25px !important;
  }
  .fs-xl-26 {
    font-size: 26px !important;
  }
  .fs-xl-27 {
    font-size: 27px !important;
  }
  .fs-xl-28 {
    font-size: 28px !important;
  }
  .fs-xl-29 {
    font-size: 29px !important;
  }
  .fs-xl-30 {
    font-size: 30px !important;
  }
  .fs-xl-31 {
    font-size: 31px !important;
  }
  .fs-xl-32 {
    font-size: 32px !important;
  }
  .fs-xl-33 {
    font-size: 33px !important;
  }
  .fs-xl-34 {
    font-size: 34px !important;
  }
  .fs-xl-35 {
    font-size: 35px !important;
  }
  .fs-xl-36 {
    font-size: 36px !important;
  }
  .fs-xl-37 {
    font-size: 37px !important;
  }
  .fs-xl-38 {
    font-size: 38px !important;
  }
  .fs-xl-39 {
    font-size: 39px !important;
  }
  .fs-xl-40 {
    font-size: 40px !important;
  }
  .fs-xl-41 {
    font-size: 41px !important;
  }
  .fs-xl-42 {
    font-size: 42px !important;
  }
  .fs-xl-43 {
    font-size: 43px !important;
  }
  .fs-xl-44 {
    font-size: 44px !important;
  }
  .fs-xl-45 {
    font-size: 45px !important;
  }
  .fs-xl-46 {
    font-size: 46px !important;
  }
  .fs-xl-47 {
    font-size: 47px !important;
  }
  .fs-xl-48 {
    font-size: 48px !important;
  }
}
@media (min-width: 1400px) {
  .fs-xxl-10 {
    font-size: 10px !important;
  }
  .fs-xxl-11 {
    font-size: 11px !important;
  }
  .fs-xxl-12 {
    font-size: 12px !important;
  }
  .fs-xxl-13 {
    font-size: 13px !important;
  }
  .fs-xxl-14 {
    font-size: 14px !important;
  }
  .fs-xxl-15 {
    font-size: 15px !important;
  }
  .fs-xxl-16 {
    font-size: 16px !important;
  }
  .fs-xxl-17 {
    font-size: 17px !important;
  }
  .fs-xxl-18 {
    font-size: 18px !important;
  }
  .fs-xxl-19 {
    font-size: 19px !important;
  }
  .fs-xxl-20 {
    font-size: 20px !important;
  }
  .fs-xxl-21 {
    font-size: 21px !important;
  }
  .fs-xxl-22 {
    font-size: 22px !important;
  }
  .fs-xxl-23 {
    font-size: 23px !important;
  }
  .fs-xxl-24 {
    font-size: 24px !important;
  }
  .fs-xxl-25 {
    font-size: 25px !important;
  }
  .fs-xxl-26 {
    font-size: 26px !important;
  }
  .fs-xxl-27 {
    font-size: 27px !important;
  }
  .fs-xxl-28 {
    font-size: 28px !important;
  }
  .fs-xxl-29 {
    font-size: 29px !important;
  }
  .fs-xxl-30 {
    font-size: 30px !important;
  }
  .fs-xxl-31 {
    font-size: 31px !important;
  }
  .fs-xxl-32 {
    font-size: 32px !important;
  }
  .fs-xxl-33 {
    font-size: 33px !important;
  }
  .fs-xxl-34 {
    font-size: 34px !important;
  }
  .fs-xxl-35 {
    font-size: 35px !important;
  }
  .fs-xxl-36 {
    font-size: 36px !important;
  }
  .fs-xxl-37 {
    font-size: 37px !important;
  }
  .fs-xxl-38 {
    font-size: 38px !important;
  }
  .fs-xxl-39 {
    font-size: 39px !important;
  }
  .fs-xxl-40 {
    font-size: 40px !important;
  }
  .fs-xxl-41 {
    font-size: 41px !important;
  }
  .fs-xxl-42 {
    font-size: 42px !important;
  }
  .fs-xxl-43 {
    font-size: 43px !important;
  }
  .fs-xxl-44 {
    font-size: 44px !important;
  }
  .fs-xxl-45 {
    font-size: 45px !important;
  }
  .fs-xxl-46 {
    font-size: 46px !important;
  }
  .fs-xxl-47 {
    font-size: 47px !important;
  }
  .fs-xxl-48 {
    font-size: 48px !important;
  }
}
.ls-1 {
  letter-spacing: 0.01em !important;
}

.ls-2 {
  letter-spacing: 0.02em !important;
}

.ls-3 {
  letter-spacing: 0.03em !important;
}

.ls-4 {
  letter-spacing: 0.04em !important;
}

.ls-5 {
  letter-spacing: 0.05em !important;
}

.ls-6 {
  letter-spacing: 0.06em !important;
}

.ls-7 {
  letter-spacing: 0.07em !important;
}

.ls-8 {
  letter-spacing: 0.08em !important;
}

.ls-9 {
  letter-spacing: 0.09em !important;
}

.ls-10 {
  letter-spacing: 0.1em !important;
}

.ls-11 {
  letter-spacing: 0.11em !important;
}

.ls-12 {
  letter-spacing: 0.12em !important;
}

.ls-13 {
  letter-spacing: 0.13em !important;
}

.ls-14 {
  letter-spacing: 0.14em !important;
}

.ls-15 {
  letter-spacing: 0.15em !important;
}

.ls-16 {
  letter-spacing: 0.16em !important;
}

.ls-17 {
  letter-spacing: 0.17em !important;
}

.ls-18 {
  letter-spacing: 0.18em !important;
}

.ls-19 {
  letter-spacing: 0.19em !important;
}

.ls-20 {
  letter-spacing: 0.2em !important;
}

.ls-21 {
  letter-spacing: 0.21em !important;
}

.ls-22 {
  letter-spacing: 0.22em !important;
}

.ls-23 {
  letter-spacing: 0.23em !important;
}

.ls-24 {
  letter-spacing: 0.24em !important;
}

.ls-25 {
  letter-spacing: 0.25em !important;
}

.ls-26 {
  letter-spacing: 0.26em !important;
}

.ls-27 {
  letter-spacing: 0.27em !important;
}

.ls-28 {
  letter-spacing: 0.28em !important;
}

.ls-29 {
  letter-spacing: 0.29em !important;
}

.ls-30 {
  letter-spacing: 0.3em !important;
}

.lh-100 {
  line-height: 1 !important;
}

.lh-110 {
  line-height: 1.1 !important;
}

.lh-120 {
  line-height: 1.2 !important;
}

.lh-130 {
  line-height: 1.3 !important;
}

.lh-140 {
  line-height: 1.4 !important;
}

.lh-150 {
  line-height: 1.5 !important;
}

.lh-160 {
  line-height: 1.6 !important;
}

.lh-170 {
  line-height: 1.7 !important;
}

.lh-180 {
  line-height: 1.8 !important;
}

.lh-190 {
  line-height: 1.9 !important;
}

.lh-200 {
  line-height: 2 !important;
}

.lh-210 {
  line-height: 2.1 !important;
}

.lh-220 {
  line-height: 2.2 !important;
}

.lh-230 {
  line-height: 2.3 !important;
}

.lh-240 {
  line-height: 2.4 !important;
}

.lh-250 {
  line-height: 2.5 !important;
}

.bg-333 {
  background-color: #333333 !important;
}

.fw-100 {
  font-weight: 100 !important;
}

.fw-200 {
  font-weight: 200 !important;
}

.fw-300 {
  font-weight: 300 !important;
}

.fw-400 {
  font-weight: 400 !important;
}

.fw-500 {
  font-weight: 500 !important;
}

.fw-600 {
  font-weight: 600 !important;
}

.fw-700 {
  font-weight: 700 !important;
}

.fw-800 {
  font-weight: 800 !important;
}

.fw-900 {
  font-weight: 900 !important;
}

/* Base text color (non-responsive) */
.text-red {
  color: #dc0000 !important;
}

/* Custom semi-black text (75% opacity based on body color) */
.text-black-75 {
  color: rgba(0, 0, 0, 0.75) !important;
}

/* Custom radio design (neutral circle with black dot) */
.form-check-input.form-radio-circle {
  position: relative;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  background-color: #e5e5e5;
  box-shadow: none;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  outline: none;
  cursor: pointer;
  margin-top: 2%;
}

/* MW WP Form: radio text */
.form-check-input.form-radio-circle + .mwform-radio-field-text {
  display: inline-block;
  position: relative;
  top: 1px; /* 1〜3pxでOK */
}

.form-check-input.form-radio-circle::before {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 50%;
  background-color: transparent;
  transition: background-color 0.15s ease-in-out;
}

@media (max-width: 767px) {
  .form-check-input.form-radio-circle {
    width: 20px;
    height: 20px;
  }
  .form-check-input.form-radio-circle::before {
    inset: 5px;
  }
}
.form-check-input.form-radio-circle:checked::before {
  background-color: #000000;
}

/* キーボード操作用フォーカス枠 */
.form-check-input.form-radio-circle:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.25);
  outline-offset: 2px;
}

/* Scroll reveal: fade-in + slight upward motion */
.scroll-fadein {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

/* 表示状態（IntersectionObserverで付与） */
.scroll-fadein.is-inview {
  opacity: 1;
  transform: translateY(0);
}

/* アニメーションを好まないユーザー向け */
@media (prefers-reduced-motion: reduce) {
  .scroll-fadein {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
@media (min-width: 576px) {
  .text-sm-white {
    color: #fff !important;
  }
  .text-sm-black {
    color: #000 !important;
  }
  .text-sm-dark {
    color: #212529 !important;
  }
  .text-sm-primary {
    color: #0d6efd !important;
  }
  .text-sm-secondary {
    color: #6c757d !important;
  }
  .text-sm-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-sm-red {
    color: #dc0000 !important;
  }
}
@media (min-width: 768px) {
  .text-md-white {
    color: #fff !important;
  }
  .text-md-black {
    color: #000 !important;
  }
  .text-md-dark {
    color: #212529 !important;
  }
  .text-md-primary {
    color: #0d6efd !important;
  }
  .text-md-secondary {
    color: #6c757d !important;
  }
  .text-md-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-md-red {
    color: #dc0000 !important;
  }
}
@media (min-width: 992px) {
  .text-lg-white {
    color: #fff !important;
  }
  .text-lg-black {
    color: #000 !important;
  }
  .text-lg-dark {
    color: #212529 !important;
  }
  .text-lg-primary {
    color: #0d6efd !important;
  }
  .text-lg-secondary {
    color: #6c757d !important;
  }
  .text-lg-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-lg-red {
    color: #dc0000 !important;
  }
}
@media (min-width: 1200px) {
  .text-xl-white {
    color: #fff !important;
  }
  .text-xl-black {
    color: #000 !important;
  }
  .text-xl-dark {
    color: #212529 !important;
  }
  .text-xl-primary {
    color: #0d6efd !important;
  }
  .text-xl-secondary {
    color: #6c757d !important;
  }
  .text-xl-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-xl-red {
    color: #dc0000 !important;
  }
}
@media (min-width: 1400px) {
  .text-xxl-white {
    color: #fff !important;
  }
  .text-xxl-black {
    color: #000 !important;
  }
  .text-xxl-dark {
    color: #212529 !important;
  }
  .text-xxl-primary {
    color: #0d6efd !important;
  }
  .text-xxl-secondary {
    color: #6c757d !important;
  }
  .text-xxl-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-xxl-red {
    color: #dc0000 !important;
  }
}
.text-justify {
  text-align: justify;
  text-justify: inter-ideograph;
}

/* Pは自動で両端揃え*/
p {
  text-align: justify;
  text-justify: inter-ideograph;
}

/* ===================================
   fs-xxsm-(size) : iPhone X / SE / 8（〜375px）
   =================================== */
@media (max-width: 375px) {
  .fs-xxsm-10 {
    font-size: 10px !important;
  }
  .fs-xxsm-11 {
    font-size: 11px !important;
  }
  .fs-xxsm-12 {
    font-size: 12px !important;
  }
  .fs-xxsm-13 {
    font-size: 13px !important;
  }
  .fs-xxsm-14 {
    font-size: 14px !important;
  }
  .fs-xxsm-15 {
    font-size: 15px !important;
  }
  .fs-xxsm-16 {
    font-size: 16px !important;
  }
  .fs-xxsm-17 {
    font-size: 17px !important;
  }
  .fs-xxsm-18 {
    font-size: 18px !important;
  }
  .fs-xxsm-19 {
    font-size: 19px !important;
  }
  .fs-xxsm-20 {
    font-size: 20px !important;
  }
  .fs-xxsm-21 {
    font-size: 21px !important;
  }
  .fs-xxsm-22 {
    font-size: 22px !important;
  }
  .fs-xxsm-23 {
    font-size: 23px !important;
  }
  .fs-xxsm-24 {
    font-size: 24px !important;
  }
  .fs-xxsm-25 {
    font-size: 25px !important;
  }
  .fs-xxsm-26 {
    font-size: 26px !important;
  }
  .fs-xxsm-27 {
    font-size: 27px !important;
  }
  .fs-xxsm-28 {
    font-size: 28px !important;
  }
  .fs-xxsm-29 {
    font-size: 29px !important;
  }
  .fs-xxsm-30 {
    font-size: 30px !important;
  }
  .fs-xxsm-31 {
    font-size: 31px !important;
  }
  .fs-xxsm-32 {
    font-size: 32px !important;
  }
  .fs-xxsm-33 {
    font-size: 33px !important;
  }
  .fs-xxsm-34 {
    font-size: 34px !important;
  }
  .fs-xxsm-35 {
    font-size: 35px !important;
  }
  .fs-xxsm-36 {
    font-size: 36px !important;
  }
  .fs-xxsm-37 {
    font-size: 37px !important;
  }
  .fs-xxsm-38 {
    font-size: 38px !important;
  }
  .fs-xxsm-39 {
    font-size: 39px !important;
  }
  .fs-xxsm-40 {
    font-size: 40px !important;
  }
  .fs-xxsm-41 {
    font-size: 41px !important;
  }
  .fs-xxsm-42 {
    font-size: 42px !important;
  }
  .fs-xxsm-43 {
    font-size: 43px !important;
  }
  .fs-xxsm-44 {
    font-size: 44px !important;
  }
  .fs-xxsm-45 {
    font-size: 45px !important;
  }
  .fs-xxsm-46 {
    font-size: 46px !important;
  }
  .fs-xxsm-47 {
    font-size: 47px !important;
  }
  .fs-xxsm-48 {
    font-size: 48px !important;
  }
  .fs-xxsm-49 {
    font-size: 49px !important;
  }
  .fs-xxsm-50 {
    font-size: 50px !important;
  }
  .fs-xxsm-51 {
    font-size: 51px !important;
  }
  .fs-xxsm-52 {
    font-size: 52px !important;
  }
  .fs-xxsm-53 {
    font-size: 53px !important;
  }
  .fs-xxsm-54 {
    font-size: 54px !important;
  }
  .fs-xxsm-55 {
    font-size: 55px !important;
  }
  .fs-xxsm-56 {
    font-size: 56px !important;
  }
  .fs-xxsm-57 {
    font-size: 57px !important;
  }
  .fs-xxsm-58 {
    font-size: 58px !important;
  }
  .fs-xxsm-59 {
    font-size: 59px !important;
  }
  .fs-xxsm-60 {
    font-size: 60px !important;
  }
}
/* ===================================
   fs-se-(size) : iPhone SE / 5系（〜320px）
   =================================== */
@media (max-width: 320px) {
  .fs-se-10 {
    font-size: 10px !important;
  }
  .fs-se-11 {
    font-size: 11px !important;
  }
  .fs-se-12 {
    font-size: 12px !important;
  }
  .fs-se-13 {
    font-size: 13px !important;
  }
  .fs-se-14 {
    font-size: 14px !important;
  }
  .fs-se-15 {
    font-size: 15px !important;
  }
  .fs-se-16 {
    font-size: 16px !important;
  }
  .fs-se-17 {
    font-size: 17px !important;
  }
  .fs-se-18 {
    font-size: 18px !important;
  }
  .fs-se-19 {
    font-size: 19px !important;
  }
  .fs-se-20 {
    font-size: 20px !important;
  }
  .fs-se-21 {
    font-size: 21px !important;
  }
  .fs-se-22 {
    font-size: 22px !important;
  }
  .fs-se-23 {
    font-size: 23px !important;
  }
  .fs-se-24 {
    font-size: 24px !important;
  }
  .fs-se-25 {
    font-size: 25px !important;
  }
  .fs-se-26 {
    font-size: 26px !important;
  }
  .fs-se-27 {
    font-size: 27px !important;
  }
  .fs-se-28 {
    font-size: 28px !important;
  }
  .fs-se-29 {
    font-size: 29px !important;
  }
  .fs-se-30 {
    font-size: 30px !important;
  }
  .fs-se-31 {
    font-size: 31px !important;
  }
  .fs-se-32 {
    font-size: 32px !important;
  }
  .fs-se-33 {
    font-size: 33px !important;
  }
  .fs-se-34 {
    font-size: 34px !important;
  }
  .fs-se-35 {
    font-size: 35px !important;
  }
  .fs-se-36 {
    font-size: 36px !important;
  }
  .fs-se-37 {
    font-size: 37px !important;
  }
  .fs-se-38 {
    font-size: 38px !important;
  }
  .fs-se-39 {
    font-size: 39px !important;
  }
  .fs-se-40 {
    font-size: 40px !important;
  }
  .fs-se-41 {
    font-size: 41px !important;
  }
  .fs-se-42 {
    font-size: 42px !important;
  }
  .fs-se-43 {
    font-size: 43px !important;
  }
  .fs-se-44 {
    font-size: 44px !important;
  }
  .fs-se-45 {
    font-size: 45px !important;
  }
  .fs-se-46 {
    font-size: 46px !important;
  }
  .fs-se-47 {
    font-size: 47px !important;
  }
  .fs-se-48 {
    font-size: 48px !important;
  }
  .fs-se-49 {
    font-size: 49px !important;
  }
  .fs-se-50 {
    font-size: 50px !important;
  }
  .fs-se-51 {
    font-size: 51px !important;
  }
  .fs-se-52 {
    font-size: 52px !important;
  }
  .fs-se-53 {
    font-size: 53px !important;
  }
  .fs-se-54 {
    font-size: 54px !important;
  }
  .fs-se-55 {
    font-size: 55px !important;
  }
  .fs-se-56 {
    font-size: 56px !important;
  }
  .fs-se-57 {
    font-size: 57px !important;
  }
  .fs-se-58 {
    font-size: 58px !important;
  }
  .fs-se-59 {
    font-size: 59px !important;
  }
  .fs-se-60 {
    font-size: 60px !important;
  }
}
/* ===================================
   fs-xsm-(size) : iPhone 12〜15（376〜390px）
   =================================== */
@media (min-width: 376px) and (max-width: 390px) {
  .fs-xsm-10 {
    font-size: 10px !important;
  }
  .fs-xsm-11 {
    font-size: 11px !important;
  }
  .fs-xsm-12 {
    font-size: 12px !important;
  }
  .fs-xsm-13 {
    font-size: 13px !important;
  }
  .fs-xsm-14 {
    font-size: 14px !important;
  }
  .fs-xsm-15 {
    font-size: 15px !important;
  }
  .fs-xsm-16 {
    font-size: 16px !important;
  }
  .fs-xsm-17 {
    font-size: 17px !important;
  }
  .fs-xsm-18 {
    font-size: 18px !important;
  }
  .fs-xsm-19 {
    font-size: 19px !important;
  }
  .fs-xsm-20 {
    font-size: 20px !important;
  }
  .fs-xsm-21 {
    font-size: 21px !important;
  }
  .fs-xsm-22 {
    font-size: 22px !important;
  }
  .fs-xsm-23 {
    font-size: 23px !important;
  }
  .fs-xsm-24 {
    font-size: 24px !important;
  }
  .fs-xsm-25 {
    font-size: 25px !important;
  }
  .fs-xsm-26 {
    font-size: 26px !important;
  }
  .fs-xsm-27 {
    font-size: 27px !important;
  }
  .fs-xsm-28 {
    font-size: 28px !important;
  }
  .fs-xsm-29 {
    font-size: 29px !important;
  }
  .fs-xsm-30 {
    font-size: 30px !important;
  }
  .fs-xsm-31 {
    font-size: 31px !important;
  }
  .fs-xsm-32 {
    font-size: 32px !important;
  }
  .fs-xsm-33 {
    font-size: 33px !important;
  }
  .fs-xsm-34 {
    font-size: 34px !important;
  }
  .fs-xsm-35 {
    font-size: 35px !important;
  }
  .fs-xsm-36 {
    font-size: 36px !important;
  }
  .fs-xsm-37 {
    font-size: 37px !important;
  }
  .fs-xsm-38 {
    font-size: 38px !important;
  }
  .fs-xsm-39 {
    font-size: 39px !important;
  }
  .fs-xsm-40 {
    font-size: 40px !important;
  }
  .fs-xsm-41 {
    font-size: 41px !important;
  }
  .fs-xsm-42 {
    font-size: 42px !important;
  }
  .fs-xsm-43 {
    font-size: 43px !important;
  }
  .fs-xsm-44 {
    font-size: 44px !important;
  }
  .fs-xsm-45 {
    font-size: 45px !important;
  }
  .fs-xsm-46 {
    font-size: 46px !important;
  }
  .fs-xsm-47 {
    font-size: 47px !important;
  }
  .fs-xsm-48 {
    font-size: 48px !important;
  }
  .fs-xsm-49 {
    font-size: 49px !important;
  }
  .fs-xsm-50 {
    font-size: 50px !important;
  }
  .fs-xsm-51 {
    font-size: 51px !important;
  }
  .fs-xsm-52 {
    font-size: 52px !important;
  }
  .fs-xsm-53 {
    font-size: 53px !important;
  }
  .fs-xsm-54 {
    font-size: 54px !important;
  }
  .fs-xsm-55 {
    font-size: 55px !important;
  }
  .fs-xsm-56 {
    font-size: 56px !important;
  }
  .fs-xsm-57 {
    font-size: 57px !important;
  }
  .fs-xsm-58 {
    font-size: 58px !important;
  }
  .fs-xsm-59 {
    font-size: 59px !important;
  }
  .fs-xsm-60 {
    font-size: 60px !important;
  }
}
/* ===================================
   fs-sm-(size) : iPhone 11 / 16、12max（391〜414px）
   =================================== */
@media (min-width: 391px) and (max-width: 428px) {
  .fs-sm-10 {
    font-size: 10px !important;
  }
  .fs-sm-11 {
    font-size: 11px !important;
  }
  .fs-sm-12 {
    font-size: 12px !important;
  }
  .fs-sm-13 {
    font-size: 13px !important;
  }
  .fs-sm-14 {
    font-size: 14px !important;
  }
  .fs-sm-15 {
    font-size: 15px !important;
  }
  .fs-sm-16 {
    font-size: 16px !important;
  }
  .fs-sm-17 {
    font-size: 17px !important;
  }
  .fs-sm-18 {
    font-size: 18px !important;
  }
  .fs-sm-19 {
    font-size: 19px !important;
  }
  .fs-sm-20 {
    font-size: 20px !important;
  }
  .fs-sm-21 {
    font-size: 21px !important;
  }
  .fs-sm-22 {
    font-size: 22px !important;
  }
  .fs-sm-23 {
    font-size: 23px !important;
  }
  .fs-sm-24 {
    font-size: 24px !important;
  }
  .fs-sm-25 {
    font-size: 25px !important;
  }
  .fs-sm-26 {
    font-size: 26px !important;
  }
  .fs-sm-27 {
    font-size: 27px !important;
  }
  .fs-sm-28 {
    font-size: 28px !important;
  }
  .fs-sm-29 {
    font-size: 29px !important;
  }
  .fs-sm-30 {
    font-size: 30px !important;
  }
  .fs-sm-31 {
    font-size: 31px !important;
  }
  .fs-sm-32 {
    font-size: 32px !important;
  }
  .fs-sm-33 {
    font-size: 33px !important;
  }
  .fs-sm-34 {
    font-size: 34px !important;
  }
  .fs-sm-35 {
    font-size: 35px !important;
  }
  .fs-sm-36 {
    font-size: 36px !important;
  }
  .fs-sm-37 {
    font-size: 37px !important;
  }
  .fs-sm-38 {
    font-size: 38px !important;
  }
  .fs-sm-39 {
    font-size: 39px !important;
  }
  .fs-sm-40 {
    font-size: 40px !important;
  }
  .fs-sm-41 {
    font-size: 41px !important;
  }
  .fs-sm-42 {
    font-size: 42px !important;
  }
  .fs-sm-43 {
    font-size: 43px !important;
  }
  .fs-sm-44 {
    font-size: 44px !important;
  }
  .fs-sm-45 {
    font-size: 45px !important;
  }
  .fs-sm-46 {
    font-size: 46px !important;
  }
  .fs-sm-47 {
    font-size: 47px !important;
  }
  .fs-sm-48 {
    font-size: 48px !important;
  }
  .fs-sm-49 {
    font-size: 49px !important;
  }
  .fs-sm-50 {
    font-size: 50px !important;
  }
  .fs-sm-51 {
    font-size: 51px !important;
  }
  .fs-sm-52 {
    font-size: 52px !important;
  }
  .fs-sm-53 {
    font-size: 53px !important;
  }
  .fs-sm-54 {
    font-size: 54px !important;
  }
  .fs-sm-55 {
    font-size: 55px !important;
  }
  .fs-sm-56 {
    font-size: 56px !important;
  }
  .fs-sm-57 {
    font-size: 57px !important;
  }
  .fs-sm-58 {
    font-size: 58px !important;
  }
  .fs-sm-59 {
    font-size: 59px !important;
  }
  .fs-sm-60 {
    font-size: 60px !important;
  }
}
html {
  scroll-behavior: smooth;
}

body {
  color: #212529;
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/* Page loader (covers menu + hero + content) */
.page-loader {
  position: fixed;
  inset: 0;
  /* MUST be above .hero (currently z-index: 99999) */
  z-index: 100000;
  /* Prevent blend/stacking side effects bleeding through */
  isolation: isolate;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

.page-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
}

.page-loader__spinner {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 3px solid #ddd;
  border-top-color: #dc0000;
  animation: page-spin 0.7s linear infinite;
}

/* reCAPTCHA badge (bring to front) */
.grecaptcha-badge {
  z-index: 10000 !important;
}

@keyframes page-spin {
  to {
    transform: rotate(360deg);
  }
}
.jp {
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/* English (Poppins) utilities */
/* .en 自体と、その中の子要素すべてを英語フォントにする */
.en,
.en * {
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.02em;
} /* 基本 */
.en-400, .en-500, .en-600, .en-700, .en-800 {
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.02em;
}

.en-400 {
  font-weight: 400;
}

.en-500 {
  font-weight: 500;
}

.en-600 {
  font-weight: 600;
}

.en-700 {
  font-weight: 700;
}

.en-800 {
  font-weight: 800;
}

.en-up {
  text-transform: uppercase;
} /* CONTACT など大文字化 */
.section {
  padding-block: 80px;
}

@media (max-width: 767.98px) {
  .section {
    padding-block: 64px;
  }
}
.badge-kv {
  letter-spacing: 0.15em;
}

.smart-navbar {
  height: var(--nav-h);
  transition: transform 0.28s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.smart-navbar.navbar-hidden {
  transform: translateY(calc(-1 * var(--nav-h)));
}
.smart-navbar.navbar-scrolled {
  background-color: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
  backdrop-filter: saturate(140%) blur(6px);
}

.point-icon {
  font-size: 2rem;
  line-height: 1;
}

.ratio-21x9 {
  --bs-aspect-ratio: calc(9 / 21 * 100%);
}

@media (min-width: 992px) {
  .ratio-400x720 {
    --bs-aspect-ratio: calc(400 / 720 * 100%);
    max-height: 720px;
  }
  .ratio-450x720 {
    --bs-aspect-ratio: calc(450 / 720 * 100%);
    max-height: 720px;
  }
}
.cta-band {
  background: linear-gradient(90deg, #1f6feb, #5ea1ff);
  color: #fff;
}
.cta-band .btn {
  background: #fff;
  color: #0d6efd;
  border: none;
}

.BB {
  border: 3px solid #0d6efd;
}

/* ふわっと表示（CSS only） */
@keyframes fadeUp {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fade-up {
  opacity: 0;
  animation: fadeUp 0.9s ease forwards;
}

/* 少し遅らせたいとき */
.fade-up.delay-1 {
  animation-delay: 0.3s;
}

/* =========================
   iPhone X / XS / 11 Pro 専用メディアクエリ
   （375 × 812 / DPR3 縦向き）
   ========================= */
@media only screen and (min-device-width: 375px) and (max-device-width: 375px) and (min-device-height: 812px) and (max-device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
  /* ▼ iPhone X 専用調整を書く ▼ */
  .iphone-x-test {
    outline: 2px solid red;
  } /* 動作確認用 */
}
/* __FORCE_COMPILE_TEST__ */
.__force_compile_test__ {
  outline: 10px solid red !important;
}

/* __FORCE_COMPILE_TEST2__ */
.__force_compile_test2__ {
  outline: 10px solid red !important;
}/*# sourceMappingURL=style.css.map */