@charset "UTF-8";
/* CSS Document */

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

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

body { line-height: 1; }
ol, ul { list-style: none; }
table { border-collapse: collapse; border-spacing: 0; }

* { margin: 0; padding: 0; }
img { max-width: 100%; width: auto; height: auto; vertical-align: top; image-rendering: -webkit-optimize-contrast; }

body { color: #333; font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif"; font-weight: 400; font-style: normal; -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; text-align: justify; text-justify: inter-ideograph; }

a { text-decoration: none; color: #36425f; }

#Container { position: relative; overflow: hidden; }
#Contents { background: #FFF; }
#Contents .inner { max-width: 1000px; width: 95%; margin: 0 auto; }

.sp-show,.tb-show { display: none; }

/*-----------------------------------------------------
Header
----------------------------------------------------- */
header { position: fixed; top: 0; left: 0; width: 100%; background: rgba(255,255,255,0.86); z-index: 10; height: 65px; display: flex; justify-content: space-between; align-items: center; }
header h1 { width: 180px; margin-left: 2%; }
header .contact a { display: flex; justify-content: center; align-items: center; width: 65px; height: 65px; background: #000434; }
header .contact img { width: 26px; height: auto; }

/*-----------------------------------------------------
Footer
----------------------------------------------------- */
footer { color: #FFF; background: #000434; position: relative; z-index: 2; }
footer::after { content: ""; position: absolute; left: 0; bottom: 0; display: block; width: 100%; height: 40px; background: #FFF; }
footer .inner { display: flex; justify-content: space-around; align-items: flex-start; flex-wrap: wrap; max-width: 1150px; width: 95%; height: 360px; margin: 0 auto; }

footer .office:first-child { padding-left: calc(145px + 5%); position: relative; margin: auto auto 0 0;}
footer .office:first-child::before { content: ""; display: inline-block; width: 145px; height: 60px; background: url("../images/foot_logo.svg"); position: absolute; left: 0; }
footer .office:not(:first-child) { text-align: left; min-width: 25%; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; align-self: flex-start; margin-top: 100px; }
footer .office p { font-size: 0.938em; }
footer .office address { font-size: 0.688em; line-height: 1.818em; margin-top: 5px; }

footer .tel { font-size: 0.750em; width: 345px; text-align: center; margin-top: auto; margin-bottom: 0; }
footer .tel img { margin-bottom: 10px; }

footer .copy { position: relative; z-index: 1; font-size: 0.625em; color: #000434; text-align: center; height: 40px; display: flex; justify-content: center; align-items: center; }

/* 2025/11~ */
footer .office p {
    font-size: 0.8em;
    font-weight:bold;
}
footer .office:not(:first-child) {
    min-width: 19%;
}
footer .tel {
    padding-left: 10px;
    padding-right: 10px;
}

/*-----------------------------------------------------
Contents
----------------------------------------------------- */
#Mainvisual { width: 100%; padding-top: 51.3409%; margin: 0 auto; background: #FFF; overflow: hidden; position: relative; z-index: 3; }
#Mainvisual::before { content: ""; display: block; max-width: 100%; width: 100%; height: calc(100% - 65px); background: url("../images/bg_main_object.png") no-repeat top -25px center; background-size: 145% auto; position: absolute; left: 0; right: 0; /*top: 0;*/ bottom: 0; z-index: 1; margin: 0 auto; }
#Mainvisual .inner { max-width: 100%; width: 100%; position: fixed; top: 0; left: 0; right: 0; }
#Mainvisual.is-hide { z-index: -1; }
#Mainvisual.is-hide::before { z-index: -1; }

#Lead { text-align: center; padding: 55px 0 45px 0; background: #FFF; position: relative; z-index: 3; }
#Lead h2 { font-size: 1.500em; line-height: 1.583em; font-weight: bold; }
#Lead p { font-size: 0.875em; line-height: 2.357em; margin-top: 30px; }

#Topics { background: #eeeeef; padding: 35px 0 45px 0; position: relative; z-index: 3; }
#Topics .inner { max-width: 750px; display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; }
#Topics h2 { width: 137px; }
#Topics dl { font-size: 0.750em; line-height: 1.5em; width: calc(100% - 185px); display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; }
#Topics dl dt { width: 7em; }
#Topics dl dd { width: calc(100% - 7em); }
#Topics dl dd + dt,#Topics dl dd + dt +dd { margin-top: 15px; }

#Service { background: #000434; padding: 120px 0 95px 0; position: relative; z-index: 3; }
#Service .inner { max-width: 1165px; }
#Service h2 { font-size: 1.375em; color: #FFF; font-weight: bold; text-align: center; }
.flexcol3 { margin-top: 40px; display: flex; justify-content: space-between; flex-wrap: wrap; }
.flexcol3 .column { color: #FFF; max-width: 326px; width: 31%; }
#Service h3 { font-size: 1.500em; font-weight: bold; line-height: 1.167em; text-align: center; margin-top: 25px; }
#Service h3 strong,#Philosophy h3 strong,#Philosophy h2:first-letter,#Promise h2:first-letter,#History h2:first-letter,#Message h2:first-letter,#About h2:first-letter,#About .office_en:first-letter { color: #d6c100; }
#Service p { font-size: 0.875em; line-height: 2.143em; margin-top: 20px; }

#Philosophy { position: relative; padding: 100px 0 100px 0; z-index: 2; margin-top: -2px; }
#Philosophy .video { width: 100%; position: fixed; z-index: -1; top: 0; right:0; left:0; bottom:0; overflow: hidden; }
#Philosophy .video.is-hide { position: absolute; }
#Philosophy #video { position: absolute; z-index: -1; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 187.77777778vh; 
height: 56.25vw; min-height: 100%; min-width: 100%; }
#Philosophy .inner { color: #FFF; background: rgba(0,0,0,0.68); padding: 70px 0; }
#Philosophy h2,#Promise h2,#History h2,#Message h2,#About h2 { margin: 0 auto; width: 157px; }
#Philosophy h3,#Promise h3,#History h3,#Message h3,#About h3 { font-size: 1.625em; font-weight: bold; text-align: center; line-height: 1.692em; margin-top: 60px; }
#Philosophy p { font-size: 0.938em; text-align: center; line-height: 2.200em; margin-top: 40px; }
#Philosophy p + p { font-size: 0.813rem; margin-top: 30px; }

#movie{ position:relative; z-index:2; background:#fff; padding-top:90px; }
#movie .movie_inner{ width:min(560px,80%); margin:0 auto; display:block; position:relative; }
#movie .movie_inner iframe{ width:100%; }
/*#movie .movie_inner::after{ content:""; position:absolute; top:0; left:0; bottom:0; right:0; background:url(../images/mv_thumb.png) no-repeat center / 100% auto; }*/
#movie h2{ font-size:13px; font-weight:700; text-align:center; margin-top:20px; letter-spacing:1px; }
#movie .flex{
	gap:min(80px,5%);
	display: flex;
	justify-content: center;
}
#movie .flex > div{
	width:560px;
	max-width: 42.5%;
}
#movie .flex > div .movie_inner{width:100%;}
@media screen and (max-width:960px){
	#movie .flex{
		gap:40px;
		flex-direction: column;
		align-items: center;
	}
	#movie .flex > div{max-width:80%;}
}

#Promise,#History,#Message,#About { padding-top: 100px; position: relative; z-index: 2; background: #FFF; }
#Promise h2,#History h2,#Message h2,#About h2 { width: 113px; }
#Promise h3,#History h3,#About h3,#Message h3  { margin-top: 40px; }
#Promise h3 + p { text-align:center; margin-top: 15px; }
#Promise .sttl { color: #000434; font-size: 1.750em; font-weight: bold; line-height: 1.464em; text-align:center; margin-top: 70px }
#Promise dl { margin-top: 100px; }
#Promise dl dt { color: #000434; position: relative; font-size: 2.313em; padding-left: 100px; }
#Promise dl dd + dt { margin-top: 60px; }
#Promise dl dt::before { content: ""; position: absolute; top: 0; left: 0; width: 100px; height: 60px; background-image: url("../images/ic_no01.svg"); background-repeat: no-repeat; background-position: left top; background-size: 63px auto; }
#Promise dl dt:nth-of-type(2)::before { background-image: url("../images/ic_no02.svg"); }
#Promise dl dt:nth-of-type(3)::before { background-image: url("../images/ic_no03.svg"); }
#Promise dl dt:nth-of-type(4)::before { background-image: url("../images/ic_no04.svg"); }
#Promise dl dt:nth-of-type(5)::before { background-image: url("../images/ic_no05.svg"); }
#Promise dl dd { line-height: 2.250em; margin: 15px 0 0 100px; padding-top: 30px; border-top: 3px solid #d6c100; }
.flexcol2 { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; }
#Promise .flexcol2 { margin-top: 60px; }
#Promise .txt {  max-width: 525px; width: 52.5%; }
#Promise p { font-size: 1.000em; line-height: 2.0em; margin-top: 40px; }
#Promise .txt p { text-align: left; margin-top: 0; color: #231815; }
#Promise .txt .sttl { font-size: 1.750rem; line-height: 1.464em; }
#Promise .txt p + p { max-width: 405px; width: 95%; margin: 30px 0; }
#Promise .img { max-width: 475px; width: 47.5%; }


#kpi { background: #eeeeef; margin-top: 120px; padding-bottom: 45px; }
#kpi h4 { font-size: 1.250em; color: #FFF; font-weight: bold; background: #d6c100; height: 54px; display: flex; align-items: center; justify-content: center; }
#kpi p { margin-top: 25px; text-align: center; }
#kpi ul { line-height: 2.000em; padding: 0 65px; display: flex; justify-content: space-between; flex-wrap: wrap; }
#kpi ul li { width: 48%; margin-top: 35px; display: flex; justify-content: flex-start; }
#kpi ul li strong { font-weight: bold; }
#kpi ul li div { margin-left: 45px; }
#kpi ul li div span{ display:block;font-size:13px;font-weight:700;line-height:20px;margin-top:15px; }
#kpi ul li:last-child { width: 100%; }

#History h2,#Message h2 { width: 112px; }
#History dl { font-size: 0.875em; line-height: 2.071em; display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; margin-top: 40px; }
#History dl dt { width: 150px; }
#History dl dd { width: calc(100% - 150px); }
.open-btn { display: flex; justify-content: center; align-items: center; width: 100%; height: 70px; background: #FFF; }
.open-btn::before { content: ""; width: 34px; height: 27px; background: url("../images/ic_arrow.png") no-repeat; background-size: 100% auto; }

#Message .inner { display: flex; justify-content: space-between; flex-wrap: wrap; position: relative; }
#Message .img01 { max-width: 450px; width: 45%; margin-top: 70px; }
#Message .img01 + div { position: absolute; bottom: -30%; max-width: 450px; width: 45%; }
#Message .img01 .name { margin-top: 80px; }
#Message .txt01 { max-width: 470px; width: 47%; margin-top: 70px; display: flex; flex-direction: column; justify-content: center; }
#Message .txt01 h4 { font-size: 1.438em; font-weight: bold; line-height: 1.870em; }
#Message .txt01 p { font-size: 0.938em; line-height: 2.467em; margin-top: 50px; }
#Message .img02 { max-width: 347px; width: 34.7%; margin-top: 70px; }
#Message .txt02 { max-width: 615px; width: 61.5%; margin-top: 70px; display: flex; flex-direction: column; }
#Message .name { font-size: 1.500rem; font-weight: bold; }
#Message .name span { display: inline-block; margin-left: 15px; max-width: 217px; width: 100%; vertical-align: middle; }
#Message .name span.wl { display: inline-block; margin-left: 15px; max-width: 389px; width: 60%; vertical-align: middle; }
#Message .post { font-size: 0.813em; line-height: 1.769em; margin: 15px 0; }
#Message .profile { font-size: 0.813em; line-height: 1.769em; margin: auto 0 0 0; }
#Staff { background: #eeeeef; margin-top: 140px; padding-top: 1px; padding-bottom: 75px; }
#Staff .inner { margin-top: 95px!important; }
#Staff .txt { max-width: 590px; width: 59%; display: flex; flex-direction: column; justify-content: flex-start; }
#Staff .txt h4 { font-size: 1.125em; font-weight: bold; line-height: 2.056em; padding-bottom: 5px; border-bottom: 1px solid #231815; }
#Message .txt h4 + p { font-size: 0.938em; line-height: 2.267em; margin-top: 30px; }
#Message .txt .name { margin-top: 60px; }
#Message .txt .post { margin: 15px 0 0 0; }
#Staff .img { max-width: 290px; width: 29%; }
#Staff .logo { width: 120px; }
#Staff .logo + .txt { max-width: calc(100% - 160px); width: calc(100% - 160px); }
#Staff .logo + .txt p { font-size: 0.813rem; line-height: 1.769em; margin-top: 20px; }
#Staff .logo + .txt .sttl { font-size: 1.188rem; color: #0b3187; margin-top: 0; font-weight: bold; }
#Staff .logo + .txt .sttl + p { margin-top: 10px; }
@media screen and (min-width:641px){
	#Staff .inner.pc_kougo:nth-of-type(2n){flex-direction: row-reverse;}
}
#About h2 { width: 87px; }
#About dl { line-height: 2.467em; max-width: 730px; width: 100%; display: flex; justify-content: space-between; flex-wrap: wrap; margin: 75px auto 0 auto; }
#About dl dt { width: 180px; font-size: 0.938em; }
#About dl dd { width: calc(100% - 180px); font-size: 0.938em; }
#About .flexcol2 { align-items: stretch; margin-top: 90px; } 
#About .column { display: flex; justify-content: space-between; align-items: center; max-width: 490px; width: 49%; min-height: 225px; background: #eeeeef; margin-top: 20px; padding: 25px; box-sizing: border-box; }
#About .office_en { width: 135px; margin: 0 0 0 3%; }
#About .office_en img { width: 107px; height: auto; }
#About .txt { width: calc(93% - 140px); }
#About .office { font-size: 1.250em; font-weight: bold; border-bottom: 1px solid #000; padding-bottom: 10px; }
#About address { font-size: 0.875em; line-height: 1.714em; margin-top: 15px; }
#About .mtop { margin-top: 45px; }

hr { max-width: 1125px; width: 95%; height: 1px; margin: 80px auto 0 auto; background: #231815; border: none; }

#Contact { background: #FFF; position: relative; z-index: 2; }
#Contact .inner,#Thanks { max-width: 800px!important; padding: 70px 0 80px 0; }
#Contact h2,#Thanks h2 { font-size: 1.438em; font-weight: bold; text-align: center; color: #000434; }
#Contact h2 + p { font-size: 0.750em; line-height: 1.667em; margin-top: 60px; }
#Contact h3 { color: #333; font-size: 0.875em; font-weight: bold; text-align: center; margin-top: 50px; }
#Contact .policy { font-size: 0.875em; line-height: 1.571em; background: #ebebeb; height: 180px; overflow-y: scroll; margin-top: 15px; padding: 25px 30px; border-bottom: 5px solid #ebebeb; border-top: 5px solid #ebebeb; box-sizing: border-box; }
#Contact .policy h4 { margin-top: 30px; }
#Contact .policy p { margin-top: 30px; }
#Contact .policy p:first-child { margin-top: 0; }
#Contact .policy h4 + p { margin-top: 5px; }
#Contact .policy ol { list-style: decimal; margin-top: 30px; list-style-position: inside; }
#Contact form p { font-size: 0.938em; margin-top: 20px; display: flex; }
#Contact form p::after { content: "必須"; font-size: 0.750rem; color: #FFF; background: #d6c100; width: 40px; height: 17px; border-radius: 2px; display: flex; justify-content: center; align-items: center; margin-left: 10px; }
#Contact dl { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; margin-top: 60px; border-bottom: 1px dashed #AAA; }
#Contact dl dt { display: flex; align-items: center; border-top: 1px dashed #AAA; width: 190px; min-height: 88px; }
#Contact dl dt::before { content: "任意"; font-size: 0.750rem; color: #FFF; background: #adadae; width: 40px; height: 17px; border-radius: 2px; display: flex; justify-content: center; align-items: center; margin-right: 10px; }
#Contact dl dt.required::before { content: "必須"; background: #d6c100; }
#Contact dl dd { display: flex; align-items: center; flex-wrap: wrap; border-top: 1px dashed #AAA; width: calc(100% - 190px); min-height: 88px; padding: 20px 0; box-sizing: border-box; }
#Contact dl dd.contact { justify-content: space-between; }
#Contact dl dd input[type="text"] { font-size: 0.875rem; -webkit-appearance: none; border: none; background: #ebebeb; width: 100%; height: 40px; padding: 5px; box-sizing: border-box; border-radius: 0; }
#Contact dl dd input[type="text"].zip { width: 95px; }
#Contact dl dd input[type="text"] + input[type="text"] { margin-top: 10px; }
#Contact dl dd textarea { font-size: 0.875rem; -webkit-appearance: none; border: none; background: #ebebeb; width: 100%; padding: 5px; box-sizing: border-box; border-radius: 0; }
#Contact dl dd span { margin: 0 10px; }
.submit { margin-top: 50px; text-align: center; }
.submit input { color: #FFF; -webkit-appearance: none; background: #d6c100; font-size: 0.875rem; border: none; width: 295px; height: 50px; border-radius: 3px; }
#Contact .confirm dt::before { display: none; }

#Contact input[type="checkbox"] { display: none; }
label { cursor: pointer; padding-left: 30px; position: relative; }
label::before,
label::after { content: ""; display: block;  position: absolute; }

label::before { background-color: #d8d9d9; border-radius: 0%; border: none; width: 20px; height: 20px; transform: translateY(-50%); top: 50%; left: 5px; }
label::after {border-bottom: 2px solid #FFF; border-left: 2px solid #FFF; opacity: 0; height: 5px; width: 10px; transform: rotate(-45deg); top: 3px; left: 9px; }
input:checked + label::after { opacity: 1; }

#Tel h2 { font-size: 1.250em; color: #FFF; margin: 135px auto 0 auto; max-width: 420px; width: 100%; height: 35px; background: #000434; border-radius: 3px; display: flex; justify-content: center; align-items: center; }
#Contact #Tel p,#Thanks #Tel p { font-size: 0.938rem; text-align: center; max-width: 424px; width: 100%; margin: 25px auto 0 auto; }
#Contact #Tel img,#Thanks #Tel img { margin-bottom: 20px; }

#Thanks { padding-top: 140px; }
#Thanks p { font-size: 0.875rem; line-height: 2.800em; text-align: center; }
.box { border-top: 1px dashed #AAA; border-bottom: 1px dashed #AAA; margin-top: 60px; padding: 100px 0; }
.top-btn { margin-top: 60px; }
.top-btn a { display: flex; align-items: center; justify-content: center; width: 295px; height: 50px; border: 1px solid #0a132e; color: #0a132e; border-radius: 3px; margin: 0 auto; }

.more-btn { display: flex; justify-content: center; align-items: center; position: absolute; width: 100%; height: 70px; top: 270px; left: 0; background: #ebebeb; }
.more-btn::before { content: ""; width: 34px; height: 27px; background: url("../images/ic_arrow.png") no-repeat; background-size: 100% auto; }
#Contact .policy.slide-down { height: auto; overflow: visible; padding-bottom: 65px; }
.more-btn.close { top: auto; bottom: 0; }
.more-btn.close::before { transform: rotate(180deg); }

.move { transform: matrix(1, 0, 0, 1, 0, 150); transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1); opacity: 0; }
.move.active { transform: matrix(1, 0, 0, 1, 0, 0); opacity: 1; }
.imgmove { transform: matrix(1, 0, 0, 1, 0, -50); transition: 1.5s cubic-bezier(0.22, 1, 0.36, 1); opacity: 0; }
.imgmove.active { transform: matrix(1, 0, 0, 1, 0, 0); opacity: 1; }
.flexcol3 .column:nth-child(2) { transition-delay: .3s; }
.flexcol3 .column:nth-child(3) { transition-delay: .6s; }


@media screen and (max-width:960px) {
  .tb-show { display: block; }
  .tb-hide { display: none; }
  
/*-----------------------------------------------------
Footer
----------------------------------------------------- */
  footer .inner { height: auto; padding-bottom: 50px; max-width: 600px; }

  footer .office:first-child { padding-left: 0; width: 260px; margin: 100px auto 0 auto; }
  footer .office:first-child::before { display: none; }
  footer .office:not(:first-child) { width: 260px; margin: 100px auto 0 auto; }
  footer .office:nth-child(4),footer .office:nth-child(5),footer .office:nth-child(6),footer .office:nth-child(7) { margin-top: 50px; }

  footer .tel { width: 100%; order: -1; }
  footer .tel::before { content: ""; display: block; width: 145px; height: 60px; background: url("../images/foot_logo.svg"); margin: 50px auto 25px auto; }
  footer .tel img { width: 345px; }
  
/*-----------------------------------------------------
Contents
----------------------------------------------------- */
  .flexcol3 { max-width: 700px; width: 100%; margin: 0 auto;  }
  .flexcol3 .column { max-width: 326px; width: 48%; margin-top: 40px; }
  .flexcol3 .column:nth-child(3) { transition-delay: 0; }
  
  #Promise .flexcol2 { align-items: flex-end; }
  #Promise .txt p { white-space: nowrap; }
  #Promise .txt p + p { white-space: normal; }
  
  #kpi ul li { width: 45%; flex-wrap: wrap; }
  #kpi ul li strong { width: 100%; }
  #kpi ul li div { margin-left: 0; }
  
  #Message .img01 { width: 35%; }
  #Message .img01 + div { position: relative; width: 60%; margin-top: 70px; display: flex; flex-direction: column; justify-content: flex-end; }
  #Message .txt01 { max-width: initial; width: 100%; order: 3; margin-top: 50px; }
  #Message .txt01 p { margin-top: 30px; }
  #Staff .txt { width: 65%; }
  
  #About .column { min-height: 225px; background: #eeeeef; margin-top: 20px; padding: 3%; box-sizing: border-box; }
  #About .office_en { font-size: 0.875rem; width: 90px; margin: 0; }
  #About .txt { width: calc(100% - 105px); }
  #Contact dl dd.contact { justify-content: flex-start; }
  #Contact dl dd.contact label { margin-right: 20px; }
  
}

@media screen and (max-width:640px) {
  #Contents { margin-top: 55px; }
  #Contents .inner { width: 90%; }
  .sp-show { display: block; }
  .sp-hide { display: none; }
  
/*-----------------------------------------------------
Header
----------------------------------------------------- */
  header { height: 55px; }
  header h1 { width: 153px; margin-left: 2.5%; }
  header .contact a { width: 55px; height: 55px; }
  header .contact img { width: 22px; }

/*-----------------------------------------------------
Footer
----------------------------------------------------- */
  footer::after { height: 55px; }
  footer .inner { flex-direction: column; align-items: center; height: auto; padding-bottom: 40px; }

  footer .tel::before { content: ""; display: block; width: 111px; height: 46px; }
  footer .office:first-child,footer .office:not(:first-child) { width: 240px; margin-top: 25px; }
  footer .office p { font-size: 0.875rem; }
  footer .office address { font-size: 0.625rem; }

  footer .tel { font-size: 0.563rem; width: 210px; }
  footer .tel::before { margin: 25px auto 20px auto; }
  
  footer .copy { height: 55px; }

/*-----------------------------------------------------
Contents
----------------------------------------------------- */
  #Mainvisual { padding-top: 86.2%; }
  #Mainvisual .inner { width: 100%; margin-top: 55px; }
  #Mainvisual::before { background: url("../images/bg_main_object_sp.png") no-repeat top -5px center; background-size: 145% auto; top: 0; height: 100%; }
  
  #Lead { padding: 35px 0; }
  #Lead h2 { font-size: 1.000rem; }
  #Lead p { font-size: 0.813rem; line-height: 1.846em; text-align: left; margin-top: 20px; }
  #Lead p br { display: none; }
  
  #Topics { background: #eeeeef; padding: 25px 0; }
  #Topics h2 { width: 75px; margin: 0 auto; }
  #Topics dl { font-size: 0.688rem; width: 100%; margin-top: 15px; }
  #Topics dl dd + dt,#Topics dl dd + dt +dd { margin-top: 5px; }

  #Service { padding: 35px 0; }
  #Service h2 { font-size: 1.063rem; line-height: 1.706em; }
  .flexcol3 .column { width: 100%; margin: 30px auto 0 auto; }
  .flexcol3 .column:nth-child(2) { transition-delay: 0; }
  #Service h3 { margin-top: 30px; }
  #Service p { font-size: 0.813rem; line-height: 1.846em; margin-top: 10px; }
  
  #Philosophy { padding: 50px 0; margin-top: -1px; }
  #Philosophy #video { width: 277.77777778vh; }
  #Philosophy .inner { width: 80%; padding: 25px 20px 40px 20px; box-sizing: border-box; }
  #Philosophy h2 { width: 108px; }
  #Philosophy h3 { font-size: 1.000rem; line-height: 1.692em; margin-top: 30px; }
  #Philosophy p,#Promise p { font-size: 0.813rem; text-align: left; line-height: 1.846em; margin-top: 20px; }
  #Philosophy p br { display: none; }
  #Philosophy p + p { margin-top: 30px; }

  #movie h2{ font-size:10px; margin-top:19px; }
  
  #Promise,#About { padding-top: 35px; }
  #History,#Message { padding-top: 80px; }
  #Promise h2,#History h2,#Message h2,#About h2 { width: 76px; }
  #Promise h3,#History h3,#Message h3,#About h3 { font-size: 1.125rem; margin-top: 20px; }
  #Promise p { font-size: 0.688rem; line-height: 1.818em; margin-top: 15px; }
  #Promise .sttl { font-size: 0.875rem; text-align: center; line-height: 1.500em; margin-top: 30px }
  #Promise dl { margin-top: 30px; }
  #Promise dl dt { font-size: 1.125rem; line-height: 1.278em; padding-left: 60px; min-height: 40px; }
  #Promise dl dd + dt { margin-top: 35px; }
  #Promise dl dt::before { width: 60px; background-size: 47px auto; }
  #Promise dl dd { font-size: 0.813rem; line-height: 1.846em; margin: 10px 0 0 0; padding-top: 15px; border-top: none; position: relative; }
  #Promise dl dd::before { content: ""; display: block; width: calc(100% - 60px); height: 1px; background: #d6c100; position: absolute; top: 0; right: 0; }
  #Promise .flexcol2 { margin-top: 50px; }
  #Promise .txt { max-width: initial; width: 100%; }
  #Promise .txt p { font-size: 1.125rem; white-space: normal; }
  #Promise .txt .sttl { font-size: 1.063rem; }
  #Promise .txt p + p { font-size: 0.813rem; margin-top: 20px; margin-bottom: 0; max-width: initial; width: 100%; }
  #Promise .img { width: 100%; margin: 30px auto 0 auto; }
  
  #kpi { margin-top: 55px; padding-bottom: 25px; }
  #kpi h4 { font-size: 0.938rem; text-align: center; line-height: 1.533em; height: 68px; }
  #kpi p { font-size: 0.813rem; text-align: center; margin-top: 15px; }
  #kpi ul { font-size: 0.875rem; padding: 0 7%; }
  #kpi ul li { width: 100%; margin-top: 20px; }
/*#kpi ul li strong { font-weight: bold; }
#kpi ul li div { margin-left: 45px; }
#kpi ul li:last-child { width: 100%; }*/

  #History h2 { width: 72px; }
  #History dl { font-size: 0.813rem; line-height: 1.846em; margin-top: 10px; }
  #History dl dt { width: 80px; margin-top: 20px; }
  #History dl dd { width: calc(100% - 80px); margin-top: 20px; }
  
  #Message h2 { width: 80px; }
  #Message .img01 { max-width: 260px; width: 100%; margin: 40px auto 0 auto; }
  #Message .img01 + div { position: static; width: 100%; margin: 25px auto 0 auto; }
  #Message .txt01 { margin-top: 25px; }
  #Message .txt01 h4 { font-size: 1.125rem; }
  #Message .txt01 p { font-size: 0.813rem; line-height: 1.846em; margin-top: 20px; }
  #Message .img02 { max-width: 330px; width: 100%; margin: 25px auto 0 auto; order: -1; }
  #Message .txt02 { max-width: 615px; width: 100%; margin-top: 15px; }
  #Message .name { font-size: 1.188rem; }
  #Message .name span { max-width: 154px; }
  #Message .name span img { vertical-align: baseline; }
  #Message .post { font-size: 0.688rem; line-height: 1.769em; margin: 15px 0; }
  #Staff { margin-top: 40px; padding-bottom: 45px; }
  #Staff .inner { margin-top: 40px!important; }
  #Staff .inner + .inner { margin-top: 65px!important; }
  #Staff .txt { max-width: initial; width: 100%; }
  #Staff .txt h4 { font-size: 1.000rem; line-height: 1.563em; margin-top: 25px; order: 3; }
  #Message .txt h4 + p { font-size: 0.688rem; line-height: 1.769em; margin-top: 15px; order: 4; }
  #Message .txt .name { margin-top: 30px; order: 1; }
  #Message .txt .post { margin: 10px 0 0 0; order: 2; }
  #Staff .img { max-width: 205px; width: 100%; margin: 0 auto; order: -1; }
  #Staff .logo { width: 58px; }
  #Staff .logo + .txt { max-width: calc(100% - 80px); width: calc(100% - 80px); }
  #Staff .logo + .txt p { font-size: 0.813rem; line-height: 1.769em; margin-top: 10px; }
  #Staff .logo + .txt .sttl { font-size: 0.813rem; margin-top: 15px; }
  
  #About h2 { width: 60px; }
  #About dl { font-size: 0.813rem; line-height: 1.846em; margin: 20px auto 0 auto; }
  #About dl dt { width: 130px; }
  #About dl dd { width: calc(100% - 130px); }
  #About .flexcol2 { margin-top: 35px; } 
  #About .column { max-width: initial; width: 100%; min-height: 155px; margin-top: 10px; }
  #About .office_en { width: 73px; margin: 0 0 0 4%; }
  #About .office_en img { width: 73px; height: auto; }
  #About .txt { width: calc(95% - 100px); }
  #About .office { font-size: 0.875rem; }
  #About address { font-size: 0.688rem; line-height: 1.769em; margin-top: 10px; }
  
  hr { width: 90%; margin: 50px auto 0 auto; }
  
  #Contact .inner,#Thanks { padding: 40px 0; }
  #Contact h2 { font-size: 1.125rem; }
  #Contact h2 + p { font-size: 0.813rem; margin-top: 15px; }
  #Contact h3 { font-size: 0.938rem; line-height: 1.533em; margin-top: 40px; }
  #Contact .policy { height: 340px; margin-top: 15px; padding: 30px; border: none; position: relative; }
  #Contact .policy h4 { font-size: 0.813rem; }
  #Contact .policy p { font-size: 0.813rem; }
  #Contact .policy ol { font-size: 0.813rem; }
  #Contact form p { font-size: 0.875rem; }
  #Contact dl { display: block; margin-top: 30px; }
  #Contact dl dt { font-size: 0.875rem; width: 100%; min-height: auto; padding-top: 15px; }
  #Contact dl dd { font-size: 0.875rem; width: 100%; min-height: auto; padding: 10px 0 15px 0; border: none; }
  #Contact dl dd.contact { display: block; }
  #Contact dl dd.contact label { display: block; width: 100%; margin-right: 0; margin-top: 15px; }
  #Contact dl dd.contact input:first-child + label { margin-top: 5px; }

  .submit { margin-top: 35px; text-align: center; }
  .submit input { width: 285px; height: 50px; }
  .submit input + input { margin-top: 10px; }
  
  #Tel h2 { font-size: 0.813rem; margin: 60px auto 0 auto; max-width: 280px; height: 23px; }
  #Thanks p { font-size: 0.813rem; line-height: 2.800em; text-align: left; }
  #Contact #Tel p,#Thanks #Tel p { font-size: 0.625rem; max-width: 280px; margin: 20px auto 0 auto; }
  #Contact #Tel img,#Thanks #Tel img { margin-bottom: 10px; }
  .box { padding: 50px 0; }
  .top-btn a { width: 285px; height: 50px; }
  
}

@media (min-width: 751px) {
  a[href*="tel:"] { pointer-events: none; cursor: default; text-decoration: none; }
}
