@charset "UTF-8";
.trans, .btn,
.btn a {
  transition: all 0.2s;
}

/*
---------------------------------------
reset
---------------------------------------
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video,
button {
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  font-size: 100%;
  font-style: normal;
  font-weight: normal;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
  margin: 0;
  padding: 0;
}

html {
  min-height: 100%;
  width: 100%;
  font-size: 62.5%;
}

html,
body {
  /*height:100%;*/
  position: relative;
}

.wrapper {
  min-width: 1000px;
  position: relative;
  overflow: hidden;
}

#container {
  position: relative;
  background: #fff;
}

body {
  font-family: "游ゴシック", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, Verdana, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  color: #4c4948;
  height: 100%;
  width: 100%;
  /*min-width: 640px;*/
  margin: 0;
  padding: 0;
  position: relative;
}

/* IE */
@media all and (-ms-high-contrast: none) {
  body {
    font-family: "游ゴシック", YuGothic, "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  }
}
input,
textarea {
  margin: 0;
  padding: 0;
}

input:focus,
textarea:focus,
button:focus {
  outline: 0;
}

img {
  border: none;
}

ol,
ul {
  list-style: none;
}

p,
dt,
dd,
li {
  font-size: 1.6rem;
  line-height: 2;
}

li {
  font-size: 1.6rem;
}

table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

table th {
  font-weight: normal;
}

caption,
th {
  text-align: left;
}

a:focus {
  outline: none;
}

p,
dd,
li,
address {
  font-style: normal;
}

body small {
  font-size: 1.1rem;
}

figure {
  line-height: 0;
}

em {
  font-weight: inherit;
}

/*
----------------------------------------
flex
----------------------------------------
*/
.flex {
  -js-display: flex;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: stretch;
}

.flex.nowrap {
  flex-wrap: nowrap;
}

.flex.reverce {
  flex-direction: row-reverse;
}

.flex.item-center {
  align-items: center;
}

/*
---------------------------------------
link
---------------------------------------
*/
a {
  text-decoration: none;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}

a:hover {
  text-decoration: none;
}

/*
---------------------------------------
clear
---------------------------------------
*/
.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  font-size: 0;
  clear: both;
  visibility: hidden;
}

.clearfix {
  min-height: 1px;
}

* html .clearfix {
  height: 1px;
  /*\*/
  /*/
  height: auto;
  overflow: hidden;
  /**/
}

*:first-child + html .clearfix {
  zoom: 1;
}

/* IE7 */
/*
---------------------------------------
common
---------------------------------------
*/
.pc {
  display: block !important;
  margin: 0 auto;
}

.sp {
  display: none !important;
}

.inner {
  max-width: 1640px;
  padding: 0 20px;
  margin: 0 auto;
  word-wrap: break-word;
  word-break: break-all;
}

span {
  font-size: inherit;
  font-weight: inherit;
}

.min {
  font-family: "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "游明朝体", "Yu Mincho", YuMincho, "MS P明朝", "MS PMincho", serif;
}

.en {
  font-family: "Jost", sans-serif;
  font-style: normal;
  font-weight: 500;
}

.center {
  text-align: center;
}

.bold {
  font-weight: 500;
}

.trans, .btn,
.btn a {
  transition: all 0.2s;
}

.ofi {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.img {
  line-height: 0;
}

/*
---------------------------------------
icomoon
---------------------------------------
*/
@font-face {
  font-family: "icomoon";
  src: url("../fonts/icomoon.eot?z90whj");
  src: url("../fonts/icomoon.eot?z90whj#iefix") format("embedded-opentype"), url("../fonts/icomoon.ttf?z90whj") format("truetype"), url("../fonts/icomoon.woff?z90whj") format("woff"), url("../fonts/icomoon.svg?z90whj#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
[class^=icon-],
[class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: "icomoon" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-instagram:before {
  content: "\e900";
}

.icon-arrow-left:before {
  content: "\e901";
}

.icon-arrow-right:before {
  content: "\e902";
}

.icon-chevron-right:before {
  content: "\e903";
}

/*
---------------------------------------
heading
---------------------------------------
*/
.heading-01 {
  font-size: 6rem;
  font-weight: 500;
  color: #a64a97;
  text-align: center;
  letter-spacing: 0.15em;
}
@media (max-width: 767px) {
  .heading-01 {
    font-size: 4rem;
  }
}

.heading-02 {
  font-size: 4rem;
  color: #a64a97;
  font-weight: 500;
  text-align: center;
  margin-bottom: 4rem;
}
@media (max-width: 767px) {
  .heading-02 {
    font-size: 2.5rem;
  }
}
.heading-02 span {
  background: url(../img/works/bg-ttl@2x.png) no-repeat center bottom;
  background-size: 100%;
  padding: 0 0 45px;
  display: inline-block;
}
@media (max-width: 767px) {
  .heading-02 span {
    padding-bottom: 20px;
  }
}

/*
---------------------------------------
btn
---------------------------------------
*/
.btn,
.btn a {
  position: relative;
}

.btn a:after {
  transition: 0.2s cubic-bezier(0.35, 0.75, 0.57, 1.01);
}

@media (min-width: 1025px) {
  .btn a:hover:after {
    right: -50px;
  }
}

.btn-01 {
  display: block;
  background: #a64a97;
  color: #fff;
  font-size: 2.2rem;
  font-weight: 500;
  text-align: center;
  width: 800px;
  height: 90px;
  line-height: 90px;
  border-radius: 90px;
  margin: 0 auto;
  position: relative;
  border: 1px solid #a64a97;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .btn-01 {
    width: 100%;
    height: 60px;
    line-height: 60px;
    font-size: 2.3rem;
    padding-right: 5rem;
  }
}
.btn-01.w {
  color: #a64a97;
  background: #fff;
}
@media (min-width: 751px) {
  .btn-01.w:hover {
    background: #a64a97;
    color: #fff;
    border: 1px solid #fff;
  }
}
.btn-01:before {
  font-family: "icomoon" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\e902";
  position: absolute;
  right: 4.5rem;
  top: 50%;
  transform: translateY(-50%);
}
@media (max-width: 767px) {
  .btn-01:before {
    font-size: 4rem;
    right: 2.5rem;
  }
}
@media (max-width: 767px) {
  .btn-01.back {
    padding: 0;
  }
}
.btn-01.back:before {
  font-family: "icomoon" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\e901";
  right: inherit;
  left: 3rem;
}
@media (min-width: 751px) {
  .btn-01:hover {
    background: #fff;
    color: #a64a97;
  }
}

/*
---------------------------------------
table
---------------------------------------
*/
.tbl-01 {
  width: 100%;
  max-width: 780px;
  margin: 0 auto;
  table-layout: fixed;
}
.tbl-01 .box {
  width: 100%;
  border-top: 1px solid #bababa;
  display: table;
}
.tbl-01 .box:last-child {
  border-bottom: 1px solid #bababa;
}
.tbl-01 dt {
  display: table-cell;
  letter-spacing: 0.2em;
  width: 30%;
  font-size: 1.6rem;
  padding: 2.5rem 0 2.5rem 6rem;
  vertical-align: middle;
}
.tbl-01 dd {
  display: table-cell;
  letter-spacing: 0.2em;
  width: 70%;
  font-size: 1.6rem;
  padding: 2.5rem 3rem 2.5rem 2.5rem;
}
.tbl-01 dd ul {
  justify-content: flex-start;
}
.tbl-01 dd li {
  width: 50%;
  padding: 0 3rem 0 0;
  font-size: 1.6rem;
  letter-spacing: 0.2em;
}

@media (max-width: 767px) {
  .tbl-01 .box {
    width: 100%;
    border-top: none;
    display: block;
  }
  .tbl-01 .box:last-child {
    border-bottom: none;
  }
  .tbl-01 dt {
    display: block;
    letter-spacing: 0.1em;
    width: 100%;
    border: 1px solid #bababa;
    height: 30px;
    line-height: 28px;
    padding: 0 1.5rem;
    text-align: center;
  }
  .tbl-01 dd {
    display: block;
    letter-spacing: 0.1em;
    width: 100%;
    padding: 1.5rem 0;
    text-align: center;
  }
  .tbl-01 dd ul {
    display: flex;
    justify-content: flex-start;
    padding: 0 2rem;
  }
  .tbl-01 dd li {
    width: 50%;
    padding: 0 1.5rem 0 0;
    letter-spacing: 0.1em;
    text-align: left;
  }
}
.tbl-02 {
  max-width: 1200px;
  margin: 0 auto;
  table-layout: fixed;
}
.tbl-02 tr {
  border-bottom: 1px dotted #ccc;
}
.tbl-02 th {
  font-size: 2rem;
  font-weight: 500;
  color: #666;
  padding: 2.4rem 0 2.4rem 6rem;
  width: 28%;
}
@media (max-width: 767px) {
  .tbl-02 th {
    padding: 1.5rem 0;
  }
}
.tbl-02 td {
  font-size: 1.8rem;
  color: #666;
  padding: 2.4rem 0 2.4rem 3rem;
}
@media (max-width: 767px) {
  .tbl-02 td {
    padding: 1.5rem 0 1.5rem 3rem;
  }
}

/*
---------------------------------------
header
---------------------------------------
*/
#header {
  position: relative;
  background: #fff;
}
#header .header-top {
  padding: 3.3rem 0;
}
#header a img:hover {
  opacity: 1;
}
#header .logo {
  margin: 0 auto 0 0;
}
@media (max-width: 1480px) {
  #header .logo {
    flex: 1;
  }
  #header .logo img {
    width: 100%;
    height: auto;
  }
}
#header #g-nav {
  margin: 0 0 0 auto;
  display: -ms-flexbox;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0;
}
#header .g-nav-list {
  display: -ms-flexbox;
  display: flex;
  align-items: center;
}
#header .g-nav-list li {
  padding: 0 16px;
  font-size: 1.6rem;
  font-weight: 500;
  position: relative;
}
@media (max-width: 1380px) {
  #header .g-nav-list li {
    padding: 0 10px;
  }
}
@media (max-width: 959px) {
  #header .g-nav-list li {
    padding: 0 5px;
  }
}
#header .g-nav-list li:after {
  content: "|";
  display: block;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
#header .g-nav-list li:last-child:after {
  content: none;
}
#header .g-nav-list li a {
  display: inline-block;
  padding: 0 5px;
}
#header .inst {
  font-size: 2.2rem;
  margin-left: 1rem;
}
#header .btn {
  margin-left: 1rem;
}
#header .btn .btn-contact {
  display: block;
  text-align: center;
  border-radius: 50px;
  font-size: 1.8rem;
  font-weight: 500;
  width: 170px;
  height: 50px;
  line-height: 50px;
  background: #898989;
  color: #fff;
}
@media (max-width: 1380px) {
  #header .btn .btn-contact {
    font-size: 1.6rem;
    width: 150px;
    height: 40px;
    line-height: 40px;
  }
}

/*
---------------------------------------
footer
---------------------------------------
*/
footer {
  width: 100%;
  z-index: 2;
  background: #a64a97;
  color: #fff;
  padding: 11rem 0 0;
}
@media (max-width: 767px) {
  footer {
    padding: 4rem 0 0;
  }
}
footer .footer-box {
  padding: 0 0 7rem;
  display: -ms-flexbox;
  display: flex;
}
@media (max-width: 767px) {
  footer .footer-box {
    flex-direction: column;
    padding: 0 0 4rem;
  }
}
footer .footer-info {
  margin-right: auto;
  margin-left: 6.7rem;
  margin-top: 2.8rem;
}
@media (max-width: 1300px) {
  footer .footer-info {
    width: 33%;
    margin-left: 0;
  }
}
@media (max-width: 767px) {
  footer .footer-info {
    order: 1;
    width: 100%;
    margin-left: 0;
    margin-top: 0;
  }
}
footer .footer-logo-wrap {
  padding: 0 0 5rem;
}
@media (max-width: 767px) {
  footer .footer-logo-wrap {
    padding: 0 0 2.6rem;
  }
}
@media (max-width: 1300px) {
  footer .footer-logo-wrap .footer-logo img {
    width: 100%;
    height: auto;
  }
}
@media (max-width: 767px) {
  footer .footer-logo-wrap .footer-logo {
    width: 70%;
    margin: 0 auto;
  }
}
footer .address {
  font-size: 1.6rem;
  text-align: center;
  padding: 0 0 5rem;
  line-height: 1.7;
}
@media (max-width: 767px) {
  footer .address {
    font-size: 1.4rem;
    padding: 0 0 2.7rem;
  }
}
footer .sns-box .btn-01 {
  width: 340px;
  height: 60px;
  line-height: 60px;
  font-size: 2.1rem;
  padding-right: 2rem;
}
@media (max-width: 1300px) {
  footer .sns-box .btn-01 {
    width: 100%;
    margin-bottom: 1rem;
  }
}
@media (max-width: 767px) {
  footer .sns-box .btn-01 {
    font-size: 1.6rem;
    height: 40px;
    line-height: 40px;
    width: 67%;
  }
}
footer .sns-box .btn-01:before {
  font-size: 4rem;
  right: 2rem;
}
@media (max-width: 767px) {
  footer .sns-box .btn-01:before {
    font-size: 3rem;
    right: 2rem;
  }
}
footer .sns-box .instagram {
  margin-top: 2rem;
}
@media (max-width: 767px) {
  footer .sns-box .instagram {
    margin-top: 1rem;
  }
}
footer .sns-box .instagram a {
  background: none;
  border: 1px solid #fff;
}
footer .sns-box .instagram a:hover {
  background: #fff;
  color: #a64a97;
}
@media (max-width: 1300px) {
  footer .footer-nav {
    width: 33%;
  }
}
@media (max-width: 767px) {
  footer .footer-nav {
    order: 3;
    width: 100%;
  }
}
footer .nav-cont {
  padding: 1.5rem 11.7rem 0 1.3rem;
}
@media (max-width: 1300px) {
  footer .nav-cont {
    padding: 1.5rem 3vw 0 3vw;
    justify-content: flex-end;
  }
}
@media (max-width: 767px) {
  footer .nav-cont {
    padding: 0;
  }
}
footer .nav-cont li {
  line-height: 2.4;
  position: relative;
  padding: 0 0 1rem 1.1em;
}
@media (max-width: 767px) {
  footer .nav-cont li {
    padding: 0;
  }
  footer .nav-cont li:first-child a {
    border-top: 1px solid #fff;
  }
}
footer .nav-cont li:before {
  content: "・";
  display: block;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
@media (max-width: 767px) {
  footer .nav-cont li:before {
    content: none;
  }
}
footer .nav-cont li.parent:before {
  top: 0.1em;
  transform: none;
}
footer .nav-cont li a {
  display: block;
  font-size: 1.6rem;
}
@media (max-width: 767px) {
  footer .nav-cont li a {
    border-bottom: 1px solid #fff;
    font-size: 1.7rem;
    font-weight: 500;
    padding: 0.3rem 1.8rem;
    position: relative;
  }
  footer .nav-cont li a:before {
    font-family: "icomoon" !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "\e903";
    position: absolute;
    color: #fff;
    font-size: 1.5rem;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
  }
}
@media (min-width: 1025px) {
  footer .nav-cont li a:hover {
    text-decoration: underline;
  }
}
footer .nav-cont .child-list {
  padding: 0.4rem 0 0 1.6rem;
}
@media (max-width: 767px) {
  footer .nav-cont .child-list {
    padding: 0;
  }
}
footer .nav-cont .child-list li {
  line-height: 2.4;
  padding-bottom: 0;
}
footer .footer-access {
  padding-top: 1.5rem;
}
@media (max-width: 1300px) {
  footer .footer-access {
    width: 33%;
  }
  footer .footer-access iframe {
    width: 100%;
  }
}
@media (max-width: 767px) {
  footer .footer-access {
    order: 2;
    padding-top: 3rem;
    padding-bottom: 3.5rem;
    width: 100%;
  }
  footer .footer-access iframe {
    width: 100%;
    height: 140px;
  }
}
footer .footer-access .ttl-access {
  font-size: 2.4rem;
  padding-top: 2rem;
  padding-bottom: 1rem;
}
@media (max-width: 767px) {
  footer .footer-access .ttl-access {
    font-size: 1.8rem;
    padding-top: 1rem;
    padding-bottom: 0.5rem;
  }
}
@media (max-width: 767px) {
  footer .footer-access .txt {
    font-size: 1.4rem;
  }
}

.copyright {
  background: #727171;
  text-align: center;
}
@media (max-width: 767px) {
  .copyright {
    padding: 0.2rem 0;
  }
}

.copyright small {
  font-size: 1.2rem;
}

/*
---------------------------------------
contact-bnr
---------------------------------------
*/
.contact-bnr {
  color: #fff;
}
.contact-bnr .box-wrap {
  display: -ms-flexbox;
  display: flex;
  justify-content: space-between;
}
@media (max-width: 1300px) {
  .contact-bnr .box-wrap {
    padding: 0;
  }
}
@media (max-width: 767px) {
  .contact-bnr .box-wrap {
    display: block;
    padding: 0;
  }
}
.contact-bnr .box-l {
  width: 50%;
  background: #a64a97;
  text-align: center;
  display: -ms-flexbox;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 16rem 0;
}
@media (max-width: 767px) {
  .contact-bnr .box-l {
    padding: 2.2rem 5%;
    width: 100%;
  }
}
.contact-bnr .sec-ttl-en {
  font-size: 8rem;
  position: relative;
  font-weight: 500;
  margin-bottom: 5.7rem;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media (max-width: 767px) {
  .contact-bnr .sec-ttl-en {
    font-size: 3.7rem;
    margin-bottom: 3.3rem;
    font-weight: 500;
    letter-spacing: 0.05em;
  }
}
.contact-bnr .sec-ttl-en:before {
  content: "";
  background: #fff;
  width: 1px;
  height: 21px;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  bottom: -4rem;
}
@media (max-width: 767px) {
  .contact-bnr .sec-ttl-en:before {
    height: 15px;
    bottom: -2.5rem;
  }
}
.contact-bnr .txt {
  font-size: 1.8rem;
}
@media (max-width: 767px) {
  .contact-bnr .txt {
    line-height: 1.9;
    font-size: 1.4rem;
  }
}
.contact-bnr .box-r {
  width: 50%;
  display: -ms-flexbox;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: 24rem;
  position: relative;
  z-index: 2;
  background: url(../img/common/bg-cb@2x.jpg) no-repeat center center/cover;
}
@media (max-width: 767px) {
  .contact-bnr .box-r {
    background: url(../img/common/bg-cb_sp@2x.jpg) no-repeat center center/cover;
    width: 100%;
    padding: 17.5rem 20% 4rem;
  }
}
.contact-bnr .box-r .btn-01 {
  background: #fff;
  color: #a64a97;
  width: 440px;
  height: 60px;
  line-height: 60px;
  font-size: 2rem;
  padding-right: 5rem;
  font-weight: 500;
}
@media (max-width: 767px) {
  .contact-bnr .box-r .btn-01 {
    width: 100%;
    height: 40px;
    line-height: 40px;
    font-size: 1.6rem;
    padding-right: 2rem;
  }
}
.contact-bnr .box-r .btn-01:before {
  font-size: 4rem;
  right: 3.5rem;
}
@media (max-width: 767px) {
  .contact-bnr .box-r .btn-01:before {
    font-size: 3rem;
    right: 2rem;
  }
}
.contact-bnr .box-r .btn-01:hover {
  background: #a64a97;
  color: #fff;
  border: 1px solid #fff;
}

/*
---------------------------------------
sec-case
---------------------------------------
*/
.sec-case {
  padding: 12rem 0 15rem;
}
@media (max-width: 767px) {
  .sec-case {
    padding: 5rem 0 0;
  }
  .sec-case .inner {
    padding: 0;
  }
}
.sec-case .cont {
  margin-bottom: 12.5rem;
}
@media (max-width: 767px) {
  .sec-case .cont {
    margin-bottom: 3rem;
  }
}
.sec-case .cont .box-wrap {
  position: relative;
  background: url(../img/top/bg-slide-01@2x.jpg) center center/cover no-repeat;
  background-position: 0, 0;
}
.sec-case .cont-01 .box-wrap {
  background: url(../img/top/bg-slide-01@2x.jpg) no-repeat center center/cover;
  background-position-y: 0px;
}
@media (max-width: 767px) {
  .sec-case .cont-01 .box-wrap {
    background: url(../img/top/bg-slide-01_sp@2x.jpg) no-repeat center top/100%;
  }
}
.sec-case .cont-02 .box-wrap {
  background: url(../img/top/bg-slide-02@2x.jpg) no-repeat center center/cover;
  background-position-y: 0px;
}
@media (max-width: 767px) {
  .sec-case .cont-02 .box-wrap {
    background: url(../img/top/bg-slide-02_sp@2x.jpg) no-repeat center top/100%;
  }
}
.sec-case .cont-02 .box-wrap .ttl-en {
  left: inherit;
  right: 7rem;
}
@media (max-width: 1640px) {
  .sec-case .cont-02 .box-wrap .ttl-en {
    right: 3vw;
  }
}
.sec-case .cont-02 .box-wrap .txtbox {
  right: inherit;
  left: 0;
}
.sec-case .cont-03 {
  margin-bottom: 15rem;
}
@media (max-width: 767px) {
  .sec-case .cont-03 {
    margin-bottom: 5rem;
  }
}
.sec-case .cont-03 .box-wrap {
  background: url(../img/top/bg-slide-03@2x.jpg) no-repeat center center/cover;
  background-position-y: 0px;
}
@media (max-width: 767px) {
  .sec-case .cont-03 .box-wrap {
    background: url(../img/top/bg-slide-03_sp@2x.jpg) no-repeat center top/100%;
  }
}
.sec-case .cont-03 .box-wrap .txtbox {
  bottom: -11rem;
}
.sec-case .cont-04 .box-wrap {
  background: url(../img/top/bg-slide-04@2x.jpg) no-repeat center center/cover;
  background-position-y: 0px;
}
@media (max-width: 767px) {
  .sec-case .cont-04 .box-wrap {
    background: url(../img/top/bg-slide-04_sp@2x.jpg) no-repeat center top/100%;
  }
}
.sec-case .cont-04 .box-wrap .ttl-en {
  left: inherit;
  right: 7rem;
}
@media (max-width: 1640px) {
  .sec-case .cont-04 .box-wrap .ttl-en {
    right: 3vw;
  }
}
.sec-case .cont-04 .box-wrap .txtbox {
  right: inherit;
  left: 0;
}
.sec-case .box-wrap {
  position: relative;
  height: 710px;
}
@media (max-width: 767px) {
  .sec-case .box-wrap {
    height: auto;
    padding: 1.8rem 0 0;
  }
}
.sec-case .box-wrap .ttl-en {
  font-size: 7rem;
  color: #a64a97;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  position: absolute;
  left: 7rem;
  top: 0;
}
@media (max-width: 1640px) {
  .sec-case .box-wrap .ttl-en {
    left: 3vw;
  }
}
@media (max-width: 767px) {
  .sec-case .box-wrap .ttl-en {
    font-size: 3.4rem;
    position: static;
    -webkit-writing-mode: initial;
    -ms-writing-mode: initial;
    writing-mode: initial;
    margin-bottom: 29rem;
  }
}
.sec-case .box-wrap .ttl-en .ttl-en-in {
  display: inline-block;
  background: #fff;
  padding: 0.8rem 0.7rem 1.5rem;
}
@media (max-width: 767px) {
  .sec-case .box-wrap .ttl-en .ttl-en-in {
    padding: 0.1rem 1.5rem 0.1rem 0.8rem;
  }
}
.sec-case .box-wrap .ttl-en .ttl-en-in.ttl-en-in-02 {
  padding: 1rem 0 2rem 1rem;
}
@media (max-width: 767px) {
  .sec-case .box-wrap .ttl-en .ttl-en-in.ttl-en-in-02 {
    padding: 0rem 2rem 1rem 1rem;
  }
}
.sec-case .box-wrap .txtbox {
  max-width: 820px;
  background: #fff;
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 4rem 7rem 0;
}
@media (max-width: 1640px) {
  .sec-case .box-wrap .txtbox {
    padding: 4rem 5vw 0;
    width: 80%;
  }
}
@media (max-width: 767px) {
  .sec-case .box-wrap .txtbox {
    position: static;
    width: 93%;
    margin: 0 0 0 auto;
    padding: 2rem 3rem 2rem 2.5rem;
  }
}
.sec-case .box-wrap .txtbox .ttl {
  font-size: 3rem;
  font-weight: 500;
  position: relative;
  padding-bottom: 1.5rem;
  margin-bottom: 1rem;
}
@media (max-width: 767px) {
  .sec-case .box-wrap .txtbox .ttl {
    font-size: 2.9rem;
    padding-bottom: 2rem;
    margin-bottom: 1.8rem;
  }
}
.sec-case .box-wrap .txtbox .txt {
  font-size: 1.8rem;
  padding-top: 1.7rem;
  padding-bottom: 4.4rem;
  position: relative;
}
@media (max-width: 767px) {
  .sec-case .box-wrap .txtbox .txt {
    line-height: 1.7;
    padding-bottom: 1.4rem;
    font-size: 1.4rem;
  }
}
.sec-case .box-wrap .txtbox .txt:before {
  content: "";
  background: #a64a97;
  width: 60px;
  height: 3px;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
}
@media (max-width: 767px) {
  .sec-case .box-wrap .txtbox .txt:before {
    width: 40px;
    height: 2px;
  }
}
.sec-case .box-wrap .txtbox .btn {
  text-align: right;
}
.sec-case .box-wrap .txtbox .btn .btn-more {
  font-size: 2.8rem;
  padding-right: 5rem;
  position: relative;
  padding-bottom: 1rem;
  border-bottom: 1px solid #000;
  display: inline-block;
  font-weight: 300;
}
@media (max-width: 767px) {
  .sec-case .box-wrap .txtbox .btn .btn-more {
    font-size: 1.8rem;
    padding-right: 4.5rem;
    padding-bottom: 0.6rem;
  }
}
.sec-case .box-wrap .txtbox .btn .btn-more:before {
  font-family: "icomoon" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\e902";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 4rem;
  transition: all 0.2s;
}
@media (max-width: 767px) {
  .sec-case .box-wrap .txtbox .btn .btn-more:before {
    top: 44%;
    font-size: 3rem;
  }
}
.sec-case .box-wrap .txtbox .btn .btn-more:hover:before {
  right: -1rem;
}
.sec-case .box-wrap .sec-case__mean {
  display: flex;
}
.sec-case .box-wrap .sec-case__mean__txtbox {
  flex: 1;
  padding-right: 0;
}
.sec-case .box-wrap .sec-case__mean__ttl {
  font-size: 1.8rem;
  color: #a64a97;
  font-weight: bold;
}
@media (max-width: 767px) {
  .sec-case .box-wrap .sec-case__mean__ttl {
    font-size: 1.4rem;
  }
}
.sec-case .box-wrap .sec-case__mean__txt {
  font-size: 1.3rem;
}
@media (max-width: 767px) {
  .sec-case .box-wrap .sec-case__mean__txt {
    font-size: 1.2rem;
    line-height: 1.6;
  }
}
@media (max-width: 767px) {
  .sec-case .box-wrap .sec-case__mean__img {
    zoom: 0.6;
  }
}
@media (max-width: 767px) {
  .sec-case .btn-01 {
    width: 88%;
    margin: 0 auto;
  }
}

.fade {
  -webkit-transform: translateY(30px);
  -ms-transform: translateY(30px);
  transform: translateY(30px);
  opacity: 0;
  transition: all 1.1s ease 0s;
}

.fade.-on {
  -webkit-transform: translateY(0px);
  -ms-transform: translateY(0px);
  transform: translateY(0px);
  opacity: 1;
}

@keyframes fade-out {
  0% {
    opacity: 1;
  }
  30% {
    opacity: 1;
  }
  90% {
    opacity: 0;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.animsition-overlay-slide {
  z-index: 1002;
  animation-timing-function: cubic-bezier(0.86, 0, 0.07, 1);
  background-color: #a64a97;
}

.overlay-slide-in-left:before {
  content: "";
  background: url(../img/common/logo-white.svg) no-repeat center center;
  width: 333px;
  background-size: 333px;
  height: 90px;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  margin: 0 auto;
  animation: fade-out 0.8s ease;
  animation-fill-mode: forwards;
  opacity: 1;
}
@media (max-width: 767px) {
  .overlay-slide-in-left:before {
    background-size: 200px;
  }
}

.overlay-slide-out-right:before {
  content: "";
  background: url(../img/common/logo-white.svg) no-repeat center center;
  width: 333px;
  background-size: 333px;
  height: 90px;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  margin: 0 auto;
  animation: fade-in 0.5s ease;
  animation-fill-mode: forwards;
  opacity: 0;
}
@media (max-width: 767px) {
  .overlay-slide-out-right:before {
    background-size: 200px;
  }
}

body {
  background: #a64a97;
}

/* loading option */
.animsition-my-loading,
.animsition-my-loading:after {
  width: 100%;
  height: 100%;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 100;
}

.animsition-my-loading img {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  margin: 0 auto;
}
@media (max-width: 767px) {
  .animsition-my-loading img {
    width: 200px;
    height: auto;
  }
}

.animsition-my-loading {
  background-color: transparent;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

@media (max-width: 767px) {
  #header {
    background: none !important;
  }
}

/*
---------------------------------------
mv
---------------------------------------
*/
.mv {
  background: #a64a97;
  background: -moz-linear-gradient(top, #fff 0%, #fff 17%, #a64a97 17.1%, #a64a97 100%);
  background: -webkit-linear-gradient(top, #fff 0%, #fff 17%, #a64a97 17.1%, #a64a97 100%);
  background: linear-gradient(to bottom, #fff 0%, #fff 17%, #a64a97 17.1%, #a64a97 100%);
  padding-bottom: 10rem;
  height: calc(100vh - 100px);
  min-height: 610px;
}
@media (max-width: 767px) {
  .mv {
    background: #a64a97;
    height: 100vh;
    padding-bottom: 8rem;
    min-height: 0;
  }
}
.mv .main-visual-wrap {
  max-width: 1740px;
  height: 100%;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
}
@media (max-width: 767px) {
  .mv .main-visual-wrap {
    height: 100%;
    padding: 0;
  }
}
.mv .main-visual-wrap .bg-mv {
  max-width: 100%;
  height: auto;
}
.mv .main-visual-h1-wrap {
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  top: 50%;
  transform: translateY(-50%);
  text-align: center;
  color: #fff;
  padding: 10.1rem 0 0;
}
@media (max-width: 767px) {
  .mv .main-visual-h1-wrap {
    padding: 0 0 27.8rem;
  }
}
.mv .main-visual-h1 {
  font-size: 2.3vw;
  font-weight: 500;
  letter-spacing: 0.2em;
  line-height: 1.3;
  padding-left: 0.2em;
}
@media (max-width: 959px) {
  .mv .main-visual-h1 {
    font-size: 4.5vw;
  }
}
@media (max-width: 767px) {
  .mv .main-visual-h1 {
    font-size: 5.6vw;
    line-height: 1.5;
  }
}
.mv .ttl-img__row {
  display: block;
  position: relative;
  line-height: 1.65;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  font-weight: 500;
}
@media (max-width: 767px) {
  .mv .ttl-img__row {
    text-shadow: 0 0 4px #0e001f;
  }
}
.mv .ttl-img__row.item-01 {
  margin-bottom: 6.8rem;
}
@media (max-width: 767px) {
  .mv .ttl-img__row.item-01 {
    margin-bottom: 4.3rem;
  }
}
.mv .ttl-img__row.item-01:before {
  content: "";
  background: #fff;
  width: 80px;
  height: 2px;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  bottom: -3.5rem;
}
@media (max-width: 767px) {
  .mv .ttl-img__row.item-01:before {
    width: 43px;
    box-shadow: 0 0 4px #0e001f;
    bottom: -2.5rem;
  }
}
.mv #slide_wrap {
  position: relative;
  overflow: hidden;
  background: #4c4948;
  width: 100%;
  height: 100%;
}
.mv #slide_wrap .slide_item {
  opacity: 0;
  transform: scale(1);
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  transition: opacity 2s linear, transform 7.5s linear;
  position: relative;
  width: 100%;
  height: 100%;
}
.mv #slide_wrap .slide_item:not(:first-child) {
  position: absolute;
  top: 0;
  left: 0;
}
.mv #slide_wrap .slide_item.show_ {
  opacity: 1;
}
.mv #slide_wrap .slide_item.zoom_ {
  transform: scale(1.08);
  -webkit-transform: scale(1.08);
  -moz-transform: scale(1.08);
  -ms-transform: scale(1.08);
}
.mv #slide_wrap .slide_item img {
  display: block;
  width: 100%;
  height: 100%;
}
.mv .mv__furusato {
  position: absolute;
  top: 25px;
  right: 40px;
}
@media (max-width: 767px) {
  .mv .mv__furusato {
    top: auto;
    right: 1.8rem;
    bottom: 3.5rem;
    width: 42%;
  }
}
.mv .mv__online-shop {
  position: absolute;
  bottom: -43px;
  right: 40px;
}
@media (max-width: 767px) {
  .mv .mv__online-shop {
    bottom: -3.6rem;
    right: 0;
  }
}
.mv .mv__online-shop a {
  display: inline-block;
  background: #fff;
  font-size: 2.8rem;
  font-weight: 300;
  color: #4c4948;
  padding: 2.4rem 7.7rem 2.4rem 3.6rem;
  position: relative;
}
@media (max-width: 767px) {
  .mv .mv__online-shop a {
    padding: 1.3rem 5.1rem 1.3rem 1.8rem;
    font-size: 2.2rem;
  }
}
.mv .mv__online-shop a:before {
  font-family: "icomoon" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\e902";
  position: absolute;
  right: 3rem;
  top: 55%;
  transform: translateY(-50%);
  font-size: 4rem;
  transition: all 0.2s;
}
@media (max-width: 767px) {
  .mv .mv__online-shop a:before {
    top: 58%;
    right: 1.5rem;
    font-size: 3.2rem;
  }
}
.mv .mv__online-shop a:hover:before {
  transform: translateY(-50%) translateX(5px);
}

/*
---------------------------------------
sec-technic
---------------------------------------
*/
.sec-technic {
  background: url(../img/top/bg-tech@2x.jpg) no-repeat center center/cover;
}
@media (max-width: 767px) {
  .sec-technic {
    background: url(../img/top/bg-tech_sp@2x.jpg) no-repeat center top/cover;
    padding: 0 0 2rem;
    margin-top: -1px;
  }
}
@media (max-width: 767px) {
  .sec-technic .inner {
    padding: 0 6%;
  }
}
.sec-technic .sec-ttl {
  text-align: center;
  background: url(../img/top/technic_ttl_bg.svg) no-repeat top center/824px;
  padding: 0 0 7rem;
  line-height: 1.2;
  font-weight: 500;
}
@media (max-width: 767px) {
  .sec-technic .sec-ttl {
    background-size: 88vw;
    padding: 0 0 3.5rem;
  }
}
.sec-technic .sec-ttl .ttl-in {
  display: inline-block;
  color: #fff;
  text-align: center;
  font-size: 4rem;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .sec-technic .sec-ttl .ttl-in {
    font-size: 4.5vw;
    padding: 0 1.3em 0.1em;
  }
}
.sec-technic .sec-ttl .ttl-in.item-02 {
  padding: 0 0.1em 0.3em;
}
@media (max-width: 767px) {
  .sec-technic .sec-ttl .ttl-in.item-02 {
    padding: 0 0.8em 0.1em;
  }
}
.sec-technic .list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 12rem;
  padding: 7rem 0 7.5rem;
  margin: 0 0;
}
@media (max-width: 959px) {
  .sec-technic .list {
    gap: 0 7rem;
  }
}
@media (max-width: 767px) {
  .sec-technic .list {
    display: block;
    margin: 0;
    padding: 2.7rem 0 0;
  }
}
.sec-technic .list .item {
  text-align: center;
  position: relative;
}
@media (max-width: 767px) {
  .sec-technic .list .item {
    width: 100%;
    padding: 0 0 5rem;
    margin-bottom: 5rem;
  }
}
.sec-technic .list .item:before {
  content: "";
  background: #fff;
  width: 1px;
  height: 87px;
  display: block;
  position: absolute;
  right: -6rem;
  top: 20%;
}
@media (max-width: 959px) {
  .sec-technic .list .item:before {
    right: -3.5rem;
  }
}
@media (max-width: 767px) {
  .sec-technic .list .item:before {
    width: 87px;
    height: 1px;
    top: inherit;
    left: 0;
    right: 0;
    margin: 0 auto;
    bottom: 0;
  }
}
.sec-technic .list .item:last-child {
  margin-bottom: 0;
}
.sec-technic .list .item:last-child:before {
  content: none;
}
@media (max-width: 767px) {
  .sec-technic .list .item img {
    zoom: 0.6;
  }
}
.sec-technic .list .item .ttl {
  font-size: 2.8rem;
  color: #fff;
  font-weight: 500;
  line-height: 1.4;
  padding: 2.4rem 0 3.5rem;
}
@media (max-width: 767px) {
  .sec-technic .list .item .ttl {
    font-size: 2.4rem;
    padding: 0 0 1rem;
  }
}
.sec-technic .list .item .txt {
  font-size: 1.8rem;
  color: #fff;
  text-align: left;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .sec-technic .list .item .txt {
    font-size: 1.4rem;
  }
}

/*
---------------------------------------
sec-news
---------------------------------------
*/
.sec-news {
  padding: 12.5rem 0 11.6rem;
}
@media (max-width: 767px) {
  .sec-news {
    padding: 4.7rem 0 4rem;
  }
}
.sec-news .inner {
  padding-inline: 4rem;
}
@media (max-width: 767px) {
  .sec-news .inner {
    padding-inline: 6%;
  }
}
.sec-news .ttl-wrap {
  padding: 2rem 0 0;
  width: 25%;
  color: #727171;
}
@media (max-width: 767px) {
  .sec-news .ttl-wrap {
    width: 100%;
    padding: 0;
  }
}
.sec-news .ttl-wrap .sec-ttl-en {
  font-size: 6rem;
  font-weight: 500;
  padding-bottom: 1rem;
}
@media (max-width: 767px) {
  .sec-news .ttl-wrap .sec-ttl-en {
    font-size: 3.8rem;
    padding-bottom: 0;
  }
}
.sec-news .ttl-wrap .sec-ttl {
  font-size: 2.4rem;
  font-weight: bold;
}
@media (max-width: 767px) {
  .sec-news .ttl-wrap .sec-ttl {
    font-size: 2rem;
  }
}
.sec-news .news-listWrap {
  flex: 1;
}
.sec-news .news-list {
  margin-bottom: 3.1rem;
}
.sec-news .news-item__in {
  background: url(../img/top/news_line@2x.png) repeat-x bottom left/11px 2px;
  display: table;
  width: 100%;
  table-layout: fixed;
  padding: 2.2rem 2.5rem 4rem;
}
@media (max-width: 767px) {
  .sec-news .news-item__in {
    padding: 1.5rem 0 2.5rem;
    background-size: 9px 1px;
  }
}
.sec-news .news-item .txtbox {
  padding-left: 3rem;
}
@media (max-width: 767px) {
  .sec-news .news-item .txtbox {
    padding: 0;
  }
}
.sec-news .news-item .date {
  color: #d89f35;
  display: table-cell;
  width: 116px;
  font-size: 1.6rem;
  letter-spacing: 0.05em;
}
.sec-news .news-item .ttl {
  font-size: 1.8rem;
  font-weight: bold;
  display: table-cell;
  line-height: 1.5;
  padding-bottom: 1rem;
}
.sec-news .news-item .excerpt {
  font-size: 1.6rem;
  line-height: 1.3;
}
.sec-news .news-item .excerpt strong {
  font-weight: bold;
}
.sec-news .news-item .excerpt em {
  font-style: italic;
}
.sec-news .news-item .excerpt ul {
  list-style: disc;
  padding-left: 2rem;
}
.sec-news .news-item .excerpt ol {
  list-style: decimal;
  padding-left: 2rem;
}
.sec-news .news-item .excerpt li {
  margin-bottom: 1rem;
  line-height: 1.3;
}
.sec-news .news-item .excerpt a {
  color: #a64a97;
  text-decoration: underline;
}
.sec-news .news-item--extra {
  display: none;
}
.sec-news.is-expanded .news-item--extra {
  display: list-item;
}
.sec-news.is-expanded #js-news-more-btn {
  display: none;
}
.sec-news .btn-more {
  display: block;
  margin-left: auto;
  margin-right: 6.2rem;
  appearance: none;
  border: none;
  background: none;
  cursor: pointer;
  font-size: 1.6rem;
  font-weight: 500;
  color: #4c4948;
  padding: 0;
  font-size: 2.8rem;
  padding-right: 7rem;
  position: relative;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #4c4948;
  font-weight: 300;
}
@media (max-width: 767px) {
  .sec-news .btn-more {
    font-size: 1.8rem;
    margin-right: 0;
    padding-right: 6rem;
    padding-bottom: 0.6rem;
  }
}
.sec-news .btn-more:before {
  content: "";
  background: url(../img/top/arrow_bottom.svg) no-repeat center right/contain;
  width: 40px;
  height: 23px;
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
}
@media (max-width: 767px) {
  .sec-news .btn-more:before {
    width: 20px;
    height: 18px;
  }
}

@media (max-width: 767px) {
  .sec-news .box {
    display: block;
  }
  .sec-news .news-ttl {
    width: 100%;
    display: block;
    padding: 0 0 3rem;
  }
  .sec-news .news-list {
    width: 100%;
    padding: 2rem 0 0;
  }
  .sec-news .news-item {
    padding: 0;
  }
  .sec-news .news-item:last-child a {
    border-bottom: none;
  }
  .sec-news .news-item .date {
    display: inline-block;
    width: 100%;
    font-size: 1.2rem;
  }
  .sec-news .news-item .ttl {
    padding: 0.2rem 0 0.4rem;
    display: block;
    line-height: 1.5;
    font-size: 1.6rem;
  }
  .sec-news .news-item .excerpt {
    font-size: 1.4rem;
  }
  .sec-news .news-item .excerpt p,
  .sec-news .news-item .excerpt li {
    font-size: 1.4rem;
    line-height: 1.6;
  }
}
/*
---------------------------------------
ggmap
---------------------------------------
*/
.ggmap {
  position: relative;
  z-index: 2;
  background: #fff;
}
.ggmap iframe {
  width: 100%;
  height: 380px;
}

@media (max-width: 767px) {
  .ggmap iframe {
    height: 250px;
  }
}
/*
---------------------------------------
sec-company
---------------------------------------
*/
.sec-company {
  padding: 6.8rem 0 12.5rem;
}
.sec-company .heading-03 {
  padding: 0 0 5.3rem;
}

@media (max-width: 767px) {
  .sec-company {
    padding: 3.5rem 0;
  }
  .sec-company .heading-03 {
    padding: 0 0 2rem;
  }
}
@media screen and (max-width: 1024px) {
  /*
  ----------------------------------------
  -1024
  ----------------------------------------
  */
  .inner {
    max-width: 100%;
    margin: 0;
  }
  img {
    max-width: 100%;
    height: auto;
  }
}
@media screen and (max-width: 767px) {
  /*
  ----------------------------------------
  -767
  ----------------------------------------
  */
  html {
    font-size: 52%;
  }
  html.active {
    height: 100vh;
  }
  html.active,
  body.active {
    overflow: hidden;
  }
  .pc {
    display: none !important;
  }
  .sp {
    display: block !important;
  }
  .center {
    text-align: left;
  }
  .wrapper {
    min-width: 100%;
  }
  .bg-fixed {
    position: fixed;
    width: 100%;
    min-height: 100%;
    height: 100%;
  }
  .inner {
    padding: 0 6%;
    max-width: 100%;
    margin: 0;
  }
  p,
  dt,
  dd,
  li {
    font-size: 1.6rem;
    line-height: 2;
  }
  /* layout */
  html {
    margin-top: 0 !important;
  }
  #container {
    display: block;
  }
  /* flex */
  .flex {
    display: block;
  }
  /*
  ---------------------------------------
  header
  ---------------------------------------
  */
  #header {
    min-width: 0;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 4;
    background: #a64a97;
  }
  #header .header-top {
    padding: 17px 0 0;
  }
  #header .logo {
    width: 160px;
  }
  #header .inner {
    padding-inline: 4.5%;
  }
  /* sp-btn */
  html.active,
  body.active {
    overflow: hidden;
  }
  #header #overlay {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: none;
  }
  #sp-btn {
    width: 50px;
    height: 50px;
    z-index: 99999999999;
    transition: all 0.2s;
    position: fixed;
    top: 4px;
    right: 4%;
    display: -ms-flexbox;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    transition: all 0.2s;
  }
  #sp-btn.bg-w {
    background: #a64a97;
  }
  #sp-btn.bg-w #sp-btn-a span {
    background: #fff;
  }
  #sp-btn.bg-w.active {
    background: none;
  }
  #sp-btn.bg-w.active #sp-btn-a span {
    background: #fff;
  }
  #sp-btn.fixed,
  .bg-fixed #sp-btn {
    visibility: visible;
    opacity: 1;
  }
  #sp-btn:hover {
    cursor: pointer;
  }
  #sp-btn #sp-btn-a,
  #sp-btn #sp-btn-a span {
    display: inline-block;
    box-sizing: border-box;
    transition: all 0.2s;
  }
  #sp-btn #sp-btn-a {
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    top: 40%;
    transform: translateY(-50%);
    width: 30px;
    height: 20px;
  }
  #sp-btn #sp-btn-a:hover {
    opacity: 1;
  }
  #sp-btn #sp-btn-a span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: #fff;
  }
  /* g-anv */
  /*/750*/
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #sp-btn #sp-btn-a span {
    box-shadow: 0 0 3px #0e001f;
  }
}
@media screen and (max-width: 767px) {
  #sp-btn #sp-btn-a span:nth-of-type(1) {
    top: 0;
  }
}
@media screen and (max-width: 767px) {
  #sp-btn #sp-btn-a span:nth-of-type(2) {
    top: 9px;
  }
}
@media screen and (max-width: 767px) {
  #sp-btn #sp-btn-a span:nth-of-type(3) {
    top: 18px;
  }
}
@media screen and (max-width: 767px) {
  #sp-btn-a::before {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -15px;
    content: "MENU";
    display: block;
    width: 100%;
    color: #fff;
    font-family: "Jost", sans-serif;
    font-size: 11px;
    font-weight: 500;
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
    line-height: 1;
    text-shadow: 0 0 3px #0e001f;
  }
}
@media screen and (max-width: 767px) {
  #sp-btn.active {
    right: 85.3%;
  }
}
@media screen and (max-width: 767px) {
  #sp-btn.active #sp-btn-a::before {
    content: "閉じる";
  }
}
@media screen and (max-width: 767px) {
  #sp-btn.active #sp-btn-a::after {
    color: #fff;
  }
}
@media screen and (max-width: 767px) {
  #sp-btn.active #sp-btn-a span:nth-of-type(1) {
    -webkit-transform: translateY(5px) rotate(-45deg);
    transform: translateY(5px) rotate(-45deg);
    background: #fff;
  }
}
@media screen and (max-width: 767px) {
  #sp-btn.active #sp-btn-a span:nth-of-type(2) {
    opacity: 0;
  }
}
@media screen and (max-width: 767px) {
  #sp-btn.active #sp-btn-a span:nth-of-type(3) {
    -webkit-transform: translateY(-12px) rotate(45deg);
    transform: translateY(-12px) rotate(45deg);
    background: #fff;
  }
}
@media screen and (max-width: 767px) {
  #header #g-nav {
    color: #fff;
    display: block !important;
    z-index: 999999999;
    position: fixed;
    top: 0;
    background: #a64a97;
    transition: right 0.2s;
    overflow-y: scroll;
    overflow-x: hidden;
    width: 82%;
    min-width: 300px;
    height: 100%;
    right: -100%;
    -webkit-overflow-scrolling: touch;
    overflow-scrolling: touch;
    padding: 0 0 50px;
  }
  #header #g-nav.active {
    right: 0;
  }
  #header #g-nav .g-nav-list {
    display: block;
    padding: 0;
    padding: 0 0 25px;
  }
  #header #g-nav .g-nav-list li {
    padding: 0;
  }
  #header #g-nav .g-nav-list li:after {
    content: none;
  }
  #header #g-nav .g-nav-list li a {
    padding: 10px 33px;
    display: block;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 2.4;
    color: #fff;
    border-bottom: 1px solid #fff;
  }
  #header #g-nav .g-nav-list li a:before {
    font-family: "icomoon" !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "\e903";
    position: absolute;
    color: #fff;
    font-size: 1.8rem;
    right: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
  }
  #header #g-nav .inst,
  #header #g-nav .btn,
  #header #g-nav .contact-info {
    display: none;
  }
  #header #g-nav .cont-sp {
    padding: 0 6%;
  }
  #header #g-nav .catch {
    text-align: center;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    position: relative;
    margin-bottom: 3rem;
  }
  #header #g-nav .catch:before {
    content: "";
    background: #fff;
    width: 1px;
    height: 2.5em;
    display: block;
    position: absolute;
    left: 2em;
    top: 50%;
    transform: rotate(-35deg) translateY(-50%);
  }
  #header #g-nav .catch:after {
    content: "";
    background: #fff;
    width: 1px;
    height: 2.5em;
    display: block;
    position: absolute;
    right: 2em;
    top: 50%;
    transform: rotate(35deg) translateY(-50%);
  }
  #header #g-nav .btn-sp {
    margin-bottom: 1.8rem;
  }
  #header #g-nav .btn-01 {
    width: 100%;
    height: 60px;
    line-height: 60px;
    font-size: 2rem;
    padding-right: 5rem;
  }
  #header #g-nav .btn-01:before {
    font-size: 4rem;
    right: 2.5rem;
  }
  #header #g-nav .btn-gnav {
    width: 100%;
    height: 60px;
    line-height: 58px;
    background: #a64a97;
    color: #fff;
    border: 1px solid #fff;
    text-align: center;
    display: block;
    border-radius: 60px;
    font-size: 1.8rem;
  }
  #header #g-nav .btn-gnav .icon {
    font-size: 3rem;
    margin-right: 1.5rem;
    vertical-align: middle;
  }
  #header #g-nav .btn-gnav.btn-gnav-tel {
    font-size: 3.5rem;
  }
  #header #g-nav .info-box {
    padding: 0 0 2rem 2rem;
  }
  #header #g-nav .logo {
    width: 160px;
    margin-bottom: 1rem;
  }
}
.page-404 {
  background: #fff;
}
.page-404 .sec-404 {
  padding-block: 10rem;
}
.page-404 .txt-thanks {
  text-align: center;
  margin-bottom: 4rem;
}
/*# sourceMappingURL=style.css.map */
