@charset "utf-8";

/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
【 homeModal 】
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ */

#homeModal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.6); padding: 100px calc( 50 / 1100 * 100% ); z-index: 10000; }
#homeModal .modalFrame { position: relative; max-width: 860px; max-height: 100%; background-color: #ffffff; border-radius: 20px; padding: 43px 60px 38px; margin-right: auto; margin-left: auto; overflow: auto; }
#homeModal .modalFrame .frameClose { position: absolute; top: 15px; right: 15px; width: 42px; height: 42px; background-color: #f391ad; border-radius: 50%; font-size: 0; line-height: 0; cursor: pointer; }
#homeModal .modalFrame .frameClose::before,
#homeModal .modalFrame .frameClose::after { position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: block; width: 22px; height: 2px; background-color: #ffffff; content: ""; margin: auto; }
#homeModal .modalFrame .frameClose::before { transform: rotate(-45deg); }
#homeModal .modalFrame .frameClose::after { transform: rotate(45deg); }
#homeModal .modalFrame .frameTitle { font-family: "Zen Maru Gothic"; font-size: 2.5rem; line-height: 3.6rem; color: #5987d1; font-weight: 700; text-align: center; margin-bottom: 25px; }
#homeModal .modalFrame .frameTxt { font-size: 2rem; line-height: 3.8rem; }
#homeModal .modalFrame .frameTxt p:not(:last-child) { margin-bottom: 20px; }

@media screen and (max-width: 767px) {
	#homeModal { padding: 20px calc( 15 / 320 * 100% ); }
	#homeModal .modalFrame { max-width: 500px; max-height: 100%; padding: 18px 15px 16px; }
	#homeModal .modalFrame .frameClose { top: 5px; right: 5px; width: 30px; height: 30px; }
	#homeModal .modalFrame .frameClose::before,
	#homeModal .modalFrame .frameClose::after { width: 18px; }
	#homeModal .modalFrame .frameTitle { font-size: 2.2rem; line-height: 3.2rem; padding-right: 25px; padding-left: 25px; margin-bottom: 20px; }
	#homeModal .modalFrame .frameTxt { font-size: 1.6rem; line-height: 2.8rem; }
	#homeModal .modalFrame .frameTxt p:not(:last-child) { margin-bottom: 15px; }
}





/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
【 homeMain 】
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ */

#homeMain { position: relative; margin-bottom: 100px; }
#homeMain .slider div .mainImg { display: block; background-repeat: no-repeat; background-position: center center; background-size: cover; font-size: 0; line-height: 0; padding-top: 540px; }
#homeMain .slider div:nth-child(1) .mainImg { background-image: url(../../images/home_main1_1.jpg); }
#homeMain .slider div:nth-child(2) .mainImg { background-image: url(../../images/home_main1_2.jpg); }
#homeMain .slider div:nth-child(3) .mainImg { background-image: url(../../images/home_main1_3.jpg); }
#homeMain .slider div:nth-child(4) .mainImg { background-image: url(../../images/home_main1_4.jpg); }
#homeMain .slider div .mainLead { position: absolute; top: 120px; right: 0; left: 0; max-width: 1400px; margin-right: auto; margin-left: auto; z-index: 1; }
#homeMain .slider div .mainLead span { position: absolute; right: 0; display: block; width: 910px; background-image: url(../../images/home_main1_lead.png); background-size: cover; padding-top: 300px; margin-right: -260px; }

@media screen and (max-width: 1400px) {
	#homeMain .slider div .mainImg { padding-top: calc( 540 / 1400 * 100% ); }
	#homeMain .slider div .mainLead { position: absolute; top: 0; margin-top: calc( 120 / 1400 * 100% ); }
	#homeMain .slider div .mainLead span { width: calc( 910 / 1400 * 100% ); padding-top: calc( 300 / 1400 * 100% ); margin-right: calc( -260 / 1400 * 100% ); }
}

@media screen and (max-width: 767px) {
	#homeMain { height: 320px; margin-bottom: 50px; }
	#homeMain .slider div .mainImg { height: 320px; background-size: auto 100%; }
	#homeMain .slider div:nth-child(1) .mainImg { background-image: url(../../images/home_main2_1.jpg); }
	#homeMain .slider div:nth-child(2) .mainImg { background-image: url(../../images/home_main2_2.jpg); }
	#homeMain .slider div:nth-child(3) .mainImg { background-image: url(../../images/home_main2_3.jpg); }
	#homeMain .slider div:nth-child(4) .mainImg { background-image: url(../../images/home_main2_4.jpg); }
	#homeMain .slider div .mainLead { display: none; }
}

@media screen and (max-width: 430px) {
	#homeMain { height: auto; }
	#homeMain .slider div .mainImg { height: 0; padding-top: calc( 320 / 430 * 100% ); }
}





/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
【 homeInfo 】
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ */

#homeInfo { max-width: 860px; margin-right: auto; margin-left: auto; }
#homeInfo .infoList { display: table; width: 100%; font-size: 1.8rem; line-height: 3.4rem; }
#homeInfo .infoList a { display: table-row; color: #26426d; text-decoration: none; }
#homeInfo .infoList .listDate,
#homeInfo .infoList .listMain { display: table-cell; border-top: solid 1px #b8c1cf; vertical-align: top; padding-top: 11px; padding-bottom: 11px; }
#homeInfo .infoList .listDate { white-space: nowrap; padding-right: 40px; }
#homeInfo .infoClose { display: none; border-bottom: solid 1px #b8c1cf; }
#homeInfo button { position: relative; width: 100%; background-color: #e3f0f8; border-radius: 23px; font-size: 1.8rem; line-height: 3rem; color: #26426d; padding: 8px; margin-top: 30px; }
#homeInfo button::after { position: absolute; top: -6px; right: 42px; bottom: 0; display: block; width: 9px; height: 9px; border: solid #26426d; border-width: 0 1px 1px 0; content: ""; transform: rotate(45deg); margin-top: auto; margin-bottom: auto; }
#homeInfo.infoOpen button { display: none; }

@media screen and (min-width: 821px) {
	#homeInfo a,
	#homeInfo button,
	#homeInfo button::after { transition: 0.2s ease; }
	#homeInfo a:hover { background-color: #f3faff; }
	#homeInfo button:hover { background-color: #0094d4; color: #ffffff; }
	#homeInfo button:hover::after { border-color: #ffffff; }
}

@media screen and (max-width: 767px) {
	#homeInfo { max-width: 500px; }
	#homeInfo .infoList { display: block; font-size: 1.6rem; line-height: 2.6rem; }
	#homeInfo .infoList a { position: relative; display: block; border-top: solid 1px #b8c1cf; padding: 13px 30px 13px 0; }
	#homeInfo .infoList a::after { position: absolute; top: 0; right: 2px; bottom: 0; display: block; width: 10px; height: 10px; border: solid #26426d; border-width: 0 1px 1px 0; content: ""; transform: rotate(-45deg); margin-top: auto; margin-bottom: auto; }
	#homeInfo .infoList .listDate,
	#homeInfo .infoList .listMain { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; border-top: none; padding-top: 0; padding-bottom: 0; }
	#homeInfo .infoList .listDate { margin-bottom: 2px; }
	#homeInfo .infoList.listClose.listOpen { display: block; }
	#homeInfo button { font-size: 1.6rem; margin-top: 20px; }
	#homeInfo button::after { right: 22px; }
}




/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
【 homeGreeting 】
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ */

#homeGreeting { background-color: #dbf2ff; padding: 70px calc( 50 / 1100 * 100% ) 100px; }
#homeGreeting .greetingInner { overflow: hidden; max-width: 860px; margin-right: auto; margin-left: auto; }
#homeGreeting .greetingCopy { float: left; width: calc( 100% - 340px ); font-family: "Zen Maru Gothic"; font-size: 2.5rem; line-height: 4rem; font-weight: 700; padding-top: 10px; margin-bottom: 25px; }
#homeGreeting .greetingImg { float: right; width: 270px; }
#homeGreeting .greetingImg .imgIllust { overflow: hidden; border-radius: 50%; margin-bottom: 10px; }
#homeGreeting .greetingImg .imgName1 { display: table; margin: 0 auto 5px; }
#homeGreeting .greetingImg .imgName1 dt { display: table-cell; font-size: 1.6rem; line-height: 2.4rem; vertical-align: bottom; padding-right: 16px; }
#homeGreeting .greetingImg .imgName1 dd { display: table-cell; font-size: 2.4rem; line-height: 3rem; vertical-align: bottom; }
#homeGreeting .greetingImg .imgName2 { font-size: 1.1rem; line-height: 1.4rem; text-align: center; margin-bottom: 90px; }
#homeGreeting .greetingImg .imgCredit { font-size: 1.4rem; line-height: 2.2rem; text-align: right; }
#homeGreeting .greetingTxt { float: left; width: calc( 100% - 340px ); }
#homeGreeting .greetingTxt .txtMain { font-size: 1.8rem; line-height: 3rem; margin-bottom: 35px; }
#homeGreeting .greetingTxt .txtLink { text-align: center; }
#homeGreeting .greetingTxt .txtLink a { position: relative; display: inline-block; width: 240px; background-color: #ffffff; border-radius: 21px; font-size: 1.6rem; line-height: 2.2rem; color: #26426d; text-decoration: none; padding: 10px; }
#homeGreeting .greetingTxt .txtLink a::before,
#homeGreeting .greetingTxt .txtLink a::after { position: absolute; top: 0; bottom: 0; display: block; content: ""; margin-top: auto; margin-bottom: auto; }
#homeGreeting .greetingTxt .txtLink a::before { right: 15px; width: 18px; height: 18px; background-color: #0094d4; border-radius: 50%; }
#homeGreeting .greetingTxt .txtLink a::after { right: 22px; width: 6px; height: 6px; border: solid #ffffff; border-width: 0 1px 1px 0; transform: rotate(-45deg); }

@media screen and (min-width: 821px) {
	#homeGreeting .greetingTxt .txtLink a,
	#homeGreeting .greetingTxt .txtLink a::before,
	#homeGreeting .greetingTxt .txtLink a::after { transition: 0.2s ease; }
	#homeGreeting .greetingTxt .txtLink a:hover { background-color: #0094d4; color: #ffffff; }
	#homeGreeting .greetingTxt .txtLink a:hover::before { background-color: #ffffff; }
	#homeGreeting .greetingTxt .txtLink a:hover::after { border-color: #0094d4; }
}

@media screen and (max-width: 767px) {
	#homeGreeting { padding: 45px calc( 15 / 320 * 100% ) 50px; }
	#homeGreeting .greetingInner { max-width: 500px; }
	#homeGreeting .greetingCopy { float: none; width: 100%; font-size: 2rem; line-height: 3.4rem; text-align: center; padding-top: 5px; margin-bottom: 22px; }
	#homeGreeting .greetingImg { float: none; width: 100%; margin-bottom: 30px; }
	#homeGreeting .greetingImg .imgIllust { width: 190px; margin: 0 auto 8px; }
	#homeGreeting .greetingImg .imgName1 { display: block; text-align: center; margin-bottom: 0; }
	#homeGreeting .greetingImg .imgName1 dt { display: block; font-size: 1.4rem; line-height: 2rem; padding-right: 0; }
	#homeGreeting .greetingImg .imgName1 dd { display: block; font-size: 2rem; }
	#homeGreeting .greetingImg .imgName2 { margin-bottom: 15px; }
	#homeGreeting .greetingImg .imgCredit { font-size: 1.2rem; line-height: 1.8rem; text-align: center; }
	#homeGreeting .greetingTxt { float: none; width: 100%; }
	#homeGreeting .greetingTxt .txtMain { font-size: 1.6rem; line-height: 2.6rem; }
}





/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
【 homePoint 】
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ */

#homePoint { background: url(../../images/home_point_bg.jpg) no-repeat center center #f1f1f1; background-size: 100% auto; padding: 70px calc( 50 / 1100 * 100% ) 100px; }
#homePoint .pointInner { max-width: 1000px; margin-right: auto; margin-left: auto; }
#homePoint .pointLink { font-size: 0; line-height: 0; }
#homePoint .pointLink a { display: inline-block; width: 280px; color: #26426d; text-decoration: none; }
#homePoint .pointLink a:nth-child(2),
#homePoint .pointLink a:nth-child(3) { margin-left: 80px; }
#homePoint .pointLink .linkImg { position: relative; width: 240px; margin: 0 auto 35px; }
#homePoint .pointLink .linkImg span { overflow: hidden; display: block; border-radius: 50%; }
#homePoint .pointLink .linkImg::after { position: absolute; right: 0; bottom: -21px; left: 0; display: block; width: 42px; height: 42px; background-color: #0094d4; border-radius: 50%; font-size: 2rem; line-height: 4.2rem; color: #ffffff; text-align: center; margin-right: auto; margin-left: auto; }
#homePoint .pointLink a:nth-child(1) .linkImg::after { content: "1"; }
#homePoint .pointLink a:nth-child(2) .linkImg::after { content: "2"; }
#homePoint .pointLink a:nth-child(3) .linkImg::after { content: "3"; }
#homePoint .pointLink .linkName { font-size: 2rem; line-height: 3rem; font-weight: 700; text-align: center; margin-bottom: 8px; }
#homePoint .pointLink .linkTxt { font-size: 1.6rem; line-height: 2.6rem; }
#homePoint .pointLink .linkBtn { border-top: solid 1px #b8c1cf; font-size: 1.6rem; line-height: 2.6rem; text-align: center; padding-top: 8px; margin-top: 25px; }
#homePoint .pointLink .linkBtn span { position: relative; display: inline-block; padding-right: 28px; }
#homePoint .pointLink .linkBtn span::before,
#homePoint .pointLink .linkBtn span::after { position: absolute; top: 0; bottom: 0; display: block; content: ""; margin-top: auto; margin-bottom: auto; }
#homePoint .pointLink .linkBtn span::before { right: 0; width: 18px; height: 18px; background-color: #0094d4; border-radius: 50%; }
#homePoint .pointLink .linkBtn span::after { right: 7px; width: 8px; height: 8px; border: solid #ffffff; border-width: 0 1px 1px 0; transform: rotate(-45deg); }

@media screen and (max-width: 1410px) {
	#homePoint { background-size: auto 100%; }
}

@media screen and (max-width: 1110px) {
	#homePoint .pointLink { width: 640px; margin-right: auto; margin-left: auto; }
	#homePoint .pointLink a:nth-child(3) { display: block; margin: 50px auto 0; }
}

@media screen and (min-width: 821px) {
	#homePoint .pointLink a { transition: 0.2s ease; }
	#homePoint .pointLink a:hover { opacity: 0.7; }
}

@media screen and (max-width: 767px) {
	#homePoint { padding: 35px calc( 15 / 320 * 100% ) 45px; }
	#homePoint .pointLink { width: 280px; }
	#homePoint .pointLink a:nth-child(2) { margin-top: 50px; margin-left: 0; }
}





/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
【 homeMedical 】
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ */

#homeMedical { background: url(../../images/home_medical_bg.jpg) no-repeat center center; background-size: 100% auto; padding: 70px calc( 50 / 1100 * 100% ) 80px; }
#homeMedical .medicalInner { max-width: 1000px; margin-right: auto; margin-left: auto; }
#homeMedical .medicalList { font-size: 0; line-height: 0; }
#homeMedical .medicalList a { display: inline-block; width: calc( 232 / 1000 * 100% ); background-size: cover; padding-top: calc( 260 / 1000 * 100% ); }
#homeMedical .medicalList a:nth-child(1) { background-image: url(../../images/home_medical1.gif); }
#homeMedical .medicalList a:nth-child(2) { background-image: url(../../images/home_medical2.gif); }
#homeMedical .medicalList a:nth-child(3) { background-image: url(../../images/home_medical3.gif); }
#homeMedical .medicalList a:nth-child(4) { background-image: url(../../images/home_medical4.gif); }
#homeMedical .medicalList a:nth-child(5) { background-image: url(../../images/home_medical5.gif); }
#homeMedical .medicalList a:nth-child(6) { background-image: url(../../images/home_medical6.gif); }
#homeMedical .medicalList a:nth-child(7) { background-image: url(../../images/home_medical7.gif); }
#homeMedical .medicalList a:not(:nth-child(4n+1)) { margin-left: calc( 24 / 1000 * 100% ); }
#homeMedical .medicalList a:nth-last-child(n+5) { margin-bottom: calc( 24 / 1000 * 100% ); }
#homeMedical .medicalAnn { overflow: hidden; margin-top: 40px; }
#homeMedical .medicalAnn dl { float: right; display: table; font-size: 1.5rem; line-height: 2rem; color: #222222; }
#homeMedical .medicalAnn dl dt,
#homeMedical .medicalAnn dl dd { display: table-cell; }

@media screen and (max-width: 1410px) {
	#homeMedical { background-size: auto 100%; }
}

@media screen and (min-width: 821px) {
	#homeMedical .medicalList a { transition: 0.2s ease; }
	#homeMedical .medicalList a:hover { opacity: 0.7; }
}

@media screen and (max-width: 767px) {
	#homeMedical .medicalInner { max-width: 500px; }
	#homeMedical .medicalList a { width: calc( 138 / 290 * 100% ); padding-top: calc( 154 / 290 * 100% ); }
	#homeMedical .medicalList a:not(:nth-child(4n+1)) { margin-left: 0; }
	#homeMedical .medicalList a:nth-last-child(n+3) { margin-bottom: 0; }
	#homeMedical .medicalList a:not(:nth-child(2n+1)) { margin-left: calc( 14 / 290 * 100% ); }
	#homeMedical .medicalList a:nth-last-child(n+3) { margin-bottom: calc( 14 / 290 * 100% ); background-color: #cc0000; }
	#homeMedical .medicalAnn { margin-top: 30px; }
	#homeMedical .medicalAnn dl { float: none; margin-right: auto; margin-left: auto; font-size: 1.3rem; line-height: 2rem; }
}
