@charset "UTF-8";
/* =========================================================
body
========================================================= */
body {
  color: #197ab1;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 500;
  word-break: break-all;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
}

input,
button,
textarea,
select {
  color: #197ab1;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 500;
  box-sizing: border-box;
}

* {
  letter-spacing: 0.05em;
}

*:before,
*:after {
  display: block;
}

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

a {
  text-decoration: none;
}

svg.hide {
  display: none;
}

.pc-br {
  display: none;
}

@media (min-width: 769px) {
  .pc-br {
    display: inline;
  }
}
@media (min-width: 769px) {
  .sp-br {
    display: none;
  }
}
.pc-disp {
  display: none;
}

@media (min-width: 769px) {
  .pc-disp {
    display: block;
  }
}
@media (min-width: 769px) {
  .sp-disp {
    display: none;
  }
}
@media (hover: hover) {
  .opacity-link {
    transition: opacity 0.2s ease-in-out;
  }

  .opacity-link:hover {
    opacity: 0.6;
  }
}
.txt-link {
  text-decoration: underline;
}

@media (hover: hover) {
  .txt-link:hover {
    text-decoration: none;
  }
}
.no-link {
  pointer-events: none;
}

.wrapper {
  min-width: 320px;
  overflow: hidden;
}

img.w100 {
  width: 100%;
  height: auto;
}

/* =========================================================
common parts
========================================================= */
/*------------------------------------------
section
------------------------------------------*/
.sec-cont {
  position: relative;
}

@media (max-width: 768px) {
  .sec-cont {
    padding: 0 6.6666666667vw;
  }
}
@media (min-width: 769px) {
  .sec-cont {
    padding: 0 clamp(10px, 4.39238653vw, 60px);
  }
}
.sec-cont::before {
  content: "";
  width: 100%;
  -webkit-mask: url(../images/bg01.png) repeat-x center/auto 100%;
  mask: url(../images/bg01.png) repeat-x center/auto 100%;
  position: absolute;
  top: 0;
  left: 0;
}

@media (max-width: 768px) {
  .sec-cont::before {
    height: 138px;
  }
}
@media (min-width: 769px) {
  .sec-cont::before {
    height: 275px;
  }
}
.sec-cont .sec-in {
  position: relative;
  margin: 0 auto;
  z-index: 1;
}

@media (min-width: 769px) {
  .sec-cont .sec-in {
    max-width: 810px;
  }
}
.border::before,
.border::after {
  content: "";
  width: 100%;
  -webkit-mask: url(../images/bg01.png) repeat-x center/auto 100%;
  mask: url(../images/bg01.png) repeat-x center/auto 100%;
  position: absolute;
  left: 0;
}

@media (max-width: 768px) {
  .border::before,
  .border::after {
    height: 138px;
  }
}
@media (min-width: 769px) {
  .border::before,
  .border::after {
    height: 275px;
  }
}
.border::before {
  top: 0;
}

.border::after {
  bottom: 0;
  transform: scale(-1, -1);
}

/*------------------------------------------
title
------------------------------------------*/
.cmn-ttl01 {
  width: -moz-fit-content;
  width: fit-content;
  background: #197ab1;
  color: #fdef37;
  line-height: 1;
  white-space: nowrap;
  position: relative;
}

@media (max-width: 768px) {
  .cmn-ttl01 {
    padding: 4px 12px 6px;
    border-radius: 5px;
    font-size: clamp(10px, 4vw, 30px);
  }
}
@media (min-width: 769px) {
  .cmn-ttl01 {
    padding: 9px 28px 11px;
    border-radius: 10px;
    font-size: 20px;
  }
}
.cmn-ttl01::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-color: #197ab1 transparent transparent transparent;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 768px) {
  .cmn-ttl01::after {
    border-width: 9px 6px 0 6px;
  }
}
@media (min-width: 769px) {
  .cmn-ttl01::after {
    border-width: 14px 8px 0 8px;
  }
}
/*------------------------------------------
button
------------------------------------------*/
.cmn-btn01 a {
  display: block;
  position: relative;
  z-index: 0;
}

@media (max-width: 768px) {
  .cmn-btn01 a {
    height: clamp(10px, 12vw, 90px);
  }
}
@media (min-width: 769px) {
  .cmn-btn01 a {
    height: 70px;
  }
}
.cmn-btn01 a .in {
  width: 100%;
  height: 100%;
  border: 1px solid #197ab1;
  border-radius: 70px;
  letter-spacing: 0.01em;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease;
}

@media (max-width: 768px) {
  .cmn-btn01 a .in {
    font-size: clamp(10px, 3.4666666667vw, 26px);
  }
}
@media (min-width: 769px) {
  .cmn-btn01 a .in {
    font-size: 16px;
  }
}
.cmn-btn01 a .img {
  width: 100%;
  height: 100%;
  background: #197ab1;
  transition: background 0.2s ease;
}

.cmn-btn01 a::before {
  content: "";
  width: 333px;
  height: 108px;
  background: url(../images/bg_btn.png) no-repeat center/contain;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  transition: -webkit-clip-path 0.5s ease;
  transition: clip-path 0.5s ease;
  transition: clip-path 0.5s ease, -webkit-clip-path 0.5s ease;
}

@media (hover: hover) {
  .cmn-btn01 a:hover .in {
    color: #fff;
  }

  .cmn-btn01 a:hover .img {
    background: #fff;
  }

  .cmn-btn01 a:hover::before {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
  }
}
/*------------------------------------------
box
------------------------------------------*/
.page-box01 {
  position: relative;
  border: 1px dashed #197ab1;
}

@media (max-width: 768px) {
  .page-box01 {
    border-radius: 10px;
  }
}
@media (min-width: 769px) {
  .page-box01 {
    border-radius: 20px;
  }
}
.page-box01 .cmn-ttl01 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 768px) {
  .page-box01 .cmn-ttl01 {
    top: -13px;
  }
}
@media (min-width: 769px) {
  .page-box01 .cmn-ttl01 {
    top: -20px;
  }
}
@media (max-width: 768px) {
  .page-box01 .list {
    font-size: clamp(10px, 3.2vw, 24px);
    line-height: 1.91;
  }
}
@media (min-width: 769px) {
  .page-box01 .list {
    font-size: 14px;
    line-height: 2;
  }
}
.page-box01 .list li {
  padding: 0 0 0 2em;
  position: relative;
}

.page-box01 .list li::before {
  content: "";
  display: inline-block;
  width: 0.75em;
  height: 0.75em;
  background: #197ab1;
  border-radius: 50%;
  position: absolute;
  top: 0.65em;
  left: 0;
}

.page-box01 .list li + li {
  margin-top: 1em;
}

/* =========================================================
footer
========================================================= */
.page-ft {
  padding: 0 0 100px;
}

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

.page-ft .logo {
  margin: 0 auto;
}

@media (max-width: 768px) {
  .page-ft .logo {
    width: 133px;
  }
}
@media (min-width: 769px) {
  .page-ft .logo {
    width: 187px;
  }
}
.page-ft .logo a {
  display: block;
}

.page-ft .copyright {
  text-align: center;
  letter-spacing: 0.03em;
  line-height: 1;
}

@media (max-width: 768px) {
  .page-ft .copyright {
    margin: 7px auto 0;
    font-size: 10px;
  }
}
@media (min-width: 769px) {
  .page-ft .copyright {
    margin: 18px auto 0;
    font-size: 12px;
  }
}
/* =========================================================
home
========================================================= */
body.page-home {
  cursor: none;
}

/*------------------------------------------
mousr stalker
------------------------------------------*/
.stalker {
  width: 20px;
  height: 20px;
  background: #fff;
  filter: blur(1px);
  border-radius: 50%;
  opacity: 0.7;
  position: absolute;
  top: 0;
  left: 0;
  margin: -10px 0 0 -10px;
  z-index: 100;
  pointer-events: none;
  z-index: 1;
}

.marker {
  width: 268px;
  height: 268px;
  -webkit-mask: url(../images/cursor.png) no-repeat center/contain;
  mask: url(../images/cursor.png) no-repeat center/contain;
  border-radius: 50%;
  position: absolute;
  opacity: 0;
  top: 0;
  left: 0;
  margin: -134px 0 0 -134px;
  z-index: 50;
  pointer-events: none;
  z-index: 0;
}

@media (hover: hover) {
  .marker {
    opacity: 0.1;
  }
}
/*------------------------------------------
sticky badge
------------------------------------------*/
.sticky-badge {
  position: fixed;
  z-index: 10;
}

@media (max-width: 768px) {
  .sticky-badge {
    bottom: -94px;
    left: 50%;
    transform: translate(-50%);
  }
}
@media (min-width: 769px) {
  .sticky-badge {
    bottom: 50px;
    right: 50px;
  }
}
.sticky-badge a {
  aspect-ratio: 1/1;
  display: block;
  border-radius: 50%;
  background: #fff;
  position: relative;
  z-index: 0;
}

@media (max-width: 768px) {
  .sticky-badge a {
    width: 188px;
    padding: 18px 0 0;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.16);
  }
}
@media (min-width: 769px) {
  .sticky-badge a {
    width: 191px;
    padding: 58px 0 0;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.16);
  }
}
.sticky-badge a::before {
  content: "";
  width: 100%;
  height: 100%;
  background: url(../images/bg_badge.png) no-repeat center/contain;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}

.sticky-badge .txt01 {
  margin: 0 auto;
  -webkit-mask: url(../images/txt_badge.png) no-repeat center/contain;
  mask: url(../images/txt_badge.png) no-repeat center/contain;
  background: #197ab1;
}

@media (max-width: 768px) {
  .sticky-badge .txt01 {
    width: 124px;
    height: 46px;
  }
}
@media (min-width: 769px) {
  .sticky-badge .txt01 {
    width: 134px;
    height: 51px;
  }
}
.sticky-badge .txt02 {
  line-height: 1;
  text-align: center;
}

@media (max-width: 768px) {
  .sticky-badge .txt02 {
    margin: 5px auto 0;
    font-size: 10px;
  }
}
@media (min-width: 769px) {
  .sticky-badge .txt02 {
    margin: 10px auto 0;
    font-size: 12px;
  }
}
.sticky-badge a::before {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.sticky-badge a .txt01 {
  transition: background 0.2s ease;
}

.sticky-badge a .txt02 {
  transition: color 0.2s ease;
}

@media (hover: hover) {
  .sticky-badge a:hover::before {
    opacity: 1;
  }

  .sticky-badge a:hover .txt01 {
    background: #fff;
  }

  .sticky-badge a:hover .txt02 {
    color: #fff;
  }
}
/*------------------------------------------
header
------------------------------------------*/
.page-hd {
  position: relative;
  z-index: 2;
}

@media (max-width: 768px) {
  .page-hd {
    background: url(../images/mv_bg_sp.png) no-repeat center
      clamp(10px, 42.6666666667vw, 320px) / contain;
  }
}
.page-hd::before {
  content: "";
}

@media (max-width: 768px) {
  .page-hd::before {
    aspect-ratio: 75/130;
  }
}
@media (min-width: 769px) {
  .page-hd::before {
    aspect-ratio: 1366/768;
  }
}
.page-hd .logo {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20;
}

@media (max-width: 768px) {
  .page-hd .logo {
    width: 172px;
    height: 100px;
    padding: 16px 0 0 16px;
    background: url(../images/mv/sp/08.png) no-repeat right -61px/243px 209px;
  }
}
@media (min-width: 769px) {
  .page-hd .logo {
    width: 292px;
    height: 247px;
    padding: 30px 0 0 34px;
    background: url(../images/mv/pc/08.png) no-repeat right -115px/420px 470px;
  }
}
.page-hd .logo a {
  display: block;
}

@media (max-width: 768px) {
  .page-hd .logo a {
    width: clamp(10px, 30.6666666667vw, 230px);
  }
}
@media (min-width: 769px) {
  .page-hd .logo a {
    width: 187px;
  }
}
.page-hd .main-ttl {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 768px) {
  .page-hd .main-ttl {
    width: clamp(10px, 87.2vw, 654px);
    top: clamp(10px, 38.5333333333vw, 289px);
    z-index: 11;
  }
}

@media (min-width: 769px) {
  .page-hd .main-ttl {
    width: 68.9604685212vw;
    top: 8.5651537335vw;
    z-index: 1;
  }
}
.page-hd .frame-wrap {
  width: 100%;
  height: auto;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

@media (max-width: 768px) {
  .page-hd .frame-wrap {
    aspect-ratio: 75/130;
  }
}
@media (min-width: 769px) {
  .page-hd .frame-wrap {
    aspect-ratio: 1366/768;
  }
}
.page-hd .frame {
  width: 100vw;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.page-hd .frame [class*="deco"] {
  position: absolute;
}

.page-hd .frame [class*="deco"] .in {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

@media (max-width: 768px) {
  .page-hd .frame .deco01 {
    bottom: 9.5%;
    right: 23.9%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco01 {
    bottom: 15.5%;
    right: 9.6%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco01 .in {
    width: clamp(10px, 66.1333333333vw, 496px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco01 .in {
    width: 29.2825768668vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco02 {
    bottom: 27.7%;
    right: -1.3%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco02 {
    bottom: 43.7%;
    right: 4.4%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco02 .in {
    width: clamp(10px, 53.2vw, 399px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco02 .in {
    width: 24.3777452416vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco03 {
    top: 49.3%;
    right: 3.9%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco03 {
    top: 34.9%;
    right: 3.7%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco03 .in {
    width: clamp(10px, 36.6666666667vw, 275px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco03 .in {
    width: 26.1346998536vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco04 {
    top: 26.9%;
    right: -0.3%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco04 {
    top: 10.3%;
    right: 10.8%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco04 .in {
    width: clamp(10px, 47.6vw, 357px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco04 .in {
    width: 40.4099560761vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco05 {
    top: 7.2%;
    right: 11.5%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco05 {
    top: 5.3%;
    right: 36.5%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco05 .in {
    width: clamp(10px, 73.0666666667vw, 548px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco05 .in {
    width: 34.9926793558vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco06 {
    top: 5.1%;
    left: 35.6%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco06 {
    top: 4.6%;
    left: 42.3%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco06 .in {
    width: clamp(10px, 68.6666666667vw, 515px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco06 .in {
    width: 28.9897510981vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco07 {
    top: 9%;
    left: 10.4%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco07 {
    top: 9.6%;
    left: 20.2%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco07 .in {
    width: clamp(10px, 44vw, 330px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco07 .in {
    width: 27.3792093704vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco09 {
    top: 26.8%;
    left: 5.7%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco09 {
    top: 18.2%;
    left: 5.8%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco09 .in {
    width: clamp(10px, 32.5333333333vw, 244px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco09 .in {
    width: 31.4787701318vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco10 {
    top: 46.7%;
    left: -2.6%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco10 {
    top: 49.6%;
    left: 4%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco10 .in {
    width: clamp(10px, 40.2666666667vw, 302px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco10 .in {
    width: 21.1566617862vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco11 {
    bottom: 29%;
    left: 0.5%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco11 {
    bottom: 32.6%;
    left: 5.1%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco11 .in {
    width: clamp(10px, 43.2vw, 324px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco11 .in {
    width: 25.9882869693vw;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco12 {
    bottom: 6.5%;
    left: 18.4%;
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco12 {
    bottom: 2%;
    left: 14.7%;
  }
}
@media (max-width: 768px) {
  .page-hd .frame .deco12 .in {
    width: clamp(10px, 82.2666666667vw, 617px);
  }
}
@media (min-width: 769px) {
  .page-hd .frame .deco12 .in {
    width: 41.9472913616vw;
  }
}
.page-hd.js-scrhd .frame-wrap {
  position: fixed;
  z-index: 10;
}

.page-hd .frame {
  box-sizing: content-box;
  padding: 50vw 50vw 0;
  transition: padding 1s ease;
}

.page-hd.is-active .frame {
  padding: 0;
}

/*------------------------------------------
lead
------------------------------------------*/
.home-lead {
  background: rgba(226, 234, 245, 0.73);
}

@media (max-width: 768px) {
  .home-lead {
    padding-top: 212px;
    padding-bottom: 25px;
  }
}
@media (min-width: 769px) {
  .home-lead {
    padding-top: 372px;
    padding-bottom: 53px;
  }
}
.home-lead::before {
  background: #fff;
}

.home-lead .ttl {
  margin: 0 auto;
}

@media (max-width: 768px) {
  .home-lead .ttl {
    width: clamp(10px, 43.3333333333vw, 325px);
  }
}
@media (min-width: 769px) {
  .home-lead .ttl {
    width: 412px;
  }
}
.home-lead .txt {
  position: relative;
  text-align: center;
}

@media (max-width: 768px) {
  .home-lead .txt {
    margin: 51px auto 0;
    font-size: clamp(10px, 3.4666666667vw, 26px);
    line-height: 2;
  }
}
@media (min-width: 769px) {
  .home-lead .txt {
    margin: 80px auto 0;
    font-size: 16px;
    line-height: 2.25;
  }
}
.home-lead .txt::after {
  content: "";
  background: url(../images/ico_arrow01.svg) no-repeat center/contain;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 768px) {
  .home-lead .txt::after {
    width: 16px;
    height: 55px;
    top: calc(100% + 55px);
  }
}
@media (min-width: 769px) {
  .home-lead .txt::after {
    width: 14px;
    height: 46px;
    top: calc(100% + 72px);
  }
}
@media (max-width: 768px) {
  .home-lead .cmn-btn01 {
    width: clamp(10px, 65.3333333333vw, 490px);
    margin: 129px auto 0;
  }
}
@media (min-width: 769px) {
  .home-lead .cmn-btn01 {
    width: 366px;
    margin: 137px auto 0;
  }
}
.home-lead .cmn-btn01 .img {
  -webkit-mask: url(../images/txt_btn.png) no-repeat center;
  mask: url(../images/txt_btn.png) no-repeat center;
}

@media (max-width: 768px) {
  .home-lead .cmn-btn01 .img {
    -webkit-mask-size: clamp(10px, 40.8vw, 306px) auto;
    mask-size: clamp(10px, 40.8vw, 306px) auto;
  }
}
@media (min-width: 769px) {
  .home-lead .cmn-btn01 .img {
    -webkit-mask-size: 192px auto;
    mask-size: 192px auto;
  }
}
/*------------------------------------------
application
------------------------------------------*/
@media (max-width: 768px) {
  .home-application {
    padding-top: 203px;
    padding-bottom: 57px;
  }
}
@media (min-width: 769px) {
  .home-application {
    padding-top: 330px;
    padding-bottom: 53px;
  }
}
.home-application::before {
  background: rgba(226, 234, 245, 0.73);
}

@media (max-width: 768px) {
  .home-application .page-box01 {
    padding: 50px 0 45px;
  }
}
@media (min-width: 769px) {
  .home-application .page-box01 {
    padding: 90px 0 74px;
  }
}
@media (max-width: 768px) {
  .home-application .page-box01 + .page-box01 {
    margin: 63px auto 0;
  }
}
@media (min-width: 769px) {
  .home-application .page-box01 + .page-box01 {
    margin: 78px auto 0;
  }
}
.home-application .theme {
  margin: 0 auto;
}

@media (max-width: 768px) {
  .home-application .theme {
    width: clamp(10px, 52.8vw, 396px);
  }
}
@media (min-width: 769px) {
  .home-application .theme {
    width: clamp(10px, 45.9736456808vw, 628px);
  }
}
.home-application .txt {
  text-align: center;
}

@media (max-width: 768px) {
  .home-application .txt {
    margin: 20px auto 0;
    font-size: 12px;
  }
}
@media (min-width: 769px) {
  .home-application .txt {
    margin: 33px auto 0;
    font-size: 20px;
  }
}
.home-application .period {
  margin: 0 auto;
}

@media (max-width: 768px) {
  .home-application .period {
    width: clamp(10px, 60.5333333333vw, 454px);
  }
}
@media (min-width: 769px) {
  .home-application .period {
    width: clamp(10px, 30.7467057101vw, 420px);
  }
}
/*------------------------------------------
howto
------------------------------------------*/
.home-howto {
  background: #c9daee;
}

@media (max-width: 768px) {
  .home-howto {
    padding-top: 213px;
    padding-bottom: 64px;
  }
}
@media (min-width: 769px) {
  .home-howto {
    padding-top: 349px;
    padding-bottom: 20px;
  }
}
.home-howto::before {
  background: #fff;
}

@media (max-width: 768px) {
  .home-howto .sec-in > * + * {
    margin: 55px auto 0;
  }
}
.home-howto .cmn-ttl01 {
  margin: 0 auto;
}

.home-howto .txt01 {
  text-align: center;
}

@media (max-width: 768px) {
  .home-howto .txt01 {
    font-size: clamp(10px, 5.3333333333vw, 40px);
    line-height: 1.7;
  }
}
@media (min-width: 769px) {
  .home-howto .txt01 {
    margin: 72px auto 0;
    font-size: clamp(10px, 3vw, 27px);
    line-height: 1;
  }
}
.home-howto .txt02 {
  text-align: center;
}

@media (max-width: 768px) {
  .home-howto .txt02 {
    font-size: clamp(10px, 3.2vw, 24px);
    line-height: 1.9;
  }
}
@media (min-width: 769px) {
  .home-howto .txt02 {
    margin: 48px auto 0;
    font-size: 14px;
    line-height: 2;
  }
}
.home-howto .txt02 .small {
  font-size: 0.8em;
}

@media (max-width: 768px) {
  .home-howto .hashtag {
    width: clamp(10px, 65.3333333333vw, 490px);
  }
}
@media (min-width: 769px) {
  .home-howto .hashtag {
    margin: 60px auto 0;
  }
}
@media (max-width: 768px) {
  .home-howto .example {
    width: clamp(10px, 54.6666666667vw, 410px);
  }
}
@media (min-width: 769px) {
  .home-howto .example {
    max-width: 564px;
    margin: 72px auto 0;
  }
}
/*------------------------------------------
present
------------------------------------------*/
.home-present {
  background: #f0f1f1;
}

@media (max-width: 768px) {
  .home-present {
    padding-top: 213px;
    padding-bottom: 64px;
  }
}
@media (min-width: 769px) {
  .home-present {
    padding-top: 349px;
    padding-bottom: 20px;
  }
}
.home-present::before {
  background: #c9daee;
}

.home-present .cmn-ttl01 {
  margin: 0 auto;
}

[class*="present-box0"] {
  background: #fff;
  position: relative;
}

@media (max-width: 768px) {
  [class*="present-box0"] {
    margin: 64px auto 0;
    padding: 60px 0 55px;
    border-radius: 10px;
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] {
    margin: 100px auto 0;
    padding: 80px 30px;
    border-radius: 20px;
  }
}
@media (max-width: 768px) {
  [class*="present-box0"] > * + * {
    margin: 35px auto 0;
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] > * + * {
    margin: 50px auto 0;
  }
}
[class*="present-box0"] .num {
  aspect-ratio: 1/1;
  background: #fff;
  border: 1px solid #197ab1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 768px) {
  [class*="present-box0"] .num {
    width: clamp(10px, 10.6666666667vw, 80px);
    top: clamp(-40px, -5.3vw, -5.3vw);
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] .num {
    width: 60px;
    top: -30px;
  }
}
[class*="present-box0"] .num img {
  width: auto;
}

@media (max-width: 768px) {
  [class*="present-box0"] .num img {
    height: clamp(10px, 5.7333333333vw, 43px);
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] .num img {
    height: 34px;
  }
}
[class*="present-box0"] .ttl {
  margin: 0 auto;
}

[class*="present-box0"] .txt01 {
  text-align: center;
}

@media (max-width: 768px) {
  [class*="present-box0"] .txt01 {
    font-size: clamp(10px, 3.2vw, 24px);
    line-height: 1.64;
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] .txt01 {
    font-size: 14px;
    line-height: 2;
  }
}
[class*="present-box0"] .txt02 {
  text-align: center;
}

@media (max-width: 768px) {
  [class*="present-box0"] .txt02 {
    font-size: clamp(10px, 2.6666666667vw, 20px);
    line-height: 2.1;
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] .txt02 {
    font-size: 12px;
    line-height: 2.3333333333;
  }
}
@media (max-width: 768px) {
  [class*="present-box0"] .list {
    margin: 40px auto 0;
    font-size: clamp(10px, 3.2vw, 24px);
    line-height: 1.64;
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] .list {
    max-width: 638px;
    font-size: 14px;
    line-height: 2;
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] .list .bundle {
    display: flex;
  }
}
@media (max-width: 768px) {
  [class*="present-box0"] .list .bundle + .bundle {
    margin: 38px auto 0;
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] .list .bundle + .bundle {
    margin: 30px auto 0;
  }
}
[class*="present-box0"] .list dt {
  border: 1px solid #197ab1;
  font-weight: 500;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  [class*="present-box0"] .list dt {
    width: clamp(10px, 26.6666666667vw, 200px);
    height: clamp(10px, 8.9333333333vw, 67px);
    margin: 0 auto;
    border-radius: 5px;
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] .list dt {
    width: 114px;
    height: 43px;
    border-radius: 10px;
  }
}
@media (max-width: 768px) {
  [class*="present-box0"] .list dd {
    margin: 16px auto 0;
    text-align: center;
  }
}
@media (min-width: 769px) {
  [class*="present-box0"] .list dd {
    flex: 1;
    padding: 0.5em 0 0 36px;
  }
}
@media (max-width: 768px) {
  .present-box01 .ttl {
    width: clamp(10px, 51.2vw, 384px);
  }
}
@media (min-width: 769px) {
  .present-box01 .ttl {
    width: 350px;
  }
}
.present-box01 .num img {
  transform: translateX(-10%);
}

@media (max-width: 768px) {
  .present-box02 .ttl {
    width: clamp(10px, 66.6666666667vw, 500px);
  }
}
@media (min-width: 769px) {
  .present-box02 .ttl {
    width: 438px;
  }
}
/*------------------------------------------
terms
------------------------------------------*/
.home-terms {
  background: #fff;
}

@media (max-width: 768px) {
  .home-terms {
    padding-top: 213px;
    padding-bottom: 151px;
  }
}
@media (min-width: 769px) {
  .home-terms {
    padding-top: 335px;
    padding-bottom: 285px;
  }
}
.home-terms::before {
  background: #f0f1f1;
}

@media (max-width: 768px) {
  .home-terms .page-box01 {
    padding: 65px 40px 50px;
  }
}
@media (min-width: 769px) {
  .home-terms .page-box01 {
    padding: 103px clamp(10px, 11.2vw, 84px) 100px;
  }
}
@media (max-width: 768px) {
  .home-terms .page-box01 + .page-box01 {
    margin: 67px auto 0;
  }
}
@media (min-width: 769px) {
  .home-terms .page-box01 + .page-box01 {
    margin: 103px auto 0;
  }
}
@media (max-width: 768px) {
  .home-terms .cmn-btn01 {
    width: 46.9333333333vw;
    margin: 73px auto 0;
  }
}
@media (min-width: 769px) {
  .home-terms .cmn-btn01 {
    width: 310px;
    margin: 130px auto 0;
  }
}
/* =========================================================
color
========================================================= */
body.page-color::-webkit-scrollbar {
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

@-moz-document url-prefix() {
  body.page-color {
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
  }
}
/*------------------------------------------
loading
------------------------------------------*/
.loading {
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  transition: opacity 1s ease, z-index 0s 1s, pointer-events 0s 1s;
}

.loading.is-active {
  opacity: 0;
  z-index: -100;
  pointer-events: none;
}

.loading .img {
  width: clamp(10px, 18.6vw, 90px);
}

.loading .txt {
  width: clamp(10px, 14.1333333333vw, 74px);
  margin: clamp(10px, 14.6vw, 70px) auto 0;
}

/*------------------------------------------
list
------------------------------------------*/
.ig-list .list {
  display: grid;
}

@media (max-width: 768px) {
  .ig-list .list {
    padding: 0 0 70px;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(10px, 2.4vw, 18px);
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .ig-list .list {
    padding: 0 0 120px;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(10px, 1.6105417277vw, 22px);
  }
}
@media (min-width: 1025px) {
  .ig-list .list {
    padding: 0 0 120px;
    grid-template-columns: repeat(8, 1fr);
    gap: clamp(10px, 1.6105417277vw, 22px);
  }
}
.ig-list .ig {
  aspect-ratio: 1/1;
}

.ig-list .ig button {
  display: block;
  width: 100%;
  height: 100%;
}

.ig-list .ig img {
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.scrollbar {
  width: 8px;
  height: calc(65vh - 8px);
  padding: 0 0 8px;
  box-sizing: content-box;
  border-radius: 8px;
  background: #f0f1f1;
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}

@media (max-width: 768px) {
  .scrollbar {
    right: 14px;
  }
}
@media (min-width: 769px) {
  .scrollbar {
    right: 20px;
  }
}
.scrollbar .thumb {
  width: 8px;
  height: 8px;
  background: #707070;
  border-radius: 50%;
  position: relative;
}

.scrollbar .thumb.bg-white {
  background: #f3f3f3;
}

.scrollbar .thumb.bg-yellow {
  background: #f8b62c;
}

.scrollbar .thumb.bg-yellowgreen {
  background: #8fc426;
}

.scrollbar .thumb.bg-green {
  background: #0d6834;
}

.scrollbar .thumb.bg-lightblue {
  background: #2da7e1;
}

.scrollbar .thumb.bg-blue {
  background: #104d9a;
}

.scrollbar .thumb.bg-pink {
  background: #ea70a6;
}

.scrollbar .thumb.bg-red {
  background: #e61c1a;
}

.scrollbar .thumb.bg-brown {
  background: #804f21;
}

.scrollbar .thumb.bg-orange {
  background: #ea551e;
}

.scrollbar .thumb.bg-baige {
  background: #c9bc9c;
}

.scrollbar .thumb.bg-black {
  background: #413d3c;
}

/*------------------------------------------
color navigation
------------------------------------------*/
.color-nav {
  width: 100%;
  background: #fff;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 5;
}

@media (max-width: 768px) {
  .color-nav {
    height: 70px;
    padding: 15px 25px 0;
    transition: height 0.5s linear;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .color-nav {
    height: 120px;
    padding: 15px 50px 0;
    transition: height 0.5s linear;
  }
}
@media (min-width: 1025px) {
  .color-nav {
    height: 120px;
    padding: 0 clamp(10px, 5.1244509517vw, 70px) 0
      clamp(10px, 3.1478770132vw, 43px);
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}
@media (max-width: 768px) {
  .color-nav .left {
    width: 109px;
    height: 70px;
  }
}
@media (min-width: 769px) {
  .color-nav .left {
    width: 157px;
  }
}
.color-nav .left .logo a {
  display: block;
}

.color-nav .left .top {
  margin: 5px auto 0;
}

@media (max-width: 768px) {
  .color-nav .left .top {
    width: 70px;
    display: none;
  }
}
@media (min-width: 769px) {
  .color-nav .left .top {
    width: 87px;
  }
}
.color-nav .left .top a {
  display: block;
  border: 1px solid #707070;
  border-radius: 25px;
  color: #707070;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .color-nav .left .top a {
    height: 16px;
    font-size: 10px;
  }
}
@media (min-width: 769px) {
  .color-nav .left .top a {
    height: 25px;
    font-size: 12px;
  }
}
.color-nav .left .tap {
  position: absolute;
  top: clamp(-50px, -6.66vw, 1px);
  right: 25px;
  z-index: 1;
}

@media (min-width: 1025px) {
  .color-nav .left .tap {
    display: none;
  }
}
.color-nav .left .tap.transparent {
  opacity: 0;
}

.color-nav .left .tap button {
  display: block;
  width: clamp(10px, 29.3333333333vw, 220px);
  height: clamp(10px, 29.3333333333vw, 220px);
  padding: clamp(10px, 7.3333333333vw, 55px) clamp(10px, 5.3333333333vw, 40px);
  background: #fff;
  border-radius: 50%;
  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.16);
}

.color-nav .close {
  position: absolute;
  top: clamp(-32px, -4.26vw, 1px);
  left: 50%;
  transform: translateX(-50%);
  display: none;
}

.color-nav .close button {
  width: clamp(10px, 16vw, 120px);
  padding: clamp(10px, 1.3333333333vw, 10px) clamp(10px, 4vw, 30px) 0;
  display: block;
  background: #fff;
}

@media (max-width: 768px) {
  .color-nav .close button {
    border-radius: 5px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .color-nav .close button {
    border-radius: 10px;
  }
}
@media (max-width: 768px) {
  .color-nav .right {
    margin: clamp(10px, 8.5333333333vw, 64px) auto 0;
    padding: 0 0 20px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .color-nav .right {
    margin: 85px auto 0;
    padding: 0 0 40px;
  }
}
@media (min-width: 1025px) {
  .color-nav .right {
    display: flex;
    align-items: center;
    padding: 0 0 25px;
  }
}
.color-nav .right .head {
  display: none;
}

@media (min-width: 1025px) {
  .color-nav .right .head {
    display: block;
    width: 72px;
    margin: 0 clamp(10px, 4.39238653vw, 60px) 0 0;
  }
}
.color-nav .right .reset {
  width: 100%;
  z-index: 1;
}

@media (min-width: 1025px) {
  .color-nav .right .reset {
    width: clamp(10px, 2.196193265vw, 30px);
    padding: clamp(10px, 1.6vw, 20px) 0 0;
  }
}
.color-nav .right .reset button {
  display: block;
  margin: 0 0 0 auto;
}

@media (max-width: 768px) {
  .color-nav .right .reset button {
    width: clamp(10px, 14.6666666667vw, 110px);
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .color-nav .right .reset button {
    width: 110px;
  }
}
.color-nav .right .reset button:before {
  content: none;
}

.color-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

@media (max-width: 768px) {
  .color-list {
    justify-content: space-between;
    gap: clamp(10px, 8vw, 60px) clamp(10px, 10.6666666667vw, 80px);
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .color-list {
    max-width: 650px;
    margin: 0 auto;
    justify-content: space-between;
    gap: 60px 80px;
  }
}
@media (min-width: 1025px) {
  .color-list {
    gap: clamp(10px, 3.5vw, 52px);
  }
}
.color-list button {
  display: block;
}

@media (min-width: 1025px) {
  .color-list button {
    position: relative;
  }
}
.color-list button::before {
  content: "";
  width: clamp(10px, 4.5333333333vw, 34px);
  height: clamp(10px, 4.5333333333vw, 34px);
  border-radius: 50%;
}

@media (min-width: 1025px) {
  .color-list button::before {
    width: clamp(10px, 1.4641288433vw, 20px);
    height: clamp(10px, 1.4641288433vw, 20px);
  }
}
.color-list button.is-show {
  z-index: 1;
}

@media (min-width: 1025px) {
  .color-list button.is-show::before {
    opacity: 0;
  }
}
.color-list button.is-show .current {
  opacity: 1;
}

@media (hover: hover) {
  .color-list button:hover {
    z-index: 2;
  }
}
@media (hover: hover) and (min-width: 1025px) {
  .color-list button:hover .current {
    opacity: 1;
  }
}
.color-list .current {
  opacity: 0;
  position: absolute;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

@media (max-width: 768px) {
  .color-list .current {
    width: 138px;
    height: 138px;
    top: -30px;
    right: 25px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .color-list .current {
    width: 200px;
    height: 200px;
    top: -50px;
    right: 50px;
  }
}
@media (min-width: 1025px) {
  .color-list .current {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}
.color-list .current img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}

.color-list .color.white button::before {
  background: #f3f3f3;
}

@media (min-width: 1025px) {
  .color-list .color.white .current {
    width: 163px;
  }
}
.color-list .color.yellow button::before {
  background: #f8b62c;
}

@media (min-width: 1025px) {
  .color-list .color.yellow .current {
    width: 160px;
  }
}
.color-list .color.yellowgreen button::before {
  background: #8fc426;
}

@media (min-width: 1025px) {
  .color-list .color.yellowgreen .current {
    width: 154px;
  }
}
.color-list .color.green button::before {
  background: #0d6834;
}

@media (min-width: 1025px) {
  .color-list .color.green .current {
    width: 167px;
  }
}
.color-list .color.lightblue button::before {
  background: #2da7e1;
}

@media (min-width: 1025px) {
  .color-list .color.lightblue .current {
    width: 195px;
  }
}
.color-list .color.blue button::before {
  background: #104d9a;
}

@media (min-width: 1025px) {
  .color-list .color.blue .current {
    width: 162px;
  }
}
.color-list .color.pink button::before {
  background: #ea70a6;
}

@media (min-width: 1025px) {
  .color-list .color.pink .current {
    width: 167px;
  }
}
.color-list .color.red button::before {
  background: #e61c1a;
}

@media (min-width: 1025px) {
  .color-list .color.red .current {
    width: 155px;
  }
}
.color-list .color.brown button::before {
  background: #804f21;
}

@media (min-width: 1025px) {
  .color-list .color.brown .current {
    width: 172px;
  }
}
.color-list .color.orange button::before {
  background: #ea551e;
}

@media (min-width: 1025px) {
  .color-list .color.orange .current {
    width: 151px;
  }
}
.color-list .color.baige button::before {
  background: #c9bc9c;
}

@media (min-width: 1025px) {
  .color-list .color.baige .current {
    width: 190px;
  }
}
.color-list .color.black button::before {
  background: #413d3c;
}

@media (min-width: 1025px) {
  .color-list .color.black .current {
    width: 133px;
  }
}
@media (max-width: 768px) {
  .color-nav.is-open {
    height: clamp(10px, 70vw, 493px);
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .color-nav.is-open {
    height: 449px;
  }
}
.color-nav.is-open .left .top {
  display: block;
}

.color-nav.is-open .left .close {
  display: block;
}

/*------------------------------------------
modal
------------------------------------------*/
.modal {
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  background: rgba(255, 255, 255, 0.8);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  display: none;
}

@media (min-width: 769px) {
  .modal {
    padding: 95px 4.39238653vw;
  }
}
.modal-cont {
  background: #fff;
  color: #707070;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

@media (max-width: 768px) {
  .modal-cont {
    width: calc(100vw - 6.66vw);
    height: calc(100% - 170px);
    max-width: 480px;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.16);
  }
}
@media (min-width: 520px) {
  .modal-cont {
    width: 450px;
  }
}
@media (min-width: 769px) {
  .modal-cont {
    display: flex;
    width: calc(100% - 4.39vw);
    height: calc((100% - 4.39vw) / 2);
    max-width: 1046px;
    margin: 0 auto;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.16);
  }
}
.modal .close {
  position: absolute;
  right: 0;
  bottom: calc(100% + 20px);
}

.modal .close button {
  display: block;
  position: relative;
}

@media (max-width: 768px) {
  .modal .close button {
    width: 20px;
    height: 20px;
  }
}
@media (min-width: 769px) {
  .modal .close button {
    width: 37px;
    height: 37px;
  }
}
.modal .close button::before,
.modal .close button::after {
  content: "";
  width: calc(100% * 1.32);
  height: 2px;
  background: #a09f9f;
  transform-origin: left;
  position: absolute;
  left: 0;
}

.modal .close button::before {
  top: 0;
  transform: rotate(45deg);
}

.modal .close button::after {
  bottom: 0;
  transform: rotate(-45deg);
}

.modal .img {
  aspect-ratio: 1/1;
}

.modal .img img {
  -o-object-fit: contain;
  object-fit: contain;
  width: 100%;
  height: 100%;
}

.modal .detail {
  position: relative;
}

@media (max-width: 768px) {
  .modal .detail {
    height: calc(100% - (100vw - 6.66vw));
    padding: 0 30px 30px;
  }
}
@media (min-width: 520px) {
  .modal .detail {
    height: calc(100% - 450px);
  }
}
@media (min-width: 769px) {
  .modal .detail {
    height: 100%;
    flex: 1;
    padding: 35px 60px;
  }
}
.modal .detail .head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px dashed #707070;
}

@media (max-width: 768px) {
  .modal .detail .head {
    height: 55px;
    margin: 0 auto 15px;
  }
}
@media (min-width: 769px) {
  .modal .detail .head {
    height: 85px;
    margin: 0 auto 20px;
  }
}
.modal .detail .date {
  line-height: 1;
}

@media (max-width: 768px) {
  .modal .detail .date {
    font-size: 12px;
  }
}
@media (min-width: 769px) {
  .modal .detail .date {
    font-size: 14px;
  }
}
.modal .detail .appopen a {
  display: block;
  border: 1px solid #707070;
  border-radius: 25px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .modal .detail .appopen a {
    width: 74px;
    height: 16px;
    font-size: 10px;
  }
}
@media (min-width: 769px) {
  .modal .detail .appopen a {
    width: 93px;
    height: 25px;
    font-size: 12px;
  }
}
.modal .detail .bottom {
  overflow: auto;
  overscroll-behavior-y: contain;
}

.modal .detail .bottom::-webkit-scrollbar {
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

@-moz-document url-prefix() {
  .modal .detail .bottom {
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
  }
}
@media (max-width: 768px) {
  .modal .detail .bottom {
    height: calc(100% - 70px);
  }
}
@media (min-width: 769px) {
  .modal .detail .bottom {
    flex: 1;
    height: calc(100% - 105px);
  }
}
@media (max-width: 768px) {
  .modal .detail .txt {
    font-size: 11px;
    line-height: 1.8181818182;
  }
}
@media (min-width: 769px) {
  .modal .detail .txt {
    font-size: 14px;
    line-height: 2;
  }
}
.modal-scroll {
  width: 8px;
  height: 100%;
  padding: 0 0 8px;
  box-sizing: content-box;
  border-radius: 8px;
  background: #f0f1f1;
  position: absolute;
  z-index: 1;
}

@media (max-width: 768px) {
  .modal-scroll {
    height: calc(100% - 58px);
    bottom: 30px;
    right: 10px;
  }
}
@media (min-width: 769px) {
  .modal-scroll {
    height: calc(100% - 97px);
    bottom: 35px;
    right: 20px;
  }
}
.modal-scroll .thumb {
  width: 8px;
  height: 8px;
  background: #707070;
  border-radius: 50%;
  position: relative;
}

/* =========================================================
terms
========================================================= */
body.page-terms {
  background: #eee;
  color: #313131;
}

.terms-hd {
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.terms-hd .logo {
  width: 200px;
}

@media (max-width: 768px) {
  .terms-hd .logo {
    width: 160px;
  }
}

@media (max-width: 768px) {
  .terms-hd {
    height: 40px;
  }
}
@media (min-width: 769px) {
  .terms-hd {
    height: 70px;
  }
}
.terms-hd a {
  display: block;
}

/* @media (max-width: 768px) {
  .terms-hd a {
    width: 180px;
  }
}
@media (min-width: 769px) {
  .terms-hd a {
    width: 400px;
  }
} */
@media (max-width: 768px) {
  .terms-list {
    padding-top: 32px;
    padding-bottom: 40px;
  }
}
@media (min-width: 769px) {
  .terms-list {
    padding-top: 70px;
    padding-bottom: 75px;
  }
}
.terms-list .sec-in {
  max-width: 860px;
}

.terms-list .main-ttl {
  line-height: 1;
  text-align: center;
}

@media (max-width: 768px) {
  .terms-list .main-ttl {
    margin: 0 auto 22px;
    font-size: clamp(10px, 5.46vw, 26px);
  }
}
@media (min-width: 769px) {
  .terms-list .main-ttl {
    margin: 0 auto 30px;
    font-size: 48px;
  }
}

.terms-list .sub-ttl {
  line-height: 1;
  text-align: center;
}

@media (max-width: 768px) {
  .terms-list .sub-ttl {
    margin: 0 auto 35px;
    font-size: 12px;
  }
}

@media (min-width: 769px) {
  .terms-list .sub-ttl {
    margin: 0 auto 50px;
    font-size: 14px;
  }
}

.terms-list .terms-block {
  background: #fff;
  border-radius: 8px;
}

@media (max-width: 768px) {
  .terms-list .terms-block {
    padding: 30px 20px;
  }
}
@media (min-width: 769px) {
  .terms-list .terms-block {
    padding: 50px;
  }
}
@media (max-width: 768px) {
  .terms-list .terms-block + .terms-block {
    margin: 16px auto 0;
  }
}
@media (min-width: 769px) {
  .terms-list .terms-block + .terms-block {
    margin: 30px auto 0;
  }
}
@media (max-width: 768px) {
  .terms-list .terms-block > * + * {
    margin: 1.7em auto 0;
  }
}
@media (min-width: 769px) {
  .terms-list .terms-block > * + * {
    margin: 2em auto 0;
  }
}
.terms-list .terms-block .ttl {
  font-weight: 700;
  position: relative;
}

@media (max-width: 768px) {
  .terms-list .terms-block .ttl {
    padding: 0 0 0 20px;
    font-size: 16px;
    line-height: 1.4444444444;
  }
}
@media (min-width: 769px) {
  .terms-list .terms-block .ttl {
    padding: 0 0 0 35px;
    font-size: 20px;
    line-height: 1.7;
  }
}
.terms-list .terms-block .ttl::before {
  content: "";
  height: 2px;
  background: #149ddb;
  position: absolute;
  left: 0;
}

@media (max-width: 768px) {
  .terms-list .terms-block .ttl::before {
    width: 10px;
    top: 0.6em;
  }
}
@media (min-width: 769px) {
  .terms-list .terms-block .ttl::before {
    width: 16px;
    top: 0.8em;
  }
}
.terms-list .terms-block .head {
  padding: 0 0 10px;
  font-size: 16px;
  border-bottom: 1px solid #ececec;
  line-height: 1;
  font-weight: 700;
}

@media (max-width: 768px) {
  .terms-list .terms-block .head {
    margin: 22px auto 0;
  }
}
@media (min-width: 769px) {
  .terms-list .terms-block .head {
    margin: 30px auto 0;
  }
}
.terms-list .terms-block .txt01 {
  font-size: 14px;
}

@media (max-width: 768px) {
  .terms-list .terms-block .txt01 {
    line-height: 1.71;
  }
}
@media (min-width: 769px) {
  .terms-list .terms-block .txt01 {
    line-height: 2;
  }
}
@media (max-width: 768px) {
  .terms-list .terms-block .txt02 {
    font-size: 14px;
    line-height: 1.7142857143;
  }
}
@media (min-width: 769px) {
  .terms-list .terms-block .txt02 {
    font-size: 12px;
    line-height: 1.8333333333;
  }
}
.terms-list .terms-block [class*="list0"] li {
  margin: 0 0 0 1em;
}

.terms-list .terms-block [class*="list0"] li::before {
  display: inline;
  margin: 0 0 0 -1em;
}

.terms-list .terms-block .list01 li::before {
  content: "・";
}

.terms-list .terms-block .list02 li::before {
  content: "■";
}

.terms-list .terms-block .list03 {
  counter-reset: number 0;
}

.terms-list .terms-block .list03 li::before {
  counter-increment: number 1;
  content: counter(number) ".";
}

@media (min-width: 769px) {
  .terms-list .terms-block .list04 .bundle {
    display: flex;
  }
}
@media (max-width: 768px) {
  .terms-list .terms-block .list04 .bundle + .bundle {
    margin: 1em auto 0;
  }
}
.terms-list .terms-block .list04 dt {
  font-weight: 700;
}

@media (min-width: 769px) {
  .terms-list .terms-block .list04 dt {
    width: 90px;
  }
}
@media (min-width: 769px) {
  .terms-list .terms-block .list04 dd {
    flex: 1;
  }
}
