@charset "UTF-8";

/* base style
=====================================================================*/
html, body, div, span, a, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video, input, textarea {
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 16px;
  letter-spacing: 0.08em;
  line-height: 22px;
	width: 100%;
	letter-spacing: 0.08em;
	color: #231815;
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 22px;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	text-size-adjust: 100%;
	text-align: justify;
	font-weight:500;
  font-feature-settings: "palt";
}

body {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow:visible!important;
  min-height:none!important;
  position:inherit!important;
}

body, html{
    height: 100%;
    margin: 0;
    overflow:visible!important;
}

body.fixed{
  overflow: hidden;
}

main{
  width: 100%;
}

img {
  width: auto;
  height: auto;
  vertical-align: bottom;
  pointer-events: none;
}

ul,
ol {
  margin: 0;
  padding: 0;
}

ul li {
  list-style: none;
}

p {
  letter-spacing: 0.08em;
}

i {
  letter-spacing: 0.08em;
  width:1em;
}

dl,
dt,
dd {
  margin: 0;
  letter-spacing: 0.08em;
  line-height: 1.8;
}

@media screen and (max-width: 1199px) {
  html, body, div, span, a, object, iframe,
  h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  abbr, address, cite, code,
  del, dfn, em, img, ins, kbd, q, samp,
  small, strong, sub, sup, var,
  b, i,
  dl, dt, dd, ol, ul, li,
  fieldset, form, label, legend,
  table, caption, tbody, tfoot, thead, tr, th, td,
  article, aside, canvas, details, figcaption, figure,
  footer, header, hgroup, menu, nav, section, summary,
  time, mark, audio, video, input, textarea {
    font-size: 15px;
  }
}

.container-XL{
	width: 95%;
	max-width: 1600px;
}

.container-L{
	width: 90%;
	max-width: 1200px;
}

.container-M{
	width: 85%;
	max-width: 1000px;
}

.container-S{
	width: 80%;
	max-width: 900px;
}

@media screen and (max-width: 1439px) {
  .container-XL{
  	width: 95%;
  	max-width: 1600px;
  }

  .container-L{
  	width: 90%;
  	max-width: 920px;
  }

  .container-M{
  	width: 85%;
  	max-width: 920px;
  }

  .container-S{
  	width: 80%;
  	max-width: 800px;
  }
}

@media screen and (max-width: 1199px) {
  .container-XL{
    width: 95%;
    max-width: 1600px;
  }

  .container-L{
    width: 85%;
    max-width: 900px;
  }

  .container-M{
    width: 85%;
    max-width: 900px;
  }

  .container-S{
    width: 80%;
    max-width: 700px;
  }
}

@media screen and (max-width: 743px) {
  .container-XL{
    width: 95%;
    max-width: 1600px;
  }

  .container-L{
    width: 95%;
    max-width: 900px;
  }

  .container-M{
    width: 95%;
    max-width: 900px;
  }

  .container-S{
    width: 85%;
    max-width: 600px;
  }
}


/* スクロールフェードイン
=====================================================================*/
.fade-in {
  opacity: 0;
  transition: 1s cubic-bezier(.4, 0, .2, 1);
  transform: translate3d(0, 20px, 0);
  transition-property:transform, opacity;
}

.fade-in.effect-scroll {
  opacity: 1;
  transform: translate3d(0, 0, 0)
}


/* 見出し設定
=====================================================================*/
h1,
h2,
h3,
h4,
h5,
h6 {
  position: relative;
  margin: 0;
  letter-spacing: 0.08em;
  font-weight: bold;
  line-height: 1.6;
}

/* link, btn
=====================================================================*/
a {
  text-decoration: none;
  color: #000;
}

/* section
=====================================================================*/
section {
  padding:100px 0;
}

@media screen and (max-width: 1199px){
  section {
    padding:80px 0;
  }
}

/* body-wrap
=====================================================================*/
#body-wrap{
  width: 100%;
  max-width: 2000px;
  padding-left:300px; /* sidenav:width */
}

@media screen and (max-width: 1439px){
  #body-wrap{
    padding-left:220px; /* sidenav:width */
  }
}

@media screen and (max-width: 1023px){
  #body-wrap{
    padding-left:0;
  }
}

/* 以下下層ページタイトル
================================================================*/
/* ページタイトル(共通) */
.page-ttl-wrap{
  border-bottom:solid 5px #ffb6c1;
  margin-top:30px;
  position:relative;
}

.page-ttl-wrap::after{
  content:'';
  width:50vw;
  height:5px;
  display:block;
  position:absolute;
  bottom:-5px;
  right:-50vw;
  background-color:#ffb6c1;
}

.page-ttl{
  display:flex;
  flex-wrap:wrap;
	justify-content: center;
	align-items: center;
  border-right:solid 14px #fff;
  border-left:solid 14px #fff;
  position:relative;
  bottom:-6px;
}

.page-ttl h1{
  color:#9C1009;
  font-size:34px;
  font-weight:800;
  letter-spacing: 5px;
  margin:0;
  display:inline-block;
  width:auto;
  max-width:250px;
}

.page-ttl h1 small{
  display:block;
  margin-top:10px;
  font-weight:600;
  font-size:24px;
  font-family: 'Roboto Condensed', sans-serif;
}

.page-ttl span{
  display:block;
  height:7px;
  width:100%;
  background-color:#ffb6c1;
  position:relative;
  margin-top:25px;
}

.page-ttl .cv-img{
  width:calc(100% - 400px);
  height:180px;
  background-color:gray;
  margin:0 0 0 30px;
  border-radius:15px;
  overflow:hidden;
}

.page-ttl .cv-img img{
  width:100%;
  height:100%;
  object-fit: cover;
}

@media screen and (max-width: 1199px){
  .page-ttl-wrap{
    border-bottom:solid 4px #ffb6c1;
    margin-top:25px;
  }

  .page-ttl{
    border-right:solid 14px #fff;
    border-left:solid 14px #fff;
    bottom:-4.5px;
  }

  .page-ttl h1{
    font-size:26px;
    letter-spacing: 4px;
    max-width:250px;
  }

  .page-ttl h1 small{
    margin-top:0px;
    font-size:20px;
  }

  .page-ttl span{
    height:5px;
    margin-top:20px;
  }

  .page-ttl .cv-img{
    width:calc(100% - 250px);
    height:130px;
    margin:0 0 0 20px;
  }
}

@media screen and (max-width: 1023px){
  .page-ttl-wrap{
    padding-top:50px;
  }
}

@media screen and (max-width: 743px){
  .page-ttl-wrap{
    border-bottom:solid 3px #ffb6c1;
    margin-top:25px;
  }

  .page-ttl{
    border-right:solid 14px #fff;
    border-left:solid 14px #fff;
    bottom:-4.5px;
  }

  .page-ttl h1{
    font-size:21px;
    letter-spacing: 2px;
    max-width:250px;
    width:140px;
  }

  .page-ttl h1 small{
    margin-top:0px;
    font-size:16px;
  }

  .page-ttl span{
    height:3px;
    margin-top:20px;
  }

  .page-ttl .cv-img{
    width:calc(100% - 150px);
    height:100px;
    margin:0 0 0 10px;
    border-radius:10px;
  }
}

@media screen and (max-width: 743px){
  #price .page-ttl h1{
    width:70px;
  }

  #price .page-ttl .cv-img{
    width:calc(100% - 80px);
  }
}

/* セクションタイトル */
.section-ttl{
  font-family: "Outfit", sans-serif;
  font-weight: 700;
  letter-spacing: 0;
  color:#e6e6e5;
  font-size:80px;
  line-height:80px;
  mix-blend-mode: multiply;
  transform: translate3d(0,0,0);/* multiply-safari対応 */
}

@media screen and (max-width: 1439px){
  .section-ttl{
    font-size:55px;
    line-height:55px;
  }
}

@media screen and (max-width: 1199px){
  .section-ttl{
    font-size:45px;
    line-height:45px;
  }
}

@media screen and (max-width: 743px){
  .section-ttl{
    font-size:32px;
    line-height:32px;
  }
}


/* リンクボタン =======================================================*/
.link-btn{
  background-color:#ffb6c1!important;
  padding:30px 60px;
  border-radius:5px;
  display:inline-block;
  width:auto;
  margin:0;
  font-weight:600;
}

@media screen and (max-width: 1439px){
  .link-btn{
    padding:25px 60px;
    font-size:15px;
  }
}

@media screen and (max-width: 1199px){
  .link-btn{
    padding:23px 55px;
    font-size:13.5px;
  }
}


/* スクロールバー =======================================================*/

 /* バーの横幅分のpaddingずれ調整用 */
.scrollbar{
  scrollbar-gutter: stable both-edges; /* Chrom・Edge */
}

_::-webkit-full-page-media, _:future, :root .scrollbar{
  border-left:solid transparent 20px!important; /* Safari */
}

 /* スマホ・タッチデバイス対応 */
.scrollbar.touchdevice{
  border-left:none!important;
}

_::-webkit-full-page-media, _:future, :root .scrollbar.touchdevice{
  border-left:none!important;
}

/* スクロールバー全体 */
.scrollbar::-webkit-scrollbar {
  width: 20px; /* バーの幅 */
  background: rgba(255,255,255, 0);
}

/* スクロールバー背景 */
.scrollbar::-webkit-scrollbar-track {
  background: rgba(255,255,255, 0);
}

/* スクロールバーつまみ */
.scrollbar::-webkit-scrollbar-thumb {
  border-radius: 15px; /* バーの丸み */
  border: solid 6px transparent; /* スクロールバー表示エリアとバーの隙間 */
  background-clip: content-box; /* スクロールバー表示エリアとバーの隙間の設定に必須 */
  background-color: lightgray; /* バーの色 */
}


/* パララックス
================================================================*/
#bg-clip{
   position: relative;
   height: 450px;
   width:135%;
}

#bg-clip .inner{
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   clip-path: inset(0);
}

#bg-clip .bg{
   position: fixed;
   top: 0;
   left: 300px;/* sidenav:width */
   width: calc(100vw - 300px); /* sidenav:width */
   height: 100vh;
   background-image: url(../img/bg-clip1.png);
   background-size: cover;
   background-position: center;
   z-index: -1;
}

/*#price #bg-clip .bg{
   background-image: url(../img/bg-clip2.png);
}*/

@media screen and (max-width: 1439px){
  #bg-clip{
     height: 260px;
  }

  #bg-clip .bg{
     left: 220px;/* sidenav:width */
     width: calc(100vw - 220px); /* sidenav:width */
  }
}

@media screen and (max-width: 1023px){
  #bg-clip{
     height: 210px;
  }

  #bg-clip .bg{
     left: 0;
     width: 100%;
  }
}

@media screen and (max-width: 743px){
  #bg-clip{
     height: 140px;
  }

  #bg-clip .bg{
     background-position: 35% top;
  }
}


/* パンクズ */
.breadcrumb {
  list-style: none;
  padding: 10px;
  border-radius: 5px;
  display: flex;
	align-items: flex-end;
}

.breadcrumb li {
  margin-right: 10px;
  width:auto;
  margin:0;
  font-size:14px;
  line-height:16px;
  height:20px;
  display:flex;
	align-items: flex-end;
  letter-spacing: 0;
}

.breadcrumb li:not(:last-child)::after {
  content: "›";
  margin-left: 10px;
  margin-right:10px;
  color: #777;
  font-size:20px;
  line-height:12px;
  height:20px;
  display: flex;
	align-items: flex-end;
  padding-bottom:3px;
  letter-spacing: 0;
}

.breadcrumb a {
  text-decoration: none;
  color: #9C1009;
  font-size:14px;
  line-height:16px;
  height:20px;
  display: flex;
	align-items: flex-end;
  letter-spacing: 0;
}

.breadcrumb a:hover {
  text-decoration: underline;
}


@media screen and (max-width: 743px){
  .breadcrumb li {
    font-size:12px;
  }

  .breadcrumb li:not(:last-child)::after {
    font-size:17px;
  }

  .breadcrumb a {
    font-size:12px;
  }
}














/* SVG ==============================================================*/
