@charset "UTF-8";
/****
  数値をvw値へ変換する
 */
/***
  数値（px）をbase-vwから算出したvw へ変換
  元の数値と比べて小さい方を返す
  つまり、画面サイズがbase-vwよりひろければ指定数値
  狭ければvw変換値を使用する
 */
/**
  上記二つのSP版
 */
/*

@function calcClamp($value) {
  @if $value < 0 {
    @return clamp($value, tovw($value, 110rem), 0rem);
  } @else {
    @return clamp(0rem , tovw($value, 110rem), $value);
  }

}
@function calcClampSP($value) {
  @if $value < 0 {
    @return clamp(tovw($value, 39rem), tovw($value, 39rem), 0rem);
  } @else {
    @return clamp(0rem , tovw($value, 39rem), tovw($value, 39rem));
  }

}*/
/**
	リンク下線のエフェクト
 */
/**
	リンク下線のエフェクト インラインリンク用
 */
/**
	webp背景画像を指定する
 */
/* ==========================================================================
   Base
   リセットcssとhtml要素の定義
   ========================================================================== */
/**
  font family
 */
/**
  color
 */
:root {
  --col_black: #1A1311;
  --col_black_text: #1A1A1A;
  --col_border: #b3d9f0;
  --col_tap-highlight-color: #ccc;
  --col_blue: #5084C4;
  --col_skyblue: #00B3EA;
  --col_pink: #EB7AA0;
  --col_orange: #F29600;
  --col_purple: #A56AA8;
  --col_green: #41B053;
  --col_red: #E43D0B;
  --switch_bp: 1020;
}

*, *::before, *::after {
  box-sizing: border-box;
}

body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
  margin: 0;
}

ul[role=list], ol[role=list] {
  list-style: none;
}

body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

/*img, picture {
  max-width: 100%;
  display: block
}*/
table {
  border-collapse: collapse;
  border-spacing: 0;
}

input, button, textarea, select {
  font: inherit;
}

/* ==========================================================================

   preset.scss
   プリミティブ要素の設定

 */
*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  overflow-y: scroll;
  /*  @include mq-sp-slim {
      font-size: calc(100 * 16 / 320 * 0.625vw);
    }
    @include mq-fromto(0, 768) {
      font-size: calc(100 * 16 / 375 * 0.625vw);
    }
    @include mq-fromto(769, 1280) {
      font-size: calc(100 * 16 / 1280 * 0.625vw);
    }
    @include mq-min(1280){
      font-size: 62.5%;
    }*/
}

body {
  font-size: min(3.8461538462vw, 15px);
  color: var(--col_black);
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /*overscroll-behavior: none;*/
  -webkit-tap-highlight-color: var(--col_tap-highlight-color);
  letter-spacing: 0.05em;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
}
@media print, screen and (min-width:769px) {
  body {
    font-size: min(1.1363636364vw, 15px);
  }
}

body.is-fixed {
  position: fixed;
  height: 100%;
  overflow: hidden;
}

main {
  display: block;
}

a {
  color: var(--col_black);
  text-decoration: none;
  outline: none;
}

a:active, a:hover, a.touchstart {
  text-decoration: none;
}

@media print, screen and (min-width:769px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

p, h1, h2, h3, h4, h5, h6, small, em, li, dt, dd, th, td {
  line-height: 2;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  font-weight: 500;
}

ul {
  margin: 0;
  padding: 0;
}

li {
  list-style-type: none;
}

img {
  vertical-align: bottom;
}

img,
picture {
  width: 100%;
  height: auto;
}

/* 画像のぼやけをなくす（chrome opera） */
/*@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
  img {
    image-rendering: -webkit-optimize-contrast;
  }
}*/
sup {
  font-size: 0.4em;
  vertical-align: top;
}

hr {
  height: 0;
  margin: 0;
  border: none;
  border-top: 1px solid #ddd;
}

/* reset form elements */
input, button, textarea, select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  color: var(--col_black);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

select::-ms-expand {
  display: none;
}

.svg-assets {
  display: none;
}

/* ==========================================================================
    libs
   ========================================================================== */
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/**
	リンク下線のエフェクト
 */
/**
	リンク下線のエフェクト インラインリンク用
 */
/**
	webp背景画像を指定する
 */
.slick-slide {
  outline: none;
}

/* Slider */
/* Icons */
@font-face {
  font-family: "slick";
  src: url("./fonts/slick.eot");
  src: url("./fonts/slick.eot?#iefix") format("embedded-opentype"), url("./fonts/slick.woff") format("woff"), url("./fonts/slick.ttf") format("truetype"), url("./fonts/slick.svg#slick") format("svg");
  font-weight: normal;
  font-style: normal;
}
.slick-controll {
  position: relative;
}
@media print, screen and (min-width:769px) {
  .slick-controll {
    width: 40%;
    margin: 0 0 0 auto;
  }
}

/* Arrows */
.slick-prev,
.slick-next {
  width: 30px;
  font-size: 0;
  z-index: 10;
  position: absolute;
  cursor: pointer;
  aspect-ratio: 1/2;
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
  background: linear-gradient(90deg, #ccb26b, #f1dba5, #ccb26b);
  background-size: 200% 100%;
  top: calc(50% - 30px);
}
.slick-prev::before,
.slick-next::before {
  content: "";
  display: block;
  position: absolute;
  width: 6px;
  height: 12px;
  mask: url(../img/ic_prev.svg) no-repeat center center/contain;
  background-color: #fff;
  left: 15px;
  top: calc(50% - 6px);
}
@media print, screen and (min-width:769px) {
  .slick-prev,
  .slick-next {
    width: 50px;
    top: calc(50% - 50px);
    transition: 0.35s background-position;
  }
  .slick-prev::before,
  .slick-next::before {
    width: 10px;
    height: 20px;
    left: 24px;
    top: calc(50% - 10px);
  }
  .slick-prev:hover,
  .slick-next:hover {
    background-position: -100% 0;
  }
}

.slick-prev {
  left: 30px;
}
@media print, screen and (min-width:769px) {
  .slick-prev {
    left: calc(50% - 450px);
  }
}

.slick-next {
  transform: rotate(180deg);
  right: 30px;
}
@media print, screen and (min-width:769px) {
  .slick-next {
    right: calc(50% - 450px);
  }
}

/* Dots */
.slick-dots {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: flex-start;
}
.slick-dots li {
  position: relative;
  display: flex;
  align-items: center;
  height: 25px;
  width: 25px;
  cursor: pointer;
}
.slick-dots li button {
  font-size: 0;
  width: 9px;
  height: 9px;
  display: block;
  border-radius: 50%;
  background-color: #444;
}
.slick-dots li.slick-active button {
  background-color: #999;
}
@media print, screen and (min-width:769px) {
  .slick-dots li {
    height: 25px;
    width: 25px;
  }
  .slick-dots li button {
    width: 10px;
    height: 10px;
  }
}

/* ==========================================================================
   Layout
   ========================================================================== */
/* --------------------------------------------------------------------
  #ページ全体のwrapper
 */
.l-page-wrapper {
  position: relative;
  overflow: hidden;
}
/* --------------------------------------------------------------------
  #基本幅レイアウト用wrapper
 */
.l-width-std {
  margin-left: min(5.1282051282vw, 20px);
  margin-right: min(5.1282051282vw, 20px);
}
@media print, screen and (min-width:769px) {
  .l-width-std {
    margin-left: min(6.0606060606vw, 80px);
    margin-right: min(6.0606060606vw, 80px);
    max-width: min(87.8787878788vw, 1160px);
  }
}
@media screen and (min-width: 1320px) {
  .l-width-std {
    margin-left: auto;
    margin-right: auto;
  }
}

/* --------------------------------------------------------------------
  #メインエリアwrapper
 */
.l-main {
  position: relative;
  overflow: hidden;
}
/* --------------------------------------------------------------------
  #セカンドユーティリティページレイアウト
 */
.l-subpage {
  padding: 8rem 0 8rem;
}
@media print, screen and (min-width:769px) {
  .l-subpage {
    padding: 12rem 0 12rem;
  }
}

.l-subpage.--complete-page {
  height: calc(100vh - 17.5rem);
}
@media print, screen and (min-width:769px) {
  .l-subpage.--complete-page {
    min-height: 50rem;
    height: calc(100vh - 24.3rem);
  }
}

/* --------------------------------------------------------------------
  #汎用セクションフォーマット
 */
.l-section {
  position: relative;
  z-index: 3;
  margin-bottom: 6rem;
}
@media print, screen and (min-width:769px) {
  .l-section {
    margin-bottom: 10rem;
  }
}

/* ==========================================================================
   Module
   ========================================================================== */
/**
  汎用ページ
 */
.page-top {
  position: relative;
}

.page-common {
  position: relative;
  background-color: #fff;
  padding-top: min(51.2820512821vw, 200px);
}
@media print, screen and (min-width:769px) {
  .page-common {
    padding-top: min(19.696969697vw, 260px);
  }
}

/* ====================================================================

#コンテンツヘッダ

*/
/* --------------------------------------------------------------------
  #ヘッダ
 */
.header {
  position: fixed;
  z-index: 110;
  left: 0;
  top: 0;
  width: 100%;
  height: min(20.5128205128vw, 80px);
  transform: translate3d(0, -100%, 0);
  transition: transform 0.5s;
}
.header.is-active {
  transform: translate3d(0, 0, 0);
}
@media print, screen and (min-width:769px) {
  .header {
    height: min(9.0909090909vw, 120px);
  }
}

.header__ci {
  margin-bottom: min(12.8205128205vw, 50px);
  width: min(51.2820512821vw, 200px);
}
@media print, screen and (min-width:769px) {
  .header__ci {
    width: min(22.7272727273vw, 300px);
    margin-bottom: min(6.0606060606vw, 80px);
  }
}

.header__logo {
  /*position: fixed;*/
  position: absolute;
  z-index: 108;
  left: 0;
  top: 0;
  width: min(24.1025641026vw, 94px);
  height: min(20.5128205128vw, 80px);
  mask: url(../img/shape_m.svg) no-repeat center center/min(14.358974359vw, 56px);
  background-color: var(--col_black_text);
}
@media print, screen and (min-width:769px) {
  .header__logo {
    width: min(11.3636363636vw, 150px);
    height: min(9.0909090909vw, 120px);
    mask-size: min(6.0606060606vw, 80px) auto;
    transition: background-color 0.35s;
  }
  .header__logo:hover {
    background-color: var(--col_green);
  }
}

/**
  SP時の固定ヘッダ要素
 */
/**
  メニュートリガーボタン
 */
.header__trigger {
  position: fixed;
  z-index: 111;
  cursor: pointer;
  right: 0;
  top: 0;
  width: min(20.5128205128vw, 80px);
  height: min(20.5128205128vw, 80px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.header__trigger .line1,
.header__trigger .line2,
.header__trigger .line3 {
  display: block;
  width: min(10.2564102564vw, 40px);
  height: min(0.5128205128vw, 2px);
  background-color: var(--col_black_text);
  transform-origin: 50% 50%;
  transition-duration: 0.2s;
}
.header__trigger .line1 {
  transform: translate3d(0, -4px, 0);
}
.header__trigger .line2 {
  display: none;
}
.header__trigger .line3 {
  transform: translate3d(0, 4px, 0);
}
.header__trigger.is-active .line1,
.header__trigger.is-active .line2,
.header__trigger.is-active .line3 {
  transition-duration: 0.4s;
  background-color: #fff;
}
.header__trigger.is-active .line1 {
  transform: translate3d(0, 1px, 0) rotate(25deg);
}
.header__trigger.is-active .line2 {
  opacity: 0;
}
.header__trigger.is-active .line3 {
  transform: translate3d(0, -1px, 0) rotate(-25deg);
}
@media print, screen and (min-width:769px) {
  .header__trigger {
    width: min(30.7692307692vw, 120px);
    height: min(30.7692307692vw, 120px);
  }
  .header__trigger .line1,
  .header__trigger .line2,
  .header__trigger .line3 {
    width: 40px;
    height: 2px;
  }
  .header__trigger .line1 {
    transform: translate3d(0, -4px 0);
  }
  .header__trigger .line3 {
    transform: translate3d(0, 4px, 0);
  }
}

.header__trigger.is-white .line1,
.header__trigger.is-white .line2,
.header__trigger.is-white .line3 {
  background-color: #fff;
}
.header__trigger.is-white.is-change-color .line1,
.header__trigger.is-white.is-change-color .line2,
.header__trigger.is-white.is-change-color .line3 {
  background-color: var(--col_black);
}

/**
  メニュー本体（SP時メニューのボディ）
 */
.header-menu {
  position: fixed;
  z-index: 110;
  top: 0;
  right: 0;
  transform: translate3d(100%, 0, 0);
}
.header-menu.is-active {
  display: block;
  transform: translate3d(0, 0, 0);
}
.header-menu.is-beforeEnter {
  display: block;
  transform: translate3d(100%, 0, 0);
}
.header-menu.is-enter {
  display: block;
  transition: transform 0.6s;
  transform: translate3d(0, 0, 0);
}
.header-menu.is-fadeOut {
  display: block;
  transition: transform 0.6s;
  transform: translate3d(100%, 0, 0);
}

.header-menu-inner {
  z-index: 109;
  right: 0;
  top: 0;
  width: min(81.5384615385vw, 318px);
  background-color: var(--col_green);
  border-radius: 0 0 0 60px;
}
.header-menu-inner::after {
  content: "";
  display: block;
  position: absolute;
  width: min(86.6666666667vw, 338px);
  height: min(17.4358974359vw, 68px);
  bottom: min(7.6923076923vw, 30px);
  right: max(-17.9487179487vw, -70px);
  background-color: #67C075;
  mask: url(../img/shape_m.svg) no-repeat center center/contain;
}
@media print, screen and (min-width:769px) {
  .header-menu-inner {
    width: min(37.8787878788vw, 500px);
    max-height: min(67.4242424242vw, 890px);
    border-radius: 60px 0 0 60px;
  }
  .header-menu-inner::after {
    width: min(44.1666666667vw, 583px);
    height: min(8.8636363636vw, 117px);
    right: max(-12.1212121212vw, -160px);
    bottom: min(3.3333333333vw, 44px);
  }
}

.header-menu-content {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  margin-left: auto;
  margin-right: auto;
  padding: min(23.0769230769vw, 90px) min(5.1282051282vw, 20px) min(35.8974358974vw, 140px);
}
@media print, screen and (min-width:769px) {
  .header-menu-content {
    padding: min(7.5757575758vw, 100px) 0 min(16.6666666667vw, 220px);
  }
}

/**
  gnav
 */
.header__gnav > li {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  line-height: 1;
  font-size: min(6.1538461538vw, 24px);
}
.header__gnav > li a {
  color: #fff;
}
.header__gnav > li:not(:last-child) {
  margin-bottom: min(8.2051282051vw, 32px);
}
@media print, screen and (min-width:769px) {
  .header__gnav > li {
    font-size: min(2.1212121212vw, 28px);
  }
  .header__gnav > li:not(:last-child) {
    margin-bottom: min(3.7878787879vw, 50px);
  }
}

/* ====================================================================

  #フッタ

 */
.footer-inner {
  background-color: var(--col_green);
  border-radius: 12px 12px 0 0;
  padding-bottom: min(28.2051282051vw, 110px);
}
.footer-inner::after {
  content: "";
  display: block;
  position: absolute;
  mask: url(../img/shape_m.svg) no-repeat center center/contain;
  background-color: #67C075;
  width: min(56.4102564103vw, 220px);
  height: min(11.5384615385vw, 45px);
  bottom: min(10.2564102564vw, 40px);
  left: max(-5.1282051282vw, -20px);
}
@media print, screen and (min-width:769px) {
  .footer-inner {
    border-radius: 50px 50px 0 0;
    padding-bottom: min(22.7272727273vw, 300px);
  }
  .footer-inner::after {
    left: max(-4.5454545455vw, -60px);
    bottom: min(7.5757575758vw, 100px);
    width: min(61.3636363636vw, 810px);
    height: min(12.4242424242vw, 164px);
  }
}

.footer-container {
  border: 2px solid var(--col_green);
  border-radius: 12px;
  background-color: #fff;
  transform: translateY(max(-12.8205128205vw, -50px));
  margin-bottom: max(-11.5384615385vw, -45px);
  padding: min(7.6923076923vw, 30px) min(5.1282051282vw, 20px) min(12.8205128205vw, 50px);
}
@media print, screen and (min-width:769px) {
  .footer-container {
    border-radius: 15px;
    transform: translateY(max(-7.2727272727vw, -96px));
    margin-bottom: max(-5.7575757576vw, -76px);
    display: flex;
    padding: min(2.2727272727vw, 30px) 0;
  }
}

.footer-content {
  position: relative;
  color: var(--col_green);
  padding-bottom: min(7.6923076923vw, 30px);
}
@media only screen and (max-width: 768px) {
  .footer-content {
    border-bottom: 1px solid var(--col_green);
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    align-items: center;
  }
}
@media print, screen and (min-width:769px) {
  .footer-content {
    border-right: 1px solid var(--col_green);
    width: 60%;
    padding: min(1.8939393939vw, 25px) min(29.9242424242vw, 395px) min(1.5151515152vw, 20px) min(4.3939393939vw, 58px);
  }
}

.footer__logo {
  font-size: 0;
  mask: url(../img/logo.svg) no-repeat center center/contain;
  background-color: var(--col_green);
  width: min(55.8974358974vw, 218px);
  height: min(8.2051282051vw, 32px);
  margin-top: min(3.8461538462vw, 15px);
}
@media print, screen and (min-width:769px) {
  .footer__logo {
    width: min(14.7727272727vw, 195px);
    height: min(2.1212121212vw, 28px);
    margin-top: min(1.1363636364vw, 15px);
  }
}

.footer__heading {
  border: 1px solid var(--col_green);
  color: var(--col_green);
  line-height: 1;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  font-size: min(3.5897435897vw, 14px);
  padding: min(1.7948717949vw, 7px) min(5.1282051282vw, 20px);
}
@media print, screen and (min-width:769px) {
  .footer__heading {
    padding: min(0.7575757576vw, 10px) min(2.2727272727vw, 30px);
    font-size: min(1.2878787879vw, 17px);
  }
}

.footer__heading.--en {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}
@media only screen and (max-width: 768px) {
  .footer__heading.--en {
    font-size: min(3.8461538462vw, 15px);
  }
}
.footer__address {
  font-weight: 700;
  line-height: 1.2;
  font-size: min(3.8461538462vw, 15px);
  margin-top: min(3.0769230769vw, 12px);
  margin-bottom: min(3.8461538462vw, 15px);
}
@media print, screen and (min-width:769px) {
  .footer__address {
    font-size: min(1.2878787879vw, 17px);
    margin-top: min(1.1363636364vw, 15px);
    margin-bottom: min(0.3787878788vw, 5px);
  }
}

.footer__sub {
  font-weight: 700;
  line-height: 1.5;
}
.footer__sub .tel {
  display: block;
}
.footer__sub .tel a {
  color: var(--col_green);
}
@media only screen and (max-width: 768px) {
  .footer__sub {
    display: flex;
    text-align: left;
    justify-content: space-between;
    width: 100%;
    align-items: center;
    margin-bottom: min(0.7692307692vw, 3px);
  }
  .footer__sub .size1 {
    font-size: min(3.3333333333vw, 13px);
  }
  .footer__sub .size2 {
    font-size: min(4.1025641026vw, 16px);
    flex: 1;
    text-align: right;
  }
  .footer__sub .size2.--border {
    height: 1px;
    background-color: var(--col_green);
    margin: 0 0.8rem;
  }
  .footer__sub .tel {
    width: min(33.3333333333vw, 130px);
  }
}
@media screen and (min-width: 400px) and (max-width: 768px) {
  .footer__sub .size2 {
    text-align: left;
    margin-left: 1rem;
  }
}
@media print, screen and (min-width:769px) {
  .footer__sub {
    margin-bottom: min(0.3787878788vw, 5px);
  }
  .footer__sub .size1 {
    font-size: min(0.9848484848vw, 13px);
  }
  .footer__sub .size2 {
    font-size: min(1.2121212121vw, 16px);
    padding-left: 1rem;
    text-align: left;
  }
  .footer__sub .tel {
    font-size: min(1.1363636364vw, 15px);
  }
}

.footer__map {
  border: 1px solid var(--col_green);
  overflow: hidden;
  border-radius: 10px;
  margin-top: min(5.1282051282vw, 20px);
  height: min(38.4615384615vw, 150px);
}
.footer__map iframe {
  width: 100%;
  height: 100%;
}
@media print, screen and (min-width:769px) {
  .footer__map {
    position: absolute;
    margin-top: 0;
    border-radius: 10px;
    width: min(25.3787878788vw, 335px);
    height: min(17.0454545455vw, 225px);
    right: min(4.3939393939vw, 58px);
    border-width: 2px;
    top: min(1.5151515152vw, 20px);
  }
}

.footer-contact {
  color: var(--col_green);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: min(7.6923076923vw, 30px) 0 0;
}
@media print, screen and (min-width:769px) {
  .footer-contact {
    width: 40%;
    padding: 0;
  }
}

.footer-contact__heading {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0.08em;
  font-size: min(9.2307692308vw, 36px);
}
@media print, screen and (min-width:769px) {
  .footer-contact__heading {
    font-size: min(3.0303030303vw, 40px);
  }
}

.footer-contact__link {
  font-weight: 700;
  color: var(--col_green);
  position: relative;
  border-bottom: min(0.3846153846vw, 1.5px) solid var(--col_green);
  font-size: min(3.3333333333vw, 13px);
  padding: 0 min(1.5384615385vw, 6px) min(2.5641025641vw, 10px) min(11.7948717949vw, 46px);
}
.footer-contact__link::before {
  content: "";
  display: block;
  position: absolute;
  width: 30px;
  height: 18px;
  left: min(1.5384615385vw, 6px);
  background: url(../img/ic_mail.svg) no-repeat center center/contain;
}
@media print, screen and (min-width:769px) {
  .footer-contact__link {
    padding: 0 min(1.1363636364vw, 15px) min(0.7575757576vw, 10px) min(4.5454545455vw, 60px);
    border-width: min(0.1136363636vw, 1.5px);
    font-size: min(1.2121212121vw, 16px);
  }
  .footer-contact__link::before {
    width: min(2.7272727273vw, 36px);
    height: min(1.6666666667vw, 22px);
    left: min(1.1363636364vw, 15px);
  }
}

.footer__produce {
  display: block;
  width: min(73.3333333333vw, 286px);
  margin: 0 auto;
}
@media print, screen and (min-width:769px) {
  .footer__produce {
    width: min(36.3636363636vw, 480px);
    margin: 0 0 0 auto;
  }
}

/**
  基本セク章
 */
.catchcopy {
  font-size: min(4.1025641026vw, 16px);
  margin-bottom: min(3.8461538462vw, 15px);
  line-height: 1.75;
  font-weight: 700;
}
@media print, screen and (min-width:769px) {
  .catchcopy {
    font-size: min(2.0454545455vw, 27px);
    margin-bottom: min(1.5151515152vw, 20px);
  }
}

/* ==========================================================================

	#アコーディオンモジュール

 */
.prg-accr-trigger {
  cursor: pointer;
}

.prg-accr-content {
  display: none;
}

.prg-sp-accr-trigger {
  cursor: pointer;
}
.prg-sp-accr-trigger .icon-arrow {
  transition-duration: 0.3s;
}

@media only screen and (max-width: 768px) {
  .prg-sp-accr-content {
    display: none;
  }
}

/* ====================================================================

  #見出しモジュール

 */
/* --------------------------------------------------------------------
  # ページ見出し
 */
/* --------------------------------------------------------------------
  # セクション見出し
 */
.heading-sec {
  position: relative;
  width: min(54.358974359vw, 212px);
  padding-top: min(2.5641025641vw, 10px);
}
.heading-sec::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 3;
  width: 100%;
  height: min(2.5641025641vw, 10px);
  left: 0;
  top: max(-8.2051282051vw, -32px);
  background-color: #ccc;
  border-radius: 15px 15px 0 0;
  border-top: 2px solid var(--col_black);
  border-right: 2px solid var(--col_black);
  border-left: 2px solid var(--col_black);
}
.heading-sec::after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  left: 0;
  top: max(-5.641025641vw, -22px);
  height: min(5.641025641vw, 22px);
  background-color: #fff;
  z-index: 3;
  border-right: 2px solid var(--col_black);
  border-left: 2px solid var(--col_black);
}
.heading-sec > small {
  position: absolute;
  z-index: 4;
  left: min(5.1282051282vw, 20px);
  top: max(-2.0512820513vw, -8px);
  display: inline-block;
  border-radius: 50px;
  border: 1px solid #666666;
  line-height: 1;
  padding: min(1.2820512821vw, 5px) min(5.1282051282vw, 20px);
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: min(2.5641025641vw, 10px);
}
.heading-sec > img {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
  z-index: 6;
}
@media print, screen and (min-width:769px) {
  .heading-sec {
    width: min(29.2424242424vw, 386px);
    padding-top: min(1.5151515152vw, 20px);
  }
  .heading-sec::before {
    height: min(1.1363636364vw, 15px);
    top: max(-4.5454545455vw, -60px);
  }
  .heading-sec::after {
    top: max(-3.4090909091vw, -45px);
    height: min(3.4090909091vw, 45px);
  }
  .heading-sec > small {
    font-size: min(1.2878787879vw, 17px);
    padding: min(0.6060606061vw, 8px) min(1.8939393939vw, 25px);
    left: min(3.4090909091vw, 45px);
    top: max(-0.7575757576vw, -10px);
  }
}

/* ====================================================================

  #ボタンモジュール
  style設定クラスは > .btn-inner を内包する
  ex)
  <div class="some-btn">
  <p class="btn-style-a">
    <a class="btn-inner" href="hoge">ボタン</a>
  </p>
  </div>

 */
.button-inner {
  position: relative;
  width: 100%;
  display: block;
  cursor: pointer;
}

/* --------------------------------------------------------------------
  #ボタン A - タイポ＋横棒線

 */
.button-a {
  position: relative;
  background-color: #E43D0A;
  min-height: min(12.0512820513vw, 47px);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(51.7948717949vw, 202px);
  border-radius: 50px;
  padding-right: 12px;
}
.button-a .arrow {
  overflow: hidden;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 24px;
  height: 24px;
  margin: auto 0;
  line-height: 1;
}
.button-a .arrow:before,
.button-a .arrow:after {
  content: "";
  mask: url(../img/ic_arrow_a.svg) no-repeat center center/18px auto;
  position: absolute;
  background-color: #000;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  animation-fill-mode: forwards;
  animation-duration: 0.35s;
}
.button-a .arrow:after {
  transform: translateX(-100%);
}
@keyframes transformLeftRight {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes transformRightLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}
@media print, screen and (min-width:769px) {
  .button-a:hover .item-heading {
    opacity: 0.5;
  }
  .button-a:hover .arrow:before {
    animation-name: transformRightLeft; /* 修正: hover時のアニメーションを指定 */
    animation-delay: 0s;
  }
  .button-a:hover .arrow:after {
    animation-name: transformLeftRight; /* 修正: hover時のアニメーションを指定 */
    animation-delay: 0.2s;
  }
}
.button-a::after {
  content: "";
  display: block;
  position: absolute;
  width: min(10.5128205128vw, 41px);
  height: min(10.5128205128vw, 41px);
  background-color: #AD3613;
  border-radius: 50%;
  top: min(0.7692307692vw, 3px);
  right: min(0.7692307692vw, 3px);
}
.button-a .arrow {
  z-index: 5;
  right: min(2.5641025641vw, 10px);
}
.button-a .arrow::before, .button-a .arrow::after {
  background-color: #fff;
}
@media print, screen and (min-width:769px) {
  .button-a {
    min-height: min(3.5606060606vw, 47px);
    min-width: min(15.303030303vw, 202px);
  }
  .button-a::after {
    width: min(3.1060606061vw, 41px);
    height: min(3.1060606061vw, 41px);
    top: min(0.2272727273vw, 3px);
    right: min(0.2272727273vw, 3px);
  }
}

.button-a.--en {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-weight: 600;
}

.button-a.--blue {
  background-color: #04B3EA;
}
.button-a.--blue::after {
  background-color: #5084C4;
}

.button-a.--green {
  background-color: #41B053;
}
.button-a.--green::after {
  background-color: #328B40;
}

/* --------------------------------------------------------------------
  #insta

 */
.button-insta {
  width: min(12.0512820513vw, 47px);
  height: min(12.0512820513vw, 47px);
  background-color: #E43D0A;
  border-radius: 50%;
  position: relative;
  display: block;
  font-size: 0;
}
.button-insta::after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  mask: url(../img/ic_insta.svg) no-repeat center center/min(6.4102564103vw, 25px) auto;
  background-color: #fff;
}
@media print, screen and (min-width:769px) {
  .button-insta {
    width: min(3.5606060606vw, 47px);
    height: min(3.5606060606vw, 47px);
  }
  .button-insta::after {
    mask-size: min(1.8939393939vw, 25px) auto;
  }
}

/* --------------------------------------------------------------------
  #フォームボタン

 */
/* ==========================================================================
   project
   ========================================================================== */
.mv {
  position: relative;
  background-color: #F5F5F5;
  padding: min(37.1794871795vw, 145px) 0 min(51.2820512821vw, 200px);
}
@media screen and (max-width: 768px) and (max-height: 650px) {
  .mv {
    padding: min(19.2307692308vw, 75px) 0 min(51.2820512821vw, 200px);
  }
}
@media print, screen and (min-width:769px) {
  .mv {
    padding: min(6.8181818182vw, 90px) 0 min(15.1515151515vw, 200px);
  }
}

.mv-slide-container {
  position: relative;
}
@media only screen and (max-width: 768px) {
  .mv-slide-container {
    margin: 0 0 0 min(5.1282051282vw, 20px);
  }
}
@media print, screen and (min-width:769px) {
  .mv-slide-container {
    max-width: min(75.4545454545vw, 996px);
    margin-left: auto;
    margin-right: auto;
  }
}

.mv-slide {
  position: relative;
  z-index: 3;
  mask: url(../img/shape_mv_sp.svg) no-repeat center center/contain;
}
@media print, screen and (min-width:769px) {
  .mv-slide {
    max-width: min(75.4545454545vw, 996px);
    mask-image: url(../img/shape_mv.svg);
  }
}

.mv__catchcopy {
  position: absolute;
  z-index: 6;
  font-weight: 700;
  letter-spacing: 0.1em;
  font-size: min(4.1025641026vw, 16px);
  font-feature-settings: "pkna";
  writing-mode: vertical-rl;
  text-orientation: mixed;
  -ms-text-combine-horizontal: all;
}
@media only screen and (max-width: 768px) {
  .mv__catchcopy {
    display: block;
    background-color: #F5F5F5;
    line-height: 1;
    padding: 0.8em;
    right: min(5.1282051282vw, 20px);
    top: min(20.5128205128vw, 80px);
  }
}
@media print, screen and (min-width:769px) {
  .mv__catchcopy {
    font-size: min(1.9696969697vw, 26px);
    top: min(4.5454545455vw, 60px);
    left: calc(50% + min(39.3939393939vw, 520px));
  }
}
@media screen and (min-width: 769px) and (max-width: 1240px) {
  .mv__catchcopy {
    left: auto;
    right: min(2.2727272727vw, 30px);
  }
}

.mv__heading > small {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  line-height: 2;
  color: var(--col_black_text);
  font-size: min(2.8205128205vw, 11px);
  margin-top: min(4.6153846154vw, 18px);
}
.mv__heading img {
  width: min(56.4102564103vw, 220px);
}
@media print, screen and (min-width:769px) {
  .mv__heading {
    margin: min(4.5454545455vw, 60px) auto 0 0;
  }
  .mv__heading img {
    width: min(25.5303030303vw, 337px);
  }
  .mv__heading > small {
    font-size: min(0.9090909091vw, 12px);
    margin-top: min(1.5151515152vw, 20px);
  }
}

/**
  shape
 */
.mv__shape {
  position: absolute;
  z-index: 1;
  width: min(47.1794871795vw, 184px);
  height: min(9.4871794872vw, 37px);
  mask: url(../img/shape_m.svg) no-repeat center center/contain;
  background-color: #ddd;
}
@media print, screen and (min-width:769px) {
  .mv__shape {
    width: min(33.0303030303vw, 436px);
    height: min(6.6666666667vw, 88px);
  }
}

.mv__shape.--blue {
  background-color: var(--col_blue);
  left: max(-2.5641025641vw, -10px);
  bottom: min(30.7692307692vw, 120px);
}
@media print, screen and (min-width:769px) {
  .mv__shape.--blue {
    top: min(55.303030303vw, 730px);
    left: calc(50% - min(5.303030303vw, 70px));
  }
}

.mv__shape.--skyblue {
  background-color: var(--col_skyblue);
  top: min(12.8205128205vw, 50px);
  left: min(7.6923076923vw, 30px);
}
@media screen and (max-width: 768px) and (max-height: 650px) {
  .mv__shape.--skyblue {
    top: min(5.1282051282vw, 20px);
  }
}
@media print, screen and (min-width:769px) {
  .mv__shape.--skyblue {
    top: min(3.0303030303vw, 40px);
    right: calc(50% + min(12.8787878788vw, 170px));
  }
}

.mv__shape.--pink {
  background-color: var(--col_pink);
  z-index: 3;
  top: min(38.4615384615vw, 150px);
  right: max(-10.2564102564vw, -40px);
}
@media screen and (max-width: 768px) and (max-height: 650px) {
  .mv__shape.--pink {
    top: min(25.641025641vw, 100px);
  }
}
@media print, screen and (min-width:769px) {
  .mv__shape.--pink {
    right: auto;
    top: min(7.5757575758vw, 100px);
    left: calc(50% + min(3.7878787879vw, 50px));
  }
}

.mv__shape.--orange {
  background-color: var(--col_orange);
  left: max(-24.6153846154vw, -96px);
  top: min(51.2820512821vw, 200px);
}
@media screen and (max-width: 768px) and (max-height: 650px) {
  .mv__shape.--orange {
    top: min(35.8974358974vw, 140px);
  }
}
@media print, screen and (min-width:769px) {
  .mv__shape.--orange {
    top: min(32.5757575758vw, 430px);
    left: auto;
    right: calc(50% + min(32.5757575758vw, 430px));
  }
}

.mv__shape.--green {
  z-index: 5;
  background-color: var(--col_green);
  right: max(-12.8205128205vw, -50px);
  bottom: min(41.0256410256vw, 160px);
}
@media print, screen and (min-width:769px) {
  .mv__shape.--green {
    bottom: auto;
    top: min(43.1818181818vw, 570px);
    right: auto;
    left: calc(50% + min(32.5757575758vw, 430px));
  }
}

.mv__shape.--purple {
  background-color: var(--col_purple);
  right: max(-28.2051282051vw, -110px);
  bottom: min(15.3846153846vw, 60px);
}
@media print, screen and (min-width:769px) {
  .mv__shape.--purple {
    top: min(62.1212121212vw, 820px);
    right: auto;
    left: calc(50% + min(45.4545454545vw, 600px));
  }
}

/***
  indicator
 */
/* 変数で調整しやすく */
.slide-indicator {
  --size: 100px; /* 全体サイズ */
  --stroke: 2px; /* 線幅 */
  --track: #fff; /* トラック色 */
  --progress: #222; /* 進捗色 */
  --txt: var(--col_black_text); /* 文字色 */
  --duration: 3500ms; /* 1周の時間 */
  position: absolute;
  z-index: 10;
  inline-size: var(--size);
  block-size: var(--size);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--txt);
  isolation: isolate; /* 重なりのにじみ防止 */
  /* 中心の数字と斜めスラッシュ */
  /* 再生中クラスでリングを走らせる。次スライド開始時に再付与でリスタート */
}
.slide-indicator .ring {
  position: absolute;
  inset: 0;
  transform: rotate(-90deg); /* 12時スタート */
  background-color: #fff;
  border-radius: 50%;
}
.slide-indicator .progress {
  fill: none;
  stroke-linecap: round;
  stroke-width: var(--stroke);
}
.slide-indicator .progress {
  stroke: var(--progress);
  /* 円周長 = 2πr。r=46 → 約 289 */
  stroke-dasharray: 308;
  stroke-dashoffset: 308; /* 0% 表示 */
}
.slide-indicator .nums {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  position: relative;
  font-variant-numeric: tabular-nums;
  font-size: 18px;
  line-height: 1;
  display: grid;
  place-items: center;
  text-align: center;
  /* 斜めスラッシュ（擬似要素線） */
  /* 01 を左上寄り、05 を右下寄りに見せる */
}
.slide-indicator .nums::before {
  content: "";
  position: absolute;
  inline-size: 50px;
  block-size: 2px;
  background: currentColor;
  transform: rotate(-45deg);
  opacity: 0.8;
}
.slide-indicator .nums .num-current,
.slide-indicator .nums .num-total {
  position: absolute;
  font-weight: 500;
  letter-spacing: 0.02em;
}
.slide-indicator .nums .num-current {
  transform: translate(-14px, -14px);
}
.slide-indicator .nums .num-total {
  transform: translate(14px, 14px);
}
.slide-indicator.is-running .progress {
  animation: indicator-spin var(--duration) linear forwards;
}
@media only screen and (max-width: 768px) {
  .slide-indicator {
    transform: scale(0.65);
    transform-origin: 50% 100%;
    right: 0;
    bottom: -38px;
  }
}
@media print, screen and (min-width:769px) {
  .slide-indicator {
    right: -50px;
    bottom: -40px;
  }
  .slide-indicator .nums {
    font-size: 21px;
  }
}

@keyframes indicator-spin {
  from {
    stroke-dashoffset: 308;
  } /* 0% */
  to {
    stroke-dashoffset: 0;
  } /* 100% */
}
/* レティナで細線が薄いときのぼかし対策（任意）
.ring{ shape-rendering: geometricPrecision; }
*/
.about {
  border-top: 2px solid var(--col_black);
  padding: 0 0 min(25.641025641vw, 100px);
}
@media print, screen and (min-width:769px) {
  .about {
    padding: 0 0 min(19.696969697vw, 260px);
  }
}

.about-inner {
  position: relative;
}

.about__heading {
  position: relative;
  z-index: 3;
}
.about__heading > small {
  border-color: var(--col_green);
  color: var(--col_green);
}
.about__heading::before {
  background-color: var(--col_green);
}
.about__heading img {
  width: min(46.1538461538vw, 180px);
}
@media print, screen and (min-width:769px) {
  .about__heading {
    margin-bottom: min(10.6060606061vw, 140px);
  }
  .about__heading img {
    width: min(20.4545454545vw, 270px);
  }
}

.about-block {
  margin: 71.7948717949vw 0 0 0;
}
.about-block p:not(.catchcopy):not(:last-child) {
  margin-bottom: 0.5em;
}
.about-block p:not(.catchcopy) {
  font-size: min(3.5897435897vw, 14px);
}
@media print, screen and (min-width:769px) {
  .about-block {
    width: min(34.8484848485vw, 460px);
    margin: min(7.5757575758vw, 100px) 0 0 auto;
  }
  .about-block p:not(.catchcopy) {
    font-size: min(1.3636363636vw, 18px);
  }
}

.about-block.--block2 {
  margin: 161.5384615385vw 0 0 0;
}
@media print, screen and (min-width:769px) {
  .about-block.--block2 {
    margin: min(90.9090909091vw, 1200px) auto 0 0;
  }
}

.about__pict {
  position: absolute;
  display: block;
}

.about__pict.--p01 {
  width: 75.641025641vw;
  top: min(24.358974359vw, 95px);
  right: 0;
}
@media print, screen and (min-width:769px) {
  .about__pict.--p01 {
    right: auto;
    left: 0;
    top: min(15.5303030303vw, 205px);
    width: min(47.7272727273vw, 630px);
  }
}

.about__pict.--p02 {
  z-index: 5;
  right: min(0vw, 0px);
  top: calc(min(75.641025641vw, 295px) + 87.1794871795vw);
  width: 26.9230769231vw;
}
@media print, screen and (min-width:769px) {
  .about__pict.--p02 {
    right: max(-3.7878787879vw, -50px);
    top: min(49.8484848485vw, 658px);
    width: min(24.2424242424vw, 320px);
  }
}

.about__pict.--p03 {
  left: min(0vw, 0px);
  top: calc(min(75.641025641vw, 295px) + 97.4358974359vw);
  width: 74.358974359vw;
}
@media print, screen and (min-width:769px) {
  .about__pict.--p03 {
    left: min(10.6060606061vw, 140px);
    top: min(58.1818181818vw, 768px);
    width: min(67.8787878788vw, 896px);
  }
}

.about__pict.--p04 {
  left: min(0vw, 0px);
  top: calc(min(75.641025641vw, 295px) + 161.5384615385vw);
  width: 28.2051282051vw;
  z-index: 4;
}
@media print, screen and (min-width:769px) {
  .about__pict.--p04 {
    left: min(21.2121212121vw, 280px);
    top: min(108.3333333333vw, 1430px);
    width: min(17.4242424242vw, 230px);
  }
}

.about__pict.--p05 {
  right: min(2.5641025641vw, 10px);
  top: calc(min(75.641025641vw, 295px) + 174.358974359vw);
  width: 66.6666666667vw;
}
@media print, screen and (min-width:769px) {
  .about__pict.--p05 {
    z-index: 3;
    right: max(-13.6363636364vw, -180px);
    top: min(116.5151515152vw, 1538px);
    width: min(56.8181818182vw, 750px);
  }
}

.about__pict.--p06 {
  display: none;
}
@media print, screen and (min-width:769px) {
  .about__pict.--p06 {
    display: block;
    right: max(-18.1818181818vw, -240px);
    top: min(108.9393939394vw, 1438px);
    width: min(16.6666666667vw, 220px);
  }
}

.about__caroucel {
  width: 100%;
  height: min(50vw, 195px);
  margin: min(12.8205128205vw, 50px) 0 0;
}
@media print, screen and (min-width:769px) {
  .about__caroucel {
    margin: min(11.3636363636vw, 150px) 0 0;
    height: min(29.5454545455vw, 390px);
  }
}

/* ループ距離はタイル幅で指定。画像が横1200pxになるように背景サイズを揃える */
.about__caroucel {
  --tile-w: 4068px; /* ←ここだけ画像に合わせて調整 */
  --tile-w-sp: 2034px; /* ←ここだけ画像に合わせて調整 */
  --speed: 120s; /* 速度（大きいほどゆっくり） */
  background-image: url(../../img/about_caroucel.jpg);
  background-repeat: repeat-x;
  background-position: 0 50%;
  background-size: var(--tile-w-sp) 100%;
  animation: bg-scroll var(--speed) linear infinite;
}
@media print, screen and (min-width:769px) {
  .about__caroucel {
    background-size: var(--tile-w) 100%;
  }
}

/* アクセシビリティ：低速/停止を希望するユーザーには止める */
@media (prefers-reduced-motion: reduce) {
  .about__caroucel {
    animation: none;
  }
}
@keyframes bg-scroll {
  from {
    background-position: 0 50%;
  }
  to {
    background-position: calc(var(--tile-w) * -1) 50%;
  }
}
.service {
  border-top: 2px solid var(--col_black);
  background-color: #F5F5F5;
}
.service::after {
  content: "";
  display: block;
  position: absolute;
  position: relative;
  width: 100%;
  background-color: #fff;
  aspect-ratio: 7.7613636364;
  mask: url(../img/shape_secdiv.svg) no-repeat left top/100% auto;
  bottom: -2px;
}
@supports not (aspect-ratio: auto) {
  .service::after {
    position: relative;
  }
  .service::after::before {
    float: left;
    content: "";
    padding-top: 12.88%;
  }
  .service::after::after {
    display: block;
    content: "";
    clear: both;
  }
  .service::after > img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media print, screen and (min-width:769px) {
  .service::after {
    aspect-ratio: 7.7613636364;
  }
  @supports not (aspect-ratio: auto) {
    .service::after {
      position: relative;
    }
    .service::after::before {
      float: left;
      content: "";
      padding-top: 12.88%;
    }
    .service::after::after {
      display: block;
      content: "";
      clear: both;
    }
    .service::after > img {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}

.service-inner {
  position: relative;
}

.service__heading {
  position: relative;
  z-index: 3;
}
.service__heading > small {
  border-color: var(--col_orange);
  color: var(--col_orange);
}
.service__heading::before {
  background-color: var(--col_orange);
}
.service__heading::after {
  background-color: #F5F5F5;
}
.service__heading img {
  width: min(61.2820512821vw, 239px);
}
@media print, screen and (min-width:769px) {
  .service__heading img {
    width: min(20.4545454545vw, 270px);
  }
}

.service-block,
.service-block2 {
  position: relative;
  padding: min(11.5384615385vw, 45px) 0 min(11.5384615385vw, 45px);
}
@media print, screen and (min-width:769px) {
  .service-block,
  .service-block2 {
    max-width: min(68.1818181818vw, 900px);
    margin-left: auto;
    margin-right: auto;
    padding: min(4.5454545455vw, 60px) 0 min(6.0606060606vw, 80px);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: min(3.0303030303vw, 40px);
  }
}

@media only screen and (max-width: 768px) {
  .service-block2 {
    padding-bottom: min(25.641025641vw, 100px);
  }
}
.service-block__pict {
  display: block;
  border-radius: 10px;
  overflow: hidden;
}
@media only screen and (max-width: 768px) {
  .service-block__pict {
    margin-bottom: min(5.1282051282vw, 20px);
  }
}
@media print, screen and (min-width:769px) {
  .service-block__pict {
    width: 100%;
    border-radius: 20px;
  }
}

@media print, screen and (min-width:769px) {
  .service-block__pict.--small {
    width: 50%;
  }
}

.service-block__logo {
  text-align: center;
  margin-bottom: min(6.4102564103vw, 25px);
}
.service-block__logo.--hibino img {
  width: min(41.0256410256vw, 160px);
}
.service-block__logo.--lab {
  margin-top: min(7.6923076923vw, 30px);
}
.service-block__logo.--lab img {
  width: min(43.0769230769vw, 168px);
}
@media print, screen and (min-width:769px) {
  .service-block__logo {
    margin-bottom: 0;
    width: 40%;
  }
  .service-block__logo.--hibino img {
    width: min(16.6666666667vw, 220px);
  }
  .service-block__logo.--lab {
    margin-top: 0;
  }
  .service-block__logo.--lab img {
    width: min(16.5151515152vw, 218px);
  }
}

@media print, screen and (min-width:769px) {
  .service-block-content {
    width: 60%;
    display: flex;
    gap: min(0.7575757576vw, 10px);
    flex-direction: column;
    justify-content: space-between;
  }
}

@media print, screen and (min-width:769px) {
  .service-block-content.--small {
    width: calc(50% - 50px);
    justify-content: flex-start;
  }
}

.service-block__buttons {
  display: flex;
  justify-content: center;
  gap: min(2.5641025641vw, 10px);
  margin-top: min(7.6923076923vw, 30px);
}
@media print, screen and (min-width:769px) {
  .service-block__buttons {
    margin-top: 0;
    justify-content: flex-end;
    gap: min(0.7575757576vw, 10px);
  }
}

.service-block__heading {
  font-weight: 700;
  font-size: min(5.3846153846vw, 21px);
  text-align: center;
  margin-bottom: min(2.5641025641vw, 10px);
}
.service-block__heading > small {
  font-weight: 700;
}
@media print, screen and (min-width:769px) {
  .service-block__heading {
    font-size: min(1.8181818182vw, 24px);
  }
}

@media print, screen and (min-width:769px) {
  .service-block__heading.--irodori {
    text-align: left;
  }
}

.bordered-image {
  border-radius: 6px;
  overflow: hidden;
  border: 2px solid #999;
}
@media print, screen and (min-width:769px) {
  .bordered-image {
    border-radius: 10px;
    border: 3px solid #999;
  }
}

.bordered-image.--orange {
  border-color: var(--col_orange);
}

.bordered-image.--pink {
  border-color: var(--col_pink);
}

.bordered-image.--blue {
  border-color: var(--col_blue);
}

.bordered-image.--skyblue {
  border-color: var(--col_skyblue);
}

.bordered-image.--green {
  border-color: var(--col_green);
}

.bordered-image.--purple {
  border-color: var(--col_purple);
}

.bordered-image.--red {
  border-color: var(--col_red);
}

.news {
  padding: min(12.8205128205vw, 50px) 0;
}
@media print, screen and (min-width:769px) {
  .news {
    padding: min(4.5454545455vw, 60px) 0 min(9.0909090909vw, 120px);
  }
}

.news-container {
  position: relative;
}
.news-head {
  position: relative;
}
@media print, screen and (min-width:769px) {
  .news-head {
    width: min(22.2727272727vw, 294px);
  }
}

.news__heading > small {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  color: var(--col_blue);
  border: 1px solid var(--col_blue);
  line-height: 1;
  padding: 8px 20px;
  border-radius: 50px;
  font-size: min(3.5897435897vw, 14px);
  margin-bottom: min(2.5641025641vw, 10px);
}
.news__heading img {
  width: min(51.2820512821vw, 200px);
  display: block;
}
@media print, screen and (min-width:769px) {
  .news__heading img {
    width: 100%;
  }
  .news__heading > small {
    font-size: min(1.2878787879vw, 17px);
    padding: min(0.6060606061vw, 8px) min(1.8939393939vw, 25px);
    margin-bottom: min(0.7575757576vw, 10px);
  }
}

.news__heading.--hibino > small {
  border-color: var(--col_red);
  color: var(--col_red);
  margin-bottom: min(0vw, 0px);
}

.news-head__text {
  font-size: min(3.8461538462vw, 15px);
  margin-top: min(5.1282051282vw, 20px);
}
@media print, screen and (min-width:769px) {
  .news-head__text {
    margin-top: min(2.2727272727vw, 30px);
    font-size: min(1.3636363636vw, 18px);
  }
}

.news-head__text.--hibino {
  margin-top: min(3.8461538462vw, 15px);
}

.news-head__all {
  position: absolute;
  right: 0;
  bottom: min(0.7692307692vw, 3px);
  width: min(12.8205128205vw, 50px);
  height: min(12.8205128205vw, 50px);
  background-color: var(--col_blue);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0;
}
.news-head__all .arrow {
  overflow: hidden;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 24px;
  height: 24px;
  margin: auto 0;
  line-height: 1;
}
.news-head__all .arrow:before,
.news-head__all .arrow:after {
  content: "";
  mask: url(../img/ic_arrow_a.svg) no-repeat center center/18px auto;
  position: absolute;
  background-color: #fff;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  animation-fill-mode: forwards;
  animation-duration: 0.35s;
}
.news-head__all .arrow:after {
  transform: translateX(-100%);
}
@keyframes transformLeftRight {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes transformRightLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}
@media print, screen and (min-width:769px) {
  .news-head__all:hover .item-heading {
    opacity: 0.5;
  }
  .news-head__all:hover .arrow:before {
    animation-name: transformRightLeft; /* 修正: hover時のアニメーションを指定 */
    animation-delay: 0s;
  }
  .news-head__all:hover .arrow:after {
    animation-name: transformLeftRight; /* 修正: hover時のアニメーションを指定 */
    animation-delay: 0.2s;
  }
}
.news-head__all .arrow {
  position: relative;
}
.news-head__all .arrow::before, .news-head__all .arrow::after {
  mask-size: contain;
}
@media print, screen and (min-width:769px) {
  .news-head__all {
    width: min(4.5454545455vw, 60px);
    height: min(4.5454545455vw, 60px);
    right: max(-1.5151515152vw, -20px);
  }
}

.news-head__all.--hibino {
  background-color: var(--col_red);
}
@media only screen and (max-width: 768px) {
  .news-head__all.--hibino {
    left: min(51.2820512821vw, 200px);
    bottom: min(6.4102564103vw, 25px);
  }
}
@media print, screen and (min-width:769px) {
  .news-head__all.--hibino {
    margin-top: min(1.5151515152vw, 20px);
    position: relative;
    left: 0;
  }
}

.news-list .slick-slide {
  margin: 0 15px;
  border: 2px solid var(--col_blue);
  border-radius: 10px;
  overflow: hidden;
}
@media only screen and (max-width: 768px) {
  .news-list {
    margin-top: min(7.6923076923vw, 30px);
    margin-left: max(-5.1282051282vw, -20px);
    margin-right: max(-5.1282051282vw, -20px);
  }
}
@media print, screen and (min-width:769px) {
  .news-list {
    position: absolute;
    left: min(26.5151515152vw, 350px);
    top: 0;
    width: min(87.8787878788vw, 1160px);
  }
}

.news-list__item > a {
  display: block;
  height: 100%;
}
.news-list__item figure {
  display: block;
  width: 100%;
  aspect-ratio: 1.8;
}
@supports not (aspect-ratio: auto) {
  .news-list__item figure {
    position: relative;
  }
  .news-list__item figure::before {
    float: left;
    content: "";
    padding-top: 55.56%;
  }
  .news-list__item figure::after {
    display: block;
    content: "";
    clear: both;
  }
  .news-list__item figure > img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.news-list__item figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.news-list__item h3 {
  line-height: 1.5;
  margin: min(5.1282051282vw, 20px) min(3.8461538462vw, 15px) min(3.8461538462vw, 15px);
}
.news-list__item time {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: min(3.0769230769vw, 12px);
  margin: 0 min(3.8461538462vw, 15px) min(5.1282051282vw, 20px);
  line-height: 1;
}
@media print, screen and (min-width:769px) {
  .news-list__item {
    border-radius: 20px;
    width: min(21.9696969697vw, 290px);
  }
  .news-list__item h3 {
    font-size: min(1.0606060606vw, 14px);
    margin: min(1.5151515152vw, 20px) min(1.5151515152vw, 20px) min(1.1363636364vw, 15px);
  }
  .news-list__item time {
    margin: 0 min(1.5151515152vw, 20px) min(1.5151515152vw, 20px);
    font-size: min(0.9090909091vw, 12px);
  }
}

@media only screen and (max-width: 768px) {
  .news-list.--hibino {
    margin: 0;
  }
}
.news-list.--hibino .slick-slide {
  border-color: var(--col_red);
}
.news-list.--hibino .news-list__item {
  aspect-ratio: 1.0204081633;
}
@supports not (aspect-ratio: auto) {
  .news-list.--hibino .news-list__item {
    position: relative;
  }
  .news-list.--hibino .news-list__item::before {
    float: left;
    content: "";
    padding-top: 98%;
  }
  .news-list.--hibino .news-list__item::after {
    display: block;
    content: "";
    clear: both;
  }
  .news-list.--hibino .news-list__item > img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.news-list.--hibino .news-list__item figure {
  aspect-ratio: 1;
}
@supports not (aspect-ratio: auto) {
  .news-list.--hibino .news-list__item figure {
    position: relative;
  }
  .news-list.--hibino .news-list__item figure::before {
    float: left;
    content: "";
    padding-top: 100%;
  }
  .news-list.--hibino .news-list__item figure::after {
    display: block;
    content: "";
    clear: both;
  }
  .news-list.--hibino .news-list__item figure > img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.faq {
  position: relative;
  background-color: #F5FCFF;
}
@media only screen and (max-width: 768px) {
  .faq {
    margin-left: max(-5.1282051282vw, -20px);
    margin-right: max(-5.1282051282vw, -20px);
    padding: min(12.8205128205vw, 50px) min(5.1282051282vw, 20px);
    margin-bottom: min(25.641025641vw, 100px);
  }
}
@media print, screen and (min-width:769px) {
  .faq {
    padding: min(5.303030303vw, 70px);
    border-radius: 20px;
    margin-bottom: min(24.2424242424vw, 320px);
    padding-left: min(22.7272727273vw, 300px);
  }
}

.faq__heading {
  font-weight: 700;
}
.faq__heading > small {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  color: var(--col_skyblue);
  border: 1px solid var(--col_skyblue);
  line-height: 1;
  padding: 8px 20px;
  border-radius: 50px;
}
@media print, screen and (min-width:769px) {
  .faq__heading {
    position: absolute;
    left: min(5.303030303vw, 70px);
    top: min(5.303030303vw, 70px);
  }
  .faq__heading > small {
    margin-bottom: min(1.3636363636vw, 18px);
  }
}

.faq-list {
  border-bottom: 1px solid #D5EAEF;
}
.faq-list > li {
  border-top: 1px solid #D5EAEF;
}
@media only screen and (max-width: 768px) {
  .faq-list {
    margin-top: min(7.6923076923vw, 30px);
  }
}
.faq-list__trigger {
  position: relative;
  background-color: var(--col_pale_blue);
  display: flex;
  align-items: center;
  font-size: min(4.1025641026vw, 16px);
  min-height: min(21.5384615385vw, 84px);
  padding: min(0vw, 0px) min(10.2564102564vw, 40px) min(0vw, 0px) min(2.5641025641vw, 10px);
}
.faq-list__trigger::before, .faq-list__trigger::after {
  content: "";
  display: block;
  position: absolute;
  width: min(4.1025641026vw, 16px);
  height: min(0.5128205128vw, 2px);
  right: min(5.1282051282vw, 20px);
  background-color: var(--col_skyblue);
  transition: 0.5s transform;
}
.faq-list__trigger::after {
  transform: rotate(90deg);
}
.faq-list__trigger.is-active::after {
  transform: rotate(0deg);
}
.faq-list__trigger > span {
  position: relative;
  line-height: 1.5;
}
@media print, screen and (min-width:769px) {
  .faq-list__trigger {
    min-height: min(7.5757575758vw, 100px);
    padding: 0 min(7.5757575758vw, 100px) 0 min(1.5151515152vw, 20px);
    font-size: min(1.4393939394vw, 19px);
  }
  .faq-list__trigger::before, .faq-list__trigger::after {
    width: min(1.2121212121vw, 16px);
    right: min(2.2727272727vw, 30px);
  }
  .faq-list__trigger > span::before {
    left: max(-4.1666666667vw, -55px);
    font-size: min(1.9696969697vw, 26px);
  }
}

.faq-list__content {
  position: relative;
  padding: min(5.1282051282vw, 20px);
  background-color: #fff;
  margin-bottom: min(5.1282051282vw, 20px);
  margin-left: min(2.5641025641vw, 10px);
  margin-right: min(2.5641025641vw, 10px);
}
.faq-list__content > p {
  line-height: 1.75;
  font-size: min(4.1025641026vw, 16px);
}
.faq-list__content > p:not(:last-child) {
  margin-bottom: 1em;
}
@media print, screen and (min-width:769px) {
  .faq-list__content {
    padding: min(1.5151515152vw, 20px);
    margin-left: min(1.5151515152vw, 20px);
    margin-right: min(1.5151515152vw, 20px);
    margin-bottom: min(1.5151515152vw, 20px);
  }
  .faq-list__content::before {
    left: min(4.3181818182vw, 57px);
    font-size: min(1.9696969697vw, 26px);
  }
  .faq-list__content > p {
    font-size: min(1.2121212121vw, 16px);
  }
}

.hibino-mv {
  padding: 95vw 0 0 0;
}
@media print, screen and (min-width:769px) {
  .hibino-mv {
    padding: min(10.6060606061vw, 140px) 0;
  }
}

.hibino-mv-head {
  display: flex;
}
@media only screen and (max-width: 768px) {
  .hibino-mv-head {
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
}
@media print, screen and (min-width:769px) {
  .hibino-mv-head {
    width: min(20.8333333333vw, 275px);
    margin: 0 0 0 auto;
    flex-direction: column;
  }
}

.hibino-mv__heading {
  width: min(38.4615384615vw, 150px);
}
@media print, screen and (min-width:769px) {
  .hibino-mv__heading {
    width: 100%;
  }
}

.hibino-mv__copy,
.hibino-mv__copy--sp {
  font-feature-settings: "pkna";
  writing-mode: vertical-rl;
  text-orientation: mixed;
  -ms-text-combine-horizontal: all;
  display: none;
  margin-top: min(7.6923076923vw, 30px);
}
.hibino-mv__copy > em,
.hibino-mv__copy--sp > em {
  font-style: normal;
  font-weight: 700;
  display: block;
  margin-left: min(2.5641025641vw, 10px);
}
@media print, screen and (min-width:769px) {
  .hibino-mv__copy,
  .hibino-mv__copy--sp {
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-size: min(1.2121212121vw, 16px);
    margin-top: min(4.1666666667vw, 55px);
  }
  .hibino-mv__copy > em,
  .hibino-mv__copy--sp > em {
    font-size: min(1.5909090909vw, 21px);
    margin-left: min(1.1363636364vw, 15px);
  }
}

/* Safari のみ適用 */
_::-webkit-full-page-media, _:future, :root span.dot {
  display: inline-block;
  transform: rotate(90deg) translateY(-0.1em);
  letter-spacing: -0.5em;
}

.hibino-mv__copy--sp {
  display: block;
}
@media print, screen and (min-width:769px) {
  .hibino-mv__copy--sp {
    display: none;
  }
}

.hibino-mv__text {
  font-feature-settings: "pkna";
  writing-mode: vertical-rl;
  text-orientation: mixed;
  -ms-text-combine-horizontal: all;
}
@media print, screen and (min-width:769px) {
  .hibino-mv__text {
    font-size: min(1.2121212121vw, 16px);
  }
}

.hibino-mv__shape {
  position: absolute;
  width: 33vw;
  right: -3vw;
  top: 68vw;
}
@media print, screen and (min-width:769px) {
  .hibino-mv__shape {
    width: min(27.2727272727vw, 360px);
    left: calc(50% - min(7.5757575758vw, 100px));
    top: min(42.4242424242vw, 560px);
  }
}

.hibino-mv__slide {
  position: absolute;
  width: 138vw;
  height: 138vw;
  left: -33vw;
  top: -51vw;
}
.hibino-mv__slide .slick-list {
  mask: url(../../service/img/hibino_mv_shape.svg) no-repeat center center/99.5% auto;
}
.hibino-mv__slide li {
  width: 100%;
  aspect-ratio: 1;
}
@supports not (aspect-ratio: auto) {
  .hibino-mv__slide li {
    position: relative;
  }
  .hibino-mv__slide li::before {
    float: left;
    content: "";
    padding-top: 100%;
  }
  .hibino-mv__slide li::after {
    display: block;
    content: "";
    clear: both;
  }
  .hibino-mv__slide li > img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.hibino-mv__slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}
@media print, screen and (min-width:769px) {
  .hibino-mv__slide {
    width: min(81.5151515152vw, 1076px);
    height: min(81.5151515152vw, 1076px);
    left: auto;
    right: calc(50% - min(17.8787878788vw, 236px));
    top: max(-21.2121212121vw, -280px);
  }
}

.hibino-mv__dots {
  position: relative;
}
.hibino-mv__dots li button {
  background-color: #FAD8CE;
}
.hibino-mv__dots li.slick-active button {
  background-color: var(--col_red);
}
@media print, screen and (min-width:769px) {
  .hibino-mv__dots {
    margin: max(-2.2727272727vw, -30px) 0 0 max(-4.1666666667vw, -55px);
  }
}

.hibino-mv__sub {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 10px;
  text-align: left;
  margin-top: min(10.2564102564vw, 40px);
}
@media print, screen and (min-width:769px) {
  .hibino-mv__sub {
    margin: min(1.5151515152vw, 20px) 0 0 max(-4.1666666667vw, -55px);
    font-size: 11px;
  }
}

/**
  news
 */
.hibino-news {
  padding: min(15.3846153846vw, 60px) 0 min(25.641025641vw, 100px);
}
@media print, screen and (min-width:769px) {
  .hibino-news {
    padding: min(7.5757575758vw, 100px) 0 min(22.7272727273vw, 300px);
  }
}

.service-feature:not(:last-of-type) {
  margin-bottom: min(12.8205128205vw, 50px);
}
@media print, screen and (min-width:769px) {
  .service-feature {
    display: flex;
    align-items: center;
  }
  .service-feature:not(:last-of-type) {
    margin-bottom: min(7.196969697vw, 95px);
  }
}

.service-feature__pict {
  display: block;
  margin-bottom: min(3.8461538462vw, 15px);
}
@media print, screen and (min-width:769px) {
  .service-feature__pict {
    width: 54%;
    margin-bottom: 0;
  }
}

.service-feature-content > h3 {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  margin-bottom: min(1.2820512821vw, 5px);
}
@media print, screen and (min-width:769px) {
  .service-feature-content {
    width: 46%;
    padding-left: min(4.9242424242vw, 65px);
  }
  .service-feature-content > h3 {
    font-size: min(1.3636363636vw, 18px);
    margin-bottom: min(0.7575757576vw, 10px);
  }
  .service-feature-content > p {
    font-size: min(1.3636363636vw, 18px);
  }
}

@media print, screen and (min-width:769px) {
  .service-feature.--invert {
    flex-direction: row-reverse;
  }
  .service-feature.--invert .service-feature-content {
    padding-left: 0;
    padding-right: min(4.9242424242vw, 65px);
  }
}

.service-feature.--hibino .service-feature-content > h3 {
  color: var(--col_red);
}

.service-feature.--lab .service-feature-content > h3 {
  color: var(--col_skyblue);
}

.service-menu {
  position: relative;
  background-color: #F5F5F5;
  margin-top: min(20.5128205128vw, 80px);
  padding: min(7.6923076923vw, 30px) min(5.1282051282vw, 20px) min(25.641025641vw, 100px);
  margin-bottom: min(20.5128205128vw, 80px);
}
@media print, screen and (min-width:769px) {
  .service-menu {
    border-radius: 20px;
    margin-top: min(8.3333333333vw, 110px);
    padding: min(5.303030303vw, 70px);
    display: flex;
    justify-content: space-between;
    margin-bottom: min(11.3636363636vw, 150px);
  }
}

.service-head {
  /*position: relative;*/
}

.service-head__heading > small {
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  color: var(--col_red);
  border: 1px solid var(--col_red);
  line-height: 1;
  padding: 8px 20px;
  border-radius: 50px;
  font-size: min(3.5897435897vw, 14px);
  margin-bottom: min(2.5641025641vw, 10px);
}
.service-head__heading em {
  display: block;
  font-style: normal;
  font-weight: 700;
  font-size: min(3.8461538462vw, 15px);
}
@media print, screen and (min-width:769px) {
  .service-head__heading em {
    font-size: min(1.3636363636vw, 18px);
    margin-top: min(0.7575757576vw, 10px);
  }
  .service-head__heading > small {
    font-size: min(1.2878787879vw, 17px);
    padding: min(0.6060606061vw, 8px) min(1.8939393939vw, 25px);
    margin-bottom: min(0.7575757576vw, 10px);
  }
}

.service-head__text {
  line-height: 1.3;
}
@media only screen and (max-width: 768px) {
  .service-head__text {
    position: absolute;
    bottom: min(10.2564102564vw, 40px);
  }
}
@media print, screen and (min-width:769px) {
  .service-head__text {
    font-size: min(1.3636363636vw, 18px);
    margin-top: min(2.2727272727vw, 30px);
  }
}

.service-menu__list {
  margin-top: min(6.4102564103vw, 25px);
  display: flex;
  flex-direction: column;
  gap: min(7.6923076923vw, 30px);
}
.service-menu__list > li p {
  font-weight: 400;
}
.service-menu__list > li figure {
  overflow: hidden;
  display: block;
  margin-bottom: min(3.8461538462vw, 15px);
}
.service-menu__list > li figure img {
  border-radius: 10px;
}
@media print, screen and (min-width:769px) {
  .service-menu__list {
    margin-top: 0;
    width: min(56.4393939394vw, 745px);
    gap: min(2.2727272727vw, 30px);
  }
  .service-menu__list > li {
    display: flex;
    justify-content: space-between;
  }
  .service-menu__list > li figure {
    width: min(28.7878787879vw, 380px);
    margin-bottom: 0;
    border-radius: 10px;
  }
  .service-menu__list > li > div {
    width: calc(100% - min(31.8181818182vw, 420px));
    padding-top: min(0.7575757576vw, 10px);
  }
  .service-menu__list > li h3 {
    font-size: min(1.5151515152vw, 20px);
  }
  .service-menu__list > li p {
    font-size: min(1.1363636364vw, 15px);
  }
}

.sbi_photo {
  border: 2px solid var(--col_red);
  border-radius: 10px;
  overflow: hidden;
  display: block;
}

.lab-mv {
  position: relative;
  padding: 108vw 0 0 0;
  margin-bottom: min(20.5128205128vw, 80px);
}
@media print, screen and (min-width:769px) {
  .lab-mv {
    padding: min(10.6060606061vw, 140px) 0;
    margin-bottom: min(15.1515151515vw, 200px);
  }
}

@media print, screen and (min-width:769px) {
  .lab-mv-head {
    margin: 0 0 0 auto;
    display: flex;
    flex-direction: column;
  }
}

.lab-mv__heading {
  width: min(38.4615384615vw, 150px);
  margin-bottom: min(3.8461538462vw, 15px);
}
@media print, screen and (min-width:769px) {
  .lab-mv__heading {
    width: min(21.5151515152vw, 284px);
    margin-bottom: 0;
  }
}

.lab-mv__copy {
  font-size: min(3.3333333333vw, 13px);
}
.lab-mv__copy > em {
  font-size: min(3.5897435897vw, 14px);
  font-style: normal;
  font-weight: 700;
  display: block;
  margin-bottom: min(2.5641025641vw, 10px);
}
@media print, screen and (min-width:769px) {
  .lab-mv__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-size: min(1.2121212121vw, 16px);
    margin-top: min(4.1666666667vw, 55px);
  }
  .lab-mv__copy > em {
    font-size: min(1.5909090909vw, 21px);
    margin-bottom: min(1.1363636364vw, 15px);
  }
}

.lab-mv__text {
  font-feature-settings: "pkna";
  writing-mode: vertical-rl;
  text-orientation: mixed;
  -ms-text-combine-horizontal: all;
}
@media print, screen and (min-width:769px) {
  .lab-mv__text {
    font-size: min(1.2121212121vw, 16px);
  }
}

.lab-mv__shape {
  position: absolute;
}
@media print, screen and (min-width:769px) {
  .lab-mv__shape {
    width: min(27.2727272727vw, 360px);
    left: calc(50% - min(7.5757575758vw, 100px));
    top: min(42.4242424242vw, 560px);
  }
}

.lab-mv__slide {
  position: absolute;
  mask: url(../../service/img/lab_mv_shape.svg) no-repeat center center/contain;
  transform: rotate(4deg);
  width: 118vw;
  height: 102vw;
  top: 0;
}
.lab-mv__slide img {
  width: 100%;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lab-mv__slide .slide-item {
  width: 100%;
  aspect-ratio: 1;
}
@supports not (aspect-ratio: auto) {
  .lab-mv__slide .slide-item {
    position: relative;
  }
  .lab-mv__slide .slide-item::before {
    float: left;
    content: "";
    padding-top: 100%;
  }
  .lab-mv__slide .slide-item::after {
    display: block;
    content: "";
    clear: both;
  }
  .lab-mv__slide .slide-item > img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media print, screen and (min-width:769px) {
  .lab-mv__slide {
    top: min(2.2727272727vw, 30px);
    width: min(74.2424242424vw, 980px);
    height: min(64.3939393939vw, 850px);
    left: calc(50% + max(-13.6363636364vw, -180px));
  }
}

.lab-mv__dots {
  position: relative;
  margin-top: min(7.6923076923vw, 30px);
}
.lab-mv__dots li button {
  background-color: #C4E6CE;
}
.lab-mv__dots li.slick-active button {
  background-color: var(--col_green);
}
@media print, screen and (min-width:769px) {
  .lab-mv__dots {
    margin: min(11.3636363636vw, 150px) 0 0 max(-4.1666666667vw, -55px);
  }
}

.lab-mv__sub {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 10px;
  text-align: left;
  margin-top: min(3.8461538462vw, 15px);
}
@media print, screen and (min-width:769px) {
  .lab-mv__sub {
    font-size: 11px;
    margin: min(1.5151515152vw, 20px) 0 0 max(-4.1666666667vw, -55px);
  }
}

.lab-feature {
  padding-bottom: min(38.4615384615vw, 150px);
}
@media print, screen and (min-width:769px) {
  .lab-feature {
    padding-bottom: min(22.7272727273vw, 300px);
  }
}

.lab-feature__button {
  background-color: var(--col_skyblue);
  font-weight: 700;
  width: min(71.7948717949vw, 280px);
  margin-inline: auto;
  display: flex;
  margin-top: min(10.2564102564vw, 40px);
}
.lab-feature__button::after {
  background-color: #5084C4;
}
@media print, screen and (min-width:769px) {
  .lab-feature__button {
    min-height: min(5.303030303vw, 70px);
    width: min(40.1515151515vw, 530px);
    margin-left: auto;
    margin-right: auto;
    font-size: min(1.5151515152vw, 20px);
    margin-top: min(7.5757575758vw, 100px);
  }
  .lab-feature__button .arrow {
    right: min(0.4545454545vw, 6px);
    top: max(-0.303030303vw, -4px);
    width: min(4.0909090909vw, 54px);
    height: min(4.0909090909vw, 54px);
  }
  .lab-feature__button .arrow::before, .lab-feature__button .arrow::after {
    mask-size: 24px auto;
  }
  .lab-feature__button::after {
    top: min(0.303030303vw, 4px);
    right: min(0.303030303vw, 4px);
    width: min(4.5454545455vw, 60px);
    height: min(4.5454545455vw, 60px);
  }
}

/* ==========================================================================
   Utilities
   ========================================================================== */
/* ==========================================================================

	#テキストモジュールとユーティリティ

	36　コピー
	27　 H1相当　ページタイトル
	25　 H2相当　コピー・見出しおよびラベル
	24　 H3相当　見出しおよびラベル
	20　コピー・中見出し・ラベル
	18　本文：大・ラベル
	16　本文：中
	14　本文：小を使用しています。
	12　最小（注文など一部のみ）

 */
/* -------------------------------------------------------------------------
	本文指定
*/
/*

.txt-ll,
.txt-l,
.txt-m,
.txt-s,
.txt-ss {

}

.txt-ll {
	font-size: $base-font-size-pc * 1.15;

}
.txt-l {
	font-size: $base-font-size-pc * 1.09;

}
.txt-m {
	font-size: $base-font-size-pc;

}
.txt-s {
	font-size: $base-font-size-pc * 0.9;

}

.txt-ss {
	font-size: $base-font-size-pc * 0.78;

}
@include mq-sp {

	.txt-ll {
		font-size: $base-font-size-sp * 1.15;

	}
	.txt-l {
		font-size: $base-font-size-sp * 1.09;

	}
	.txt-m {
		font-size: $base-font-size-sp;

	}
	.txt-s {
		font-size: $base-font-size-sp * 0.9;

	}

	.txt-ss {
		font-size: $base-font-size-sp * 0.78;

	}

	.txt-ll-sp {
		font-size: $base-font-size-sp * 1.15;

	}
	.txt-l-sp {
		font-size: $base-font-size-sp * 1.09;

	}
	.txt-m-sp {
		font-size: $base-font-size-sp;

	}
	.txt-s-sp {
		font-size: $base-font-size-sp * 0.9;

	}

	.txt-ss-sp {
		font-size: $base-font-size-sp * 0.78;

	}
}

*/
/* -------------------------------------------------------------------------
	ユーティリティmisc
*/
/*一字下げ*/
.indent-head {
  padding-left: 1.2em;
  text-indent: -1.2em;
}

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

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

.font-normal {
  font-weight: normal;
}

/* ==========================================================================

   ユーティリティモジュール

 */
/* -------------------------------------------------------------------------
	画像を100%に/100%を解除
	<img class="u-fit" src="xxx.jpg" />
*/
.u-fit {
  width: 100%;
  height: auto;
}

.u-free {
  width: auto;
}

/* -------------------------------------------------------------------------
	SPのみ、PCのみで改行させる
	<br class="u-spbr" />
	<br class="u-pcbr" />
*/
.u-spbr {
  display: none;
}
@media only screen and (max-width: 768px) {
  .u-spbr {
    display: inline;
  }
}

.u-pcbr {
  display: none;
}
@media print, screen and (min-width:769px) {
  .u-pcbr {
    display: inline;
  }
}

.u-tdbr {
  display: none;
}
@media only screen and (max-width: 768px) {
  .u-tdbr {
    display: inline;
  }
}

/* -------------------------------------------------------------------------
	position:relative
*/
.u-relative {
  position: relative;
}

/* -------------------------------------------------------------------------
	インラインテキストリンク
*/
.u-textLink:link, .u-textLink:visited {
  text-decoration: underline;
}
@media print, screen and (min-width:769px) {
  .u-textLink:hover {
    text-decoration: none;
  }
}

.u-textLink.--newwin::after {
  display: inline-block;
  content: "";
  width: 1.7rem;
  height: 1.7rem;
  margin-left: 1rem;
  background: url(../img/ic_newwin.svg) no-repeat center center/contain;
}

/* -------------------------------------------------------------------------
	縦書きテキスト
*/
.u-vertical-text {
  font-feature-settings: "pkna";
  writing-mode: vertical-rl;
  text-orientation: mixed;
  -ms-text-combine-horizontal: all;
}

/* -------------------------------------------------------------------------
	ブロック指定
*/
.u-inlineBlock {
  display: inline-block;
}

@media only screen and (max-width: 768px) {
  .u-sp-inlineBlock {
    display: inline-block;
  }
}

.u-block {
  display: block;
}

/* -------------------------------------------------------------------------
	リスト要素のスタイル
*/
.u-list-indent li {
  padding-left: 1em;
  text-indent: -1em;
}

.u-list-disc li {
  list-style-type: disc;
  margin-bottom: 1em;
  margin-left: 1.2em;
}

.u-list-dot {
  padding: 0;
  padding-inline-start: 0;
}
.u-list-dot li {
  position: relative;
  padding-left: 1em;
}
.u-list-dot li::before {
  position: absolute;
  content: "-";
  left: 0;
  display: block;
}

/* -------------------------------------------------------------------------
	PCレイアウト時に非表示
*/
.u-sp-only {
  display: none !important;
}

.u-pc-only {
  display: block !important;
}

@media only screen and (min-width: 0px) and (max-width: 768px) {
  .u-sp-only {
    display: block !important;
  }
  .u-pc-only {
    display: none !important;
  }
}
.u-noWrap {
  white-space: nowrap;
}

@media print, screen and (min-width:769px) {
  .u-pc-pdng {
    display: inline-block;
    width: 20px;
  }
}

/**
	注意書きテキスト
 */
.u-note-text {
  text-indent: -1em;
  padding-left: 1em;
  font-size: 0.8em;
}

/**
	罫線
 */
.u-hr {
  border-top: 1px solid var(--col_blue);
}

.u-hr-dot {
  border-top: 2px dotted var(--col_blue);
}

/* -------------------------------------------------------------------------
	マージン bottom top
*/
.l-mb0 {
  margin-bottom: 0px;
}

.l-mt0 {
  margin-top: 0px;
}

@media only screen and (max-width: 768px) {
  .l-mb0-sp {
    margin-bottom: 0px !important;
  }
  .l-mt0-sp {
    margin-top: 0px !important;
  }
}
.l-mb5 {
  margin-bottom: 5px;
}

.l-mt5 {
  margin-top: 5px;
}

@media only screen and (max-width: 768px) {
  .l-mb5-sp {
    margin-bottom: 5px !important;
  }
  .l-mt5-sp {
    margin-top: 5px !important;
  }
}
.l-mb10 {
  margin-bottom: 10px;
}

.l-mt10 {
  margin-top: 10px;
}

@media only screen and (max-width: 768px) {
  .l-mb10-sp {
    margin-bottom: 10px !important;
  }
  .l-mt10-sp {
    margin-top: 10px !important;
  }
}
.l-mb15 {
  margin-bottom: 15px;
}

.l-mt15 {
  margin-top: 15px;
}

@media only screen and (max-width: 768px) {
  .l-mb15-sp {
    margin-bottom: 15px !important;
  }
  .l-mt15-sp {
    margin-top: 15px !important;
  }
}
.l-mb20 {
  margin-bottom: 20px;
}

.l-mt20 {
  margin-top: 20px;
}

@media only screen and (max-width: 768px) {
  .l-mb20-sp {
    margin-bottom: 20px !important;
  }
  .l-mt20-sp {
    margin-top: 20px !important;
  }
}
.l-mb25 {
  margin-bottom: 25px;
}

.l-mt25 {
  margin-top: 25px;
}

@media only screen and (max-width: 768px) {
  .l-mb25-sp {
    margin-bottom: 25px !important;
  }
  .l-mt25-sp {
    margin-top: 25px !important;
  }
}
.l-mb30 {
  margin-bottom: 30px;
}

.l-mt30 {
  margin-top: 30px;
}

@media only screen and (max-width: 768px) {
  .l-mb30-sp {
    margin-bottom: 30px !important;
  }
  .l-mt30-sp {
    margin-top: 30px !important;
  }
}
.l-mb35 {
  margin-bottom: 35px;
}

.l-mt35 {
  margin-top: 35px;
}

@media only screen and (max-width: 768px) {
  .l-mb35-sp {
    margin-bottom: 35px !important;
  }
  .l-mt35-sp {
    margin-top: 35px !important;
  }
}
.l-mb40 {
  margin-bottom: 40px;
}

.l-mt40 {
  margin-top: 40px;
}

@media only screen and (max-width: 768px) {
  .l-mb40-sp {
    margin-bottom: 40px !important;
  }
  .l-mt40-sp {
    margin-top: 40px !important;
  }
}
.l-mb45 {
  margin-bottom: 45px;
}

.l-mt45 {
  margin-top: 45px;
}

@media only screen and (max-width: 768px) {
  .l-mb45-sp {
    margin-bottom: 45px !important;
  }
  .l-mt45-sp {
    margin-top: 45px !important;
  }
}
.l-mb50 {
  margin-bottom: 50px;
}

.l-mt50 {
  margin-top: 50px;
}

@media only screen and (max-width: 768px) {
  .l-mb50-sp {
    margin-bottom: 50px !important;
  }
  .l-mt50-sp {
    margin-top: 50px !important;
  }
}
.l-mb55 {
  margin-bottom: 55px;
}

.l-mt55 {
  margin-top: 55px;
}

@media only screen and (max-width: 768px) {
  .l-mb55-sp {
    margin-bottom: 55px !important;
  }
  .l-mt55-sp {
    margin-top: 55px !important;
  }
}
.l-mb60 {
  margin-bottom: 60px;
}

.l-mt60 {
  margin-top: 60px;
}

@media only screen and (max-width: 768px) {
  .l-mb60-sp {
    margin-bottom: 60px !important;
  }
  .l-mt60-sp {
    margin-top: 60px !important;
  }
}
.l-mb65 {
  margin-bottom: 65px;
}

.l-mt65 {
  margin-top: 65px;
}

@media only screen and (max-width: 768px) {
  .l-mb65-sp {
    margin-bottom: 65px !important;
  }
  .l-mt65-sp {
    margin-top: 65px !important;
  }
}
.l-mb70 {
  margin-bottom: 70px;
}

.l-mt70 {
  margin-top: 70px;
}

@media only screen and (max-width: 768px) {
  .l-mb70-sp {
    margin-bottom: 70px !important;
  }
  .l-mt70-sp {
    margin-top: 70px !important;
  }
}
.l-mb75 {
  margin-bottom: 75px;
}

.l-mt75 {
  margin-top: 75px;
}

@media only screen and (max-width: 768px) {
  .l-mb75-sp {
    margin-bottom: 75px !important;
  }
  .l-mt75-sp {
    margin-top: 75px !important;
  }
}
.l-mb80 {
  margin-bottom: 80px;
}

.l-mt80 {
  margin-top: 80px;
}

@media only screen and (max-width: 768px) {
  .l-mb80-sp {
    margin-bottom: 80px !important;
  }
  .l-mt80-sp {
    margin-top: 80px !important;
  }
}
.l-mb85 {
  margin-bottom: 85px;
}

.l-mt85 {
  margin-top: 85px;
}

@media only screen and (max-width: 768px) {
  .l-mb85-sp {
    margin-bottom: 85px !important;
  }
  .l-mt85-sp {
    margin-top: 85px !important;
  }
}
.l-mb90 {
  margin-bottom: 90px;
}

.l-mt90 {
  margin-top: 90px;
}

@media only screen and (max-width: 768px) {
  .l-mb90-sp {
    margin-bottom: 90px !important;
  }
  .l-mt90-sp {
    margin-top: 90px !important;
  }
}
.l-mb95 {
  margin-bottom: 95px;
}

.l-mt95 {
  margin-top: 95px;
}

@media only screen and (max-width: 768px) {
  .l-mb95-sp {
    margin-bottom: 95px !important;
  }
  .l-mt95-sp {
    margin-top: 95px !important;
  }
}
.l-mb100 {
  margin-bottom: 100px;
}

.l-mt100 {
  margin-top: 100px;
}

@media only screen and (max-width: 768px) {
  .l-mb100-sp {
    margin-bottom: 100px !important;
  }
  .l-mt100-sp {
    margin-top: 100px !important;
  }
}
.l-mb105 {
  margin-bottom: 105px;
}

.l-mt105 {
  margin-top: 105px;
}

@media only screen and (max-width: 768px) {
  .l-mb105-sp {
    margin-bottom: 105px !important;
  }
  .l-mt105-sp {
    margin-top: 105px !important;
  }
}
.l-mb110 {
  margin-bottom: 110px;
}

.l-mt110 {
  margin-top: 110px;
}

@media only screen and (max-width: 768px) {
  .l-mb110-sp {
    margin-bottom: 110px !important;
  }
  .l-mt110-sp {
    margin-top: 110px !important;
  }
}
.l-mb115 {
  margin-bottom: 115px;
}

.l-mt115 {
  margin-top: 115px;
}

@media only screen and (max-width: 768px) {
  .l-mb115-sp {
    margin-bottom: 115px !important;
  }
  .l-mt115-sp {
    margin-top: 115px !important;
  }
}
.l-mb120 {
  margin-bottom: 120px;
}

.l-mt120 {
  margin-top: 120px;
}

@media only screen and (max-width: 768px) {
  .l-mb120-sp {
    margin-bottom: 120px !important;
  }
  .l-mt120-sp {
    margin-top: 120px !important;
  }
}
.l-mb125 {
  margin-bottom: 125px;
}

.l-mt125 {
  margin-top: 125px;
}

@media only screen and (max-width: 768px) {
  .l-mb125-sp {
    margin-bottom: 125px !important;
  }
  .l-mt125-sp {
    margin-top: 125px !important;
  }
}
.l-mb130 {
  margin-bottom: 130px;
}

.l-mt130 {
  margin-top: 130px;
}

@media only screen and (max-width: 768px) {
  .l-mb130-sp {
    margin-bottom: 130px !important;
  }
  .l-mt130-sp {
    margin-top: 130px !important;
  }
}
.l-mb135 {
  margin-bottom: 135px;
}

.l-mt135 {
  margin-top: 135px;
}

@media only screen and (max-width: 768px) {
  .l-mb135-sp {
    margin-bottom: 135px !important;
  }
  .l-mt135-sp {
    margin-top: 135px !important;
  }
}
.l-mb140 {
  margin-bottom: 140px;
}

.l-mt140 {
  margin-top: 140px;
}

@media only screen and (max-width: 768px) {
  .l-mb140-sp {
    margin-bottom: 140px !important;
  }
  .l-mt140-sp {
    margin-top: 140px !important;
  }
}
.l-mb145 {
  margin-bottom: 145px;
}

.l-mt145 {
  margin-top: 145px;
}

@media only screen and (max-width: 768px) {
  .l-mb145-sp {
    margin-bottom: 145px !important;
  }
  .l-mt145-sp {
    margin-top: 145px !important;
  }
}
.l-mb150 {
  margin-bottom: 150px;
}

.l-mt150 {
  margin-top: 150px;
}

@media only screen and (max-width: 768px) {
  .l-mb150-sp {
    margin-bottom: 150px !important;
  }
  .l-mt150-sp {
    margin-top: 150px !important;
  }
}
.l-mb155 {
  margin-bottom: 155px;
}

.l-mt155 {
  margin-top: 155px;
}

@media only screen and (max-width: 768px) {
  .l-mb155-sp {
    margin-bottom: 155px !important;
  }
  .l-mt155-sp {
    margin-top: 155px !important;
  }
}
.l-mb160 {
  margin-bottom: 160px;
}

.l-mt160 {
  margin-top: 160px;
}

@media only screen and (max-width: 768px) {
  .l-mb160-sp {
    margin-bottom: 160px !important;
  }
  .l-mt160-sp {
    margin-top: 160px !important;
  }
}
.l-mb165 {
  margin-bottom: 165px;
}

.l-mt165 {
  margin-top: 165px;
}

@media only screen and (max-width: 768px) {
  .l-mb165-sp {
    margin-bottom: 165px !important;
  }
  .l-mt165-sp {
    margin-top: 165px !important;
  }
}
.l-mb170 {
  margin-bottom: 170px;
}

.l-mt170 {
  margin-top: 170px;
}

@media only screen and (max-width: 768px) {
  .l-mb170-sp {
    margin-bottom: 170px !important;
  }
  .l-mt170-sp {
    margin-top: 170px !important;
  }
}
.l-mb175 {
  margin-bottom: 175px;
}

.l-mt175 {
  margin-top: 175px;
}

@media only screen and (max-width: 768px) {
  .l-mb175-sp {
    margin-bottom: 175px !important;
  }
  .l-mt175-sp {
    margin-top: 175px !important;
  }
}
.l-mb180 {
  margin-bottom: 180px;
}

.l-mt180 {
  margin-top: 180px;
}

@media only screen and (max-width: 768px) {
  .l-mb180-sp {
    margin-bottom: 180px !important;
  }
  .l-mt180-sp {
    margin-top: 180px !important;
  }
}
.l-mb185 {
  margin-bottom: 185px;
}

.l-mt185 {
  margin-top: 185px;
}

@media only screen and (max-width: 768px) {
  .l-mb185-sp {
    margin-bottom: 185px !important;
  }
  .l-mt185-sp {
    margin-top: 185px !important;
  }
}
.l-mb190 {
  margin-bottom: 190px;
}

.l-mt190 {
  margin-top: 190px;
}

@media only screen and (max-width: 768px) {
  .l-mb190-sp {
    margin-bottom: 190px !important;
  }
  .l-mt190-sp {
    margin-top: 190px !important;
  }
}
.l-mb195 {
  margin-bottom: 195px;
}

.l-mt195 {
  margin-top: 195px;
}

@media only screen and (max-width: 768px) {
  .l-mb195-sp {
    margin-bottom: 195px !important;
  }
  .l-mt195-sp {
    margin-top: 195px !important;
  }
}
.l-mb200 {
  margin-bottom: 200px;
}

.l-mt200 {
  margin-top: 200px;
}

@media only screen and (max-width: 768px) {
  .l-mb200-sp {
    margin-bottom: 200px !important;
  }
  .l-mt200-sp {
    margin-top: 200px !important;
  }
}
.l-mb205 {
  margin-bottom: 205px;
}

.l-mt205 {
  margin-top: 205px;
}

@media only screen and (max-width: 768px) {
  .l-mb205-sp {
    margin-bottom: 205px !important;
  }
  .l-mt205-sp {
    margin-top: 205px !important;
  }
}
.l-mb210 {
  margin-bottom: 210px;
}

.l-mt210 {
  margin-top: 210px;
}

@media only screen and (max-width: 768px) {
  .l-mb210-sp {
    margin-bottom: 210px !important;
  }
  .l-mt210-sp {
    margin-top: 210px !important;
  }
}
.l-mb215 {
  margin-bottom: 215px;
}

.l-mt215 {
  margin-top: 215px;
}

@media only screen and (max-width: 768px) {
  .l-mb215-sp {
    margin-bottom: 215px !important;
  }
  .l-mt215-sp {
    margin-top: 215px !important;
  }
}
.l-mb220 {
  margin-bottom: 220px;
}

.l-mt220 {
  margin-top: 220px;
}

@media only screen and (max-width: 768px) {
  .l-mb220-sp {
    margin-bottom: 220px !important;
  }
  .l-mt220-sp {
    margin-top: 220px !important;
  }
}
.l-mb225 {
  margin-bottom: 225px;
}

.l-mt225 {
  margin-top: 225px;
}

@media only screen and (max-width: 768px) {
  .l-mb225-sp {
    margin-bottom: 225px !important;
  }
  .l-mt225-sp {
    margin-top: 225px !important;
  }
}
.l-mb230 {
  margin-bottom: 230px;
}

.l-mt230 {
  margin-top: 230px;
}

@media only screen and (max-width: 768px) {
  .l-mb230-sp {
    margin-bottom: 230px !important;
  }
  .l-mt230-sp {
    margin-top: 230px !important;
  }
}
.l-mb235 {
  margin-bottom: 235px;
}

.l-mt235 {
  margin-top: 235px;
}

@media only screen and (max-width: 768px) {
  .l-mb235-sp {
    margin-bottom: 235px !important;
  }
  .l-mt235-sp {
    margin-top: 235px !important;
  }
}
.l-mb240 {
  margin-bottom: 240px;
}

.l-mt240 {
  margin-top: 240px;
}

@media only screen and (max-width: 768px) {
  .l-mb240-sp {
    margin-bottom: 240px !important;
  }
  .l-mt240-sp {
    margin-top: 240px !important;
  }
}
.l-mb245 {
  margin-bottom: 245px;
}

.l-mt245 {
  margin-top: 245px;
}

@media only screen and (max-width: 768px) {
  .l-mb245-sp {
    margin-bottom: 245px !important;
  }
  .l-mt245-sp {
    margin-top: 245px !important;
  }
}
.l-mb250 {
  margin-bottom: 250px;
}

.l-mt250 {
  margin-top: 250px;
}

@media only screen and (max-width: 768px) {
  .l-mb250-sp {
    margin-bottom: 250px !important;
  }
  .l-mt250-sp {
    margin-top: 250px !important;
  }
}
.l-mb255 {
  margin-bottom: 255px;
}

.l-mt255 {
  margin-top: 255px;
}

@media only screen and (max-width: 768px) {
  .l-mb255-sp {
    margin-bottom: 255px !important;
  }
  .l-mt255-sp {
    margin-top: 255px !important;
  }
}
.l-mb260 {
  margin-bottom: 260px;
}

.l-mt260 {
  margin-top: 260px;
}

@media only screen and (max-width: 768px) {
  .l-mb260-sp {
    margin-bottom: 260px !important;
  }
  .l-mt260-sp {
    margin-top: 260px !important;
  }
}
.l-mb265 {
  margin-bottom: 265px;
}

.l-mt265 {
  margin-top: 265px;
}

@media only screen and (max-width: 768px) {
  .l-mb265-sp {
    margin-bottom: 265px !important;
  }
  .l-mt265-sp {
    margin-top: 265px !important;
  }
}
.l-mb270 {
  margin-bottom: 270px;
}

.l-mt270 {
  margin-top: 270px;
}

@media only screen and (max-width: 768px) {
  .l-mb270-sp {
    margin-bottom: 270px !important;
  }
  .l-mt270-sp {
    margin-top: 270px !important;
  }
}
.l-mb275 {
  margin-bottom: 275px;
}

.l-mt275 {
  margin-top: 275px;
}

@media only screen and (max-width: 768px) {
  .l-mb275-sp {
    margin-bottom: 275px !important;
  }
  .l-mt275-sp {
    margin-top: 275px !important;
  }
}
.l-mb280 {
  margin-bottom: 280px;
}

.l-mt280 {
  margin-top: 280px;
}

@media only screen and (max-width: 768px) {
  .l-mb280-sp {
    margin-bottom: 280px !important;
  }
  .l-mt280-sp {
    margin-top: 280px !important;
  }
}
.l-mb285 {
  margin-bottom: 285px;
}

.l-mt285 {
  margin-top: 285px;
}

@media only screen and (max-width: 768px) {
  .l-mb285-sp {
    margin-bottom: 285px !important;
  }
  .l-mt285-sp {
    margin-top: 285px !important;
  }
}
.l-mb290 {
  margin-bottom: 290px;
}

.l-mt290 {
  margin-top: 290px;
}

@media only screen and (max-width: 768px) {
  .l-mb290-sp {
    margin-bottom: 290px !important;
  }
  .l-mt290-sp {
    margin-top: 290px !important;
  }
}
.l-mb295 {
  margin-bottom: 295px;
}

.l-mt295 {
  margin-top: 295px;
}

@media only screen and (max-width: 768px) {
  .l-mb295-sp {
    margin-bottom: 295px !important;
  }
  .l-mt295-sp {
    margin-top: 295px !important;
  }
}
.l-mb300 {
  margin-bottom: 300px;
}

.l-mt300 {
  margin-top: 300px;
}

@media only screen and (max-width: 768px) {
  .l-mb300-sp {
    margin-bottom: 300px !important;
  }
  .l-mt300-sp {
    margin-top: 300px !important;
  }
}
/* -------------------------------------------------------------------------
	テキスト揃え
*/
.l-alignL {
  text-align: left;
}

.l-alignR {
  text-align: right;
}

.l-alignC {
  text-align: center;
}

.l-block-alignC {
  margin-left: auto;
  margin-right: auto;
}

.l-valign-m {
  display: flex;
  align-items: center;
}

@media only screen and (max-width: 768px) {
  .l-sp-alignL {
    text-align: left;
  }
  .l-sp-alignR {
    text-align: right;
  }
  .l-sp-alignC {
    text-align: center;
  }
}
/* ==========================================================================
   animation
   ========================================================================== */
.ef-io,
.ef-io-in,
.ef-intro {
  pointer-events: none;
}

.tr-fade-up {
  transition: transform 1s, opacity 1s;
}
.tr-fade-up.ef-io, .tr-fade-up.ef-io-in {
  opacity: 0;
  transform: translate3d(0, 30px, 0);
}
@media print, screen and (min-width:769px) {
  .tr-fade-up.ef-io, .tr-fade-up.ef-io-in {
    transform: translate3d(0, 60px, 0);
  }
}

.tr-fade-right {
  transition: transform 1s, opacity 1s;
}
.tr-fade-right.ef-io, .tr-fade-right.ef-io-in {
  opacity: 0;
  transform: translate3d(-30px, 0, 0);
}
@media print, screen and (min-width:769px) {
  .tr-fade-right.ef-io, .tr-fade-right.ef-io-in {
    transform: translate3d(-60px, 0, 0);
  }
}

.tr-fade-in {
  transition: transform 1s, opacity 1s;
}
.tr-fade-in.ef-io, .tr-fade-in.ef-io-in {
  opacity: 0;
}
.tr-mask-lr {
  transition: mask-position 0.7s;
}
@media only screen and (max-width: 768px) {
  .tr-mask-lr {
    transition: mask-position 0.49s;
  }
}
.tr-mask-lr {
  transition-timing-function: cubic-bezier(1, 0, 0, 1);
  mask-image: linear-gradient(90deg, transparent 50%, red 50%);
  mask-size: 200% 100%;
  mask-position: -100% 0;
}
.tr-mask-lr.ef-io, .tr-mask-lr.ef-io-inner {
  mask-position: 0 0;
}
