@charset "UTF-8";
body {
  color: #000;
  font-family: "Murecho", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "Open Sans", "Helvetica Neue", Helvetica, Arial, Verdana, Roboto, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  letter-spacing: 0.05em;
  line-height: 1;
  text-align: justify;
  background: #fff;
  position: relative;
}
body.enable {
  overflow: auto;
}
@media screen and (max-width: 1039px) {
  body.enable {
    overflow-x: hidden;
  }
}

a:hover img {
  opacity: 0.5;
  transition: 0.5s;
}

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

.grecaptcha-badge {
  visibility: hidden;
}

.mw_wp_form {
  margin: 5rem auto 0;
  /*
  .error {
  	color: #ee0000;
  	margin-top: 0.75em;
  }
   */
}
.mw_wp_form .need {
  color: #ee0000;
}
.mw_wp_form dl {
  display: flex;
  margin: 0 0 3.5em;
}
@media screen and (max-width: 979px) {
  .mw_wp_form dl {
    flex-direction: column;
    margin: 0 0 1.5rem;
  }
}
.mw_wp_form dl:last-of-type {
  margin-bottom: 2.5em;
}
.mw_wp_form dl dt {
  width: 15rem;
  font-weight: 700;
  letter-spacing: 0.025em;
  line-height: 1.5;
  padding: 0.75em 0;
}
@media screen and (max-width: 979px) {
  .mw_wp_form dl dt {
    width: 100%;
  }
}
.mw_wp_form dl dt .br {
  padding: 2px 0;
}
.mw_wp_form dl dd {
  width: calc(100% - 15em);
}
@media screen and (max-width: 979px) {
  .mw_wp_form dl dd {
    width: 100%;
  }
}
.mw_wp_form p.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 5rem 0 0;
}
.mw_wp_form input[type=email],
.mw_wp_form input[type=text],
.mw_wp_form input[type=number],
.mw_wp_form textarea {
  display: block;
  width: 100%;
  line-height: 1.5;
  padding: 0.75em 1em;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-appearance: none;
  box-sizing: border-box;
}
.mw_wp_form input[type=email]::-moz-placeholder, .mw_wp_form input[type=text]::-moz-placeholder, .mw_wp_form input[type=number]::-moz-placeholder, .mw_wp_form textarea::-moz-placeholder {
  color: #ccc;
}
.mw_wp_form input[type=email]::placeholder,
.mw_wp_form input[type=text]::placeholder,
.mw_wp_form input[type=number]::placeholder,
.mw_wp_form textarea::placeholder {
  color: #ccc;
}
.mw_wp_form input[type=number] {
  width: 25%;
}
.mw_wp_form select {
  display: block;
  width: 15rem;
  padding: 1em 2em 1em 1em;
  border: #fff 2px solid;
  background: url(../img/select.svg) right 1.5em center/auto 0.75em no-repeat #fff;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
@media screen and (max-width: 980px) {
  .mw_wp_form select {
    font-size: 16px;
  }
}
.mw_wp_form input[type=submit],
.mw_wp_form input[type=reset] {
  display: block;
  width: 15em;
  color: #4c0e2c;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.2em;
  text-align: center;
  text-decoration: none;
  padding: 1.25em 0;
  background: #fff;
  border: 2px solid #4c0e2c;
  cursor: pointer;
  -webkit-appearance: none;
}
.mw_wp_form input[type=submit]:hover,
.mw_wp_form input[type=reset]:hover {
  color: #fff;
  background: #4c0e2c;
}
@media screen and (min-width: 1101px) {
  .mw_wp_form input[type=submit]:hover,
  .mw_wp_form input[type=reset]:hover {
    transition: 0.25s;
  }
}
.mw_wp_form input[type=reset] {
  color: #fff;
  background: gray;
}
.mw_wp_form.mw_wp_form_confirm .contactBox {
  display: none;
}
.mw_wp_form.mw_wp_form_confirm dl dt {
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.mw_wp_form.mw_wp_form_confirm dl dd {
  line-height: 1.5;
  padding: 0.625em 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.mw_wp_form .error {
  font-size: 1rem;
  margin-top: 0.5em;
}

.wppn, .wp-pagenavi .current, .wp-pagenavi a:hover, .wp-pagenavi span:hover {
  color: #4c0e2c;
  font-weight: bold;
  position: relative;
}

.wp-pagenavi {
  text-align: center;
  margin-top: 5rem;
}
.wp-pagenavi::after {
  content: "";
  display: block;
  clear: both;
}
.wp-pagenavi a, .wp-pagenavi span {
  display: inline-block;
  width: 2.5em;
  height: 1em;
  color: #4c0e2c;
  font-size: 1.25rem;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  margin: 0 0.25em;
  border-radius: 50%;
  box-sizing: border-box;
}
.wp-pagenavi .current::after {
  content: "";
  display: block;
  width: 1.75rem;
  height: 2px;
  background: #4c0e2c;
  position: absolute;
  bottom: -0.5rem;
  left: 50%;
  transform: translateX(-50%);
}

.accordions {
  margin-top: 2.5rem;
  border-bottom: 1px solid rgba(76, 14, 44, 0.2);
}
@media screen and (max-width: 1100px) {
  .accordions {
    flex-direction: column;
    margin: 2.5rem 0 0;
  }
}
.accordions .accordion {
  border-top: 1px solid rgba(76, 14, 44, 0.2);
}
.accordions .accordion.open dt::after {
  transform: rotate(360deg);
}
.accordions .accordion dt, .accordions .accordion dd .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.accordions .accordion dt .en, .accordions .accordion dd .inner .en {
  width: 4.5rem;
  font-family: "Oswald", sans-serif;
  font-size: 3rem;
  font-weight: normal;
  text-align: center;
  transform: scaleX(-6deg);
}
.accordions .accordion dt .ja, .accordions .accordion dd .inner .ja {
  width: calc(100% - 4.5rem);
}
.accordions .accordion dt {
  cursor: pointer;
  color: #4c0e2c;
  padding: calc(1.875rem - 0.375em) 4.5rem calc(1.875rem - 0.375em) 0;
  position: relative;
}
.accordions .accordion dt::after {
  display: block;
  width: 1.5rem;
  height: 4px;
  background: #4c0e2c;
  content: "";
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transition: 0.25s;
  transform-origin: center;
  transform: rotate(90deg);
}
.accordions .accordion dt::before {
  display: block;
  width: 1.5rem;
  height: 4px;
  background: #4c0e2c;
  content: "";
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transition: 0.25s;
}
.accordions .accordion dt .ja {
  font-weight: bold;
  line-height: 1.75;
}
.accordions .accordion dd {
  display: none;
}
.accordions .accordion dd .inner {
  padding: calc(1.875rem - 0.375em) 1.5rem calc(1.875rem - 0.375em) 0;
  background: rgba(76, 14, 44, 0.05);
}
.accordions .accordion dd .inner .ja {
  line-height: 1.75;
}

.cm_p, #about .contents .strength .box dl dd, #serviceDetail .contents .contentsInner .flow .step dl dd, #serviceDetail .contents .contentsInner .consluting .box dl dd, #serviceDetail .contents .contentsInner .cont dl dd, #serviceDetail .contents .contentsInner .point .box dl dd, .cm_service dl dd {
  line-height: 1.75;
  margin: calc(2.5rem - 0.375em) 0 -0.375em;
}
.cm_p.middle, #about .contents .strength .box dl dd.middle, #serviceDetail .contents .contentsInner .flow .step dl dd.middle, #serviceDetail .contents .contentsInner .consluting .box dl dd.middle, #serviceDetail .contents .contentsInner .cont dl dd.middle, #serviceDetail .contents .contentsInner .point .box dl dd.middle, .cm_service dl dd.middle {
  margin: calc(3.75rem - 0.375em) 0 -0.375em;
}
.cm_p.middle img, #about .contents .strength .box dl dd.middle img, #serviceDetail .contents .contentsInner .flow .step dl dd.middle img, #serviceDetail .contents .contentsInner .consluting .box dl dd.middle img, #serviceDetail .contents .contentsInner .cont dl dd.middle img, #serviceDetail .contents .contentsInner .point .box dl dd.middle img, .cm_service dl dd.middle img {
  margin: 0.375em 0;
}

.cm_table, #about .contents .outline table, .post table {
  width: 100%;
  margin-top: 2.5rem;
  border-bottom: 1px solid rgba(76, 14, 44, 0.2);
}
.cm_table th, #about .contents .outline table th, .post table th, .cm_table td, #about .contents .outline table td, .post table td {
  line-height: 1.75;
  text-align: left;
  padding: calc(2.5rem - 0.375em) 0;
  border-top: 1px solid rgba(76, 14, 44, 0.2);
}
@media screen and (max-width: 1100px) {
  .cm_table th, #about .contents .outline table th, .post table th, .cm_table td, #about .contents .outline table td, .post table td {
    padding: calc(1.875rem - 0.375em) 0;
  }
}
.cm_table th, #about .contents .outline table th, .post table th {
  color: #4c0e2c;
}

.cm_btn, .post .wp-block-buttons .wp-block-button .wp-block-button__link {
  display: inline-block;
  color: #fff;
  font-size: 1.25rem;
  text-decoration: none;
  white-space: nowrap;
  padding: 1em calc(2.5rem + 1.5em);
  margin: 2.5rem 0 0 0;
  background: #4c0e2c;
  position: relative;
}
@media screen and (max-width: 1100px) {
  .cm_btn, .post .wp-block-buttons .wp-block-button .wp-block-button__link {
    font-size: 1rem;
  }
}
.cm_btn::after, .post .wp-block-buttons .wp-block-button .wp-block-button__link::after {
  content: "";
  display: block;
  width: 2.5rem;
  height: 1px;
  background: #fff;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.cm_link {
  display: inline-block;
  text-decoration: none;
  white-space: nowrap;
  padding: 0 0 0 calc(2.5rem + 1em);
  margin: 2.5rem 0 0 0;
  position: relative;
}
@media screen and (min-width: 1101px) {
  .cm_link:hover::after {
    width: 3.125rem;
  }
}
.cm_link::after {
  content: "";
  display: block;
  width: 2.5rem;
  height: 2px;
  background: #4c0e2c;
  position: absolute;
  top: 50%;
  left: 0;
  transition: 0.25s;
  transform: translateY(-50%);
}

.cm_center {
  text-align: center;
}

.cm_right {
  text-align: right;
}

.cm_service {
  margin-top: 5rem;
}
.cm_service .image {
  display: block;
  width: 100%;
  padding-top: 56.25%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  transition: 0.25s;
}
@media screen and (min-width: 1101px) {
  .cm_service .image:hover {
    opacity: 0.75;
  }
}
.cm_service .image span {
  display: block;
  color: #fff;
  font-size: 0.75rem;
  padding: 0.5rem 0.5rem 0.5rem calc(1em + 1rem);
  background: url(../img/flag.svg) left 0.5rem center/1em no-repeat #4c0e2c;
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
}
.cm_service dl {
  margin-top: 2.5rem;
}
.cm_service dl dt {
  display: inline-block;
  color: #4c0e2c;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration: none;
  padding: 0 0 0 3.75rem;
  margin: -0.25em 0;
  position: relative;
}
@media screen and (min-width: 1101px) {
  .cm_service dl dt:hover::after {
    width: 3.125rem;
  }
}
@media screen and (max-width: 1100px) {
  .cm_service dl dt {
    font-size: 1.25rem;
  }
}
.cm_service dl dt::after {
  content: "";
  display: block;
  width: 2.5rem;
  height: 2px;
  background: #4c0e2c;
  position: absolute;
  top: 50%;
  left: 0;
  transition: 0.25s;
  transform: translateY(-50%);
}
.cm_service dl dt a {
  text-decoration: none;
}
.cm_service dl dd {
  margin-left: 3.75rem;
}
.cm_h2, .post h2 {
  color: #4c0e2c;
  font-size: 1.75rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
  padding-bottom: 0.75rem;
  margin: -0.25em 0;
  position: relative;
}
.cm_h2::after, .post h2::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: rgba(76, 14, 44, 0.2);
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateY(50%);
}
.cm_h2 span, .post h2 span {
  display: inline-block;
  position: relative;
}
.cm_h2 span::after, .post h2 span::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background: #4c0e2c;
  position: absolute;
  bottom: calc(-0.75rem - 2px);
  left: 50%;
  transform: translateX(-50%);
}

.newsList {
  margin-top: 2.5rem;
  border-bottom: 1px solid rgba(76, 14, 44, 0.2);
}
.newsList li {
  display: flex;
  border-top: 1px solid rgba(76, 14, 44, 0.2);
}
@media screen and (min-width: 1101px) {
  .newsList li {
    padding: 2.5rem;
  }
}
@media screen and (max-width: 1100px) {
  .newsList li {
    flex-wrap: wrap;
    padding: 1.875rem 0;
  }
}
.newsList li .date {
  display: block;
  font-family: "Oswald", sans-serif;
  white-space: nowrap;
}
@media screen and (min-width: 1101px) {
  .newsList li .date {
    width: 3.5rem;
  }
}
@media screen and (max-width: 1100px) {
  .newsList li .date {
    width: 7.5em;
  }
}
.newsList li .cat {
  display: block;
  text-decoration: none;
  white-space: nowrap;
}
@media screen and (min-width: 1101px) {
  .newsList li .cat {
    width: 8.5rem;
    padding-left: 3.75rem;
  }
}
.newsList li .title {
  display: block;
  line-height: 1.75;
  margin: -0.375em 0;
}
@media screen and (min-width: 1101px) {
  .newsList li .title {
    width: calc(100% - 10rem);
    padding-left: 3.75rem;
  }
}
@media screen and (max-width: 1100px) {
  .newsList li .title {
    width: 100%;
    margin: calc(1.25rem - 0.375em) 0 -0.375em 0;
  }
}

.slide {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
  /*
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;

  .image {
  	width: 100%;
  	height: 100%;
  	position: relative;

  	li {
  		width: 100%;
  		height: 100%;
  		position: absolute;
  		top: 0;
  		left: 0;
  		transition: 0.625s linear;
  		opacity: 0;
  		&.show{
  			opacity: 1;
  		}

  		span{
  			display: block;
  			width: 100%;
  			height: 100%;
  			background-position: center;
  			background-size: cover;
  			background-repeat: no-repeat;
  		}
  	}
  }
  //.image

  .thum{
  	display: flex;
  	justify-content: center;
  	position: absolute;
  	bottom: 2.5rem;
  	left: 50%;
    transform: translateX(-50%) translateY(50%);
  	@media screen and (max-width:1100px) {
  		bottom: 1.25rem;
  	}
  	li{
  		width: 2.5rem;
  		height: 2.5rem;
  		position: relative;
  		@media screen and (max-width:1100px) {
  			width: 1.25rem;
  			height: 1.25rem;
  		}
  		span{
  			display: block;
  			width: 0.5em;
  			height: 0.5em;
  			margin: auto;
  			border-radius: 50%;
  			border: 1px solid $red;
  			box-sizing: border-box;
  			position: absolute;
  		  top: 50%;
  		  left: 50%;
  		  transform: translateX(-50%) translateY(-50%);
  		}
  		&.on{
  			span{
  				background: $red;
  			}
  		}
  	}

  }//thum
  */
}
.slide .image {
  width: 100%;
  height: 100%;
  position: relative;
}
.slide .image li {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: 1.5s;
  opacity: 0;
}
.slide .image li span {
  display: block;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.slide .image li.show {
  opacity: 1;
}
.slide .image li.show span {
  animation: myAnime 8s linear 0s infinite normal;
}
@keyframes myAnime {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.18);
  }
}
.slide .thum {
  display: flex;
  justify-content: center;
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%) translateY(50%);
}
@media screen and (max-width: 1100px) {
  .slide .thum {
    bottom: 1.25rem;
  }
}
.slide .thum li {
  width: 2.5rem;
  height: 2.5rem;
  position: relative;
}
@media screen and (max-width: 1100px) {
  .slide .thum li {
    width: 1.25rem;
    height: 1.25rem;
  }
}
.slide .thum li span {
  display: block;
  width: 0.5em;
  height: 0.5em;
  margin: auto;
  border-radius: 50%;
  border: 1px solid #4c0e2c;
  box-sizing: border-box;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}
.slide .thum li.current span {
  background: #4c0e2c;
}

.largeModal {
  cursor: pointer;
  transition: 0.5s;
}
.largeModal:hover {
  opacity: 0.5;
}

.modal {
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: 12;
  top: 0;
  left: 0;
  transition: 0.5s;
  opacity: 0;
  visibility: hidden;
}
.modal.show {
  opacity: 1;
  visibility: visible;
}
.modal .modalBg {
  width: 100%;
  height: 100%;
  position: absolute;
  background: rgba(0, 0, 0, 0.8);
}
.modal .modalInner {
  width: calc(100% - 20rem);
  height: calc(100vh - 10rem);
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  transform: translateX(-50%) translateY(-50%);
}
.modal .modalInner .close {
  cursor: pointer;
  width: 3.75rem;
  height: 3.75rem;
  background: url(../img/close.svg) center/contain no-repeat;
  position: absolute;
  top: -1.25rem;
  right: -1.25rem;
  z-index: 3;
  transition: 0.5s;
  transform: translateX(100%) translateY(-50%);
}
.modal .modalInner .close:hover {
  opacity: 0.5;
}
.modal .modalInner .modalContainer {
  width: 100%;
  height: 100%;
}
.modal .modalInner .modalContainer img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.post {
  width: 100%;
}
.post.middle {
  margin-top: 3.75rem;
}
.post > *:first-child {
  margin-top: 0 !important;
}
.post h1 .date {
  display: inline-block;
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  font-size: 1.5rem;
  font-weight: normal;
  letter-spacing: 0.2em;
  white-space: nowrap;
  position: relative;
}
.post h1 .date::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background: #4c0e2c;
  position: absolute;
  bottom: calc(-1.25rem + 2px);
  left: 50%;
  transform: translateX(-50%);
}
.post h1 .ja {
  display: block;
  color: #4c0e2c;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: calc(2.5rem - 0.25em) 0 -0.25em;
  position: relative;
}
.post h1 .ja::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: rgba(76, 14, 44, 0.2);
  position: absolute;
  top: -1.25rem;
  left: 50%;
  transform: translateX(-50%) translateY(50%);
}
.post h2 {
  margin: calc(7.5rem - 0.25em) 0 -0.25em;
}
.post h3 {
  color: #4c0e2c;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
  padding: calc(1.25rem - 0.25em) 0;
  margin: 6.25rem 0 0;
  border-top: 2px solid #4c0e2c;
  border-bottom: 1px dotted #4c0e2c;
}
.post h4 {
  color: #4c0e2c;
  font-size: 1.25rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
  padding-bottom: calc(0.5rem - 0.25em);
  margin: calc(5rem - 0.25em) 0 0;
  border-bottom: 1px solid #4c0e2c;
}
.post h5 {
  color: #4c0e2c;
  font-size: 1rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: calc(3.75rem - 0.25em) 0 -0.25em;
}
.post p {
  line-height: 2;
  letter-spacing: 0.2em;
  text-align: justify;
  margin: calc(2.5rem - 0.5em) 0 -0.5em;
}
.post p strong {
  font-weight: bold;
  font-size: 1.25rem;
}
.post ul, .post ol {
  padding-left: 1.25rem;
  margin: 2.5rem 0 0 0.25em;
  list-style: disc none;
}
.post ul li, .post ol li {
  line-height: 2;
  margin: calc(1.5rem - 0.5em) 0 -0.5em;
}
.post ul li:first-child, .post ol li:first-child {
  margin-top: -0.5em;
}
.post ol {
  margin: 2.5rem 0 0 0.5em;
  list-style: decimal none;
}
.post img {
  margin: 2.5rem 0 0;
}
.post .wp-block-image {
  position: relative;
  /*
  &::after{
  	content: '';
  	display: block;
  	width: 100%;
  	height: 100%;
  	position: absolute;
  	top: 0;
  	left: 0;
  }
  */
}
.post figcaption {
  color: rgba(0, 0, 0, 0.75);
  line-height: 1.5;
  text-align: center;
  margin: calc(1rem - 0.25em) 0 -0.25em;
}
.post .wp-block-table {
  margin-top: 2.5rem;
}
.post .wp-block-table table {
  border: 1px solid #dfd6da;
  border-collapse: collapse;
  margin-top: 0;
}
.post .wp-block-table table th, .post .wp-block-table table td {
  line-height: 1.75;
  padding: calc(1.25rem - 0.375em) 1.25rem;
  border: 1px solid #dfd6da;
}
.post .wp-block-table table th {
  background: rgba(0, 0, 0, 0.05);
}
.post .wp-block-table figcaption {
  display: block;
  color: rgba(0, 0, 0, 0.5);
  font-size: 0.75rem;
  font-style: normal;
  line-height: 1.5;
  margin: calc(1.25rem - 0.25em) 0 -0.25em;
}
.post .wp-block-buttons .wp-block-button {
  text-align: center;
}
@media screen and (min-width: 1101px) {
  .post .wp-block-columns {
    display: flex;
    justify-content: space-between;
  }
  .post .wp-block-columns .wp-block-column {
    margin: 2.5rem 0 0 2.5rem;
  }
  .post .wp-block-columns .wp-block-column:first-child {
    margin-left: 0;
  }
}
.post .wp-block-quote {
  padding: 2.5rem;
  margin: 2.5rem 0 0;
  background: rgba(76, 14, 44, 0.05);
}
.post .wp-block-quote p {
  color: #4c0e2c;
  font-weight: bold;
  margin-top: -0.5em;
}
.post .wp-block-quote cite {
  display: block;
  color: rgba(0, 0, 0, 0.5);
  font-size: 0.75rem;
  font-style: normal;
  line-height: 1.5;
  margin: calc(1.25rem - 0.25em) 0 -0.25em;
}
.post .wp-block-preformatted {
  color: #4c0e2c;
  font-weight: normal;
  line-height: 2;
  padding: calc(2.5rem - 0.5em) 2.5rem;
  margin: 2.5rem 0 0;
  background: rgba(76, 14, 44, 0.05);
}
.post .wp-block-pullquote {
  margin: 2.5rem 0 0;
  border-top: 2px solid #4c0e2c;
  border-bottom: 2px solid #4c0e2c;
}
.post .wp-block-pullquote blockquote {
  padding: 2.5rem;
  margin: 0;
}
@media screen and (max-width: 1100px) {
  .post .wp-block-pullquote blockquote {
    padding: 2.5rem 0;
  }
}
.post .wp-block-pullquote blockquote p {
  color: #4c0e2c;
  font-weight: bold;
  margin-top: -0.5em;
}
.post .wp-block-pullquote blockquote cite {
  display: block;
  color: rgba(0, 0, 0, 0.5);
  font-size: 0.75rem;
  font-style: normal;
  line-height: 1.5;
  margin: calc(1.25rem - 0.25em) 0 -0.25em;
}
.post .has-text-align-center {
  text-align: center;
}
.post .has-text-align-right {
  text-align: right;
}
@media screen and (min-width: 1101px) {
  .post .post_flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1.25rem;
  }
  .post .post_flex .left, .post .post_flex .right {
    width: calc(50% - 1.25rem);
  }
}
@media screen and (min-width: 1101px) {
  .post .post_flex2 {
    display: flex;
    justify-content: space-between;
    padding-top: 1.25rem;
  }
  .post .post_flex2 .left, .post .post_flex2 .right {
    width: calc(50% - 1.25rem);
  }
}
.post .map {
  width: 100%;
  margin-top: 3.75rem;
}

header {
  position: relative;
}
@media screen and (max-width: 1100px) {
  header {
    padding-top: 6rem;
  }
}
header .h1 {
  position: absolute;
  top: 4.5rem;
  left: 3.75rem;
  z-index: 2;
  transform: translateY(-50%);
}
header .h1 img {
  height: 5rem;
}
@media screen and (min-width: 1101px) and (max-width: 1299px) {
  header .h1 {
    left: 2.5rem;
  }
  header .h1 img {
    height: 4.5rem;
  }
}
@media screen and (max-width: 1100px) {
  header .h1 {
    width: auto;
    top: 3rem;
    left: 2rem;
  }
  header .h1 img {
    height: 3rem;
  }
}
header .menu {
  cursor: pointer;
  width: 1.875rem;
  height: 1.875rem;
  position: fixed;
  z-index: 99;
}
@media screen and (min-width: 1101px) {
  header .menu {
    top: 50%;
    left: 3.75rem;
    transform: translateX(-50%) translateY(-50%);
  }
}
@media screen and (max-width: 1100px) {
  header .menu {
    top: 3rem;
    right: 2rem;
    transform: translateY(-50%);
  }
}
header .menu.open span.span {
  top: calc(50% - 1px);
  transform: rotate(315deg);
}
header .menu.open span.span2 {
  opacity: 0;
}
header .menu.open span.span3 {
  bottom: calc(50% - 1px);
  transform: rotate(-315deg);
}
header .menu span {
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  position: absolute;
  right: 0;
  background: #4c0e2c;
  transition: 0.5s;
}
header .menu span.span {
  top: calc(50% - 7px);
}
header .menu span.span2 {
  top: calc(50% - 1px);
}
header .menu span.span3 {
  bottom: calc(50% - 7px);
}
header .trackNav {
  display: flex;
  background: #fff;
  position: absolute;
  top: 4.5rem;
  right: 0;
  z-index: 3;
  transform: translateY(-50%);
}
@media screen and (max-width: 1100px) {
  header .trackNav {
    display: none;
  }
}
header .trackNav .global {
  display: flex;
  padding: 0 1.25rem;
}
@media screen and (min-width: 1101px) and (max-width: 1299px) {
  header .trackNav .global {
    padding: 0 1rem;
  }
}
header .trackNav .global li {
  margin-left: 1.25rem;
  position: relative;
}
@media screen and (min-width: 1101px) and (max-width: 1299px) {
  header .trackNav .global li {
    margin-left: 1rem;
  }
}
header .trackNav .global li:first-child {
  margin-left: 0;
}
header .trackNav .global li:hover ul {
  opacity: 1;
  visibility: visible;
}
header .trackNav .global li a {
  display: block;
  font-weight: bold;
  letter-spacing: 0.1em;
  text-align: center;
  text-decoration: none;
  text-indent: 0.1em;
  white-space: nowrap;
  padding: 1.75rem 0;
  position: relative;
}
@media screen and (min-width: 1101px) and (max-width: 1299px) {
  header .trackNav .global li a {
    font-size: 0.875rem;
    padding: calc(1.25rem + 0.0625rem) 0;
  }
}
header .trackNav .global li a:hover::after {
  transform: scale(1, 1);
}
header .trackNav .global li a::after {
  content: "";
  display: block;
  width: 100%;
  height: 3px;
  background: #4c0e2c;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: 0.375s cubic-bezier(0.25, 1, 0.5, 1);
  transform-origin: left;
  transform: scale(0, 1);
}
header .trackNav .global li a .relative {
  display: block;
  position: relative;
}
header .trackNav .global li a .relative .badge {
  display: block;
  width: 2rem;
  height: 1rem;
  color: #fff;
  font-size: 0.75rem;
  background: red;
  border-radius: 0.25em;
  position: absolute;
  top: -0.5em;
  left: 50%;
  transform: translateX(-50%) translateY(-100%);
}
header .trackNav .global li a .relative .badge span {
  display: block;
  position: absolute;
  top: calc(50% - 1px);
  left: 50%;
  transform: translateX(-50%) translateY(-50%) scale(0.75);
}
header .trackNav .global li a .relative .badge span::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.5em 0.5em 0 0.5em;
  border-color: red transparent transparent transparent;
  position: absolute;
  bottom: -0.5em;
  left: 50%;
  transform: translateX(-50%) translateY(100%);
}
header .trackNav .global li ul {
  padding: 1.875rem;
  background: #4c0e2c;
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 2;
  transition: 0.25s;
  transform: translateX(-50%) translateY(100%);
  opacity: 0;
  visibility: hidden;
}
header .trackNav .global li ul li {
  margin: 1.25rem 0 0;
}
header .trackNav .global li ul li:first-child {
  margin-top: 0;
}
header .trackNav .global li ul li a {
  display: block;
  color: #fff;
  font-weight: normal;
  white-space: nowrap;
  padding: 0;
  position: relative;
  transition: 0.25s;
}
header .trackNav .global li ul li a:hover {
  opacity: 0.5;
}
header .trackNav .global li ul li a::after {
  display: none;
}
header .trackNav .contactNav {
  display: flex;
  align-items: center;
  color: #fff;
  padding: 0 1.25rem;
  background: #4c0e2c;
}
@media screen and (max-width: 1100px) {
  header .trackNav .contactNav {
    display: none;
  }
}
@media screen and (min-width: 1101px) and (max-width: 1299px) {
  header .trackNav .contactNav {
    padding: 0 1rem;
  }
}
header .trackNav .contactNav h2 {
  display: block;
  font-family: "Oswald", sans-serif;
  font-weight: bold;
  letter-spacing: 0.1em;
  text-align: center;
  text-indent: 0.1em;
  white-space: nowrap;
}
header .trackNav .contactNav ul {
  display: flex;
  align-items: center;
}
header .trackNav .contactNav ul li a {
  display: block;
  font-family: "Oswald", sans-serif;
  font-weight: bold;
  letter-spacing: 0.1em;
  text-align: center;
  text-decoration: none;
  text-indent: 0.1em;
  white-space: nowrap;
}
@media screen and (min-width: 1101px) and (max-width: 1299px) {
  header .trackNav .contactNav ul li a {
    font-size: 0.875rem;
  }
}
header .trackNav .contactNav ul li.mail {
  margin-right: 1.25rem;
}
@media screen and (min-width: 1101px) and (max-width: 1299px) {
  header .trackNav .contactNav ul li.mail {
    margin-right: 1rem;
  }
}
header .trackNav .contactNav ul li.mail a {
  width: 2.5rem;
  text-indent: -9999px;
  background: url(../img/_mail.svg) left center/auto 1rem no-repeat;
  position: relative;
}
@media screen and (min-width: 1101px) and (max-width: 1299px) {
  header .trackNav .contactNav ul li.mail a {
    width: 2rem;
  }
}
header .trackNav .contactNav ul li.mail a::after {
  content: "";
  display: block;
  width: 1px;
  height: 2rem;
  background: rgba(255, 255, 255, 0.4);
  position: absolute;
  top: 50%;
  left: 1.25rem;
  transform: translateY(-50%);
}
@media screen and (min-width: 1101px) and (max-width: 1299px) {
  header .trackNav .contactNav ul li.mail a::after {
    left: 1rem;
  }
}
header .trackNav .contactNav ul li.mail a::after {
  left: auto;
  right: 0;
}
header .trackNav .contactNav ul li.tel a {
  padding-left: 1.25rem;
  background: url(../img/_tel.svg) left center/contain no-repeat;
}
header .modalNav {
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.95);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 98;
  transition: 0.5s;
  opacity: 0;
  visibility: hidden;
}
header .modalNav.show {
  opacity: 1;
  visibility: visible;
}
@media screen and (min-width: 1101px) {
  header .modalNav .body {
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: calc(100% - 18.75rem);
    position: absolute;
    top: 50%;
    left: 11.25rem;
    transform: translateY(-50%);
  }
}
@media screen and (max-width: 1100px) {
  header .modalNav .body {
    height: 100%;
    overflow-y: auto;
  }
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .left {
    padding: 5rem 4rem;
  }
}
header .modalNav .body .left .global {
  display: flex;
  flex-wrap: wrap;
}
header .modalNav .body .left .global li {
  width: 100%;
  margin-top: 1.875rem;
}
@media screen and (min-width: 1101px) {
  header .modalNav .body .left .global li.half {
    width: 50%;
  }
}
header .modalNav .body .left .global li:first-child {
  margin-top: 0;
}
header .modalNav .body .left .global li a {
  display: block;
  font-size: 1.25rem;
  font-weight: bold;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
  margin: -0.125em 0;
}
header .modalNav .body .left .global li ul {
  margin-top: 0.75rem;
}
header .modalNav .body .left .global li ul li {
  margin-top: 0.5em;
}
header .modalNav .body .left .global li ul li a {
  display: block;
  font-size: 1rem;
  font-weight: normal;
}
@media screen and (min-width: 1101px) {
  header .modalNav .body .center {
    margin-left: 2.5rem;
  }
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .center {
    display: none;
  }
}
header .modalNav .body .center dl dt {
  display: block;
  font-size: 1.25rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-decoration: none;
  margin: -0.125em 0;
}
header .modalNav .body .center dl dd {
  padding: 0 0 0 2.5rem;
  margin: 2.5rem 0 0;
  border-left: 1px solid rgba(76, 14, 44, 0.2);
}
header .modalNav .body .center dl dd ul li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding-top: 2.5rem;
  margin-top: 2.5rem;
  border-top: 1px solid rgba(76, 14, 44, 0.2);
}
header .modalNav .body .center dl dd ul li:first-child {
  padding-top: 0;
  margin-top: 0;
  border-top: none;
}
header .modalNav .body .center dl dd ul li .date {
  display: block;
  font-family: "Oswald", sans-serif;
  white-space: nowrap;
}
header .modalNav .body .center dl dd ul li .cat {
  display: block;
  text-decoration: none;
  white-space: nowrap;
  padding-left: 2.5rem;
}
header .modalNav .body .center dl dd ul li .title {
  display: block;
  width: 100%;
  line-height: 1.75;
  margin: calc(1.25rem - 0.375em) 0 -0.375em;
}
@media screen and (min-width: 1101px) {
  header .modalNav .body .right {
    margin-left: 2.5rem;
  }
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .right {
    padding: 5rem 4rem;
    background: rgba(76, 14, 44, 0.1);
  }
}
header .modalNav .body .right h2 {
  display: block;
  font-size: 1.25rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-decoration: none;
  margin: -0.125em 0;
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .right h2 {
    color: #4c0e2c;
  }
}
header .modalNav .body .right .body2 {
  margin: 2.5rem 0 0;
}
@media screen and (min-width: 1101px) {
  header .modalNav .body .right .body2 {
    padding: 0 0 0 2.5rem;
    border-left: 1px solid rgba(76, 14, 44, 0.2);
  }
}
header .modalNav .body .right .body2 address img {
  height: 4rem;
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .right .body2 address img {
    margin: 0 auto;
  }
}
header .modalNav .body .right .body2 address span {
  display: block;
  font-size: 0.875rem;
  line-height: 1.75;
  white-space: nowrap;
  margin: calc(1.25rem - 0.375em) 0 -0.375em;
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .right .body2 address span {
    text-align: center;
  }
}
header .modalNav .body .right .body2 .contact {
  margin-top: 1.875rem;
}
header .modalNav .body .right .body2 .contact p {
  display: block;
  font-size: 0.875rem;
  line-height: 1.75;
  margin: -0.375em 0;
}
@media screen and (min-width: 1101px) {
  header .modalNav .body .right .body2 .contact ul {
    margin-top: 1.25rem;
  }
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .right .body2 .contact ul {
    display: flex;
    justify-content: space-between;
    margin-top: 2.5rem;
  }
}
@media screen and (min-width: 1101px) {
  header .modalNav .body .right .body2 .contact ul li {
    width: 15rem;
  }
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .right .body2 .contact ul li {
    width: calc((100% - 1rem) / 2);
  }
}
header .modalNav .body .right .body2 .contact ul li.mail a span {
  background-image: url(../img/mail.svg);
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .right .body2 .contact ul li.mail a span {
    text-indent: -9999px;
    background-position: center;
  }
}
@media screen and (min-width: 1101px) {
  header .modalNav .body .right .body2 .contact ul li.tel {
    margin-top: 1.25rem;
  }
}
header .modalNav .body .right .body2 .contact ul li.tel a {
  font-family: "Oswald", sans-serif;
}
header .modalNav .body .right .body2 .contact ul li.tel a span {
  background-image: url(../img/tel.svg);
}
header .modalNav .body .right .body2 .contact ul li a {
  display: block;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  background-color: rgba(76, 14, 44, 0.2);
}
header .modalNav .body .right .body2 .contact ul li a span {
  display: inline-block;
  padding: 1.375em 0 1.375em 3em;
  background-position: center left;
  background-repeat: no-repeat;
  background-size: 2em;
}
@media screen and (max-width: 1100px) {
  header .modalNav .body .right .body2 .contact ul li a span {
    padding-left: 1.75em;
    background-size: 1.25em;
  }
}

footer {
  padding-bottom: 3.75rem;
  margin-top: 7.5rem;
  position: relative;
}
@media screen and (max-width: 1100px) {
  footer {
    padding-bottom: 2.5rem;
  }
}
footer::after {
  content: "";
  display: block;
  width: 100%;
  height: calc(100% - 5rem);
  position: absolute;
  top: 5rem;
  left: 0;
  z-index: -1;
  background: rgba(76, 14, 44, 0.1);
}
footer .box {
  color: #fff;
  background: #4c0e2c;
}
@media screen and (min-width: 1101px) {
  footer .box {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: calc(1400px - 22.5rem);
    max-width: calc(100% - 7.5rem);
    padding: 5rem 0;
    margin: 0;
  }
}
@media screen and (max-width: 1100px) {
  footer .box {
    padding: 2.5rem 2rem;
  }
}
@media screen and (min-width: 1101px) {
  footer .box address {
    padding-right: 5rem;
    position: relative;
  }
  footer .box address::before {
    content: "";
    display: block;
    width: 1px;
    height: 100%;
    background: rgba(255, 255, 255, 0.4);
    position: absolute;
    top: calc(50% + 0.125em);
    right: 2.5rem;
    transform: translateY(-50%);
  }
}
footer .box address img {
  width: 18.6428571429rem;
}
@media screen and (max-width: 1100px) {
  footer .box address img {
    width: auto;
    height: 4rem;
    margin: 0 auto;
  }
}
footer .box address span {
  display: block;
  font-size: 0.875rem;
  letter-spacing: 0;
  line-height: 1.75;
  white-space: nowrap;
  margin: calc(1rem - 0.375em) 0 -0.375em;
}
@media screen and (max-width: 1100px) {
  footer .box address span {
    text-align: center;
    margin: calc(1.5rem - 0.375em) 0 -0.375em;
  }
}
footer .box .contact {
  position: relative;
}
@media screen and (min-width: 1101px) {
  footer .box .contact {
    margin-top: 0.125rem;
  }
}
@media screen and (max-width: 1100px) {
  footer .box .contact {
    margin-top: 1.75rem;
  }
}
footer .box .contact p {
  display: block;
  font-size: 1rem;
  line-height: 1.75;
  margin: -0.375em 0;
}
@media screen and (max-width: 1100px) {
  footer .box .contact p {
    font-size: 0.875rem;
    text-align: center;
  }
}
footer .box .contact ul {
  display: flex;
  margin-top: 1.375rem;
  padding: 1rem 10rem 1rem 1.875rem;
  background-color: rgba(255, 255, 255, 0.4);
}
footer .box .contact ul li.mail a {
  background-image: url(../img/_mail.svg);
}
footer .box .contact ul li.tel {
  margin-left: 1.875rem;
}
footer .box .contact ul li.tel a {
  font-family: "Oswald", sans-serif;
  font-size: 1.125em;
  background-image: url(../img/_tel.svg);
}
footer .box .contact ul li a {
  display: block;
  text-decoration: none;
  white-space: nowrap;
  padding: 0.375rem 0 0.375rem 2.25rem;
  background-position: left;
  background-repeat: no-repeat;
  background-size: auto 100%;
}
footer .box .contact img {
  height: 8.5rem;
  position: absolute;
  bottom: 0;
  right: 0;
}
@media screen and (max-width: 1100px) {
  footer .box .contact img {
    height: 8rem;
  }
}
@media screen and (min-width: 1101px) {
  footer .box2 {
    margin: 3.75rem 12.5rem 0 5rem;
    position: relative;
  }
}
@media screen and (max-width: 1100px) {
  footer .box2 {
    margin: 2.5rem 2rem 0;
  }
}
footer .box2 .footerNav {
  display: flex;
}
@media screen and (max-width: 1100px) {
  footer .box2 .footerNav {
    display: none;
  }
}
footer .box2 .footerNav ul.left {
  width: 27em;
}
footer .box2 .footerNav ul.left2 {
  width: 10em;
}
footer .box2 .footerNav ul li {
  margin-top: 1.5rem;
}
footer .box2 .footerNav ul li:first-child {
  margin-top: 0;
}
footer .box2 .footerNav ul li a {
  font-size: 1rem;
  font-weight: bold;
  text-decoration: none;
  white-space: nowrap;
}
footer .box2 .footerNav ul li ul {
  display: flex;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
footer .box2 .footerNav ul li ul li {
  width: 13em;
  margin-top: 1.5rem;
}
footer .box2 .footerNav ul li ul li:nth-child(-n+2) {
  margin-top: 0;
}
footer .box2 .footerNav ul li ul li:nth-child(2n) {
  width: 14em;
}
footer .box2 .footerNav ul li ul li a {
  font-size: 0.875rem;
  font-weight: normal;
  letter-spacing: 0em;
  white-space: nowrap;
}
footer .box2 .back {
  width: 3rem;
  position: absolute;
  top: 0;
  right: 0;
}
@media screen and (max-width: 1100px) {
  footer .box2 .back {
    top: -1.5rem;
    right: 2rem;
    transform: translateY(-100%);
  }
}
footer .box2 .copy {
  font-family: "Oswald", sans-serif;
  font-size: 0.75rem;
}
@media screen and (min-width: 1101px) {
  footer .box2 .copy {
    white-space: nowrap;
    position: absolute;
    bottom: 0.125rem;
    right: 0;
  }
}
@media screen and (max-width: 1100px) {
  footer .box2 .copy {
    display: block;
    text-align: center;
  }
}

@media screen and (min-width: 1101px) {
  .subPage {
    margin-left: 7.5rem;
  }
}
.subPage header .mainImage {
  width: 100%;
  height: 19rem;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-color: rgba(76, 14, 44, 0.1);
}
@media screen and (max-width: 1100px) {
  .subPage header .mainImage {
    height: 7.5rem;
  }
}
.subPage header .mainImage .ancestor {
  background: #fff;
  position: absolute;
  bottom: -1px;
  right: 0;
}
@media screen and (min-width: 1101px) {
  .subPage header .mainImage .ancestor {
    min-width: 42.5rem;
    padding: 1.25rem 15rem 1rem 3.75rem;
  }
}
@media screen and (max-width: 1100px) {
  .subPage header .mainImage .ancestor {
    min-width: 20 0.5rem;
    padding-right: 2rem;
  }
}
.subPage header .mainImage .ancestor::after {
  content: "";
  display: block;
  width: calc(100% - 18.75rem);
  height: 2px;
  background: #dfd6da;
  position: absolute;
  bottom: 0;
  left: 3.75rem;
}
@media screen and (max-width: 1100px) {
  .subPage header .mainImage .ancestor::after {
    width: calc(100% - 4rem);
    left: 2rem;
  }
}
.subPage header .mainImage .ancestor .en {
  display: inline-block;
  color: rgba(76, 14, 44, 0.1);
  font-family: "Oswald", sans-serif;
  font-size: 6.5rem;
  font-weight: normal;
  letter-spacing: 0.2em;
  white-space: nowrap;
  margin-left: 2.5rem;
  z-index: -1;
}
@media screen and (min-width: 1101px) {
  .subPage header .mainImage .ancestor .en {
    transform: skewX(-6deg) translateY(1rem);
  }
}
@media screen and (max-width: 1100px) {
  .subPage header .mainImage .ancestor .en {
    font-size: 3.75rem;
    margin-left: 1.875rem;
    transform: skewX(-6deg) translateY(0.125rem);
  }
}
.subPage header .mainImage .ancestor .ja {
  display: block;
  color: #4c0e2c;
  font-size: 2.5rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  white-space: nowrap;
  margin: 0 0 0 3.75rem;
  position: absolute;
  bottom: 1rem;
  right: 17.5rem;
}
@media screen and (max-width: 1100px) {
  .subPage header .mainImage .ancestor .ja {
    font-size: 1.875rem;
    margin: 0 2rem 0 2.8125rem;
    bottom: 0.75rem;
    right: 2rem;
  }
}
.subPage header .mainImage .ancestor .ja::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background: #4c0e2c;
  position: absolute;
  bottom: calc(-1rem - 1px);
  left: 50%;
  z-index: 2;
  transform: translateX(-50%);
}
@media screen and (max-width: 1100px) {
  .subPage header .mainImage .ancestor .ja::after {
    bottom: calc(-0.75rem - 1px);
  }
}
.subPage header .bread {
  display: flex;
}
@media screen and (min-width: 1101px) {
  .subPage header .bread {
    position: absolute;
    bottom: 1rem;
    left: calc((100vw - 7.5rem - 55vw) / 2);
    z-index: 2;
  }
}
@media screen and (max-width: 1100px) {
  .subPage header .bread {
    position: absolute;
    bottom: -2rem;
    left: 2rem;
    z-index: 2;
    transform: translateY(100%);
  }
}
@media screen and (max-width: 1100px) {
  .subPage header .bread li {
    font-size: 0.75rem;
  }
}
.subPage header .bread li:first-child a {
  padding-left: 0;
}
.subPage header .bread li:first-child a::after {
  display: none;
}
.subPage header .bread li a, .subPage header .bread li span {
  color: #4c0e2c;
  font-size: 0.875rem;
  text-decoration: none;
  padding-left: 2em;
  position: relative;
}
.subPage header .bread li a::after, .subPage header .bread li span::after {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background: url(../img/arw.svg) center/0.75em no-repeat;
  position: absolute;
  top: 50%;
  left: 0.5em;
  transform: translateY(-50%);
}
.subPage .contents .contentsInner {
  margin: 0 auto;
}
@media screen and (min-width: 1101px) {
  .subPage .contents .contentsInner {
    width: 55vw;
    min-width: 770px;
  }
}
@media screen and (max-width: 1100px) {
  .subPage .contents .contentsInner {
    width: calc(100% - 4rem);
  }
}
.subPage .contents .contentsInner .subCatHead {
  margin-top: calc(3.75rem - 0.25em);
}

@media screen and (min-width: 1101px) {
  #index {
    margin-left: 7.5rem;
  }
}
@media screen and (min-width: 1101px) {
  #index header .h1 {
    filter: drop-shadow(0 0 1em rgba(0, 0, 0, 0.6));
  }
}
#index header .mainImage {
  width: 100%;
  position: relative;
}
@media screen and (min-width: 1101px) {
  #index header .mainImage {
    height: calc(0.5625 * (100vw - 7.5rem));
  }
}
@media screen and (max-width: 1100px) {
  #index header .mainImage {
    height: 66.6666666667vw;
  }
}
@media screen and (min-width: 1101px) {
  #index header .mainImage .slide .image li::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.2);
    position: absolute;
    top: 0;
    left: 0;
  }
}
#index header .mainImage .slide .catch li {
  position: absolute;
  z-index: 2;
  transform: translateY(-50%);
  filter: drop-shadow(0 0 1em rgba(0, 0, 0, 0.6));
}
@media screen and (min-width: 1101px) {
  #index header .mainImage .slide .catch li.left {
    left: auto;
    left: 10vw;
  }
  #index header .mainImage .slide .catch li.right {
    left: auto;
    right: 10vw;
  }
  #index header .mainImage .slide .catch li.top {
    top: 37.5%;
  }
  #index header .mainImage .slide .catch li.middle {
    top: 50%;
  }
  #index header .mainImage .slide .catch li.bottom {
    top: 75%;
  }
}
@media screen and (max-width: 1100px) {
  #index header .mainImage .slide .catch li {
    left: 6.25vw;
    bottom: 0;
    transform: translateY(-75%);
  }
}
#index header .mainImage .slide .catch li.show div {
  visibility: visible;
}
#index header .mainImage .slide .catch li.show div::after {
  animation: myAnime2 0.5s cubic-bezier(0.25, 1, 0.5, 1) 0s 1 forwards;
}
#index header .mainImage .slide .catch li.show div.ja::after {
  animation-delay: 0.125s;
}
@keyframes myAnime2 {
  0% {
    transform: translateX(calc(-1px - 100%));
  }
  100% {
    transform: translateX(calc(1px + 100%));
  }
}
#index header .mainImage .slide .catch li.show strong {
  transform: translateY(calc(0% - 0.1em));
}
#index header .mainImage .slide .catch li.show span {
  transform: translateY(0);
}
#index header .mainImage .slide .catch li div {
  display: inline-block;
  overflow: hidden;
  position: relative;
  visibility: hidden;
}
#index header .mainImage .slide .catch li div::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translateX(calc(-1px - 100%));
}
#index header .mainImage .slide .catch li div.ja {
  margin-top: 1.25vw;
}
@media screen and (max-width: 1100px) {
  #index header .mainImage .slide .catch li div.ja {
    margin-top: 3.125vw;
  }
}
#index header .mainImage .slide .catch li div.absolute {
  display: block;
}
#index header .mainImage .slide .catch li div.absolute strong, #index header .mainImage .slide .catch li div.absolute span {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}
#index header .mainImage .slide .catch li strong {
  display: inline-block;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-weight: normal;
  font-size: 4vw;
  letter-spacing: 0;
  white-space: nowrap;
  transition: transform 0.375s;
  transition-delay: 0.25s;
  transform: translateY(100%);
}
@media screen and (max-width: 1100px) {
  #index header .mainImage .slide .catch li strong {
    font-size: 7.8125vw;
  }
}
#index header .mainImage .slide .catch li span {
  display: inline-block;
  color: #fff;
  font-size: 1.125vw;
  letter-spacing: 0.2em;
  white-space: nowrap;
  transition: transform 0.375s;
  transition-delay: 0.375s;
  transform: translateY(100%);
}
@media screen and (max-width: 1100px) {
  #index header .mainImage .slide .catch li span {
    font-size: 2.34375vw;
  }
}
#index header .mainImage .paper {
  width: 10.5rem;
  color: #4c0e2c;
  padding: 1rem;
  background: #efeaed;
  border: 2px solid #fff;
  position: absolute;
  bottom: 2.5rem;
  right: 2.5rem;
}
#index header .mainImage .paper .flex {
  display: flex;
  justify-content: space-between;
}
#index header .mainImage .paper .flex .date {
  text-align: center;
}
#index header .mainImage .paper .flex .date .year {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 0.875rem;
  white-space: nowrap;
}
#index header .mainImage .paper .flex .date .month {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 3.5rem;
  white-space: nowrap;
}
#index header .mainImage .paper .flex .date .txt {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 0.875rem;
  white-space: nowrap;
  margin-top: 0.25em;
}
#index header .mainImage .paper .flex .image {
  width: 5rem;
  position: relative;
}
#index header .mainImage .paper .flex .image img {
  width: 100%;
  height: auto;
  position: absolute;
  bottom: 0;
  left: 0;
}
#index header .mainImage .paper .title {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 0.75rem;
  text-align: center;
  white-space: nowrap;
  margin-top: 1rem;
}
#index header .mainImage .paper .title strong {
  display: block;
  font-size: 2em;
  margin-bottom: 0.25em;
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner {
    margin: 0 15rem 0 7.5rem;
  }
}
@media screen and (max-width: 1100px) {
  #index .contents .contentsInner {
    width: calc(100% - 4rem);
    margin: 0 auto;
  }
}
#index .contents .contentsInner .h2 {
  padding-bottom: 1rem;
  position: relative;
}
#index .contents .contentsInner .h2::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: #dfd6da;
  position: absolute;
  bottom: 0;
  left: 0;
}
#index .contents .contentsInner .h2 .en {
  display: inline-block;
  color: rgba(76, 14, 44, 0.1);
  font-family: "Oswald", sans-serif;
  font-size: 6.5rem;
  font-weight: normal;
  letter-spacing: 0.2em;
  white-space: nowrap;
  position: absolute;
  bottom: 0;
  left: 1.875rem;
  z-index: -1;
  transform: skewX(-6deg) translateY(4px);
}
@media screen and (max-width: 1100px) {
  #index .contents .contentsInner .h2 .en {
    font-size: 4.875rem;
  }
}
#index .contents .contentsInner .h2 .ja {
  display: inline-block;
  color: #4c0e2c;
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  white-space: nowrap;
  margin: 0 0 0 3.75rem;
  position: relative;
}
@media screen and (max-width: 1100px) {
  #index .contents .contentsInner .h2 .ja {
    font-size: 1.5rem;
    margin: 0 0 0 2.8125rem;
  }
}
#index .contents .contentsInner .h2 .ja::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background: #4c0e2c;
  position: absolute;
  bottom: calc(-1rem - 1px);
  left: 50%;
  z-index: 2;
  transform: translateX(-50%);
}
#index .contents .contentsInner .news {
  margin-top: 7.5rem;
}
@media screen and (max-width: 1100px) {
  #index .contents .contentsInner .news {
    margin-top: 3.75rem;
  }
}
#index .contents .contentsInner .news .newsList {
  margin-left: auto;
  margin-right: auto;
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .news .newsList {
    width: 55vw;
  }
}
#index .contents .contentsInner .about .flex {
  margin: 7.5rem auto 0;
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .about .flex {
    display: flex;
    justify-content: space-between;
    max-width: 70vw;
  }
}
@media screen and (max-width: 1100px) {
  #index .contents .contentsInner .about .flex {
    max-width: 100%;
  }
}
#index .contents .contentsInner .about .flex .left {
  position: relative;
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .about .flex .left {
    order: 1;
    width: 50%;
  }
  #index .contents .contentsInner .about .flex .left::after {
    content: "";
    display: block;
    width: 64.7058823529%;
    height: 67.2268907563%;
    background: #4c0e2c;
    position: absolute;
    bottom: -5rem;
    right: 5rem;
    z-index: -1;
  }
}
@media screen and (max-width: 1100px) {
  #index .contents .contentsInner .about .flex .left {
    display: flex;
    margin-top: 2.5rem;
  }
}
#index .contents .contentsInner .about .flex .left .image {
  width: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .about .flex .left .image {
    height: 100%;
  }
}
@media screen and (max-width: 1100px) {
  #index .contents .contentsInner .about .flex .left .image {
    width: 50%;
    padding-top: 28.125%;
  }
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .about .flex .left .image2 {
    width: 53.781512605%;
    position: absolute;
    bottom: -2.5rem;
    right: -2.5rem;
  }
}
@media screen and (max-width: 1100px) {
  #index .contents .contentsInner .about .flex .left .image2 {
    width: 50%;
  }
}
#index .contents .contentsInner .about .flex .left .image2 div {
  width: 100%;
  padding-top: 56.25%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .about .flex .right {
    order: 2;
    width: calc(50% - 3.75rem);
    padding: 5rem 0;
  }
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .about .flex .right .cm_p, #index #about .contents .contentsInner .about .flex .right .strength .box dl dd, #about #index .contents .contentsInner .about .flex .right .strength .box dl dd, #index #about .contents .strength .box dl .contentsInner .about .flex .right dd, #about #index .contents .strength .box dl .contentsInner .about .flex .right dd, #index #serviceDetail .contents .contentsInner .about .flex .right .flow .step dl dd, #serviceDetail #index .contents .contentsInner .about .flex .right .flow .step dl dd, #index #serviceDetail .contents .contentsInner .flow .step dl .about .flex .right dd, #serviceDetail #index .contents .contentsInner .flow .step dl .about .flex .right dd, #index #serviceDetail .contents .contentsInner .about .flex .right .consluting .box dl dd, #serviceDetail #index .contents .contentsInner .about .flex .right .consluting .box dl dd, #index #serviceDetail .contents .contentsInner .consluting .box dl .about .flex .right dd, #serviceDetail #index .contents .contentsInner .consluting .box dl .about .flex .right dd, #index #serviceDetail .contents .contentsInner .about .flex .right .cont dl dd, #serviceDetail #index .contents .contentsInner .about .flex .right .cont dl dd, #index #serviceDetail .contents .contentsInner .cont dl .about .flex .right dd, #serviceDetail #index .contents .contentsInner .cont dl .about .flex .right dd, #index #serviceDetail .contents .contentsInner .about .flex .right .point .box dl dd, #serviceDetail #index .contents .contentsInner .about .flex .right .point .box dl dd, #index #serviceDetail .contents .contentsInner .point .box dl .about .flex .right dd, #serviceDetail #index .contents .contentsInner .point .box dl .about .flex .right dd, #index .contents .contentsInner .about .flex .right .cm_service dl dd, .cm_service dl #index .contents .contentsInner .about .flex .right dd {
    margin-left: 3.75rem;
  }
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .about .flex .right .cm_link {
    margin-left: 3.75rem;
  }
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .service1 {
    padding-top: 7.5rem;
    margin-top: 5rem;
    position: relative;
  }
  #index .contents .contentsInner .service1::before {
    content: "";
    display: block;
    width: 100%;
    height: calc(100% - 5rem);
    background: rgba(255, 255, 255, 0.9);
    position: absolute;
    top: 7.5rem;
    right: -7.5rem;
    z-index: -1;
  }
  #index .contents .contentsInner .service1::after {
    content: "";
    display: block;
    width: 32.5vw;
    height: calc(100% - 15rem);
    background: url(../img/bg01.jpg) center/cover no-repeat;
    position: absolute;
    top: 0;
    right: -15rem;
    z-index: -2;
  }
  #index .contents .contentsInner .service1 .flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 70vw;
    margin: 0 auto;
  }
  #index .contents .contentsInner .service1 .flex .cm_service {
    width: calc((100% - 5rem) / 2);
  }
}
@media screen and (max-width: 1100px) {
  #index .contents .contentsInner .service1 {
    margin-top: 7.5rem;
  }
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .service2 {
    padding: 5rem 0;
    margin-top: 5rem;
    position: relative;
  }
  #index .contents .contentsInner .service2::before {
    content: "";
    display: block;
    width: 100%;
    height: calc(100% - 10rem);
    background: rgba(255, 255, 255, 0.9);
    position: absolute;
    bottom: 0;
    left: -7.5rem;
    z-index: -1;
  }
  #index .contents .contentsInner .service2::after {
    content: "";
    display: block;
    width: 25vw;
    height: 100%;
    background: url(../img/bg02.jpg) center/cover no-repeat;
    position: absolute;
    top: 0;
    left: -15rem;
    z-index: -2;
  }
  #index .contents .contentsInner .service2 .flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: 70vw;
    margin: 0 auto;
  }
  #index .contents .contentsInner .service2 .flex .cm_service {
    width: calc((100% - 5rem) / 3);
    margin-top: 0;
  }
  #index .contents .contentsInner .service2 .flex .cm_service dt {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1101px) {
  #index .contents .contentsInner .service3 {
    padding-top: 5rem;
    margin-top: 5rem;
    position: relative;
  }
  #index .contents .contentsInner .service3::before {
    content: "";
    display: block;
    width: calc((100% - 5rem) / 2 + 5rem);
    height: calc(100% - 5rem);
    background: rgba(255, 255, 255, 0.9);
    position: absolute;
    top: 5rem;
    left: 0;
    z-index: -1;
  }
  #index .contents .contentsInner .service3::after {
    content: "";
    display: block;
    width: calc(50vw + 15rem);
    height: calc(100% - 5rem);
    background: url(../img/bg03.jpg) center/cover no-repeat;
    position: absolute;
    top: 0;
    right: -15rem;
    z-index: -2;
  }
  #index .contents .contentsInner .service3 .flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  #index .contents .contentsInner .service3 .flex .cm_service {
    width: calc((100% - 5rem) / 2);
  }
}
#index .contents .contentsInner .last .cm_btn, #index .contents .contentsInner .last .post .wp-block-buttons .wp-block-button .wp-block-button__link, .post .wp-block-buttons .wp-block-button #index .contents .contentsInner .last .wp-block-button__link {
  margin-top: 7.5rem;
}

@media screen and (min-width: 1101px) {
  #service header .mainImage {
    height: calc(0.3312741313 * (100vw - 7.5rem));
  }
}
@media screen and (max-width: 1100px) {
  #service header .mainImage {
    height: 56.25vw;
  }
}
@media screen and (max-width: 1100px) {
  #service header .bread {
    bottom: -2rem;
    transform: translateY(100%);
  }
}
#service .contents {
  padding: 7.5rem 0;
}
#service .contents.middle {
  background: rgba(76, 14, 44, 0.1);
}
#service .contents .contentsInner {
  position: relative;
}
#service .contents .contentsInner .h2 {
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  font-size: 4.25rem;
  font-weight: normal;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media screen and (min-width: 1101px) {
  #service .contents .contentsInner .h2 {
    position: absolute;
    top: calc(-2.5rem - 1em);
    left: -7.5rem;
    z-index: 2;
    transform-origin: left bottom;
    transform: rotate(90deg) translateY(50%) skewX(-6deg);
    opacity: 0.2;
  }
}
@media screen and (max-width: 1100px) {
  #service .contents .contentsInner .h2 {
    font-size: 2.65625rem;
    letter-spacing: 0.05em;
    position: absolute;
    top: calc(-2.5rem - 1em);
    right: 2.5rem;
    z-index: 2;
    transform-origin: left bottom;
    transform: translateX(100%) rotate(90deg) translateY(50%) skewX(-6deg);
  }
}
@media screen and (max-width: 1100px) {
  #service .contents .contentsInner .cm_service:first-child {
    margin-top: 0;
  }
}
@media screen and (min-width: 1101px) {
  #service .contents .contentsInner .flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  #service .contents .contentsInner .flex .cm_service {
    width: calc((100% - 5rem) / 2);
  }
  #service .contents .contentsInner .flex .cm_service:first-child {
    margin-top: 0;
  }
  #service .contents .contentsInner .flex .cm_service.x2 {
    width: 100%;
  }
  #service .contents .contentsInner .flex .cm_service.x2 .image {
    padding-top: 42.8571428571%;
  }
}
#service footer {
  margin-top: 0;
}

@media screen and (min-width: 1101px) {
  #serviceDetail header .bread {
    bottom: 3.5rem;
  }
}
@media screen and (max-width: 1100px) {
  #serviceDetail header .bread {
    bottom: 0.75rem;
    transform: translateY(-100%);
  }
}
#serviceDetail header .mainImage {
  background: transparent;
}
@media screen and (min-width: 1101px) {
  #serviceDetail header .mainImage {
    height: 19rem;
  }
}
@media screen and (max-width: 1100px) {
  #serviceDetail header .mainImage {
    height: 3.75rem;
  }
}
#serviceDetail .contents .ancestor {
  position: relative;
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .ancestor {
    margin-right: 15rem;
  }
  #serviceDetail .contents .ancestor::after {
    content: "";
    display: block;
    width: 30rem;
    height: 100%;
    background: rgba(76, 14, 44, 0.1);
    position: absolute;
    top: -5rem;
    right: -7.5rem;
    z-index: -1;
  }
}
#serviceDetail .contents .ancestor h1 {
  color: #4c0e2c;
  font-size: 2.75rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  white-space: nowrap;
  background: #fff;
  position: absolute;
  bottom: -1px;
  left: 0;
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .ancestor h1 {
    padding: 3.75rem 5rem 0 calc((100vw - 7.5rem - 55vw) / 2);
  }
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .ancestor h1 {
    font-size: 1.75rem;
    padding: 2.5rem 2.5rem 0 2rem;
  }
}
#serviceDetail .contents .ancestor .en {
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  font-size: 4.25rem;
  font-weight: normal;
  letter-spacing: 0.1em;
  white-space: nowrap;
  position: absolute;
  top: calc(-6rem - 1em);
  left: 5rem;
  transform-origin: left bottom;
  transform: rotate(90deg) skewX(-6deg);
  opacity: 0.2;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .ancestor .en {
    display: none;
  }
}
#serviceDetail .contents .ancestor .parent {
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  font-size: 4.25rem;
  letter-spacing: 0.1em;
  white-space: nowrap;
  position: absolute;
  top: -3.5rem;
  right: -2.5rem;
  transform-origin: left bottom;
  transform: translateY(-100%) skewX(-6deg);
  opacity: 0.2;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .ancestor .parent {
    display: none;
  }
}
#serviceDetail .contents .ancestor .image {
  width: 100%;
}
#serviceDetail .contents .ancestor .image div {
  width: 100%;
  padding-top: 38.7096774194%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .ancestor .image div {
    padding-top: 56.25%;
  }
}
#serviceDetail .contents .contentsInner.middle {
  background: rgba(76, 14, 44, 0.1);
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner.middle {
    width: calc((100% - 55vw) / 2 + 55vw);
    padding: 3.75rem 0;
    margin: 3.75rem 0 0 auto;
  }
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner.middle {
    width: 100%;
    padding: 3.75rem 2rem;
    margin: 3.75rem 0 0 auto;
  }
}
#serviceDetail .contents .contentsInner .read {
  font-size: 1.25rem;
  line-height: 2.25;
  margin: calc(3.75rem - 0.625em) 0 -0.625em;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .read {
    font-size: 1rem;
  }
}
#serviceDetail .contents .contentsInner .h2 {
  margin-top: 7.5rem;
}
#serviceDetail .contents .contentsInner .h2 .en {
  display: block;
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  font-size: 1.75rem;
  font-weight: normal;
  letter-spacing: 0.1em;
  white-space: nowrap;
  position: relative;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .h2 .en {
    font-size: 1.3125rem;
  }
}
#serviceDetail .contents .contentsInner .h2 .en::after {
  content: "";
  display: block;
  width: 5rem;
  height: 2px;
  background: #4c0e2c;
  position: absolute;
  bottom: -0.5em;
  left: 0;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .h2 .en::after {
    width: 3.75rem;
  }
}
#serviceDetail .contents .contentsInner .h2 .en .skew {
  display: block;
  transform: skewX(-6deg);
}
#serviceDetail .contents .contentsInner .h2 strong {
  display: block;
  color: #4c0e2c;
  font-size: 1.75rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: calc(2.5rem - 0.25em) 0 -0.25em;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .h2 strong {
    font-size: 1.3125rem;
  }
}
#serviceDetail .contents .contentsInner .h3 {
  color: #4c0e2c;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: calc(3.75rem - 0.25em) 0 -0.25em;
  position: relative;
}
#serviceDetail .contents .contentsInner .h3.first {
  margin-top: -0.25em;
}
#serviceDetail .contents .contentsInner .h3::after {
  content: "";
  display: block;
  width: 2.5rem;
  height: 1px;
  background: #4c0e2c;
  position: absolute;
  top: 50%;
  left: -1.25rem;
  transform: translateX(-100%) translateY(-50%);
}
#serviceDetail .contents .contentsInner .case {
  padding: 5rem;
  margin-top: 5rem;
  background: #ece6e8;
  position: relative;
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner .case {
    filter: drop-shadow(1.875rem 1.875rem 0 rgba(76, 14, 44, 0.2));
  }
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .case {
    padding: 2.5rem 2rem;
    filter: drop-shadow(0.9375rem 0.9375rem 0 rgba(76, 14, 44, 0.2));
  }
}
#serviceDetail .contents .contentsInner .case::after {
  content: "";
  display: block;
  width: 2px;
  height: calc(100% - 2.5rem);
  background: #fff;
  position: absolute;
  top: 0;
  left: 2.5rem;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .case::after {
    left: 1rem;
  }
}
#serviceDetail .contents .contentsInner .case h2 {
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 3rem;
  font-weight: normal;
  letter-spacing: 0.1em;
  white-space: nowrap;
  position: absolute;
  top: calc(1.25rem - 1em);
  left: calc(2.5rem + 0.125em);
  transform-origin: left bottom;
  transform: rotate(90deg) skewX(-6deg);
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .case h2 {
    left: calc(1rem + 0.125em);
  }
}
#serviceDetail .contents .contentsInner .case p {
  color: #4c0e2c;
  font-size: 1.75rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-align: center;
  text-indent: 0.1em;
  padding-bottom: 0.5em;
  margin: -0.25em 0;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .case p {
    font-size: 1.3125rem;
    margin: -0.25em 2rem;
  }
}
#serviceDetail .contents .contentsInner .case p span {
  display: inline-block;
  position: relative;
}
#serviceDetail .contents .contentsInner .case p span::after {
  content: "";
  display: block;
  width: calc(100% + 2.5rem);
  height: 1px;
  background: #4c0e2c;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .case p span::after {
    bottom: -0.25em;
  }
}
#serviceDetail .contents .contentsInner .case p strong {
  display: inline-block;
  position: relative;
}
#serviceDetail .contents .contentsInner .case p strong::after {
  content: "";
  display: block;
  width: 100%;
  height: 3px;
  background: #4c0e2c;
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
}
#serviceDetail .contents .contentsInner .case ul {
  margin-top: 3.75rem;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .case ul {
    margin-top: 2.5rem;
  }
}
#serviceDetail .contents .contentsInner .case ul li {
  font-size: 1.25rem;
  line-height: 1.75;
  padding: 0.125em 0 0.125em 2em;
  margin: calc(1.25rem - 0.375em) 0 -0.375em;
  background: url(../img/check.svg) left top 0.4375em/1.25em no-repeat;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .case ul li {
    font-size: 1rem;
  }
}
#serviceDetail .contents .contentsInner .case ul li:first-child {
  margin-top: -0.375em;
}
#serviceDetail .contents .contentsInner .point .box {
  margin: 3.75rem 0 0 0;
  position: relative;
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner .point .box {
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner .point .box .image {
    width: 150px;
  }
  #serviceDetail .contents .contentsInner .point .box .image img {
    width: 150px;
    height: 150px;
    -o-object-fit: contain;
       object-fit: contain;
  }
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .point .box .image img {
    width: 6.25rem;
    height: 6.25rem;
    margin: 0 auto;
    -o-object-fit: contain;
       object-fit: contain;
  }
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner .point .box dl {
    width: calc(100% - 150px);
    padding: 0 0 0 2.5rem;
  }
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .point .box dl {
    margin-top: 2.5rem;
  }
}
#serviceDetail .contents .contentsInner .point .box dl dt {
  color: #4c0e2c;
  font-size: 1.25rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.75;
  margin: -0.375em 0;
}
#serviceDetail .contents .contentsInner .point .box dl dd {
  margin-top: calc(1.25rem - 0.375em);
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner .cont {
    width: 55vw;
    padding-left: 3.75rem;
  }
}
#serviceDetail .contents .contentsInner .cont h4 {
  color: #4c0e2c;
  font-size: 1.25rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: calc(3.75rem - 0.25em) 0 -0.25em;
}
#serviceDetail .contents .contentsInner .cont h5 {
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: calc(2.5rem - 0.25em) 0 -0.25em;
}
#serviceDetail .contents .contentsInner .cont dl {
  padding: 2.5rem;
  margin-top: 1.25rem;
  background: #fff;
  border-left: 1px solid #4c0e2c;
}
#serviceDetail .contents .contentsInner .cont dl dt {
  color: #4c0e2c;
  font-size: 1.25rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: -0.25em 0;
}
#serviceDetail .contents .contentsInner .cont dl dd {
  margin: calc(1.875rem - 0.375em) 0 -0.375em;
}
#serviceDetail .contents .contentsInner .cont dl dd > *:first-child {
  margin-top: 0;
}
#serviceDetail .contents .contentsInner .cont dl dd ul, #serviceDetail .contents .contentsInner .cont dl dd ol {
  padding-left: 1.25rem;
  margin: calc(2.5rem - 0.5em) 0 0 0.25em;
  list-style: disc none;
}
#serviceDetail .contents .contentsInner .cont dl dd ul li, #serviceDetail .contents .contentsInner .cont dl dd ol li {
  line-height: 2;
  margin: calc(1.5rem - 0.5em) 0 -0.5em;
}
#serviceDetail .contents .contentsInner .cont dl dd ul li:first-child, #serviceDetail .contents .contentsInner .cont dl dd ol li:first-child {
  margin-top: -0.5em;
}
#serviceDetail .contents .contentsInner .cont dl dd ol {
  margin: 0 0 0 0.5em;
  list-style: decimal none;
}
#serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table.small th, #serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table.small td {
  font-size: 0.75rem;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table.responsive th, #serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table.responsive td {
    display: block;
    width: 100%;
    border: none;
    border-top: 1px solid #dfd6da;
  }
  #serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table.responsive th.blank, #serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table.responsive td.blank {
    display: none;
  }
  #serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table.responsive th.first, #serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table.responsive td.first {
    border-top: none;
  }
}
#serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table {
  border: 1px solid #dfd6da;
  border-collapse: collapse;
  margin-top: 0;
}
#serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table th, #serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table td {
  line-height: 1.75;
  padding: calc(1.25rem - 0.375em) 1.25rem;
  border: 1px solid #dfd6da;
}
#serviceDetail .contents .contentsInner .cont dl dd .wp-block-table table th {
  background: rgba(0, 0, 0, 0.05);
}
#serviceDetail .contents .contentsInner .cont dl dd .wp-block-table figcaption {
  display: block;
  color: rgba(0, 0, 0, 0.5);
  font-size: 0.75rem;
  font-style: normal;
  line-height: 1.5;
  margin: calc(1.25rem - 0.25em) 0 -0.25em;
}
#serviceDetail .contents .contentsInner .cont img {
  margin-top: 2.5rem;
}
#serviceDetail .contents .contentsInner .cont .post {
  margin-top: 2.5rem;
  padding: 2.5rem;
  background: rgba(76, 14, 44, 0.05);
}
#serviceDetail .contents .contentsInner .consluting {
  margin-top: 7.5rem;
  position: relative;
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner .consluting {
    padding-top: 15rem;
  }
}
#serviceDetail .contents .contentsInner .consluting .image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner .consluting .image {
    width: 53.2142857143rem;
    padding-top: 29.9330357143rem;
    position: absolute;
    top: 0;
    left: -8.5rem;
    z-index: -1;
  }
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .consluting .image {
    width: 100%;
    padding-top: 56.25%;
  }
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner .consluting .box {
    padding: 5rem 0 0 3.75rem;
    margin: 0 0 0 12.5rem;
    background: rgba(255, 255, 255, 0.9);
    position: relative;
  }
}
#serviceDetail .contents .contentsInner .consluting .box h3 {
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  font-size: 4.25rem;
  font-weight: normal;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 1101px) {
  #serviceDetail .contents .contentsInner .consluting .box h3 {
    position: absolute;
    top: 0;
    left: 17.5rem;
    transform: translateY(-75%) skewX(-6deg);
  }
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .consluting .box h3 {
    font-size: 2.65625rem;
    letter-spacing: 0.05em;
    position: absolute;
    top: calc(-2.5rem - 1em);
    right: 2.5rem;
    transform-origin: left bottom;
    transform: translateX(100%) rotate(90deg) translateY(50%) skewX(-6deg);
  }
}
#serviceDetail .contents .contentsInner .consluting .box dl dt {
  color: #4c0e2c;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.75;
  margin: calc(2.5rem - 0.375em) 0 -0.375em;
}
#serviceDetail .contents .contentsInner .flow {
  border-bottom: 1px solid #4c0e2c;
}
#serviceDetail .contents .contentsInner .flow .step {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2.5rem 0;
  border-top: 1px solid #4c0e2c;
  position: relative;
}
#serviceDetail .contents .contentsInner .flow .step::before, #serviceDetail .contents .contentsInner .flow .step::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 1rem 1rem 0 1rem;
  border-color: #4c0e2c transparent transparent transparent;
  position: absolute;
  top: 0;
  left: 5rem;
  z-index: 2;
  transform: translateX(-50%);
}
#serviceDetail .contents .contentsInner .flow .step::after {
  border-color: #fff transparent transparent transparent;
  top: -1.25px;
  z-index: 3;
}
#serviceDetail .contents .contentsInner .flow .step:first-child {
  margin-top: 3.75rem;
}
#serviceDetail .contents .contentsInner .flow .step:first-child::before, #serviceDetail .contents .contentsInner .flow .step:first-child::after {
  display: none;
}
#serviceDetail .contents .contentsInner .flow .step h3 {
  display: block;
  width: 10rem;
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  letter-spacing: 0.1em;
  text-align: center;
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .flow .step h3 {
    width: 6rem;
  }
}
#serviceDetail .contents .contentsInner .flow .step h3 span {
  display: block;
  font-size: 1.75rem;
  transform: skewX(-6deg);
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .flow .step h3 span {
    font-size: 1.3125rem;
  }
}
#serviceDetail .contents .contentsInner .flow .step h3 strong {
  display: block;
  font-size: 5rem;
  font-weight: normal;
  margin-top: 1rem;
  transform: skewX(-6deg);
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .flow .step h3 strong {
    font-size: 3.75rem;
  }
}
#serviceDetail .contents .contentsInner .flow .step dl {
  width: calc(100% - 10rem);
}
@media screen and (max-width: 1100px) {
  #serviceDetail .contents .contentsInner .flow .step dl {
    width: calc(100% - 6rem);
  }
}
#serviceDetail .contents .contentsInner .flow .step dl dt {
  color: #4c0e2c;
  font-size: 1.25rem;
  font-weight: bold;
}
@media screen and (min-width: 1101px) {
  #about header .mainImage {
    height: calc(0.3312741313 * (100vw - 7.5rem));
  }
}
@media screen and (max-width: 1100px) {
  #about header .mainImage {
    height: 56.25vw;
  }
}
@media screen and (max-width: 1100px) {
  #about header .bread {
    bottom: -2rem;
    transform: translateY(100%);
  }
}
#about .contents.middle {
  background: rgba(76, 14, 44, 0.1);
}
#about .contents.white {
  background: #fff;
}
#about .contents.white.arw::after {
  border-color: rgba(76, 14, 44, 0.1) transparent transparent transparent;
}
#about .contents.arw {
  padding: 5rem 0;
  position: relative;
}
#about .contents.arw::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 1.25em 2.5em 0 2.5em;
  border-color: #fff transparent transparent transparent;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
#about .contents .h2 {
  color: #4c0e2c;
  padding-left: 2.5rem;
  position: relative;
}
#about .contents .h2::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: rgba(76, 14, 44, 0.2);
  position: absolute;
  bottom: 0;
  left: 0;
}
#about .contents .h2 .en {
  display: block;
  font-family: "Oswald", sans-serif;
  font-weight: normal;
  letter-spacing: 0.2em;
  white-space: nowrap;
  padding-left: 0.5em;
  transform: skewX(-6deg);
}
@media screen and (max-width: 1100px) {
  #about .contents .h2 .en {
    font-size: 0.65625rem;
  }
}
#about .contents .h2 .ja {
  display: inline-block;
  font-size: 2rem;
  letter-spacing: 0.1em;
  text-align: center;
  text-indent: 0.1em;
  white-space: nowrap;
  padding-bottom: 0.5em;
  margin: 0.5rem 0 0;
  position: relative;
}
@media screen and (max-width: 1100px) {
  #about .contents .h2 .ja {
    font-size: 1.5rem;
  }
}
#about .contents .h2 .ja::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background: #4c0e2c;
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
}
#about .contents .message {
  margin-top: 7.5rem;
  position: relative;
}
@media screen and (min-width: 1101px) {
  #about .contents .message {
    padding-left: calc(50% - 2.5rem);
  }
}
@media screen and (min-width: 1101px) {
  #about .contents .message .h2 {
    text-align: right;
    padding-right: 2.5rem;
    margin-left: 2.5rem;
  }
}
#about .contents .message .name {
  margin: 2.5rem 0 0 5rem;
}
@media screen and (max-width: 1100px) {
  #about .contents .message .name {
    margin: 2.5rem 0 0;
  }
}
#about .contents .message .name span {
  display: block;
  color: #4c0e2c;
  font-weight: bold;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
#about .contents .message .name strong {
  display: block;
  color: #4c0e2c;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  white-space: nowrap;
  margin-top: 0.5em;
}
#about .contents .message .txt {
  line-height: 2;
}
@media screen and (min-width: 1101px) {
  #about .contents .message .txt {
    padding: calc(2.5rem - 0.5em) 0 calc(2.5rem - 0.5em) 2.5rem;
    background: #fff;
  }
}
@media screen and (max-width: 1100px) {
  #about .contents .message .txt {
    margin: calc(2.5rem - 0.5em) 0 -0.5em;
  }
}
#about .contents .message .cm_right {
  text-align: center;
}
#about .contents .message .cm_right .cm_btn, #about .contents .message .cm_right .post .wp-block-buttons .wp-block-button .wp-block-button__link, .post .wp-block-buttons .wp-block-button #about .contents .message .cm_right .wp-block-button__link {
  margin-top: 0;
}
#about .contents .message .image {
  width: 50%;
  height: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (min-width: 1101px) {
  #about .contents .message .image {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
  }
}
@media screen and (max-width: 1100px) {
  #about .contents .message .image {
    width: calc(100vw - 4rem);
    height: calc(100vw - 4rem);
    margin-top: 2.5rem;
  }
}
#about .contents .message .btn {
  text-align: center;
}
#about .contents .strength {
  position: relative;
}
@media screen and (min-width: 1101px) {
  #about .contents .strength {
    margin: 7.5rem 15rem 0 7.5rem;
  }
}
@media screen and (max-width: 1100px) {
  #about .contents .strength {
    width: calc(100% - 4rem);
    margin: 7.5rem auto 0;
  }
}
#about .contents .strength .box2 {
  padding: 3.25em 2rem 3.25em 0;
  background: rgba(76, 14, 44, 0.05);
}
@media screen and (max-width: 1100px) {
  #about .contents .strength .box2 {
    padding: 3em 2em;
  }
}
#about .contents .strength .box2:first-of-type {
  margin: 5em 0 0;
}
#about .contents .strength .box2:nth-child(odd) {
  background: rgba(76, 14, 44, 0.1);
}
@media screen and (min-width: 1101px) {
  #about .contents .strength .box2:nth-child(odd) {
    transform: translateX(4.375rem);
  }
}
#about .contents .strength .box2 dl {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 1100px) {
  #about .contents .strength .box2 dl {
    flex-direction: column;
  }
}
#about .contents .strength .box2 dl dt {
  width: 10rem;
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  font-size: 1.25rem;
  text-align: center;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  transform: skewX(-6deg);
}
#about .contents .strength .box2 dl dt span {
  display: block;
  font-size: 4rem;
  margin: 0.25rem 0 0;
}
#about .contents .strength .box2 dl dd {
  width: calc(100% - 10rem);
  line-height: 2;
  padding-left: 3.25em;
  border-left: 1px solid #4c0e2c;
}
@media screen and (max-width: 1100px) {
  #about .contents .strength .box2 dl dd {
    width: 100%;
    padding: 3em 0 0;
    margin: 3em 0 0;
    border-left: none;
    border-top: 1px solid #4c0e2c;
  }
}
#about .contents .strength .box2 dl dd strong {
  display: block;
  color: #4c0e2c;
  font-size: 1.53125rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: -0.25em 0 calc(2rem - 0.25em);
}
@media screen and (max-width: 1100px) {
  #about .contents .strength .box2 dl dd strong {
    text-align: center;
  }
}
#about .contents .strength .box {
  margin: 5rem auto 0;
  position: relative;
}
@media screen and (min-width: 1101px) {
  #about .contents .strength .box {
    padding-top: 7.5rem;
  }
}
#about .contents .strength .box:nth-child(even) .image {
  left: auto;
  right: 0;
}
@media screen and (min-width: 1101px) {
  #about .contents .strength .box:nth-child(even) dl {
    padding: 3.75rem 3.75rem 3.75rem 0;
    margin: 0 calc(50% - 5rem) 0 0;
  }
}
@media screen and (min-width: 1101px) {
  #about .contents .strength .box:nth-child(even) dl dt {
    text-align: right;
  }
}
#about .contents .strength .box .image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (min-width: 1101px) {
  #about .contents .strength .box .image {
    width: calc(50% + 5rem);
    height: calc(100% - 1px);
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
  }
}
@media screen and (max-width: 1100px) {
  #about .contents .strength .box .image {
    width: 100%;
    padding-top: 56.25%;
  }
}
@media screen and (min-width: 1101px) {
  #about .contents .strength .box dl {
    padding: 3.75rem 0 3.75rem 3.75rem;
    margin: 0 0 0 calc(50% - 2.5rem);
    background: #fff;
  }
}
@media screen and (max-width: 1100px) {
  #about .contents .strength .box dl {
    margin-top: 2.5rem;
  }
}
#about .contents .strength .box dl dt {
  color: #4c0e2c;
  font-size: 1.75rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.75;
  margin: -0.375em 0;
}
#about .contents .mission {
  padding: 5rem 0;
  margin: 12.5rem 0 0 0;
  position: relative;
}
#about .contents .mission.vision {
  margin-top: 0;
}
#about .contents .mission .h2 {
  padding-left: 0;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) translateY(-100%);
}
#about .contents .mission .h2::after {
  display: none;
}
@media screen and (max-width: 1100px) {
  #about .contents .mission dl {
    margin: 0 2rem;
  }
}
#about .contents .mission dl.middle {
  margin-top: 5rem;
}
#about .contents .mission dl dt {
  color: #4c0e2c;
  letter-spacing: 0.2em;
  text-align: center;
  text-indent: 0.2em;
  white-space: nowrap;
  transform: skewX(-6deg);
}
#about .contents .mission dl dt strong {
  font-size: 1.5rem;
}
#about .contents .mission dl dd {
  color: #4c0e2c;
  font-size: 1.25rem;
  letter-spacing: 0.2em;
  line-height: 2;
  text-align: center;
  text-indent: 0.2em;
  margin: calc(5rem - 0.5em) 0 -0.5em;
  position: relative;
}
@media screen and (max-width: 1100px) {
  #about .contents .mission dl dd {
    letter-spacing: 0.1em;
    font-size: 1rem;
  }
}
#about .contents .mission dl dd::after {
  content: "";
  display: block;
  width: 5rem;
  height: 2px;
  background: #4c0e2c;
  position: absolute;
  top: calc(-2.5rem + 0.5em);
  left: 50%;
  transform: translateX(-50%);
}
#about .contents .mission dl img {
  margin: 2.5rem auto 0;
}
#about .contents .h3 {
  color: #4c0e2c;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  text-align: center;
}
#about .contents .slide_loop .mask .image li {
  width: 32.1428571429vw;
  transition: 0.5s;
  transform: scale(1);
}
@media screen and (min-width: 1101px) {
  #about .contents .slide_loop .mask .image li.center {
    transform: scale(1.08);
  }
}
@media screen and (max-width: 1100px) {
  #about .contents .slide_loop .mask .image li {
    width: 78.125vw;
  }
}
#about .contents .slide_loop .mask .image li div {
  padding: 2.5rem 1.25rem;
}
#about .contents .slide_loop .mask .image li div .box {
  padding: 3.75rem 2.5rem;
  background: #fff;
  filter: drop-shadow(0 0 0.5rem rgba(0, 0, 0, 0.2));
}
@media screen and (max-width: 1100px) {
  #about .contents .slide_loop .mask .image li div .box {
    padding: 2.5rem 1.25rem;
  }
}
#about .contents .slide_loop .mask .image li div .box strong {
  display: block;
  text-align: center;
}
#about .contents .slide_loop .mask .image li div .box strong .en {
  display: block;
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  font-size: 1.5rem;
  letter-spacing: 0;
  white-space: nowrap;
}
@media screen and (max-width: 1100px) {
  #about .contents .slide_loop .mask .image li div .box strong .en {
    font-size: 1.5rem;
    letter-spacing: -0.025em;
  }
}
#about .contents .slide_loop .mask .image li div .box strong .en.narrow {
  letter-spacing: -0.025em;
}
#about .contents .slide_loop .mask .image li div .box strong .ja {
  display: block;
  color: #4c0e2c;
  font-size: 0.875rem;
  white-space: nowrap;
  margin-top: 1rem;
}
@media screen and (max-width: 1100px) {
  #about .contents .slide_loop .mask .image li div .box strong .ja {
    font-size: 1rem;
  }
}
#about .contents .slide_loop .mask .image li div .box .txt {
  display: block;
  line-height: 2;
  margin: 3.75rem 0 0;
  position: relative;
}
#about .contents .slide_loop .mask .image li div .box .txt::after {
  content: "";
  display: block;
  width: 3.75rem;
  height: 2px;
  background: #4c0e2c;
  position: absolute;
  top: -1.875rem;
  left: 50%;
  transform: translateX(-50%);
}
#about .contents .outline {
  padding-top: 7.5rem;
}
#about .contents .outline h3 {
  color: #4c0e2c;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-indent: 0.1em;
  margin: calc(5rem - 0.25em) 0 -0.25em;
}
#news .contents .contentsInner .catAndYear {
  display: flex;
  justify-content: space-between;
  margin: 3.75rem 0 0 auto;
  position: relative;
}
@media screen and (min-width: 1101px) {
  #news .contents .contentsInner .catAndYear {
    width: 25rem;
  }
}
@media screen and (max-width: 1100px) {
  #news .contents .contentsInner .catAndYear {
    margin: 6.25rem 0 0 auto;
  }
}
#news .contents .contentsInner .catAndYear h2 {
  display: block;
  color: #4c0e2c;
  letter-spacing: 0.1em;
  white-space: nowrap;
  padding: 0 2em 0.5em 1em;
  border-bottom: 2px solid #4c0e2c;
  position: relative;
}
#news .contents .contentsInner .catAndYear h2:hover + ul {
  opacity: 1;
  visibility: visible;
}
#news .contents .contentsInner .catAndYear h2::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.375em 0.25em 0 0.25em;
  border-color: #4c0e2c transparent transparent transparent;
  position: absolute;
  top: 0.5em;
  right: 1rem;
  transform: translateX(-50%) translateY(-50%);
}
#news .contents .contentsInner .catAndYear .cat, #news .contents .contentsInner .catAndYear .year {
  width: calc((100% - 1.25rem) / 2);
  position: relative;
}
#news .contents .contentsInner .catAndYear .cat ul, #news .contents .contentsInner .catAndYear .year ul {
  width: 100%;
  padding: 0.5em 0;
  background: #4c0e2c;
  position: absolute;
  top: 1.5rem;
  left: 0;
  z-index: 2;
  transition: 0.25s;
  opacity: 0;
  visibility: hidden;
}
#news .contents .contentsInner .catAndYear .cat ul:hover, #news .contents .contentsInner .catAndYear .year ul:hover {
  opacity: 1;
  visibility: visible;
}
#news .contents .contentsInner .catAndYear .cat ul li a, #news .contents .contentsInner .catAndYear .year ul li a {
  display: block;
  color: #fff;
  line-height: 1.5;
  text-align: center;
  padding: 0.5em 1em;
}
#newsDetail .contents .contentsInner .post {
  margin-top: 5rem;
}

#faq .contents {
  position: relative;
}
@media screen and (min-width: 1101px) {
  #faq .contents {
    padding-top: 5rem;
  }
}
@media screen and (max-width: 1100px) {
  #faq .contents {
    margin: 5rem 0 0 auto;
  }
}
@media screen and (min-width: 1101px) {
  #faq .contents .faqCat {
    width: calc(100% - 15rem);
    background: #fff;
    border-bottom: 4px solid #4c0e2c;
    position: absolute;
    top: 2.5rem;
    left: 7.5rem;
    z-index: 2;
  }
}
@media screen and (min-width: 1101px) {
  #faq .contents .faqCat.fixed {
    width: calc(100% - 22.5rem);
    position: fixed;
    top: 0;
    left: 15rem;
  }
}
#faq .contents .faqCat ul {
  display: flex;
  justify-content: center;
  background: rgba(76, 14, 44, 0.1);
}
@media screen and (max-width: 1100px) {
  #faq .contents .faqCat ul {
    flex-wrap: wrap;
  }
}
@media screen and (max-width: 1100px) {
  #faq .contents .faqCat ul li {
    width: 50%;
  }
}
#faq .contents .faqCat ul li.current a {
  color: #fff;
  background: #4c0e2c;
}
#faq .contents .faqCat ul li.current a::after {
  border-color: #fff transparent transparent transparent;
}
#faq .contents .faqCat ul li a {
  display: block;
  color: #4c0e2c;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  padding: 2rem 2rem 2rem 1rem;
  position: relative;
}
@media screen and (max-width: 1100px) {
  #faq .contents .faqCat ul li a {
    font-size: 0.75rem;
    padding: 1rem 2rem 1rem 1rem;
  }
}
#faq .contents .faqCat ul li a::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.375em 0.25em 0 0.25em;
  border-color: #4c0e2c transparent transparent transparent;
  position: absolute;
  top: 50%;
  right: 0.75rem;
  transform: translateY(-50%);
}
@media screen and (max-width: 1100px) {
  #faq .contents .faqCat ul li a::after {
    right: 1rem;
  }
}
#faq .contents .contentsInner .anchor {
  display: block;
  color: #4c0e2c;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  text-decoration: none;
}
@media screen and (min-width: 1101px) {
  #faq .contents .contentsInner .anchor {
    padding-top: 7.5rem;
  }
}
@media screen and (max-width: 1100px) {
  #faq .contents .contentsInner .anchor {
    margin-top: 5rem;
  }
}

#calendar .contents .contentsInner .month {
  margin-top: 3.75rem;
}
#calendar .contents .contentsInner .month p {
  color: #4c0e2c;
  font-size: 1.25rem;
  font-weight: bold;
  text-align: justify;
}
#calendar .contents .contentsInner .month p strong {
  font-family: "Oswald", sans-serif;
  font-size: 1.75rem;
}
@media screen and (max-width: 1100px) {
  #calendar .contents .contentsInner .overflow {
    position: relative;
  }
  #calendar .contents .contentsInner .overflow .mask {
    width: calc(100vw - 4rem);
    overflow-x: auto;
  }
  #calendar .contents .contentsInner .overflow::after {
    content: "scroll";
    display: block;
    font-size: 0.75rem;
    padding-right: 1rem;
    background: url(../img/arw.svg) center right/0.75em no-repeat;
    transform-origin: right top;
    position: absolute;
    bottom: -0.5em;
    right: 0;
    transform: translateY(100%) scale(0.75);
  }
}
#calendar .contents .contentsInner .monthBtn {
  display: flex;
  margin-top: 2.5rem;
  border-bottom: 4px solid #4c0e2c;
}
@media screen and (max-width: 1100px) {
  #calendar .contents .contentsInner .monthBtn {
    width: 60rem;
  }
}
#calendar .contents .contentsInner .monthBtn li {
  width: 8.3333333333%;
}
@media screen and (max-width: 1100px) {
  #calendar .contents .contentsInner .monthBtn li {
    width: 5rem;
  }
}
#calendar .contents .contentsInner .monthBtn li.current a {
  color: #fff;
  background: #4c0e2c;
}
#calendar .contents .contentsInner .monthBtn li.past {
  opacity: 0.5;
}
#calendar .contents .contentsInner .monthBtn li a {
  display: block;
  color: #4c0e2c;
  font-family: "Oswald", sans-serif;
  font-size: 1.75rem;
  text-align: center;
  text-decoration: none;
  padding: 1em 0;
}
#calendar .contents .contentsInner .post {
  margin-top: 3.75rem;
  display: none;
}
#calendar .contents .contentsInner .post.show {
  display: block;
}

#contact .contactBox {
  padding: 2.5rem 0 1.75rem 2.5rem;
  margin: 7.5em 0 5em;
  background: rgba(76, 14, 44, 0.05);
  border-bottom: 2px solid rgba(76, 14, 44, 0.2);
  position: relative;
}
@media screen and (max-width: 1100px) {
  #contact .contactBox {
    padding: 1.875rem 0 1.25rem;
    margin: 5rem 0;
    background: transparent;
    border-top: 2px solid rgba(76, 14, 44, 0.2);
  }
}
#contact .contactBox::after {
  content: "";
  display: block;
  width: 10.5rem;
  height: 14rem;
  background: url("../img/contact.png") bottom center/contain no-repeat;
  position: absolute;
  bottom: 0;
  right: 5.0649350649%;
}
@media screen and (max-width: 1100px) {
  #contact .contactBox::after {
    width: 25%;
    right: 0;
  }
}
#contact .contactBox .txt {
  color: #4c0e2c;
  font-weight: bold;
  line-height: 1.75;
  margin: -0.375em 0;
}
#contact .contactBox .tel {
  color: #4c0e2c;
  font-size: 0.875rem;
  font-weight: bold;
  line-height: 1.5;
  margin: calc(1.5rem - 0.25em) 0 -0.25em;
}
#contact .contactBox .tel a {
  display: flex;
  align-items: center;
  text-decoration: none;
}
@media screen and (max-width: 1100px) {
  #contact .contactBox .tel a {
    flex-direction: column;
    align-items: flex-start;
    padding: 0 0 0;
  }
}
#contact .contactBox .tel strong {
  font-family: "Oswald", sans-serif;
  font-size: 2.5rem;
  letter-spacing: 0;
  padding: 0 1rem 0 2.5rem;
  background: url("../img/tel.svg") top 60% left/auto 2.25rem no-repeat;
  transform: translateY(-0.25rem);
}
@media screen and (min-width: 1101px) and (max-width: 1600px) {
  #contact .contactBox .tel strong {
    font-size: 1.75rem;
    padding: 0 1rem 0 1.75rem;
    background: url("../img/tel.svg") top 60% left/auto 1.5rem no-repeat;
    transform: translateY(-0.175rem);
  }
}
#contact .contactBox .tel span {
  display: block;
  letter-spacing: 0;
}
@media screen and (max-width: 1100px) {
  #contact .contactBox .tel span {
    line-height: 1.5;
  }
}
#contact .contactBox .tel span span {
  display: inline;
  font-size: 0.75rem;
}

#profile .contents {
  width: calc(100% - 4em);
  max-width: 980px;
  margin: 7.5em auto 0;
}
@media screen and (max-width: 1100px) {
  #profile .contents {
    margin-top: 2.5em;
  }
}
#profile .contents .flexBox {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
@media screen and (max-width: 1100px) {
  #profile .contents .flexBox {
    flex-direction: column;
  }
}
#profile .contents .flexBox > div {
  width: calc((100% - 5em) / 2);
}
@media screen and (max-width: 1100px) {
  #profile .contents .flexBox > div {
    width: 100%;
  }
}
#profile .contents .photo {
  height: 610px;
  background: url("../img/_profile.jpg") center/cover no-repeat;
  position: relative;
}
@media screen and (max-width: 1100px) {
  #profile .contents .photo {
    margin: 3em 0 0;
    height: 120vw;
  }
}
#profile .contents .photo::after {
  width: 100%;
  height: 100%;
  content: "";
  background: #4c0e2c;
  position: absolute;
  top: 5rem;
  left: 2.5rem;
  z-index: -1;
}
@media screen and (max-width: 1100px) {
  #profile .contents .photo::after {
    top: 2em;
    left: 2rem;
  }
}
#profile .contents .name {
  color: #4c0e2c;
  font-size: 2rem;
  font-weight: bold;
  margin: 5rem 0 0;
}
#profile .contents .name .en {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 0.75rem;
  margin: 1em 0 0;
}
#profile .contents .name + p {
  font-weight: bold;
  line-height: 1.75;
  margin: calc(2.5rem - 0.375em) 0 -0.375em;
}
#profile .contents h2 {
  color: #4c0e2c;
  font-size: 1.25rem;
  padding: 0 0 0.25rem;
  border-bottom: 1px solid #4c0e2c;
  margin: 5rem 0 0;
}
#profile .contents h2 + p {
  line-height: 1.75;
  margin: calc(2.5rem - 0.375em) 0 -0.375em;
}
#profile .contents ul {
  margin: calc(2.5rem - 0.375em) 0 -0.375em;
}
#profile .contents ul li {
  display: table;
  line-height: 1.75;
}
#profile .contents ul li span {
  display: table-cell;
}
#profile .contents ul li span:first-child {
  width: 8.5rem;
  vertical-align: top;
}

#policy header .mainImage .ancestor .ja {
  font-size: 2rem;
  letter-spacing: 0;
}

/* motion-> */
/*
animation -- 固有名 -- 動作時間 -- ease -- 開始遅延 -- 繰り返し -- 正反
ex) animation: anime1 2s ease 0s infinite alternate;
*/
.wait {
  opacity: 0;
}

.play.fadeIn {
  animation: fadeIn 0.5s ease 0s 1 normal;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.play.slideUp {
  animation: slideUp 0.5s ease 0s 1 normal;
}

@keyframes slideUp {
  0% {
    opacity: 0;
    transform: translateY(1.5rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.play.slideLeft {
  animation: slideLeft 0.5s ease 0s 1 normal;
}

@media screen and (max-width: 1100px) {
  .play.slideLeft {
    animation: slideUp 0.5s ease 0s 1 normal;
  }
}
@keyframes slideLeft {
  0% {
    opacity: 0;
    transform: translateX(1.5rem);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
.play.slideRight {
  animation: slideRight 0.5s ease 0s 1 normal;
}

@keyframes slideRight {
  0% {
    opacity: 0;
    transform: translateX(-1.5rem);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@media screen and (min-width: 1101px) {
  .pcNone {
    display: none !important;
  }
  html {
    width: 100%;
    height: 100%;
    font-size: 17px;
  }
  body {
    width: 100%;
    height: 100%;
    font-size: 1rem;
  }
  img {
    display: block;
    height: auto;
  }
}
@media screen and (max-width: 1100px) {
  .spNone {
    display: none !important;
  }
  html {
    width: 100%;
    height: 100%;
    font-size: 14px;
  }
  body {
    width: 100%;
    height: 100%;
    font-size: 1rem;
    overflow-x: hidden;
  }
  img {
    display: block;
    max-width: 100%;
    width: auto;
  }
}/*# sourceMappingURL=layout.css.map */