@charset "utf-8";
/* ==========================================================================
   Foundation
   ========================================================================== */
/*!
 * Sanitize 13.0.0 (https://github.com/csstools/sanitize.css)
 * Licensed under the CC0 1.0 Universal.
 */
*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}
:after,:before{text-decoration:inherit;vertical-align:inherit}
html{cursor:default;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-break:break-word}
body{margin:0}
h1{font-size:2em;margin:.67em 0}
dl dl,dl ol,dl ul,ol dl,ol ol,ol ul,ul dl,ul ol,ul ul{margin:0}
hr{height:0;overflow:visible}
main{display:block}
nav ol,nav ul{list-style:none;padding:0}
pre{font-family:monospace;font-size:1em}
a{background-color:transparent}
abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}
b,strong{font-weight:bolder}
code,kbd,samp{font-family:monospace;font-size:1em}
small{font-size:80%}
audio,canvas,iframe,img,svg,video{vertical-align:middle}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
iframe,img{border-style:none}
svg:not([fill]){fill:currentColor}
svg:not(:root){overflow:hidden}
table{border-collapse:collapse}
button,input,select{margin:0}
button{overflow:visible;text-transform:none}
[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}
fieldset{border:1px solid #a0a0a0;padding:.35em .75em .625em}
input{overflow:visible}
legend{color:inherit;display:table;max-width:100%;white-space:normal}
progress{display:inline-block;vertical-align:baseline}
select{text-transform:none}
textarea{margin:0;overflow:auto;resize:vertical}
[type=checkbox],[type=radio]{padding:0}
[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}
::-webkit-input-placeholder{color:inherit;opacity:.54}
::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
::-moz-focus-inner{border-style:none;padding:0}
:-moz-focusring{outline:1px dotted ButtonText}
:-moz-ui-invalid{box-shadow:none}
details,dialog{display:block}
dialog{background-color:#fff;border:solid;color:#000;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;left:0;margin:auto;padding:1em;position:absolute;right:0;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content}
dialog:not([open]){display:none}
summary{display:list-item}
canvas{display:inline-block}
template{display:none}
[tabindex],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}
[hidden]{display:none}
[aria-busy=true]{cursor:progress}
[aria-controls]{cursor:pointer}
[aria-disabled=true],[disabled]{cursor:not-allowed}
[aria-hidden="false"][hidden]{display:inline;display:initial}
[aria-hidden="false"][hidden]:not(:focus){clip:rect(0,0,0,0);position:absolute}
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: 20px;
}
body {
  overflow-x: hidden;
  background: #fff;
  color: #52443c;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.6em;
  font-weight: 500;
  font-style: normal;
  line-height: 1.875;
}
a {
  color: #52443c;
}
/* Typography Base Setting */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
}
p,
ul,
ol {
  margin-top: 0;
  margin-bottom: 1em;
}
ol,
ul {
  padding-left: 2em;
}
ol {
  list-style: decimal outside none;
}
ul {
  list-style: disc outside none;
}
li ol,
li ul {
  margin-bottom: 0;
}
nav ol,
nav ul {
  list-style: none;
  padding-left: 0;
}
em {
  font-style: normal;
}
strong {
  font-weight: 700;
}
rp,
rt {
  line-height: 1;
  font-size: 0.688em;
}
table {
  empty-cells: show;
  font-size: 1em;
}
iframe {
  display: block;
  width: 100%;
}
img {
  height: auto;
}
img,
iframe,
button,
input,
select,
textarea {
  max-width: 100%;
}
figure {
  margin: 0;
}
textarea {
  height: auto;
  resize: vertical;
}
mark {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(55%, transparent), color-stop(55%, rgba(0, 61, 165, 0.3)));
  background: linear-gradient(transparent 55%, rgba(0, 61, 165, 0.3) 55%);
}
/* ==========================================================================
   Layout
   ========================================================================== */
body {
  position: relative;
  padding-top: 1px;
}
body::after {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 101;
  width: 100%;
  height: 100%;
  background: #fff;
  pointer-events: none;
  content: "";
}
.no-js body::after {
  opacity: 0;
}
.js.is-loaded body::after {
  opacity: 0;
  -webkit-transition: opacity 0.5s 0.3s;
  transition: opacity 0.5s 0.3s;
}
.wrap {
  overflow: hidden;
  position: relative;
}
.container {
  display: block;
  position: relative;
  width: calc(100% - 40px);
  max-width: 1100px;
  margin: 0 auto
}
.container .container {
    width: 100%;
  }
/* -----------------------------------
  Header
----------------------------------- */
.header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  padding: 8px 15px;
}
.header__title {
  max-width: 180px;
  margin: 0;
}
/* -----------------------------------
  Content
----------------------------------- */
.main {
  position: relative;
  padding-bottom: 150px;
}
/* -----------------------------------
  Footer
----------------------------------- */
.fixed-pagetop {
  position: fixed;
  right: min(3%, 30px);
  bottom: 30px;
  z-index: 10;
  opacity: 1
}
.fixed-pagetop .pagetop {
    opacity: 0;
    -webkit-transform: translateY(10px);
    transform: translateY(10px);
    -webkit-transition: all 0.4s ease-out;
    transition: all 0.4s ease-out;
  }
.fixed-pagetop .is-shown {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
.pagetop {
  display: block;
  width: 24px;
  text-decoration: none
}
.footer {
  position: relative;
  padding-top: 50px;
  padding-bottom: 40px;
  background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f5f1e1));
  background: linear-gradient(to bottom, #fff 0%, #f5f1e1 100%);
}
.footer__sns a {
    display: inline-block;
    margin-left: 2em;
    font-size: 1.2rem;
    text-decoration: none
  }
.footer__sns a:hover {
      text-decoration: underline;
    }
.footer__sns img {
    margin-right: 0.5em;
    vertical-align: middle;
  }
.footer__copyright {
  margin-top: 60px;
  font-size: 1.2rem;
  text-align: center;
}
/* ==========================================================================
   Object
   ========================================================================== */
/* Component
   ----------------------------------------------------------------- */
/*------------------------------------*\
    spectre.css
    http://picturepan2.github.io/spectre
\*------------------------------------*/
.columns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-left: -15px;
  margin-right: -15px
}
.columns.col-gapless {
    margin-left: 0;
    margin-right: 0
  }
.columns.col-gapless > .column {
      padding-left: 0;
      padding-right: 0;
    }
.columns.col-oneline {
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    overflow-x: auto;
  }
[class~="col-"],
.column {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  max-width: 100%;
  padding-left: 15px;
  padding-right: 15px
}
[class~="col-"].col-12,
  [class~="col-"].col-11,
  [class~="col-"].col-10,
  [class~="col-"].col-9,
  [class~="col-"].col-8,
  [class~="col-"].col-7,
  [class~="col-"].col-6,
  [class~="col-"].col-5,
  [class~="col-"].col-4,
  [class~="col-"].col-3,
  [class~="col-"].col-2,
  [class~="col-"].col-1,
  [class~="col-"].col-auto,
  .column.col-12,
  .column.col-11,
  .column.col-10,
  .column.col-9,
  .column.col-8,
  .column.col-7,
  .column.col-6,
  .column.col-5,
  .column.col-4,
  .column.col-3,
  .column.col-2,
  .column.col-1,
  .column.col-auto {
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
  }
.col-12 {
  width: 100%;
}
.col-11 {
  width: 91.66666667%;
}
.col-10 {
  width: 83.33333333%;
}
.col-9 {
  width: 75%;
}
.col-8 {
  width: 66.66666667%;
}
.col-7 {
  width: 58.33333333%;
}
.col-6 {
  width: 50%;
}
.col-5 {
  width: 41.66666667%;
}
.col-4 {
  width: 33.33333333%;
}
.col-3 {
  width: 25%;
}
.col-2 {
  width: 16.66666667%;
}
.col-1 {
  width: 8.33333333%;
}
.col-auto {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  max-width: none;
  width: auto;
}
.col-mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.col-ml-auto {
  margin-left: auto;
}
.col-mr-auto {
  margin-right: auto;
}
/*------------------------------------*\
    Typography
\*------------------------------------*/
/* 見出し */
.heading {
  margin-bottom: 25px;
  font-size: 4.2rem;
  font-size: clamp(3rem, 2.28rem + 2vw, 4.2rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.025em;
}
.heading2 {
  margin-bottom: 25px;
  font-size: 3.5rem;
  font-size: clamp(2.8rem, 2.3792rem + 1.17vw, 3.5rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.025em;
}
.lead {
  margin-bottom: 25px;
  font-size: 3rem;
  font-size: clamp(2.2rem, 1.72rem + 1.33vw, 3rem);
  letter-spacing: 0.025em;
}
/* リスト */
.list-inline,
.list-nostyle,
.list-note {
  list-style: none;
  padding: 0;
}
.list-inline > li {
    display: inline-block;
    margin-right: 1em;
  }
.list-inline > li:last-child {
    margin-right: 0;
  }
.list-note > li {
    position: relative;
    padding-left: 1.5em;
  }
.list-note > li::before {
    position: absolute;
    left: 0;
    content: "※";
  }
/*------------------------------------*\
    Tables
\*------------------------------------*/
.table {
  width: 100%
}
.table th {
    padding: 1em 0;
    border-bottom: 1px solid #bcb7b4;
    text-align: left;
    font-weight: 700;
    vertical-align: top;
    white-space: nowrap;
  }
.table td {
    padding: 1em 0;
    border-bottom: 1px solid #e5e3e2;
    vertical-align: top;
  }
.table tbody tr:last-child th,
  .table tbody tr:last-child td {
    border-bottom: none;
  }
/* レスポンシブ */
/*------------------------------------*\
    Buttons
\*------------------------------------*/
.btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  position: relative;
  width: 210px;
  max-width: 100%;
  border-radius: 26px;
  border: none;
  padding: 12px 30px 14px;
  border: 1px solid;
  background: #ca3f1f;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer
}
.btn img {
    margin-right: 5px;
    vertical-align: 0.1em;
  }
.btn--large {
  width: 430px;
  font-size: 1.8rem;
}
/* Project
   ----------------------------------------------------------------- */
/*------------------------------------*\
  共通
\*------------------------------------*/
.section {
  padding: 15vw 0
}
.box {
  margin: 40px 0;
  padding: 30px 6.5%;
  border-radius: 20px;
  background: #e7f5f8
}
.full-image {
  width: calc(100% - 40px);
  margin: 0 auto
}
.full-image img {
    width: 100%;
  }
.external {
  display: inline-block
}
.external::after {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-left: 0.5em;
    background: url("../images/icon_external.svg") no-repeat center center / contain;
    vertical-align: middle;
    content: "";
  }
/* 要素 */
.img-round {
  overflow: hidden;
  border-radius: 20px;
}
/*------------------------------------*\
  トップページ
\*------------------------------------*/
.block {
  margin-bottom: min(10vw, 100px);
}
.intro {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  height: 80vh;
  min-height: 540px;
  max-height: 600px;
  padding-top: 120px;
  padding-bottom: 5vw;
  width: 100%;
}
.intro__illust1 {
  position: absolute;
  top: 80px;
  right: 0;
  max-width: 20%;
}
.intro__illust2 {
  position: absolute;
  bottom: -5vw;
  left: 0;
  max-width: 30%;
}
.intro__slider {
  position: relative;
  width: 100%;
}
.intro-slider {
  width: 67%;
  max-width: 764px;
  margin: 0 auto;
  text-align: center;
}
.slide-mask {
  display: inline-block;
  -webkit-mask: url("../../images/mask_intro.svg") no-repeat 0 0 / contain;
  mask: url("../../images/mask_intro.svg") no-repeat 0 0 / contain;
}
.intro__lead {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -53%);
  transform: translate(-50%, -53%);
  width: 90%;
  max-width: 1030px
}
.intro__lead img {
    width: 100%;
  }
.intro__scroll {
  position: absolute;
  right: min(3%, 30px);
  bottom: 30px;
  z-index: 100;
  color: #c9caca;
  font-size: 1.3rem;
  font-weight: 700;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl
}
.intro__scroll a {
    display: inline-block;
    text-decoration: none
  }
.intro__scroll a::after {
      display: inline-block;
      width: 0;
      height: 26px;
      margin-top: 10px;
      border-right: 1px solid #dcdddd;
      vertical-align: -0.1em;
      content: "";
    }
.line-container {
  overflow: hidden;
  position: relative;
}
.line {
  position: absolute;
  top: max(-3vw, -50px);
  left: 50%;
  -webkit-transform: translateX(-48%);
  transform: translateX(-48%);
  z-index: -1;
  width: 100%;
  max-width: 1160px
}
.line svg {
    width: 100%;
    height: auto;
  }
.line--pc {
  display: none;
}
#scroll-line-pc {
  stroke-dasharray: 8215; /* ラインの長さに応じて適切な値に調整 */
  stroke-dashoffset: 8215; /* 初期状態では全て非表示に */
}
#scroll-line-sp {
  stroke-dasharray: 16700; /* ラインの長さに応じて適切な値に調整 */
  stroke-dashoffset: 16700; /* 初期状態では全て非表示に */
}
.block01 {
  max-width: 970px;
  margin-left: auto;
  padding-top: min(20vw, 80px);
  padding-bottom: min(15vw, 100px);
}
.block02 {
  position: relative;
  padding: min(20vw, 200px) 0;
}
.block02__illust {
  position: absolute;
  top: -3%;
  left: 0;
  max-width: 20%;
}
.block02__inner {
  position: relative;
}
.block02__movie {
  overflow: hidden;
  position: relative;
  border-radius: 15px;
}
.block02__link {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0
}
.block02__link::before {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    width: 60px;
    height: 67px;
    background: url("../images/icon_play.svg") no-repeat center center / contain;
    content: "";
  }
.block03 {
  position: relative;
  z-index: 0;
  padding-bottom: min(20vw, 200px);
}
.block03__illust {
  position: absolute;
  top: -5vw;
  right: 0;
  z-index: -1;
  max-width: 25%;
  width: 250px;
}
.block03__inner {
  margin-top: 48px;
}
.block03__image {
  overflow: hidden;
  margin-bottom: 20px;
  border-radius: 15px
}
.block03__image img {
    width: 100%;
  }
.block03__subheading {
  margin-bottom: 0.66em;
  font-size: clamp(2.2rem, 1.6rem + 1.67vw, 3.2rem);
  font-weight: 500;
  line-height: 1.4
}
.block03__subheading span {
    display: inline-block;
    margin-right: 0.5em;
    padding-bottom: 0.33em;
    border-bottom: 1px solid #d4d0ce;
    font-size: 0.66em;
    vertical-align: 0.25em;
  }
.block04 {
  position: relative;
  padding-top: 10vw;
}
.block04__illust {
  position: absolute;
  top: -15vw;
  left: 0;
  max-width: 20%;
  width: 190px;
}
.block04__inner {
  margin-bottom: 50px;
}
.block04__image {
  position: relative
}
.block04__image .mask {
    -webkit-mask: url("../../images/mask_feature.svg") no-repeat 0 0 / contain;
    mask: url("../../images/mask_feature.svg") no-repeat 0 0 / contain;
  }
.block04__image figcaption {
    position: absolute;
    top: -15px;
    right: 20px;
    padding: 0.5em 0;
    border-radius: 5px;
    background: #fff;
    font-size: 2.5rem;
    letter-spacing: 0.075em;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
  }
.block04__inner:nth-of-type(even) .block04__image figcaption {
  right: auto;
  left: 20px;
}
.block05,
.block06 {
  position: relative;
  z-index: 0;
  background: #fafaf8;
}
.block05 {
  margin-top: min(30vw, 280px);
  padding-bottom: min(20vw, 160px)
}
.block05::before {
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 120vw;
    height: 20vw;
    z-index: -1;
    border-radius: 50%;
    background: #fafaf8;
    content: "";
  }
.block05__inner {
  width: 90%;
  max-width: 1240px;
  margin: 0 auto;
}
.block05__illust {
  position: absolute;
  top: max(-30vw, -270px);
  right: 0;
  z-index: -1;
  max-width: 20%;
}
.block06 {
  padding-bottom: 15vw;
}
.block06__illust {
  position: absolute;
  bottom: -20px;
  left: 0;
  z-index: -1;
  max-width: 25%;
}
.block07 {
  padding-top: min(15vw, 150px);
  padding-bottom: min(20vw, 170px);
}
.contact-block {
  padding: min(10vw, 70px) 8%;
  background: #fafaf8;
  text-align: center;
}
.contact-block__tel {
  margin: 30px 0;
  padding: 30px 0;
  border-top: 1px solid #e5e3e2;
  border-bottom: 1px solid #e5e3e2;
  color: #ca3f1f;
  line-height: 1.5
}
.contact-block__tel .phone-number {
    font-size: 4rem;
    font-size: clamp(2.8rem, 2.3632rem + 1.36vw, 4rem)
  }
.contact-block__btn {
  width: 435px;
  margin: 50px auto 0;
  padding: 24px;
  border-radius: 40px;
  font-size: 1.8rem;
}
/* Utility
   ----------------------------------------------------------------- */
/* Responsive */
.video-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
}
.video-container iframe,
.video-container video {
  position: absolute;
  outline: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/* Display */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(0px 0px 99.9% 99.9%);
  clip-path: inset(0px 0px 99.9% 99.9%);
  border: 0;
}
.u-none {
  display: none;
}
.u-block {
  display: block;
}
.u-inline {
  display: inline;
}
.u-inline-block {
  display: inline-block;
}
.u-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
/* Text Align & Font style */
.u-text-left {
  text-align: left !important;
}
.u-text-center {
  text-align: center !important;
}
.u-text-right {
  text-align: right !important;
}
.u-vertical-top {
  vertical-align: top !important;
}
.u-vertical-middle {
  vertical-align: middle !important;
}
.u-vertical-bottom {
  vertical-align: bottom !important;
}
.u-text-muted {
  color: #b2b5b5;
}
.u-text-primary {
  color: #52443c;
}
.u-text-important {
  color: #cc0000;
}
.u-text-indent {
  padding-left: 1.5em;
  text-indent: -1.5em;
}
ul.u-text-indent {
  list-style: none;
}
.u-align-items-center {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.u-justify-center {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.u-justify-between {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
/* widths */
.u-w100 {
  width: 100%;
}
.u-w90 {
  width: 90%;
}
.u-w80 {
  width: 80%;
}
.u-w75 {
  width: 75%;
}
.u-w70 {
  width: 70%;
}
.u-w66 {
  width: 66%;
}
.u-w60 {
  width: 60%;
}
.u-w50 {
  width: 50%;
}
.u-w40 {
  width: 40%;
}
.u-w33 {
  width: 33%;
}
.u-w30 {
  width: 30%;
}
.u-w25 {
  width: 25%;
}
.u-w20 {
  width: 20%;
}
.u-w10 {
  width: 10%;
}
.u-w-auto {
  width: auto;
}
/* Margins */
.u-mt-0 {
  margin-top: 0 !important;
}
.u-mb-0 {
  margin-bottom: 0 !important;
}
.u-mr-0 {
  margin-right: 0 !important;
}
.u-ml-0 {
  margin-left: 0 !important;
}
.u-mt-1 {
  margin-top: 10px !important;
}
.u-mr-1 {
  margin-right: 10px !important;
}
.u-mb-1 {
  margin-bottom: 10px !important;
}
.u-ml-1 {
  margin-left: 10px !important;
}
.u-mt-2 {
  margin-top: 20px !important;
}
.u-mr-2 {
  margin-right: 20px !important;
}
.u-mb-2 {
  margin-bottom: 20px !important;
}
.u-ml-2 {
  margin-left: 20px !important;
}
.u-mt-3 {
  margin-top: 40px !important;
}
.u-mr-3 {
  margin-right: 40px !important;
}
.u-mb-3 {
  margin-bottom: 40px !important;
}
.u-ml-3 {
  margin-left: 40px !important;
}
.u-mt-4 {
  margin-top: 60px !important;
}
.u-mr-4 {
  margin-right: 60px !important;
}
.u-mb-4 {
  margin-bottom: 60px !important;
}
.u-ml-4 {
  margin-left: 60px !important;
}
.u-mt-5 {
  margin-top: 100px !important;
}
.u-mr-5 {
  margin-right: 100px !important;
}
.u-mb-5 {
  margin-bottom: 100px !important;
}
.u-ml-5 {
  margin-left: 100px !important;
}
.u-mr-auto,
.u-mx-auto {
  margin-right: auto !important;
}
.u-ml-auto,
.u-mx-auto {
  margin-left: auto !important;
}
/* Paddings */
.u-pt-0 {
  padding-top: 0 !important;
}
.u-pb-0 {
  padding-bottom: 0 !important;
}
.u-pr-0 {
  padding-right: 0 !important;
}
.u-pl-0 {
  padding-left: 0 !important;
}
.u-pt-1 {
  padding-top: 10px !important;
}
.u-pr-1 {
  padding-right: 10px !important;
}
.u-pb-1 {
  padding-bottom: 10px !important;
}
.u-pl-1 {
  padding-left: 10px !important;
}
.u-pt-2 {
  padding-top: 20px !important;
}
.u-pr-2 {
  padding-right: 20px !important;
}
.u-pb-2 {
  padding-bottom: 20px !important;
}
.u-pl-2 {
  padding-left: 20px !important;
}
.u-pt-3 {
  padding-top: 40px !important;
}
.u-pr-3 {
  padding-right: 40px !important;
}
.u-pb-3 {
  padding-bottom: 40px !important;
}
.u-pl-3 {
  padding-left: 40px !important;
}
.u-pt-4 {
  padding-top: 60px !important;
}
.u-pr-4 {
  padding-right: 60px !important;
}
.u-pb-4 {
  padding-bottom: 60px !important;
}
.u-pl-4 {
  padding-left: 60px !important;
}
.u-pt-5 {
  padding-top: 100px !important;
}
.u-pr-5 {
  padding-right: 100px !important;
}
.u-pb-5 {
  padding-bottom: 100px !important;
}
.u-pl-5 {
  padding-left: 100px !important;
}
/* Text Styles */
.u-color-primary {
  color: #52443c;
}
.u-bold {
  font-weight: 700;
}
.u-normal {
  font-weight: 500;
}
.u-font-xl {
  font-size: 2em;
}
.u-font-l {
  font-size: 2rem;
}
.u-font-m {
  font-size: 1.8rem;
  line-height: 2;
}
.u-font-ms {
  font-size: 1.5rem;
}
.u-font-s {
  font-size: 1.4rem;
}
@media (min-width: 35.001em) {
  .col-sm-12,
  .col-sm-11,
  .col-sm-10,
  .col-sm-9,
  .col-sm-8,
  .col-sm-7,
  .col-sm-6,
  .col-sm-5,
  .col-sm-4,
  .col-sm-3,
  .col-sm-2,
  .col-sm-1,
  .col-sm-auto {
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-auto {
    width: auto;
  }
  .u-sm-none {
    display: none !important;
  }
  .u-sm-block {
    display: block !important;
  }
  .u-sm-inline {
    display: inline !important;
  }
  .u-sm-inline-block {
    display: inline-block !important;
  }
  .u-sm-flex {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }}
@media (max-width: 45em) {
    .header__btn .btn {
      width: 140px;
      padding: 10px 15px;
      font-size: 1.3rem;
    }
  .footer__inner {
    text-align: center;
  }
  .footer__mark {
    margin-top: 30px;
  }
  .footer__sns {
    margin-top: 40px;
  }
  .table-scroller {
    display: block;
    width: 100%;
    overflow-x: auto
  }

    .table-scroller td,
    .table-scroller th {
      white-space: nowrap;
    }
  .table--sm-block {
    display: block;
    width: 100%
  }
    .table--sm-block tbody,
    .table--sm-block thead,
    .table--sm-block tfoot,
    .table--sm-block tr,
    .table--sm-block th,
    .table--sm-block td {
      display: block;
      width: 100%;
    }
    .table--sm-block th {
      padding: 1em 0 0;
      border-bottom: none;
    }
    .table--sm-block td {
      padding: 0.5em 0 1em;
    }
  .block03__illust {
  }
  .block03__heading,
  .block03__body {
    padding: 0 20px;
  }
  .block04__image {
    width: 90%;
    max-width: 400px;
    margin: 0 auto 15px;
  }}
@media (min-width: 45.001em) {
  .header__title {
    max-width: 200px;
  }
  .header__btn {
    width: 210px;
  }
  .footer__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  .footer__logo,
  .footer__sns {
    -webkit-box-flex: 0;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
  }
  .footer__mark {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 30%;
    flex: 0 0 30%;
    min-width: 160px;
    text-align: center;
  }
  .col-md-12,
  .col-md-11,
  .col-md-10,
  .col-md-9,
  .col-md-8,
  .col-md-7,
  .col-md-6,
  .col-md-5,
  .col-md-4,
  .col-md-3,
  .col-md-2,
  .col-md-1,
  .col-md-auto {
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-auto {
    width: auto;
  }
.section {
    padding: 70px 0
}
.box {
    padding: 50px 6.5%
}
.full-image {
    width: calc(100% - 60px)
}
  .intro {
    height: 100vh;
    height: 100dvh;
    min-height: 640px;
    max-height: none;
  }
  .intro__illust1 {
    top: 120px;
    max-width: 25%;
  }
  .intro__illust2 {
    bottom: -15px;
    max-width: 35%;
  }
  .block01 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  .block01__heading {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl
  }
    .block01__heading span {
      display: block;
    }
    .block01__heading span:last-child {
      margin-top: 1em;
    }
  .block01__body {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 73.1958%;
    flex: 0 0 73.1958%;
    padding-top: 70px;
  }
  .block02__illust {
    top: 10%;
  }
  .block02__heading {
    position: absolute;
    right: 0;
    top: 0;
    white-space: nowrap;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
  }
  .block02__movie {
    width: 80%;
    max-width: 770px;
    margin: 0 auto;
  }
  .block03__illust {
    top: -14vw;
  }
  .block03__heading {
    position: absolute;
    top: 0;
    left: 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex
  }
    .block03__heading .heading {
      -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
    }
  .block03__body {
    margin-left: 18%;
    padding-top: 25px;
  }
  .block03__content {
    padding-right: 20px;
  }
  .block03__image {
    margin-right: 3%;
    border-radius: 15px;
  }
  .block04__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    margin-bottom: 25px;
  }
  .block04__image {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 49.6666%;
    flex: 0 0 49.6666%;
  }
  .block04__content {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 44.4444%;
    flex: 0 0 44.4444%;
  }
  .block04__inner:nth-of-type(even) {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
  }
  .u-md-none {
    display: none !important;
  }
  .u-md-block {
    display: block !important;
  }
  .u-md-inline {
    display: inline !important;
  }
  .u-md-inline-block {
    display: inline-block !important;
  }
  .u-md-flex {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }}
@media (max-width: 60em) {}
@media (min-width: 60.001em) {
  .header {
    height: 168px;
    padding: 8px 40px;
  }
  .header__title {
    max-width: 276px;
  }
  .heading {
    font-size: 5.6rem;
  }
  .heading2 {
    margin-bottom: 50px;
    font-size: 4.4rem;
  }
  .lead {
    font-size: 4rem;
  }
.full-image {
    width: calc(100% - 100px);
    max-width: 1300px
}
  .block {
    position: relative;
  }
  .block__heading {
    position: absolute;
    left: 0;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
  }
  .block__body {
    width: 87.2727%;
    padding-top: 50px;
    margin-left: auto;
  }
  [data-layout="reverse"] .block__heading {
    right: 0;
    left: auto;
  }
  [data-layout="reverse"] .block__body {
    margin-left: 0;
  }
  .intro {
    min-height: 880px;
    padding-top: 73px;
    padding-bottom: 50px;
  }
  .line--sp {
    display: none;
  }
  .line--pc {
    display: block;
  }
  .block01 {
    padding-top: min(12vw, 120px);
    padding-bottom: min(20vw, 200px);
  }
  .block02 {
    padding-top: min(25vw, 210px);
    padding-bottom: min(30vw, 330px);
  }
  .block02__illust {
    top: 130px;
    max-width: 25%;
  }
    .block02__link::before {
      width: 92px;
      height: 103px;
    }
  .block03 {
    padding-bottom: min(30vw, 260px);
  }
  .block03__illust {
    top: -140px;
    max-width: 35%;
  }
  .block03__heading {
    left: max(20px, calc(50vw - 550px));
  }
  .block03__body {
    width: 80%;
    margin-left: auto;
    padding-top: 25px;
  }
  .block03__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
  }
  .block03__content {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 52.31%;
    flex: 0 0 52.31%;
  }
  .block03__image {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 42.59%;
    flex: 0 0 42.59%;
    margin-bottom: 0;
  }
  .block04 {
    padding-top: 0;
  }
  .block04__illust {
    top: -110px;
    max-width: 25%;
  }
    .block04__image figcaption {
      font-size: 3.8rem;
    }
  .block06 {
    padding-bottom: 60px;
  }
  .block06__illust {
    max-width: 30%;
  }
  .block06__image {
    position: relative;
    margin-right: 4%
  }
    .block06__image::before,
    .block06__image::after {
      position: absolute;
      width: 14px;
      height: 14px;
      background: url("../../images/corner.svg") no-repeat center center / contain;
      content: "";
    }
    .block06__image::before {
      bottom: 0;
      left: 76.5625%;
    }
    .block06__image::after {
      bottom: 88px;
      left: 0;
    }
    .block06__image img {
      width: max(calc(100% + 20px), calc(100% + 50vw - 555px));
      max-width: none;
      border-radius: 14px;
    }
  .block06__text {
    position: relative;
    width: 76.5625%;
    margin-top: -88px;
    padding: 45px 45px 0 0;
    border-radius: 0 14px 0 0;
    background: #fafaf8;
  }
.contact-block__tel .phone-number {
      font-size: 5.2rem
  }
  .u-lg-none {
    display: none !important;
  }
  .u-lg-block {
    display: block !important;
  }
  .u-lg-inline {
    display: inline !important;
  }
  .u-lg-inline-block {
    display: inline-block !important;
  }
  .u-lg-flex {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }
  .u-mt-1 {
    margin-top: 20px !important;
  }
  .u-mr-1 {
    margin-right: 20px !important;
  }
  .u-mb-1 {
    margin-bottom: 20px !important;
  }
  .u-ml-1 {
    margin-left: 20px !important;
  }
  .u-mt-2 {
    margin-top: 40px !important;
  }
  .u-mr-2 {
    margin-right: 40px !important;
  }
  .u-mb-2 {
    margin-bottom: 40px !important;
  }
  .u-ml-2 {
    margin-left: 40px !important;
  }
  .u-mt-3 {
    margin-top: 60px !important;
  }
  .u-mr-3 {
    margin-right: 60px !important;
  }
  .u-mb-3 {
    margin-bottom: 60px !important;
  }
  .u-ml-3 {
    margin-left: 60px !important;
  }
  .u-mt-4 {
    margin-top: 90px !important;
  }
  .u-mr-4 {
    margin-right: 90px !important;
  }
  .u-mb-4 {
    margin-bottom: 90px !important;
  }
  .u-ml-4 {
    margin-left: 90px !important;
  }
  .u-mt-5 {
    margin-top: 150px !important;
  }
  .u-mr-5 {
    margin-right: 150px !important;
  }
  .u-mb-5 {
    margin-bottom: 150px !important;
  }
  .u-ml-5 {
    margin-left: 150px !important;
  }
  .u-pt-1 {
    padding-top: 20px !important;
  }
  .u-pr-1 {
    padding-right: 20px !important;
  }
  .u-pb-1 {
    padding-bottom: 20px !important;
  }
  .u-pl-1 {
    padding-left: 20px !important;
  }
  .u-pt-2 {
    padding-top: 40px !important;
  }
  .u-pr-2 {
    padding-right: 40px !important;
  }
  .u-pb-2 {
    padding-bottom: 40px !important;
  }
  .u-pl-2 {
    padding-left: 40px !important;
  }
  .u-pt-3 {
    padding-top: 60px !important;
  }
  .u-pr-3 {
    padding-right: 60px !important;
  }
  .u-pb-3 {
    padding-bottom: 60px !important;
  }
  .u-pl-3 {
    padding-left: 60px !important;
  }
  .u-pt-4 {
    padding-top: 90px !important;
  }
  .u-pr-4 {
    padding-right: 90px !important;
  }
  .u-pb-4 {
    padding-bottom: 90px !important;
  }
  .u-pl-4 {
    padding-left: 90px !important;
  }
  .u-pt-5 {
    padding-top: 150px !important;
  }
  .u-pr-5 {
    padding-right: 150px !important;
  }
  .u-pb-5 {
    padding-bottom: 150px !important;
  }
  .u-pl-5 {
    padding-left: 150px !important;
  }
  .u-font-l {
    font-size: 2.4rem;
  }}
@media (max-width: 64em) {}
@media (min-width: 64.001em) {
  .columns {
    margin-left: -20px;
    margin-right: -20px;
  }
  [class~="col-"],
  .column {
    padding-left: 20px;
    padding-right: 20px;
  }
  .col-lg-12,
  .col-lg-11,
  .col-lg-10,
  .col-lg-9,
  .col-lg-8,
  .col-lg-7,
  .col-lg-6,
  .col-lg-5,
  .col-lg-4,
  .col-lg-3,
  .col-lg-2,
  .col-lg-1,
  .col-lg-auto {
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-auto {
    width: auto;
  }}
@media (min-width: 75.001em) {}
@media (hover:hover) {
    .pagetop img {
      -webkit-transition: 0.2s all ease-out;
      transition: 0.2s all ease-out;
    }
    .pagetop:hover img {
      -webkit-transform: translateY(-5px);
      transform: translateY(-5px);
    }
  .btn {
    -webkit-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out
  }
    .btn::after {
      -webkit-transition: all 0.3s ease-out;
      transition: all 0.3s ease-out;
    }
    .btn:hover {
      background: #dd5e4a;
      color: #fff;
    }
  /* リンク */
  .hover-scale {
    overflow: hidden;
    position: relative;
    z-index: 1;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  .hover-scale img {
    -webkit-transition: all 0.4s ease-out;
    transition: all 0.4s ease-out;
  }
  .hover-scale:hover img,
  a:hover .hover-scale img {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
  .hover-fade {
    -webkit-transition: all 0.4s ease-out;
    transition: all 0.4s ease-out;
  }
  .hover-fade:hover {
    opacity: 0.7;
  }
  }
@media (min-width: 70.001em) {
  .block03__body {
    width: calc(900px + calc(50vw - 550px));
    margin-left: auto;
    padding-top: 25px;
  }
  .block03__subheading {
    font-size: 3.8rem;
  }
}
/*# sourceMappingURL=maps/main.css.map */
