@charset "UTF-8";
:root {
  --primary:#5c9fcf;
  --secondary:#8C6239;
  --light:#f5f5f0;
  --danger:#c1272d;
  --f-sans: 'Noto Sans JP', sans-serif;
  --f-serif:'Noto Serif JP', serif;
}

@media screen and (max-width: 767px) {
  html {
    font-size: 3.73vw;
  }
}

body {
  color: #333;
  font-family: "Helvetica Neue", Arial,Meirio, sans-serif;
}

@media screen and (max-width: 767px) {
  .container {
    padding-left: 30px;
    padding-right: 30px;
  }
}

.bg-light {
  background-color: var(--light) !important;
}

.text-danger {
  color: var(--danger) !important;
}

@media screen and (min-width: 768px) {
  a[href^=tel] {
    pointer-events: none;
    text-decoration: none;
    color: inherit;
  }
}
@media screen and (max-width: 767px) {
  a[href^=tel] {
    text-decoration: none;
    color: inherit;
  }
}

@media screen and (max-width: 767px) {
  .navbar-brand {
    width: 50vw;
  }
  .navbar-brand img {
    width: 100%;
  }
}

.navbar-toggler {
  padding: .25rem;
}

@media screen and (max-width: 991px) {
  .navbar-collapse .navbar-nav {
    flex-direction: row;
    justify-content: space-between;
  }
}
.navbar-collapse .nav-item {
  padding-right: 2rem;
}
@media screen and (max-width: 767px) {
  .navbar-collapse .nav-item {
    padding-right: .5rem;
  }
}
.navbar-collapse .nav-link {
  display: flex;
  align-items: center;
}
.navbar-collapse .nav-link:before {
  content: '';
  display: inline-block;
  margin-right: .5em;
  height: 1em;
  border-left: solid 2px var(--primary);
}
.navbar-collapse .nav-link:hover {
  color: var(--primary) !important;
}

.fv-lead {
  font-size: 1.125rem;
  letter-spacing: .9px;
  line-height: 2.5;
  padding-top: 3.6em;
  padding-bottom: 3.6em;
  font-family: var(--f-serif);
}
@media screen and (max-width: 767px) {
  .fv-lead {
    font-size: 3.73vw;
    text-align: left;
  }
}

.heading-jp-en {
  text-align: center;
  font-weight: bold;
  font-size: 2.25rem;
  font-family: var(--f-sans);
  margin-bottom: 1.5em;
  letter-spacing: 7px;
  padding-left: 7px;
}
@media screen and (max-width: 767px) {
  .heading-jp-en {
    margin-bottom: 1.3em;
  }
}

.heading-jp-en .en {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary);
  font-weight: normal;
  font-size: .5em;
  font-family: var(--f-serif);
  gap: 1.11em;
  margin-top: .3em;
  letter-spacing: 1px;
  padding-left: 1px;
}
.heading-jp-en .en:before, .heading-jp-en .en:after {
  content: '';
  display: inline-block;
  width: 2.22em;
  height: 1px;
  background: var(--primary);
}

.heading-dot {
  font-family: var(--f-serif);
  font-weight: bold;
  font-size: 1.63rem;
  color: var(--secondary);
  text-align: center;
  letter-spacing: 1px;
  padding-bottom: 1.27em;
  background: url("../../imgs/heading-dot.svg") center bottom 0em no-repeat;
  margin-bottom: 1.62em;
}
.heading-dot .s {
  font-size: 0.62em;
}
@media screen and (max-width: 767px) {
  .heading-dot {
    padding-bottom: .8em;
    margin-bottom: 1.2em;
  }
}

@media screen and (min-width: 992px) {
  .sctPhilosophy {
      background-color: #d8d7dc;
  }
}
@media screen and (max-width: 991px) {
  .sctPhilosophy {
      background-color: #d8d7dc;
  }
}
.sctPhilosophy .row {
  padding-top: 5rem;
}
.sctPhilosophy h3 {
  font-size: 1.5rem;
  font-family: var(--f-serif);
  margin-bottom: .6em;
}
@media screen and (max-width: 767px) {
  .sctPhilosophy h3 {
    line-height: 1.4;
  }
}
.sctPhilosophy .textArea {
	min-height: 282px;
}
.sctPhilosophy .text {
  line-height: 2;
}
.sctPhilosophy .sign {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  font-family: var(--f-serif);
  font-weight: bold;
  font-size: 1.5rem;
}
@media screen and (max-width: 991px) {
  .sctPhilosophy .sign {
    height: 40rem;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    padding-left: 6em;
  }
}
@media screen and (max-width: 767px) {
  .sctPhilosophy .sign {
    height: 8rem;
  }
}
.sctPhilosophy .sign .s {
  font-size: 1rem;
  display: inline-block;
  padding-right: 1em;
  padding-bottom: .1em;
}

.sctBusiness {
  padding: 6rem 0;
}
@media screen and (max-width: 767px) {
  .sctBusiness {
    padding-bottom: 13.33vw;
  }
}
.sctBusiness .businessList {
  margin-top: 40px;
  margin-bottom: 70px;
}
@media screen and (max-width: 767px) {
  .sctBusiness .businessList {
    margin-top: 30px;
  }
}
.sctBusiness .businessList .row {
  gap: 28px 0;
}
.sctBusiness .businessList .inner {
  height: 100%;
  border: solid 1px var(--primary);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1em 1.5em;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .sctBusiness .businessList .inner {
    padding: 1em;
  }
}
.sctBusiness .ukeireList {
  gap: 1.4rem 0;
}
.sctBusiness .ukeireList h4 {
  color: #fff;
  background: var(--primary);
  text-align: center;
  font-size: 1.25rem;
  line-height: 2;
  font-weight: bold;
  margin-bottom: 1px;
}
.sctBusiness .ukeireList img {
  width: 100%;
}
.sctBusiness .ukeireList p {
  margin-top: 10px;
  line-height: 1.5;
}
.sctBusiness .jisshu {
  margin-top: 70px;
}
.sctBusiness .jisshu h4 {
  font-size: 1.25rem;
  font-weight: bold;
}
.sctBusiness .jisshu .txtGrp {
  margin-bottom: 2em;
}
.sctBusiness .jisshu ol {
  padding-left: 1.5em;
}
.sctBusiness .jisshu th {
  text-align: center;
  font-weight: normal;
}
.sctBusiness .jisshu td {
  vertical-align: middle;
  text-align: center;
}
.sctBusiness .flow {
  padding-top: 80px;
}
.sctBusiness .flowImg {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 50px;
}
@media screen and (max-width: 767px) {
  .sctBusiness .flowImg {
    padding: 1rem 0;
  }
}
.sctBusiness .flowImg img {
  max-width: 100%;
}
.sctBusiness .unei {
  padding: 80px 0 0;
}
.sctBusiness .btn-pdf {
  display: flex;
  align-items: center;
  justify-content: center;
  border: solid 1px #cbcbcb;
  font-size: 1.13rem;
  color: inherit;
  height: 80px;
}
.sctBusiness .btn-pdf i {
  color: #c0272d;
  margin-right: .5em;
}

.sctAbout {
  padding: 80px 0 0;
}
.sctAbout table {
  margin-bottom: 0;
}
.sctAbout th {
  font-weight: normal;
}
.sctAbout .gmapWrap {
  margin-top: 50px;
  height: 400px;
  position: relative;
}
.sctAbout .gmapWrap iframe {
  position: absolute;
  left: 0;
  width: 100%;
  top: 0;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .sctAbout table, .sctAbout thead, .sctAbout tbody, .sctAbout tr, .sctAbout th, .sctAbout td {
    display: block;
  }
  .sctAbout th {
    background: #fff;
  }
  .sctAbout td {
    border-bottom: solid 1px #ccc;
  }
}

.sctInquiry {
  padding: 90px 0;
}

.formItems {
  display: grid;
  gap: 1rem;
  grid-template-columns: auto auto;
}
.formItems .mfp_element_text, .formItems .mfp_element_number, .formItems .mfp_element_select-one, .formItems .mfp_element_email, .formItems .mfp_element_tel, .formItems .mfp_element_textarea, .formItems .mfp_element_date, .formItems .mfp_element_password {
  box-shadow: none;
  border-radius: 0;
  margin: 0;
  max-width: inherit;
}
.formItems .need {
  position: relative;
  padding-right: 1.5em;
}
.formItems .need:after {
  content: '※';
  color: var(--danger);
  position: absolute;
  right: 0;
  top: 0;
}
.formItems textarea {
  width: 100% !important;
  height: 230px !important;
}
.formItems .btn-info {
  background: #0071BC;
  border-color: #0071BC;
  text-shadow: none !important;
}
.formItems .btn-info:hover {
  color: var(--primary) !important;
}
@media screen and (max-width: 767px) {
  .formItems {
    display: block;
  }
  .formItems .dd {
    margin-bottom: 1em;
  }
}

.ftrBlock1 {
  padding: 40px 0;
}

@media screen and (max-width: 767px) {
  .ftrLogo {
    width: 37.07vw;
    margin: 0 auto;
  }
}
.ftrLogo img {
  max-width: 100%;
}

.ftrName {
  font-family: var(--f-sans);
  font-size: 1.25rem;
  display: flex;
  margin-bottom: 1em;
  flex-wrap: wrap;
}
@media screen and (max-width: 991px) {
  .ftrName {
    flex-direction: column;
    margin-top: 1em;
  }
}
.ftrName .jp {
  display: inline-block;
  min-width: 12em;
	font-weight: bold;
}
.ftrName .en {
  font-size: 1rem;
}

.copyright {
  padding-top: 22px;
  padding-bottom: 48px;
	letter-spacing: 1.4px;
}

#pagetopBtn {
  position: fixed;
  right: 15px;
  bottom: 15px;
  z-index: 1;
  transition: opacity .5s;
}
#pagetopBtn.show {
  opacity: 1;
  transition: opacity .5s;
}

.fadeup {
  opacity: 0;
  transform: translateY(30%);
}
.fadeup.show {
  opacity: 1;
  transform: none;
  transition: all 1s .2s;
}
